(This article is currently under construction!)
1 Information
OpenUA (UA:Source) is a clean-room open-source reverse engineering/engine re-implementation project of the original Urban Assault game engine.
2 Overview
OpenUA (also known as UA:Source) is a clean-room, reverse engineering/engine re-implementation project of the original Urban Assault game engine that initially started at the old Stoudson Corporation forums (the main global Urban Assault community website that went offline in the year 2020 due to its webmaster's decision).
OpenUA project originally had an active public development & discussion thread on Stoudson Corporation forums since 2016. The main objective is to reconstruct the original UA engine and (re-)implement certain features and updates via modern, platform-independent technology that are better compatible with modern computer hardware and system configurations.
Thanks to the years of constant development, currently OpenUA is considered fully playable in the single-player mode. Although there are numerous technical differences between the original UA engine and various parts of the game may not be strictly identical to the original UA engine, these discrepancies are generally trivial and do not significantly affect the gameplay experience too much.
Newer and experimental OpenUA builds and releases may contain unexpected bugs or glitches in them. Therefore, it is highly recommended to use the stable release versions instead. (See the Downloads section.) Some experimental builds are known to have game breaking bugs and glitches and so do not download or use them!
Nowadays, playing the game via OpenUA is generally recommended as a reliable alternative method to resolve most compatibility problems that may occur on modern systems and hardware. OpenUA now also supports a primitive multiplayer functionality and various other new features as well, although they are still currently in development. This article will also cover some of these network components and elements later.
Since many parts of the code have been reconstructed, refactored, or improvised from the original game's algorithms, OpenUA may contain new types of bugs and glitches, and the gameplay experience may not be strictly identical to the original UA in all aspects. However, OpenUA also offers various advanced and improved performance and settings on modern systems and hardware, as well as fixing a few bugs that were present in the original game engine.
3 Project Objectives
3.1 Implemented
- Rewrite the game engine, make it portable and modulable.
- Rectify the AI Helicopter Bug.
- Replace D3D/DDraw/DInput/DSound with SDL2/OpenGL/OpenAL.
- Add support for Metropolis Dawn expansion and its functions.
- Implement new language files support, replace language.dll with text format files.
- Implement music player (replace CD-based music player).
- Implement video player.
- Implement in-game Situation Analyzer function.
- Add native Windowed mode support.
- Add custom shaders functionality for recreating software rendering effects.
- Other miscellaneous improvements.
- Implement basic and primitive multiplayer functionality (unfinished and unstable).
3.2 Not implemented
- Implement a new, stable, and fully functional multiplayer engine and connection interface.
- Functional Help buttons inside the game. At the moment, pressing Help buttons when playing the game via OpenUA engine does not open the Help files.
- Other miscellaneous bug-fixes and tuning.
4 New OpenUA Configuration Options
As a part of its development, many new configuration keyword options that are exclusive to the OpenUA engine were implemented.
The full options are listed below and may be added into the NUCLEUS.ini configuration file that is located in the main game folder:
;
; OpenUA Custom Parameter Options
;
; These are special custom parameters that are
; exclusively added and used by OpenUA engine.
;
; They have no effect in the original engine.
; Careless changes may cause gameplay issues.
;
menu.windowed = off
tune.weapon_radius = off
gfx.blending = 0
gfx.solidfont = off
gfx.vsync = 1
gfx.maxfps = 60
gfx.newsky = on
gfx.skydistance = 3000
gfx.skylength = 500
gfx.color_effects = 0
; gfx.color_eff_pwr[0] = 100
gfx.color_eff_pwr[1] = 100
gfx.color_eff_pwr[2] = 100
gfx.color_eff_pwr[3] = 100
gfx.color_eff_pwr[4] = 100
gfx.color_eff_pwr[5] = 100
gfx.color_eff_pwr[6] = 100
gfx.color_eff_pwr[7] = 100
gfx.vbo = on
particles.limit = 5000
; OpenUA Custom Parameter Options End
Display More
These parameters are fully integral parts of the new OpenUA features and functionality. Most of the above options are considered essential for smoothly running the game via OpenUA.
Therefore, it is HIGHLY recommended to add these new keywords into NUCLEUS.ini file of the OpenUA directory. If some key options are missing or misconfigured, it may adversely affect the performance of OpenUA, or may even result in an undesirable gameplay glitch. OpenUA Standalone Package already contain these parameters fully configured and ready.
They do not have any effect in the original UA engine.
5 FAQ
By default, OpenUA is a separate engine software and therefore does not come with the original game data files. However, standalone OpenUA packages with full game contents and necessary settings are created for convenience.
5.1 Running Urban Assault on OpenUA
Under Construction.
Manual installation instructions will be covered here in future. For now, downloading and using OpenUA Standalone Package is recommended (see Downloads below).
5.2 Running Metropolis Dawn expansion pack on OpenUA
Under Construction.
Manual installation instructions will be covered here in future. For now, downloading and using OpenUA Standalone Package is recommended (see Downloads below).
5.3 Running Urban Assault Trial (Demo) on OpenUA
Under Construction.
Manual installation instructions will be covered here in future. For now, downloading and using OpenUA Standalone Package (Demo) is recommended (see Downloads below).
6 Downloads
The core component files of OpenUA builds and releases are available on the main GitHub repository. The downloads section here will describe the generally recommended game files to download and play Urban Assault via OpenUA. They are all pre-configured and so there is no necessity to install the game separately.
The following download files are all pre-configured and it is not necessary to install the game separately. They are also based on older, but more stable version releases of OpenUA.
6.1 Downloading the OpenUA Standalone Package (Full Game) (Highly recommended for most users)
Download Link:
OpenUA Standalone Package - Full Game

6.1.1 Notes
OpenUA Standalone Package is HIGHLY RECOMMENDED for normal users who want a quick and stable way to play the game on modern hardware without further workarounds. This is a full standalone game package with the original game data (Urban Assault + Metropolis Dawn expansion pack) contents that requires no installation process, with the latest stable UA:Source files as well as other necessary configurations setup applied inside already. Please use 'UA_Source.exe' (not 'UA.exe' or 'Ua_xp.exe'!) and its variants to launch the game in the OpenUA engine.
If you are new in the community, and have problems determining which game files to download and/or had already experienced technical issues with the original UA files on your machines, then download and use this package. Also when using this package, please check the 'Package Description' Readme file first! Everything you need to know about the package is properly explained in there. This package now also contains the authentic and official German, French, and Japanese localisation files of Urban Assault. However, the in-game movie files in this package are only available in English version because they take up a large portion of the total game size.)
6.2 OpenUA Standalone Package (Demo/Trial version)
The OpenUA Standalone Package is now also available for the Trial (Demo) version of the game.
Download Link:
OpenUA Standalone Package - Trial Version

