2023-02-03 18:48:42 +01:00
# OpenMoHAA
2023-07-06 18:32:14 +02:00
 [](https://github.com/openmoh/openmohaa/releases) [](https://github.com/openmoh/openmohaa/releases)
 

```
2019-07-03 22:23:22 +02:00
/ _ \ _ __ ___ _ __ | \/ |/ _ \| | | | / \ / \
| | | | '_ \ / _ \ '_ \| |\/| | | | | |_| | / _ \ / _ \
| |_| | |_) | __ / | | | | | | |_| | _ |/ ___ \ / ___ \
\___/| .__/ \___|_| |_|_| |_|\___/|_| |_/_/ \_\/_/ \_\
|_|
2023-07-06 18:32:14 +02:00
```
2019-07-03 22:10:46 +02:00
2023-07-06 18:32:14 +02:00
## Current State
2019-07-03 22:23:22 +02:00
2023-08-16 13:27:29 +02:00
OpenMoHAA is still under development. The single-player campaign is not yet functional due to AI not being fully implemented, and due to the script engine having a few issues. But the `training` map can be played from start to end. The current focus is on multiplayer.
2019-07-03 22:23:22 +02:00
2023-07-06 18:32:14 +02:00
## Running
2016-03-27 11:49:47 +02:00
2023-07-06 18:32:14 +02:00
Backup existing mohaa files, **cgamex86.dll** and **gamex86.dll** (set their extension to ** .bak**)
a) extract archive to your MOHAA installation directory.
2019-07-03 22:23:22 +02:00
2023-07-06 18:32:14 +02:00
-or-
2023-06-18 00:38:23 +02:00
2023-07-06 18:32:14 +02:00
b) Copy all pak*.pk3 files and the sound/ directory from your **MOHAA/main** directory into openmohaa's 'main' directory.
If you have problems running the game :
You may need to install Microsoft Visual C++ 2015/2017/2019/2022 Redistributable from
https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170
You can now start a local OpenMOHAA server or play on a server.
2023-08-15 18:09:22 +02:00
**Medal of Honor: Allied Assault Spearhead** and **Medal of Honor: Allied Assault Breakthrough** are supported in OpenMoHAA using the `com_target_game` variable. To play an expansion, append the following command-line arguments to the executable:
- `+set com_target_game 1` for Spearhead (mohaas/mohta)
- `+set com_target_game 2` for Breakthrough (mohaab/mohtt)
On Windows, you can create a shortcut to OpenMoHAA with these command-line arguments.
The default value of `com_target_game` is 0 for the base game.
2023-07-06 18:32:14 +02:00
2023-08-19 19:41:22 +02:00
With `com_target_game` , OpenMoHAA will support the network protocol accordingly
### Playing with bots
OpenMoHAA has a basic bot system that emulates real players. The maximum number of bots is defined by the `sv_maxbots` variable, and the number of initial bots is defined by the `sv_numbots` variable. Bots can also be added or removed using the `addbot` and `removebot` commands.
This feature is a great way to test the gameplay and mods.
2023-08-16 00:19:30 +02:00
2023-07-06 18:32:14 +02:00
## Builds
2023-05-18 20:54:12 +02:00
2023-02-03 18:48:42 +01:00
### Server
2016-03-27 11:49:47 +02:00
2023-08-15 18:09:22 +02:00
The server version can be built successfully, but some features are not functional. For example, the Actor and Vehicle systems are almost fully implemented, but they are not yet stable. This means that they may not work as expected and could cause crashes.
2019-07-03 22:23:22 +02:00
2023-08-15 18:09:22 +02:00
Overall, the server and the fgame components are almost fully implemented, but they may not be completely stable. There could be some minor bugs (and rare crashes), but the game should be playable.
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-08-15 18:09:22 +02:00
The client version of OpenMoHAA has undergone partial implementation, with the cgame module being nearly completed. Credits to the SDK of **Heavy Metal: F.A.K.K. 2** both the cgame and fgame modules.
2019-07-03 22:23:22 +02:00
2023-08-16 00:19:30 +02:00
The current operational status for each component is as follow:
2023-05-09 20:03:34 +02:00
2023-08-16 00:19:30 +02:00
| Component | Full | Almost | Half | Early | Bad | Not working | Comment |
2023-05-18 20:54:12 +02:00
|-------------------------|------|--------|------|-------|-----|-------------|-------------------------------------------------------------------|
| Audio | | | | | x | | Very basic implementation from Quake III |
| CG Module | | x | | | | | Missing FX, Marks and decals |
2023-07-30 11:37:41 +02:00
| Client | | x | | | | | Missing GameSpy, server list, binds, map picker, ... |
2023-05-18 20:54:12 +02:00
| Collision | x | | | | | | |
| Model/TIKI/Skeletor | x | | | | | | |
2023-07-30 11:37:41 +02:00
| Renderer | | x | | | | | Missing ghost, marks, sphere lights, sky portal, sun flare, swipe |
2023-05-18 20:54:12 +02:00
| Server | | x | | | | | Probably a few bugs remaining |
| Server module (fgame) | | x | | | | | Actor, vehicle, and few gameplay bugs |
2023-07-30 11:37:41 +02:00
| UI | | | x | | | | Has core features only (menu, widgets, console, hud, urc loading) |
2023-05-01 20:08:26 +02:00
2023-02-03 18:48:42 +01:00
## Compiling
2019-07-03 22:23:22 +02:00
2023-08-16 00:19:30 +02:00
OpenMoHAA supports any architecture, thanks to the CMake build system and cross-platform code/libraries. While the most common little-Endian architectures (arm, aarch64, x86, x86_64) have been tested and confirmed to work, big-Endian architectures should be supported as well; however, they remain untested.
2023-05-18 20:54:12 +02:00
2023-08-15 18:09:22 +02:00
The following tools are required for all platforms:
2023-02-07 21:20:15 +01:00
- CMake >= 3.5
2023-08-19 19:41:22 +02:00
- Flex and Bison
2023-08-15 18:09:22 +02:00
- A C++11 compiler is also required.
2019-07-03 22:23:22 +02:00
2023-08-15 18:09:22 +02:00
The installation directory can be set to the MOHAA directory.
2016-03-27 11:49:47 +02:00
2023-08-15 18:09:22 +02:00
By default, the build will produce both the client and dedicated server versions. The client build can be excluded by appending `-DBUILD_NO_CLIENT=1` to the CMake command-line arguments. Using this parameter will result in only the server portion being built.
2023-05-18 20:54:12 +02:00
2023-02-03 18:48:42 +01:00
### Linux
2019-07-03 22:23:22 +02:00
2023-08-15 16:02:02 +02:00
These are the tools required on Linux :
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-05-29 01:56:06 +02:00
SDL2 library is required (libsdl2-dev).
1 line install command with latest clang version : `sudo apt-get install -y ninja-build cmake make clang-15 lld-15 flex bison libsdl2-dev`
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
2023-08-15 16:02:02 +02:00
cmake -DCMAKE_C_COMPILER=clang-15 -DCMAKE_CXX_COMPILER=clang++-15 -G Ninja
2023-05-23 23:47:36 +02:00
```
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-08-19 19:41:22 +02:00
Flex and Bison can be downloaded from here: https://github.com/lexxmark/winflexbison/releases/tag/v2.5.25
Append `-DFLEX_EXECUTABLE=...\win_flex.exe -DBISON_EXECUTABLE=...\win_bison.exe` to the CMake command-line to use the package from the link above.
2023-05-19 14:09:03 +02:00
## Screenshots
2023-08-15 15:24:56 +02:00
| | |
|-------------------------------------------------------------------------------|----------------------------------------------------------------------|
|  |  |
|  |  |
2023-08-20 14:29:50 +02:00
|  |  |
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/
2023-02-03 18:48:42 +01:00
### OpenAL
2019-07-03 22:24:21 +02:00
2023-08-15 16:02:02 +02:00
https://www.openal.org/
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/
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-07-06 18:32:14 +02:00
## Communities
### URLs
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/
2023-07-06 18:32:14 +02:00
### Discord
[](https://discord.gg/NYtH58R)