Author Topic: ALPHA: A new launcher  (Read 6724 times)

0 Members and 1 Guest are viewing this topic.

Offline m!m

  • 211
ALPHA: A new launcher
Hello everyone,

Here is a small project of mine which I started after giving up on fixing wxLauncher. I know what you are thinking "What? Another launcher? But we already have one!".

Before I discuss why I think this step is needed here are the important things:

Download (Updates will be installed automagically)
This application is only compatible with Windows Vista and later, see below for an explanation why.

Screenshots: Imgur Album

Source code: https://github.com/asarium/FSOLauncher

Changelog:
Version 0.1.0.2:
  • Added profile management
Version 0.1.0.1:
  • Selecting the audio device added
  • Fixed executable selection grouping
Version 0.1:
  • Initial release

Now that the important stuff is complete I will try to explain what the main goals of the project are and why I decided that this step was necessary.
Main goals of this project:
  • Easy to use one-stop solution to installing, playing and installing/updating mods for FSO
  • Make modding easier (this is a secondary goal but it is still important)

Known issues:
  • Will not run on non-Windows platforms
  • There are still quite a lot of things that are not implemented
  • Non-Antipodes builds use a different Joystick than the selected one
  • Adding profiles is not implemented

Planned features:
  • Install and update mods
  • Install FreeSpace from the GOG package

Why only Windows?
Windows has the biggest user base and provides the best libraries to create a nice UI for the launcher. I decided to use C# as the language this launcher is written in as it is a very good language and while there is an implementation for non-Windows platforms the UI framework I use is only available on Windows.
I am aware of this limitation which is why I separated the code that actually handles the management of FSO into a separate assembly that should be usable on other platforms so a launcher based on that code for other platforms is still possible.

Support for previous FSO versions
This launcher will not support any version before the current official release. That also means that the launcher will not be able to launch Retail FS2 but who does that anyway :P

If you have questions or feature requests please post them here. If you want to help developing this then you can take a look at the source code.

Thanks for reading!
« Last Edit: August 16, 2014, 10:23:08 am by m!m »

 

Offline Iss Mneur

  • 210
  • TODO:
Re: ALPHA: A new launcher
Hello everyone,

Here is a small project of mine which I started after giving up on fixing wxLauncher. I know what you are thinking "What? Another launcher? But we already have one!".
Actually we already have 4 that I can think of, 2 are in active use.

I am also curious as to what the insurmountable issue you were having with wxLauncher that you would rather start from scratch than build on something that does work.

"I love deadlines. I like the whooshing sound they make as they fly by." -Douglas Adams
wxLauncher 0.9.4 public beta (now with no config file editing for FRED) | wxLauncher 2.0 Request for Comments

 

Offline m!m

  • 211
Re: ALPHA: A new launcher
I saw multiple issues:
  • The code that created the UI was also doing other stuff like querying the joysticks which made it nearly impossible to understand what was going on. I tried improving that by porting wxLauncher to wxWidgets to version 3 (which worked surprisingly well) and redesigning the UI in a designer but that didn't help much.
  • Blocking operations were executed on the UI thread which freezes the UI until those were done.
  • It is written in C++ and that was the biggest issue, that language is simply not good for programming an UI.

I spend hours for implementing something that should be trivial and then I recognized that a new launcher could do a better job when I rewrite the launcher and have more possibilities in the future.

 

Offline Luis Dias

  • 211
Re: ALPHA: A new launcher
Will Goober's own Installer code be of any help, or are you to go through the same motions and troubles he did for the past years?

e: I must say I applaud the effort and all, but the aspect of it being windows-only tells me this is like a dead end from the get go. People with other systems will either be left out or the software for them will have to be updated anyway, etc. My tenth of two cents what do I know! Good luck!

 

Offline m!m

  • 211
Re: ALPHA: A new launcher
The code of the installer can be of help to get things to work (like extracting the installer) but I can't use the code directly as it is written in Java.

