OpenUA (UA:Source)

  • The article about the OpenUA/UA:Source. OpenUA (UA:Source) is a clean-room, open-source engine re-implementation project of the original Urban Assault game engine.

    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 was initially started by user Zidane from the old Stoudson Corporation forums (the main Urban Assault community website that went offline in 2020).

    The OpenUA project originally had a public and active 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 different operating systems.

    Thanks to the years of constant development process, currently OpenUA is considered fully playable in the single-player mode. Although there are numerous technical differences between the original UA engine, these discrepancies are usually trivial and do not noticeably affect the gameplay experience. Although newer releases may contain unexpected bugs or glitches until properly tested. So it is highly advised to use the stable release versions.

    Nowadays, using OpenUA instead the original game engine is recommended as a reliable way to resolve most problems that occur on modern systems and hardware. OpenUA now also supports a primitive multiplayer functionality and many other new features as well, although they are still in development. This article will also cover some of these network components and elements.

    Since many parts of the code have been reconstructed, refactored, or improvised from the original game's algorithms, UA_Source may contain new types of bugs of its own, 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 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.
    • Other miscellaneous bug-fixes and tuning.

    4 New OpenUA Configuration Parameters

    As a part of the development, many new configuration parameters that are exclusive to OpenUA were implemented.

    The full options are listed below and can be added into the NUCLEUS.ini configuration file which is located in the main folder of UA:

    These parameters are fully integral parts of the new OpenUA functionality, and some of them are considered essential for running the game via OpenUA smoothly.

    Therefore, it is highly recommended to add these new options into NUCLEUS.ini file of the OpenUA directory. If some key parameters are missing, it may adversely affect the performance of OpenUA, or may even result in a glitch.

    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).

    More to come...

    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).

    More to come...

    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).

    More to come...


    The core components of OpenUA builds and releases are available on the main GitHub repository. The downloads section here will describe the generally recommended game files to play UA via OpenUA.

    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 (Highly recommended for most users)

    (NOTE: 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.)

    The OpenUA Standalone Package is now also available for the Trial (Demo) version of the game.

    (NOTE: 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.2 Downloading and compiling from the GitHub repository source (For advanced users only; generally not recommended)

    (Under Construction.)

    More to come in future.

    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 to play the game with this method.

    7 Technical Support

    OpenUA is a separate software from the original UA game engine with many technical differences at low-level algorithms, and therefore it requires different methods of troubleshooting from the original UA.

    Bug reports are always welcome, especially with proper contexts and details provided together. The multiplayer layers of OpenUA in particular are still unfinished, and numerous issues were reported so far.

    Should you have further questions or encountering any issues while playing the game with OpenUA, open a support ticket on the forums, or visit the community Discord server to receive a direct assistance.

    8 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.

    9 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.

    9.1 OpenUA Port Number

    OpenUA uses UDP port 61234, unlike the original UA which uses other TCP port numbers. When playing multiplayer in OpenUA, it is necessary to forward this port in the network.

    9.2 Connection Methods Differences

    Currently, there is one major difference between the original UA and OpenUA multiplayer interface for a connection method between the host computers.

    In the original UA, the connection to a host computer is achieved via Microsoft DirectPlay protocol, and a new window will appear where the player can type an IP address of the host computer to connect into the game session.

    In OpenUA, currently there is no separate window interface to type an IP address of the host computer, instead the game will search for an IP address that is copied to the clipboard when the Connect to a Game function is used.

    10 References

    GitHub - Marisa-Chan/UA_source: Mod for UrbanAssault (Replace original game engine)
    Mod for UrbanAssault (Replace original game engine) - GitHub - Marisa-Chan/UA_source: Mod for UrbanAssault (Replace original game engine)