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 engine re-implementation project of the original Urban Assault game engine.


    2 Overview

    OpenUA (also known as 'UA_Source') is a reverse engineering/re-implementation project initially started by user Zidane from the old Stoudson Corporation forums (the main Urban Assault community website that went offline in 2021).


    The OpenUA project originally had a public and active development & discussion thread on Stoudson Corporation forums. 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 many technical differences between the original UA engine, these are usually trivial and do not noticeably affect the gameplay experience. Although newer releases may contain unexpected bugs or glitches until tested.


    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 noteworthy 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 does not provide the original game data files. However, standalone OpenUA packages with full game contents and required settings are created for convenience.


    5.1 Running Urban Assault on OpenUA

    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

    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

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


    6 Downloads

    The core components of OpenUA build releases and versions are available on the main GitHub repository. The downloads section here will instead describe the frequently recommended game files to play the game via 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; not generally recommended)

    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 distinct software from the original UA game engine with numerous technical differences at low-level algorithms, and therefore it requires different methods of troubleshooting than the original UA.


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


    For now, if you have further questions or encountering issues, please open a support ticket on the forums for a direct assistance, or visit Discord for more help.


    8 Single-player

    OpenUA fully supports the single-player functionality of the original game. It can be used as an authentic alternative to the original game. Thanks to the continued development cycle, the bug occurrences are minimal at the moment. Although latest builds that have not been properly play-tested yet may contain some new bugs and glitches.


    9 Multiplayer

    OpenUA supports the basic multiplayer functionality of the original game, and the development of the multiplayer layers is not yet finished. There are still some bugs and glitches present in the multiplayer mode, and more play-testing is necessary for a further improvement. However, currently it is generally considered playable for the most part.


    9.1 Multiplayer Game Connection Method 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, a connection to the 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)
    github.com

Share