I though about the Windows-only problem a bit before starting the project and I agree that doing it this way is not perfect but given the trouble and feature limitations I would need to handle I came to the conclusion that it was simply not worth it. The code that actually handles most of the FSO management will be cross-platform compatible so it can also be used on other platforms if someone wants to write a frontend (which should be easy to do).

 
Re: ALPHA: A new launcher
Was wxWidgets not an option for the UI framework for some reason?
The good Christian should beware of mathematicians, and all those who make empty prophecies. The danger already exists that the mathematicians have made a covenant with the devil to darken the spirit and to confine man in the bonds of Hell.

 

Offline m!m

  • 211
Re: ALPHA: A new launcher
wxWidgets is a C++ framework and I wanted to avoid that language.

 
Re: ALPHA: A new launcher
Hmm. This exists, but it's been inactive for 3 years. Whether that means it's abandoned or just complete, I don't know.
The good Christian should beware of mathematicians, and all those who make empty prophecies. The danger already exists that the mathematicians have made a covenant with the devil to darken the spirit and to confine man in the bonds of Hell.

 
Re: ALPHA: A new launcher
Windows has the biggest user base and provides the best libraries to create a nice UI for the launcher.

I don't understand the effort.  FSO's stated objective IS for a multi-platform engine; it therefor needs a multi-platform launcher.  And speak for yourself.  I happen to be an OSX user, and I'm sure there are plenty of linux users here. You say this step is "needed" but, to me, this would be a step backward.  We are in the process of getting rid of a windows only launcher being the main one.  Now you want to go back?!?  The current windows only one still works, and it was already decided to be a dead end.  Frankly, people then didn't see the benefit in maintaining 32 different launchers, dividing the user experience, and in general, being a support nightmare.
« Last Edit: August 07, 2014, 12:37:12 am by Darklord42 »

 

Offline jg18

  • A very happy zod
  • 210
  • can do more than spellcheck
Re: ALPHA: A new launcher
I saw multiple issues:

The code that created the UI was also doing other stuff like querying the joysticks which made it nearly impossible to understand what was going on. I tried improving that by porting wxLauncher to wxWidgets to version 3 (which worked surprisingly well) and redesigning the UI in a designer but that didn't help much.
I have made some progress on addressing this in my work on wxL, but it remains an issue, although I hope to continue working on addressing it.

Blocking operations were executed on the UI thread which freezes the UI until those were done.
I was working on a patch a while back to retrieve the news/highlights in a separate thread. Need to finish that. Probably wouldn't be too much extra work.

It is written in C++ and that was the biggest issue, that language is simply not good for programming an UI.
Can't do anything about this one, although consider that Qt is in C++ and is widely used, although some may use alternate language bindings. We use Qt extensively at work, where I work on the RIFT MMORPG.

EDIT: Typo correction
« Last Edit: August 07, 2014, 02:48:01 am by jg18 »

 

Offline m!m

  • 211
Re: ALPHA: A new launcher
I don't understand the effort.  FSO's stated objective IS for a multi-platform engine; it therefor needs a multi-platform launcher.  And speak for yourself.  I happen to be an OSX user, and I'm sure there are plenty of linux users here. You say this step is "needed" but, to me, this would be a step backward.  We are in the process of getting rid of a windows only launcher being the main one.  Now you want to go back?!?  The current windows only one still works, and it was already decided to be a dead end.  Frankly, people then didn't see the benefit in maintaining 32 different launchers, dividing the user experience, and in general, being a support nightmare.
As I have said before, only the UI is Windows specific. The main part of the application can also be used on Linux and Mac OSX but you will have to write an UI for that.

Can't do anything about this one, although consider that Qt is in C++ and is widely used, although some may use alternate language bindings. We use Qt extensively at work, where I work on the RIFT MMORPG.
Just because something is widely used doesn't make it good :P

There is also the problem with the inactivity of the wxLauncher project, I opened a ticket with a patch three months ago which still hasn't seen any activity. That may only be a temporary phase but from my perspective the project looks like a dead end.

 
Re: ALPHA: A new launcher
C# does have cross-platform UI options, most notably a compatibility layer over WinForms. I seriously advise that you take a look at them, in this day and age it's not acceptable to be writing Windows-only tools.
The good Christian should beware of mathematicians, and all those who make empty prophecies. The danger already exists that the mathematicians have made a covenant with the devil to darken the spirit and to confine man in the bonds of Hell.

 

