Pages: [1]
  Print  
Author Topic: OA Launcher  (Read 10962 times)
sago007
Posts a lot
*

Cakes 62
Posts: 1664


Open Arena Developer


WWW
« on: December 07, 2016, 01:35:28 PM »

It has been discussed before here: http://openarena.ws/board/index.php?topic=3568.0

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

There are nothing offending in my posts.
fromhell
Administrator
GET A LIFE!
**********

Cakes 35
Posts: 14520



WWW
« Reply #1 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?
« Last Edit: December 08, 2016, 12:12:47 AM by fromhell » Logged

asking when OA3 will be done won't get OA3 done.
Progress of OA3 currently occurs behind closed doors alone

I do not provide technical support either.

new code development on github
sago007
Posts a lot
*

Cakes 62
Posts: 1664


Open Arena Developer


WWW
« Reply #2 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.
Logged

There are nothing offending in my posts.
Gig
In the year 3000
***

Cakes 45
Posts: 4394


WWW
« Reply #3 on: December 09, 2016, 02:02:11 AM »

Tried. It looks like it works, for the little it does at the moment. Smiley

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

« Last Edit: December 09, 2016, 02:29:20 AM by Gig » Logged

I never want to be aggressive, offensive or ironic with my posts. If you find something offending in my posts, read them again searching for a different mood there. If you still see something bad with them, please ask me infos. I can be wrong at times, but I never want to upset anyone.
sago007
Posts a lot
*

Cakes 62
Posts: 1664


Open Arena Developer


WWW
« Reply #4 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.
Logged

There are nothing offending in my posts.
Hitchhiker
Member


Cakes 11
Posts: 181


« Reply #5 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, https://www.dropbox.com/s/1vjjfo0wp8r3qbj/OALauncher_LazarusProject.zip?dl=0

Logged
Gig
In the year 3000
***

Cakes 45
Posts: 4394


WWW
« Reply #6 on: November 30, 2018, 03:49:22 PM »

Couldn't you simply include the .exe in the .zip?
Logged

I never want to be aggressive, offensive or ironic with my posts. If you find something offending in my posts, read them again searching for a different mood there. If you still see something bad with them, please ask me infos. I can be wrong at times, but I never want to upset anyone.
Pages: [1]
  Print  
 
Jump to: