1. Start
  2. Forum
  3. Members
    1. Recent Activities
    2. Users Online
    3. Team
    4. Search Members
  4. Gallery
    1. Albums
  5. Calendar
    1. Upcoming Events
  6. Filebase
  7. Blog
    1. Articles
  8. Wiki
  • Login or register
  • Search
OpenUA
  • Everywhere
  • OpenUA
  • Articles
  • Pages
  • Forum
  • Gallery
  • Events
  • Files
  • Lexicon
  • Blog Articles
  • More Options
  1. Urban Assault - Metropolis Dawn
  2. Lexicon
  3. OpenUA (UA:Source)

OpenUA (UA:Source)

  • Schloss Charlottenburg
  • December 21, 2021 at 10:00 AM
  • September 9, 2025 at 9:30 AM
  • 10,271 times viewed

You are currently viewing an older version of the Entry. Click here, to view the current version.

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

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

    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:

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

    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:

    File

    OpenUA Standalone Package - Full Game

    The full OpenUA Standalone Package with all necessary game data files and pre-configuration setups.
    Schloss Charlottenburg
    December 25, 2021 at 6:00 AM

    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:

    File

    OpenUA Standalone Package - Trial Version

    OpenUA Standalone Package for Urban Assault Demo/Trial version.
    Schloss Charlottenburg
    December 25, 2021 at 6:00 AM

    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.

    7 Compilation

    For now, only Windows compilation methods are covered here.

    7.1 Windows (64-bit)

    7.1.1 Installing Dependency Files

    1. Download and install MSYS2 software.
    2. Open MSYS2 MSYS terminal window.
    3. Install required packages with the following options:
      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

    1. Open MSYS2 MinGW 32-bit ("C:\msys64\mingw32.exe") terminal window, and change your location to the directory where you want to compile UA_Source.exe file.
    2. 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.
    3. From the main directory location, type cd UA_source command to access the root folder of OpenUA files.
    4. Type the following command: cmake -B build -S src
    5. Type the following command: cmake --build build -j6
    6. Copy the compiled UA_source.exe from 'build' directory into the main game directory (where the original game executable file is located).
    7. 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

    1. Open the directory: C:\msys64\mingw32\bin
    2. 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 (scroll down!)

    7.1.4 Updating Source Files

    1. 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.
    2. From the main directory location, type cd UA_source/src command to access the scripts folder of OpenUA files.
    3. Type the following command: git pull
    4. Delete 'build' directory from the main OpenUA folder, and repeat the compilation build process mentioned above.

    ---

    7.2 Windows (32-bit)

    7.2.1 Installing Dependency Files

    1. Download old MSYS2 20160205 with package cache from this repo (or direct link to zip)
    2. Install msys2 by msys2-i686-20160205.exe
    3. Copy packages from downloaded pkg_cache into Msys2's /var/cache/pacman/pkg/. E.g. C:\msys32\var\cache\pacman\pkg
    4. Open MSYS2 MSYS terminal window
    5. Important - do not update packages list with pacman -Sy
    6. Install packages with 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
    7. Now you need update some packages that has bugs and may result your tank will unable to climb high hill:
    8. In MSYS2 window change current directory to where update/ of downloaded repo cache ( E.g. cd /c/downloaded/repo/update/ )
    9. Type 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 and install new package versions.

    7.2.2 Compilation Process

    1. Open MSYS2 MinGW 32-bit terminal window and change directory where you want to compile exe.
    2. Download sources with git clone https://github.com/Marisa-Chan/UA_source.git or extract zip file downloaded by hands
    3. cd UA_source/src
    4. make msys -j 4
    5. Copy UA_source.exe into game folder

    7.2.3 Acquiring Dependency Files

    1. Open C:\msys32\mingw32\bin
    2. Copy following dll's into game folder (or from this archive:frowning_face:
      • 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 (scroll down!)

    7.2.4 Updating Source Files

    1. Open MSYS2 MinGW 32-bit terminal window and change directory where you want to compile exe.
    2. cd UA_source/src
    3. git pull
    4. Just delete "obj" folder in UA_source/src/
    5. 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.

    1. Install Urban Assault on Windows via official game installer from the game CD, or copy the "Game" directory from the game CD.
    2. Copy the compiled binary UA_source.exe file from UA_source/build directory into the main game installation directory.
    3. Copy res directory from UA_source folder into the main game installation directory.
    4. 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.
    5. Copy fonts directory from UA_source into the main game installation directory.
    6. 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).

    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

    1. Rip and convert the original lossless *.WAV game music files from the original mixed-mode Urban Assault game CD into *.OGG format files.
    2. 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.)
    3. 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 Package has been compiled for Windows 64-bit version by default.

    8 Technical Support

    OpenUA is a separate program software 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 welcome, especially with detailed contexts and instructions for replacing the issues 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 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 stable OpenUA versions!

    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 imperative to use stable OpenUA versions!

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

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

    The latest version of OpenUA that are currently under experiment will feature a new and separate interface for this function.

    11 Disclaimer

    It is NOT recommended to use experimental/unstable versions of OpenUA builds. They usually contain unexpected bugs or glitches, and may adversely affect gameplay experience.

    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.

Share

  • Changelog
  • PDF

Table of Contents

  • 1 Information
  • 2 Overview
  • 3 Project Objectives
    • 3.1 Implemented
    • 3.2 Not implemented
  • 4 New OpenUA Configuration Options
  • 5 FAQ
    • 5.1 Running Urban Assault on OpenUA
    • 5.2 Running Metropolis Dawn expansion pack on OpenUA
    • 5.3 Running Urban Assault Trial (Demo) on OpenUA
  • 6 Downloads
    • 6.1 Downloading the OpenUA Standalone Package (Full Game) (Highly recommended for most users)
      • 6.1.1 Notes
    • 6.2 OpenUA Standalone Package (Demo/Trial version)
      • 6.2.1 Notes
    • 6.3 Downloading and compiling from the GitHub repository source (For advanced users only; generally not recommended)
  • 7 Compilation
    • 7.1 Windows (64-bit)
      • 7.1.1 Installing Dependency Files
      • 7.1.2 Compilation Process
      • 7.1.3 Acquiring Dependency Files
      • 7.1.4 Updating Source Files
    • 7.2 Windows (32-bit)
      • 7.2.1 Installing Dependency Files
      • 7.2.2 Compilation Process
      • 7.2.3 Acquiring Dependency Files
      • 7.2.4 Updating Source Files
    • 7.3 OpenUA Game Setup
      • 7.3.1 Fonts
      • 7.3.2 Music
    • 7.4 OpenUA Package Notes
  • 8 Technical Support
  • 9 Single-player
  • 10 Multiplayer
    • 10.1 OpenUA Port Number
    • 10.2 Connection Methods Differences
  • 11 Disclaimer

Categories

  1. Meta 10
  2. Urban Assault 92
    1. Important 7
      1. Urban Assault 4
      2. Metropolis Dawn 1
      3. Urban Assault Trial 1
      4. OpenUA 1
    2. Overview 33
    3. Gameplay 33
    4. Factions 85
    5. Levels 8
    6. Data & Modification 16
    7. Miscellaneous 7
  3. Playground 900
  1. Privacy Policy
  2. Legal Notice
Lexicon, developed by www.viecode.com
Copyright © Metropolis Dawn. All Rights Reserved.
Powered by WoltLab Suite™