OpenArena Message Boards

OpenArena Contributions => Idea pit => Topic started by: sago007 on December 07, 2016, 01:35:28 PM

Title: OA Launcher
Post by: sago007 on December 07, 2016, 01:35:28 PM
It has been discussed before here:

However I tried to create a quick prototype on how I imagine it could look.

One of the things I think would be good is to save different profiles with different homepaths. That way if something broke your install you could quickly launch a clean profile. Or someone else wants to play but you don't want them to overwrite your custom key settings.
The prototype is very basic. It has three hardcoded options. Two test profiles and an option to launch a mod named "OAX". It also requires to be started from a folder with a openarena.exe or openarena.x86_64.
It does show my idea about profiles.
It is created in QT but I would always keep QT out of the logic part. I tried looking into nana ( as it seemed a bit more light. However a prototype could be constructed faster in QT.

If you want to give it ago the Windows version can be found here ( and the source here (

Of course I have other things to do. I just wanted to look a bit into cross-platform GUIs due to personal interest.

Title: Re: OA Launcher
Post by: fromhell on December 07, 2016, 06:11:25 PM
My launcher idea was more inspired by Monolith Productions' launchers for their Win95-98 era games, where one could click a few buttons to pre-configure video/sound settings, advanced video/client settings, go to the game's web page, and or list servers and join them (bypassing ingame menu systems)

I should mention the filesize (14mb, 8mb ciompressed) is freaking me out quite a bit.  Maybe FLTK would be more appropriate for a light gui toolkit?

Title: Re: OA Launcher
Post by: sago007 on December 08, 2016, 04:15:01 PM
The choice of changing video mode is a natural option.

In these modern days the launcher has lost much of its value. The only time I use a launcher for Skyrim or Fallout is then I move from a 2560x1600 screen to a 1920*1200 and realize that the game can't even start.

However I think that for OpenArena and option to go directly to the profiles folder with the press of a button or change the profile would be highly useful. Explaining "fs_homepath" is already cumbersome.

FLTK (with FLUID) was the first thing I looked at but I did not find the tutorials very good and it has always seemed hard to make the GUI look even reasonable (although it should support themes). I looked at libnana but it used templates a bit too aggressively for my taste. QT has other problems than just size. I don't like the "slots" system that more or less forces me to use qmake instead of cmake. It also seems cumbersome to convert between std::vector<std::string> and QStringList or std::string and QString. I really don't like the framework approach.

Title: Re: OA Launcher
Post by: Gig on December 09, 2016, 02:02:11 AM
Tried. It looks like it works, for the little it does at the moment. :)

By the way, talking about a cross-platform GUI reminded me about OpenArena Name Changer ( (OANC) that DBX made some years ago with some framework named Lazarus ( and maybe something else.
IIRC, back then OANC (I think due to the framework) on Windows had a problem with saving some special characters... Maybe the framework has been updated in the meanwhile....

Title: Re: OA Launcher
Post by: sago007 on December 09, 2016, 10:26:14 AM
10 years ago Lazarus would have been my first choice as I was used to create GUIs in Delphi. Today I do hope to be able to reuse as much as my C++ knowledge as possible.

Title: Re: OA Launcher
Post by: Hitchhiker on November 30, 2018, 02:52:42 PM
Hello y'all. I hope you are all doing well.
Here attached you can find a small Lazarus project that can be a starting point for a launcher app.

Just posting this here for information and comments/suggestions as it still requires polishing and finishing.

at the moment it can read Q3config.cfg from the player's home directory (C:/Users/...AppData/Roaming/OpenArena/baseoa on Windows), change the variables and write the configuration back. Basic GUI configuration is available (sound volume, fov, nickname, mouse sensitivity... other parts still in the works). once you click to start OA you should see the OA logo and land on the OA's main menu.

It can contact the master server, download and display the list of available Internet servers and connect to a multiplayer game on them. list of favourite servers is a ToDo.

TODO: It can already now scan the baseoa folder within the OA installation path and create a list of available maps which then could be used to create a local server with map rotation etc. but as I have never created a script for a server, actual creation of the server is not implemented yet (if someone can post a simple script that could be created by hand using the data provided on the 'Local server' tab then this should not be difficult to program in the launcher and would be good help). Some basic configuraion GUI is available here as well mostly as a placeholder for ideas, comments and suggestions. 'Local server' tab choices are saved between launcher app runs (this is by design in planning for the server profiles feature).

I've only done this for Windows, changing to Linux of Mac should require minimal change, I hope, mainly related to the player's home path. opening the project and compiling it in Lazarus works without additional libraries (though someone will need to confirm this).
The launcher works with SQLite3 library, so sqlite3.dll is required on Windows. Both OALauncher.exe and sqlite3.dll need to be placed in the root folder of your OA installation to work correctly. The OALauncher.exe is naturally created by process of compilation in Lazarus.

The idea of multiple player profiles is OK though I am not completely sure it would not end up confusing some of the newer players. (todo)

Anyways, if you find the time and think this could be useful please try the launcher app. In the meantime I will try to cleanup the bugs.

Upload here did not work,

Title: Re: OA Launcher
Post by: Gig on November 30, 2018, 03:49:22 PM
Couldn't you simply include the .exe in the .zip?