Offline m!m

  • 211
Re: ALPHA: A new launcher
I am aware of the possibilities for cross-platform UIs in C# but
  • I am not familiar with WinForms
  • Most of these solutions will need special handling for the different platforms anyway or the user experience will suffer

 
Re: ALPHA: A new launcher
As far as 2 is concerned it's far better than relying on someone else coming along and writing an entire frontend from scratch.
The good Christian should beware of mathematicians, and all those who make empty prophecies. The danger already exists that the mathematicians have made a covenant with the devil to darken the spirit and to confine man in the bonds of Hell.

 

Offline m!m

  • 211
Re: ALPHA: A new launcher
I agree that it would be better than nothing but I have never worked with WinForms before and I have no intentions of learning how to use it as it is clearly inferior to WPF.

EDIT: WinForms is also somewhat abandoned by both Microsoft and Mono.
« Last Edit: August 07, 2014, 06:45:16 am by m!m »

 
Re: ALPHA: A new launcher
Well then all I can do is reiterate what I said earlier: FSO is a cross-platform engine, and cross-platform player-end tools are now very much standard, and have been for years. Your launcher will not be an acceptable alternative for wxL until you can provide that, no matter how much better you think it is.
The good Christian should beware of mathematicians, and all those who make empty prophecies. The danger already exists that the mathematicians have made a covenant with the devil to darken the spirit and to confine man in the bonds of Hell.

 

Offline The E

  • He's Ebeneezer Goode
  • Moderator
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
Re: ALPHA: A new launcher
I agree that it would be better than nothing but I have never worked with WinForms before and I have no intentions of learning how to use it as it is clearly inferior to WPF.

EDIT: WinForms is also somewhat abandoned by both Microsoft and Mono.

Luckily (Depending on your perspective), I am spending my work days deep in the guts of a WinForms app.
If I'm just aching this can't go on
I came from chasing dreams to feel alone
There must be changes, miss to feel strong
I really need lifе to touch me
--Evergrey, Where August Mourns

 

Offline m!m

  • 211
Re: ALPHA: A new launcher
Well then all I can do is reiterate what I said earlier: FSO is a cross-platform engine, and cross-platform player-end tools are now very much standard, and have been for years. Your launcher will not be an acceptable alternative for wxL until you can provide that, no matter how much better you think it is.
I know that a launcher needs to cross-platform compatible and when the management library is feature complete I will try to implement an UI using either GTK# or XWT.

Luckily (Depending on your perspective), I am spending my work days deep in the guts of a WinForms app.
That is most likely not a pleasant occupation. If your scheduling allows that I would appreciate any help with this project :P

 

Offline Fury

  • The Curmudgeon
  • 213
Re: ALPHA: A new launcher
There is quite a large movement to use web technologies in desktop apps. However, they are all so young that we can only guess which implementations eventually evolve into something mature and commercially viable. The movement is understandable because today web browsers are possibly the closest thing we have for uniform cross-platform graphics rendering engine.

https://github.com/atom/atom-shell
https://github.com/adobe/brackets-shell
https://github.com/rogerwang/node-webkit

But this is mostly irrelevant post as far as this launcher is concerned.

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: ALPHA: A new launcher
i think i would have used lua + iup. you can quickly slap together a multi-platform gui with just a few lines of lua script. its probibly not viable for this purpose because i haven't been able to get sdl bindings to work in a lua app without building a custom interpreter, so i couldn't retrieve joystick indices that would work in the game, and other low level system calls needed to configure itself properly.

lua also has other good points though, the launcher could pass lua variables to a mod. so you could run a pre-launch configuration script to let users tweak mod options.
« Last Edit: August 07, 2014, 12:52:21 pm by Nuke »
I can no longer sit back and allow communist infiltration, communist indoctrination, communist subversion, and the international communist conspiracy to sap and impurify all of our precious bodily fluids.

Nuke's Scripting SVN