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 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 operating systems.
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 until properly tested. So it is highly recommended to use the stable release versions instead. (See the Downloads section.)
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 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 keyword parameters that are exclusive to OpenUA were implemented.
The full options are listed below and may be added into the NUCLEUS.ini configuration file which is located in the main root folder of UA:
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.vbo = yes
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
particles.limit = 5000
menu.windowed = off
Display More
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).
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 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