2023-02-03 18:48:42 +01:00
# OpenMoHAA
2019-07-03 22:23:22 +02:00
/ _ \ _ __ ___ _ __ | \/ |/ _ \| | | | / \ / \
| | | | '_ \ / _ \ '_ \| |\/| | | | | |_| | / _ \ / _ \
| |_| | |_) | __ / | | | | | | |_| | _ |/ ___ \ / ___ \
\___/| .__/ \___|_| |_|_| |_|\___/|_| |_/_/ \_\/_/ \_\
|_|
2019-07-03 22:10:46 +02:00
2019-07-03 22:23:22 +02:00
2023-02-03 18:48:42 +01:00
## Discord
2019-07-03 22:23:22 +02:00
2023-02-03 18:48:42 +01:00
[](https://discord.gg/NYtH58R)
2016-03-27 11:49:47 +02:00
2023-02-03 18:48:42 +01:00
## Current State
2019-07-03 22:23:22 +02:00
2023-05-18 20:54:12 +02:00
OpenMoHAA is still in its early days.
2023-02-03 18:48:42 +01:00
### Server
2016-03-27 11:49:47 +02:00
2023-05-18 20:54:12 +02:00
The server version can successfully be built.
Some stuff are not working as intended, such as Actor or Vehicle. These systems are both almost fully implemented, but not really in stable state.
2019-07-03 22:23:22 +02:00
2023-05-18 20:54:12 +02:00
Overall the server part and the game module are almost fully implemented, but the stability may vary, there may be some minor bugs and crashes.
2016-03-27 11:49:47 +02:00
2023-02-03 18:48:42 +01:00
### Client
2016-03-27 11:49:47 +02:00
2023-05-18 20:54:12 +02:00
The client version of OpenMoHAA is partially implemented and not stable currently. The cgame module is partially implemented as well, but is compatible with the original MOH:AA game. Credits to **Heavy Metal: F.A.K.K. 2** 's SDK for the cgame module.
2019-07-03 22:23:22 +02:00
2023-05-18 20:54:12 +02:00
Here is the current working state for each part of the engine:
2023-05-09 20:03:34 +02:00
2023-05-18 20:54:12 +02:00
| Part name | Full | Almost | Half | Early | Bad | Not working | Comment |
|-------------------------|------|--------|------|-------|-----|-------------|-------------------------------------------------------------------|
| Audio | | | | | x | | Very basic implementation from Quake III |
| CG Module | | x | | | | | Missing FX, Marks and decals |
| Client | | | x | | | | Missing GameSpy, server list, binds, map picker, ... |
| Collision | x | | | | | | |
| Model/TIKI/Skeletor | x | | | | | | |
| Renderer | | | | x | | | Missing ghost, marks, sphere lights, sky portal, sun flare, swipe |
| Server | | x | | | | | Probably a few bugs remaining |
| Server module (fgame) | | x | | | | | Actor, vehicle, and few gameplay bugs |
| UI | | | | x | | | Has core features only (menu, widgets, console, hud, urc loading) |
2023-05-01 20:08:26 +02:00
2023-05-21 22:39:26 +02:00
NOTE: Both client and server version can be compiled to target **Medal of Honor: Spearhead** and **Medal of Honor: Breakthrough** .
2023-05-21 22:10:27 +02:00
2023-02-03 18:48:42 +01:00
## Running
2019-07-03 22:23:22 +02:00
2023-05-18 20:54:12 +02:00
Backup existing mohaa files, **cgamex86.dll** and **gamex86.dll** (set their extension to ** .bak**)
2019-07-03 22:23:22 +02:00
2023-02-03 18:48:42 +01:00
a) extract archive to your MOHAA installation directory.
2016-03-27 11:49:47 +02:00
2023-02-03 18:48:42 +01:00
-or-
2019-07-03 22:23:22 +02:00
2023-02-03 18:48:42 +01:00
b) Copy all pak*.pk3 files and the sound/ directory from your **MOHAA/main** directory into openmohaa's 'main' directory.
2016-03-27 11:49:47 +02:00
2023-02-03 18:48:42 +01:00
If you have problems running the game :
2019-07-03 22:23:22 +02:00
2023-02-03 18:48:42 +01:00
You may need to install Microsoft Visual C++ 2015/2017/2019/2022 Redistributable from
2016-03-27 11:49:47 +02:00
2023-02-03 18:48:42 +01:00
https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170
2016-03-27 11:49:47 +02:00
2023-02-03 18:48:42 +01:00
You can now start a local OpenMOHAA server or play on a server.
2016-03-27 11:49:47 +02:00
2023-02-03 18:48:42 +01:00
## Compiling
2019-07-03 22:23:22 +02:00
2023-05-18 20:54:12 +02:00
OpenMoHAA supports both x86 and x64 architectures, and although the target platform is Windows, it still can be compiled for other platforms, and even other architectures.
2023-02-03 18:48:42 +01:00
These are the tools required for all platforms :
2023-02-07 21:20:15 +01:00
- CMake >= 3.5
2023-02-07 20:55:37 +01:00
- Flex and Bison (currently not used)
2023-02-08 14:26:12 +01:00
- A C++11 compiler is required.
2019-07-03 22:23:22 +02:00
2023-02-03 18:48:42 +01:00
The installation directory can be set to MOHAA directory.
2016-03-27 11:49:47 +02:00
2023-05-20 15:09:43 +02:00
The client build can be built by adding `-DWITH_CLIENT=1` to the CMake command line. This will compile the cgame module and the full app with rendering, ui and sound suppport, alongside the dedicated server version.
2023-05-18 20:54:12 +02:00
2023-05-21 22:30:51 +02:00
To compile for either Spearhead or Breakthrough, append `-DTARGET_GAME_TYPE=x` where x can be 1 for Team Assault (Spearhead), and 2 for Team Tactics (Breakthrough). 2 is recommended because Team Tactics can connect to both Spearhead and Breakthrough servers.
2023-02-03 18:48:42 +01:00
### Linux
2019-07-03 22:23:22 +02:00
2023-02-07 20:55:37 +01:00
These are the tools required on Unix :
2023-02-08 14:26:12 +01:00
- Clang >= 3.3 or GCC >= 4.8.1
2023-02-07 20:55:37 +01:00
2023-05-23 23:47:36 +02:00
**clang-3.5** and **gcc-4.8.5** should work (tested on Ubuntu 16.04). Use the latest possible version of those compilers.
2023-02-07 20:55:37 +01:00
2023-02-03 18:48:42 +01:00
1 line install command with latest clang version : `sudo apt-get install -y ninja-build cmake make clang-15 lld-15 flex bison`
2019-07-03 22:23:22 +02:00
2023-05-23 23:47:36 +02:00
Example with **CMake** , **clang-15** and **ninja-build** installed:
```sh
mkdir .cmake & & cd .cmake
cmake -DCMAKE_C_COMPILER=clang-15 -DCMAKE_CXX_COMPILER=clang++-15 -DWITH_CLIENT=1 -G Ninja
```
2023-02-03 18:48:42 +01:00
### Windows
2016-03-27 11:49:47 +02:00
2023-02-03 18:48:42 +01:00
Visual Studio (2019 or 2022) is generally preferred.
2019-07-03 22:23:22 +02:00
2023-05-19 14:09:03 +02:00
## Screenshots
2023-05-22 18:01:11 +02:00
| | |
|---------------------------------------------------------------------|---------------------------------------------------------------------------|
|  |  |
|  |  |
2023-05-19 14:09:03 +02:00
2023-02-03 18:48:42 +01:00
## Third party
2019-07-03 22:23:22 +02:00
2023-02-03 18:48:42 +01:00
### SDL
2019-07-03 22:24:21 +02:00
http://www.libsdl.org/
download Source code, compile
2019-07-03 22:23:22 +02:00
2023-02-03 18:48:42 +01:00
### OpenAL
2019-07-03 22:24:21 +02:00
2023-02-03 18:48:42 +01:00
https://www.openal.org/ download OpenAL soft source
2019-07-03 22:23:22 +02:00
2016-03-27 11:49:47 +02:00
run cmake on OpenAL, compile
2019-07-03 22:23:22 +02:00
2023-02-03 18:48:42 +01:00
### LibMAD
2019-07-03 22:24:21 +02:00
http://www.underbit.com/products/mad/
download source code, compile
2019-07-03 22:23:22 +02:00
2023-02-03 18:48:42 +01:00
### cURL
2016-03-27 11:49:47 +02:00
2023-02-03 18:48:42 +01:00
https://curl.se/
2019-07-03 22:23:22 +02:00
2023-02-03 18:48:42 +01:00
### Libogg
2016-03-27 11:49:47 +02:00
2023-02-03 18:48:42 +01:00
https://github.com/gcp/libogg
2019-07-03 22:23:22 +02:00
2023-02-03 18:48:42 +01:00
### Libvorbis
2019-07-03 22:23:22 +02:00
2023-02-03 18:48:42 +01:00
https://xiph.org/vorbis/
2019-07-03 22:23:22 +02:00
2023-02-03 18:48:42 +01:00
### Libopus
2016-03-27 11:49:47 +02:00
2023-02-03 18:48:42 +01:00
https://opus-codec.org/
2016-03-27 11:49:47 +02:00
2023-05-19 21:33:58 +02:00
## URLs and communities
2019-07-03 22:23:22 +02:00
2023-05-19 21:33:58 +02:00
- https://github.com/openmoh/openmohaa/
- https://mohaaaa.co.uk/AAAAMOHAA/index.php
2023-02-03 18:48:42 +01:00
- https://x-null.net/