6.2.1 Notes
This is the trial version of the game that has been configured to be played on OpenUA in a similar manner to the above main standalone package. Again, pleased check the 'Package Description' Readme file inside!
6.3 Downloading and compiling from the GitHub repository source (For advanced users only; generally not recommended)
Under Construction.
More to come in future. This method is not recommended because newer builds are experimental and therefore not necessarily the most stable builds, which may contain issues.
For now, check the compilation instructions available on the main GitHub page. Note that you will also require the original game data as well as additional configuration files referenced here for OpenUA to play the game via OpenUA engine with this method.
UPDATE: Windows compilation methods are now covered below.
7 Compilation Methods
Display Spoiler
For now, only Windows compilation methods are covered here.
7.1 Windows (64-bit)
7.1.1 Installing Dependency Files
- Download and install MSYS2 software.
- Open MSYS2 MSYS terminal window.
- Install required packages with the following command:
pacman -Sy --disable-download-timeout mingw-w64-i686-gcc make git mingw-w64-i686-openal mingw-w64-i686-SDL2 mingw-w64-i686-SDL2_image mingw-w64-i686-SDL2_net mingw-w64-i686-SDL2_ttf mingw-w64-i686-libvorbis mingw-w64-i686-ffmpeg mingw-w64-i686-lua mingw-w64-i686-cmake
7.1.2 Compilation Process
- Open MSYS2 MinGW 32-bit (default: C:\msys64\mingw32.exe) terminal window, and change your location to the directory where you want to compile UA_Source.exe file.
- Download the source repository via either git clone https://github.com/Marisa-Chan/UA_source.git command, or download and extract the *.ZIP file package.
- From the main directory location, type cd UA_source command to access the root folder of OpenUA files.
- Type the following command: cmake -B build -S src
- Type the following command: cmake --build build -j6
- Copy the compiled UA_source.exe file from build directory into the main game directory (where the original game executable file is located).
- Make sure to acquire the essential dependency files into the main game directory before launching the game. (See below!)
7.1.3 Acquiring Dependency Files
- Open the directory: C:\msys64\mingw32\bin
- Copy the following .DLL files into the main game directory (and any other dependency files that UA_Source.exe will ask if they are not present):
- avcodec-58.dll
- avformat-58.dll
- avutil-56.dll
- libaom.dll
- libbluray-2.dll
- libbrotlicommon.dll
- libbrotlidec.dll
- libbz2-1.dll
- libcelt0-2.dll
- libcrypto-1_1.dll
- libdav1d.dll
- libffi-7.dll
- libfreetype-6.dll
- libgcc_s_dw2-1.dll
- libglib-2.0-0.dll
- libgmp-10.dll
- libgnutls-30.dll
- libgraphite2.dll
- libgsm.dll
- libharfbuzz-0.dll
- libhogweed-6.dll
- libiconv-2.dll
- libidn2-0.dll
- libintl-8.dll
- libjpeg-8.dll
- liblzma-5.dll
- libmfx-1.dll
- libmodplug-1.dll
- libmp3lame-0.dll
- libnettle-8.dll
- libogg-0.dll
- libopenal-1.dll
- libopencore-amrnb-0.dll
- libopencore-amrwb-0.dll
- libopenjp2-7.dll
- libopus-0.dll
- libp11-kit-0.dll
- libpcre16-0.dll
- libpcre-1.dll
- libpng16-16.dll
- librtmp-1.dll
- libspeex-1.dll
- libsrt.dll
- libstdc++-6.dll
- libtasn1-6.dll
- libtheoradec-1.dll
- libtheoraenc-1.dll
- libtiff-5.dll
- libunistring-2.dll
- libvorbis-0.dll
- libvorbisenc-2.dll
- libvorbisfile-3.dll
- libvpx-1.dll
- libvulkan-1.dll
- libwavpack-1.dll
- libwebp-7.dll
- libwebpmux-3.dll
- libwinpthread-1.dll
- libx264-159.dll
- libx265.dll
- libxml2-2.dll
- libzstd.dll
- lua54.dll
- SDL2.dll
- SDL2_image.dll
- SDL2_net.dll
- SDL2_ttf.dll
- swresample-3.dll
- swscale-5.dll
- xvidcore.dll
- zlib1.dll
Next Step: OpenUA Game Setup (See below!)
7.1.4 Updating Source Files
- Open MSYS2 MinGW 32-bit terminal window and change the location to the directory where you want to compile a new UA_Source.exe file.
- From the main directory location, type cd UA_source/src command to access the scripts folder of OpenUA files.
- Type the following command: git pull
- Delete 'build' directory from the main OpenUA folder, and repeat the compilation build process mentioned above.
---
7.2 Windows (32-bit)
UPDATE: Unfortunately, this 32-bit compilation method below is currently dysfunctional. Until the fix is released, the following instructions here may not work correctly.
7.2.1 Installing Dependency Files
- Download old MSYS2 20160205 with package cache from this repository (direct link to the *.ZIP file) link.
- Install MSYS2 with the file msys2-i686-20160205.exe (check the file name carefully!).
- Copy the packages from the downloaded pkg_cache into the MSYS2 /var/cache/pacman/pkg/ directory (example: C:\msys32\var\cache\pacman\pkg).
- Open MSYS2 MSYS terminal window.
- Important: DO NOT update packages list with the command pacman -Sy, since it should not be altered.
- Install required packages with the following command:
pacman -S mingw-w64-i686-gcc make git mingw-w64-i686-openal mingw-w64-i686-SDL2 mingw-w64-i686-SDL2_image mingw-w64-i686-SDL2_net mingw-w64-i686-SDL2_ttf mingw-w64-i686-libvorbis mingw-w64-i686-ffmpeg mingw-w64-i686-lua - Now it is necessary to update some packages that contains issues and may cause the glitch of tanks unable to climb steep gradients.
- In MSYS2 window, change the current directory to where update/ of the downloaded repo cache is present (example: cd /c/downloaded/repo/update/).
- Type the following command:
pacman -U mingw-w64-i686-crt-git-5.0.0.4609.566d621-1-any.pkg.tar.xz mingw-w64-i686-openal-1.18.2-1-any.pkg.tar.xz mingw-w64-i686-ffmpeg-2.8.5-2-any.pkg.tar.xz mingw-w64-i686-libvpx-1.5.0-1-any.pkg.tar.xz
to install the new package versions.
7.2.2 Compilation Process
- Open MSYS2 MinGW 32-bit terminal window, and change your location to the directory where you want to compile UA_Source.exe file.
- Download the source repository via either git clone https://github.com/Marisa-Chan/UA_source.git command, or download and extract the *.ZIP file package.
- From the main directory location, type cd UA_source/src command to access the root folder of OpenUA files.
- Type the following command: make msys -j 4
- Copy the compiled UA_source.exe file into the main game directory (where the original game executable file is located).
- Make sure to acquire the essential dependency files into the main game directory before launching the game. (See below!)
7.2.3 Acquiring Dependency Files
- Open the directory: C:\msys32\mingw32\bin
- Copy the following .DLL files into the main game directory (and any other dependency files that UA_Source.exe will ask if they are not present): (or download from this archive)
- avcodec-56.dll
- avformat-56.dll
- avutil-54.dll
- avutil.dll
- libbluray-1.dll
- libbz2-1.dll
- libcelt0-2.dll
- libdcadec-0.dll
- libffi-6.dll
- libfreetype-6.dll
- libgcc_s_dw2-1.dll
- libglib-2.0-0.dll
- libgmp-10.dll
- libgnutls-30.dll
- libgsm.dll
- libharfbuzz-0.dll
- libhogweed-4-1.dll
- libiconv-2.dll
- libidn-11.dll
- libintl-8.dll
- libjpeg-8.dll
- liblzma-5.dll
- libmodplug-1.dll
- libmp3lame-0.dll
- libnettle-6-1.dll
- libogg-0.dll
- libopenal-1.dll
- libopencore-amrnb-0.dll
- libopencore-amrwb-0.dll
- libopenjpeg-5.dll
- libopus-0.dll
- liborc-0.4-0.dll
- libp11-kit-0.dll
- libpng16-16.dll
- librtmp-1.dll
- libschroedinger-1.0-0.dll
- libspeex-1.dll
- libstdc++-6.dll
- libtasn1-6.dll
- libtheoradec-1.dll
- libtheoraenc-1.dll
- libtiff-5.dll
- libvorbis-0.dll
- libvorbisenc-2.dll
- libvorbisfile-3.dll
- libvpx-1.dll
- libwavpack-1.dll
- libwebp-6.dll
- libwinpthread-1.dll
- libx264-146.dll
- libxml2-2.dll
- lua53.dll
- SDL2.dll
- SDL2_image.dll
- SDL2_net.dll
- SDL2_ttf.dll
- swresample-1.dll
- swscale-3.dll
- xvidcore.dll
- zlib1.dll
Next Step: OpenUA Game Setup (See below!)
7.2.4 Updating Source Files
- Open MSYS2 MinGW 32-bit terminal window and change the location to the directory where you want to compile a new UA_Source.exe file.
- From the main directory location, type cd UA_source/src command to access the scripts folder of OpenUA files.
- Type the following command: git pull
- Delete obj folder inside the directory: UA_source/src/
- Type the following command to rebuild the compiled binary file: make msys -j 4
---
7.3 OpenUA Game Setup
After successfully finishing the OpenUA compilation process for either Windows 64-bit or 32-bit operating systems, there are final steps left before the game can be played on OpenUA.
- Install Urban Assault on Windows via official game installer from the game CD, or copy the "Game" directory from the game CD.
- Copy the compiled binary UA_source.exe file from UA_source/build directory into the main game installation directory.
- Copy res directory from UA_source folder into the main game installation directory.
- Copy Language.lng file from UA_source/locale directory into Locale folder (where the original game Language.dll file is present) in the main game installation directory.
- Copy fonts directory from UA_source into the main game installation directory.
- Run the compiled binary UA_source.exe in the main game installation directory (or open the terminal inside the main game installation directory and type ./UA_source).
- DO NOT forget to copy and paste the new OpenUA exclusive parameters into NUCLEUS.ini config file from the New OpenUA Configuration Options section above!
7.3.1 Fonts
If you prefer using the original fonts then copy "Dungeon", "Arial", "Microsoft Sans Serif" font files into fonts directory. These fonts will be used instead of the alternative fonts.
7.3.2 Music
- Rip and convert the original lossless *.WAV game music files from the original mixed-mode Urban Assault game CD into *.OGG format files.
- These music files must be named in their standard CD tracks naming schemes - 2.ogg, 3.ogg, 4.ogg, 5.ogg, 6.ogg (Do not change names when you convert *.WAV into *.OGG files.)
- Create music directory inside the main game installation directory and copy the converted *.OGG files into the newly created music folder.
---
7.4 OpenUA Package Notes
The standard OpenUA Standalone Packages have been compiled for Windows 64-bit version method by default. It may not work properly on 32-bit operating systems.
Please keep in mind that the OpenUA Standalone Package has all necessary files, patches, and setups configured inside it already, and therefore does not require any manual updates via external files by the user. Also, when downloading newer version packages, it is highly recommended to completely remove the old OpenUA Standalone Package version files from your machines, since they are obsolete now and not supported anymore. Users can transfer old save data by copying the save folders from the old package folder to the new package folder.
8 Technical Support
OpenUA is a totally separate program from the original UA game engine with many technical differences present in the low-level algorithms, and therefore it requires different methods of troubleshooting from the original UA game engine.
Bug reports for OpenUA are always welcome, especially with detailed contexts and instructions for replicating the issues provided together. The multiplayer layers of OpenUA in particular are still unfinished yet, and numerous issues were reported so far.
Should you have further questions or if you are currently encountering any issues while playing the game via OpenUA, either open a support ticket on the forums, or visit the community Discord server to receive direct technical support assistance.
9 Single-player
OpenUA fully supports the single-player functionality of the original game. It can be reliably used as an authentic alternative to the original game. Thanks to the continued development cycle, the bug and glitch occurrences are minimal at the moment. Although latest builds that have not been properly play-tested yet may contain new types of bugs and glitches.
It is imperative to use the latest stable OpenUA versions!
9.1 Known OpenUA Single-player Issues
- General unexpected/unintentional gameplay behaviours especially due to the last large-scale code-refactoring sessions.
- Minor differences/inconsistencies in unit AI behaviours and pathing algorithms.
- Help button not working.
10 Multiplayer
OpenUA supports the basic multiplayer functionality at the moment, and the development process of multiplayer layers is not yet fully finished. There are still some bugs and glitches present in the multiplayer mode and therefore more play-testing is necessary for further fixes and improvements. However, currently it is considered to be playable for the most part.
It is absolutely imperative to use the latest stable OpenUA versions for the multiplayer!
10.1 OpenUA Port Number
OpenUA uses UDP port 61234, unlike the original UA which uses the other TCP port numbers. When playing multiplayer in OpenUA, it is necessary to forward this port in the network.
10.2 Connection Methods Differences
Currently, there is one major difference between the original UA and OpenUA multiplayer interface regarding the session connection methods between host and client computers.
- In the original UA, the connection to a host computer is achieved via standard Microsoft DirectPlay layers protocol, and when prompted, a new text window will appear where the players can enter an IP address of the host computer to connect into the hosted game session.
- In OpenUA, the current latest build now officially supports a brand new interface page where the players can either decide to host or connect to a game session. When connecting to a game session, a separate tab for entering an IP address of the host computer will display.
10.3 Known OpenUA Multiplayer Issues
- General instability and unexpected/unintended gameplay behaviours. (More testing necessary.)
- The level selection list is displayed in the reverse alphabetical order. The correct listing in the original game is in the alphabetical order.
- When beginning and exiting a multiplayer level alone without doing anything, the debriefing screen is not updated and shows 00:00:00 instead the time elapsed before exiting.
- Help button not working.
11 Disclaimer
It is NOT recommended to use experimental/unstable OpenUA versions and builds. Usually, they almost always contain unexpected and unfixed bugs or glitches in them, and therefore may adversely affect gameplay experience. When in doubt, do not download anything else and only use the OpenUA Standalone Package.
To learn which OpenUA builds are considered stable, download and use the OpenUA Standalone Package and check the version information inside. OpenUA Standalone Package is also routinely updated to the latest stable build after extensive testing and debugging sessions. So it is highly recommended to use them when playing OpenUA.
12 Current Latest Stable OpenUA Build
12.1 2025-03-09 Build
Please do not download/use any OpenUA files that were released/published before this build date! They are now considered outdated/obsolete and are not supported anymore!
The standard latest stable OpenUA build with minimal bug occurrences that is currently used in the default distribution version of the OpenUA Source Packages. Fully tested and verified.