OpenArena eXpanded (short: OAX; also OpenArena eXpansion) is the non-engine development of Open Arena, especially referring to gamecode (game logic).
- 1 What is OAX?
- 2 Where to find it?
- 3 Testing
- 4 Coding tutorials and resources
- 5 Submitting changes
- 6 R and B (legacy)
- 7 Notes
- 8 External links
- 9 See also
What is OAX?
These "beta" releases are previews of what will be OpenArena in the next official releases and are distributed as mods for easy testing.
In these betas you can find, for example, new game options, changes in the user interface, and in the rules of the gamemodes.
Where to find it?
You can find news about OpenArena Expanded here. It contains a download link for the source code and the "playable mod" version, description of the changes for each beta version, plus that thread is the place you can give feedback for them.
Since June 2016, there are also automated nightly builds here: http://files.poulsander.com/~poul19/public_files/oa/dev088/gamecode_nightly/
Furthermore, when a big change is implemented, so the engine must be touched, the thread about the latest test binaries is the place to go in order to talk about test binaries. Since July 2016, Windows test binaries are automatically created by nightly builds, too (dedicated thread), you can find them here.
Where are the sources?
OAX is available under GPLv2+ license. About source code, you can find its "master" branch here: https://github.com/OpenArena/gamecode
Source code for OA gamecode has been moved from Google Code Subversion repository to Github repository at the beginning of May, 2014, due to Google deciding to stop providing its Code SVN service. However Google Code pages are still accessible in read-only mode.
WARNING: Github does NOT use a progressive number for revisions. Each individual commit is given a hash like "b767acae0de31968331f9182c6afbab1376954b8" or "b767aca" for short. There is no incrementing revision number, not even after merging into master. The timestamps cannot be trusted either: they mark the day the code was developed (git commit), NOT the day they where made available (git push). In Subversion commit+push was just called "commit".
- "The easy way" includes using OAX mod "beta" versions published on OA forums, or using "Nightly Builds" (it refers to OAX mod versions automatically created each night after some changes have been done in the master branch).
- "The hard way" refers to how to compile OAX on your own. Also relevant if you wanna try to do some changes on your own.
The easy way
Using OAX Beta version from the forums
By now and then, a OAX Beta versions are published on OA forums,;these as identified by a progressive code, such as "oaxB51". A lot of time can pass between releases.
This has the "pro" of giving more people a lot of time to make tests with the same version of the gamecode and a forum post "presentation" which may explain what its new feature are, but has the "con" of possibly being very outdated, and one has to search on the forum for the link to the latest version.
- Go to the forums, to the thread about OAX.
- Download an OAX Beta version "mod". Latest at the moment of this writing: OAX B51. File repository here: http://files.poulsander.com/~poul19/public_files/eliminationSource/
- Unzip it inside your OpenArena installation folder (or user settings folder), so you should obtain a subfolder called "oaxBXX" (where XX is the beta version number, for example "oaxB45" for Beta 45, "oaxB46" for Beta 46... you can have more OAX beta versions "mods" installed).
- Start OpenArena, then select "Mods", and there choose "oaxBXX"
- Use the game and try it. Please refer to the "readme.txt" file or to the thread on the forum to know what's new in each beta version.
Using Nightly Builds
Since June, 2016, Sago007 provides nightly builds for OAX master branch. This means that, if one or more changes have been done to the "official" OAX gamecode, the next day a new zip archive will automatically be available, containing a new "test mod", similar to the "Beta XX" versions. These versions are identified by their date.
This has the "pro" of being updated frequently, and the "con" of possibility of containing major bugs, not coming with a dedicated changelog forum post and requiring more attention for more people do to tests with the same version of gamecode.
- Go to the repository at http://files.poulsander.com/~poul19/public_files/oa/dev088/gamecode_nightly/
- Grab the latest zip file.
- Extract it into your OpenArena installation folder. That will place the mod it in a subfolder named "oax", you can rename it if you wish.
- Start OpenArena, then select "Mods", and there choose "oax". Or start the mod directly from command line, e.g. openarena.exe +fs_game oax
- Use the game and try it.
- At the moment, nightly builds make two independent zip files: the one with the "_m" suffix uses OA3 new user interface, which is a WORK IN PROGRESS. Currently (November 2016), that interface still lacks many important things!!! You can however test it by launching "oax_m" mod. It is very advisable to use updated binaries on order to use it.
- Due to the automation, probably there will not be a forum post for each one explaining its changelog. One can refer to Github commits log https://github.com/OpenArena/gamecode/commits/master to find out what's new.
- Naming of the zip file will be something like "openarena_gamecode_2015-10-01_b767acae0de31968331f9182c6afbab1376954b8.zip": name includes latest gamecode change date and its "hash" as you can find on Github.
- Only the "master" branch (https://github.com/OpenArena/gamecode) is used by nightly builds. There may be changes in OAX experimental branches which may still require you to build them manually if you wish to test them.
- Automatic builds are created by the Docker container you can find here: https://hub.docker.com/r/sago007/docker_openarena_gamecode_builder/
The hard way
To test the very latest changes (those from the current day, for which the nighlty build has not been created yet) you can checkout from git and compile yourself. This is also relevant if you want to make your own changes or tests.
- Install a git client. In Ubuntu Linux this is done with "sudo aptitude install git". In Microsoft Windows use Msysgit software.
- Clone with "git clone https://github.com/OpenArena/gamecode.git". If using msysgit use the "Git bash"-option from the right-click menu.
- Compile. In Windows run windows_compile_game.bat, windows_compile_cgame.bat and windows_compile_q3_ui.bat in "windows_scripts". This will create a folder called "windows" with a subfolder called "baseoa". In "baseoa" is a folder called vm. Compress vm to a zip file. Call it oaxdev.pk3 copy it into a oax-folder next to baseoa where you installed OpenArena. Linux users can use the "supermake"-script in "linux_scripts" to compile, pack and launch the game in one command.
- Start the game select oax as a mod. Unless you use the "supermake"-script as that will also launch the game with the mod active.
Build instruction: Linux detailed
Requirements: gcc and git
If the requirements are met this should build it:
git clone https://github.com/OpenArena/gamecode.git cd gamecode make
Instead of running make Go to the linux script folder:
In this folder create a file called supermake.local In that file put:
#The full path to start OpenArena BINNAME=/path/to/openarena-0.8.8/openarena.x86_64 #The architecture. Use "i386" for 32 bit (default) or "x86_64" for 64 bit. ARCH=x86_64
Now the game can be compiled, packed and started with:
Build instruction: Windows detailed
Install msysgit Create a folder you want to work in. In this folder right-click and choose "Git bash". In bash-promt copy paste (you can paste in the bash promt with Shift+Insert or with the menu):
git clone https://github.com/OpenArena/gamecode.git
Now go to the windows scripts folder by pasting:
In this folder run the command:
It will ask you 6 times to "Press any key to continue..." so that you have time to read any compiler errors. A file called "oax.pk3" will be created in "gamecode/windows/baseoa/". Create a folder in your Openarene folder next baseoa, call the new folder oax. Copy the pk3-file into that folder. Start the game and load the mod oax
Coding tutorials and resources
If you have developed a change, as long as it doesn't violate NOTTODO, propose it in the OAX thread. You are also welcome to clone the git repository to show display the changes!
R and B (legacy)
When the code was hosted in Google Code SVN repository, each update to the code made advance the "revision" number of the repository. This does not happen in current (Github) repository, where unfortunately there isn't a progressive revision numbering. However for the moment we keep this old R & B explaination (here below, in italic) so you may understand what were "R" & "B" about when reading old posts about OAX on the forum.
It's possible to find two different OAX numberings: "R" and "B" versions. "R" stands for "revision" (a.k.a. "rev"): each time a developer updates the source code/files on the "svn repository" (in short, makes a change), the "R" version number goes ahead; this allows to track each change, but you need "the hard way" below to test these latest changes. "B" stands for "beta": once on a while, a developer creates a "beta" package (starting from a specific "R" version) that everyone can simply download and test in "the easy way", like a mod; these downloads may miss the very latest changes, done after their creation. An OAX B version number is lower than the corresponding OAX R number, since a new beta package contains the changes introduced with more revisions; as an example, Beta 47 is based on OAX r238.
- Note: this folder goes at the same level of the "baseoa" folder, not inside it... and do not mix the files from the mod with those in baseoa. It is very important to avoid placing modified gamecode in the baseoa folder, especially if you are running a server that other players will be able to connect to (you may mess up their OA installation!).
- Old forum thread about "Elimination" (old name for OAX mod, up to beta 21)
- Current forum thread about "Open Arena Expanded". You can get the latest beta version "mod" in the first post.
- OpenArena Gamecode on github - Current OAX source code repository (since May 2014).
- OAX Nighly Builds repository (where to easily download latest OAX "official" changes - See gamecode nightly builds forum thread and UI3 nighly builds forum thread)
- Related (although not exactly OAX): OA Engine Nightly Builds repository (see forum thread)
- "sago007/oax" on github was just a TEST: current OAX development is "OpenArena/gamecode" instead.
- About the old OAX repository on Google Code (up to 3 May 2014) - Google Code has been closed:
- OpenArena Expanded on googlecode - Source
- Download "Beta" OAX versions from googlecode, up to Beta 51.
- The Wiki Pages of OAX on Google Code - They contain useful help about some features of OpenArena.
- OpenArena Server Administration help on the Wiki Pages of OAX on google code.
- "Issues" section of the OAX site - Sort of bug tracker on google code.
- TortoiseSVN and its article on Wikipedia.