Launcher

Making a new thread, since otherwise I’d be pretty much derailing the Mod Support one.

Here is a mockup I’ve made for a Thrive launcher; it would give the player a quick glance at recent news each time they start it up, as well as recent Dev Forum posts.
It would also allow the player to more easily download the newest updates, as well as letting them play older versions too - The arrow next to the ‘Download/Play’ button would give a dropdown list of older versions and such, which the player could choose to play.

There are some things that I neglected to include that would be rather useful: The ability to change settings before launching, important links to important sites like revolutionarygamesstudio.com, the community and dev forums, and our various social media accounts; and finally, perhaps some sort of simple way to load mods.

EDIT: Here is a version with the Developer Forum and News boxes switched around, plus with some other small changes.

2 Likes

Looks good, I’m just afraid that I won’t be able to create a launcher that looks so good.

One thing I wanted to say is about having links somewhere. Would it be better to have tabs like “news”, “settings”, “link” at the top or maybe a links button to the right of the play button which would popup/replace the news with a links window?

Also I’m trying to create a few mockups in different frameworks and see which one turns out the best.

1 Like

Okay so none of the ones I tried (Gtk, wxWidgets, Qt5) supported a web browser view out of the box, but Qt had quite easily installable one and so does gtk (I didn’t test that). Out of these qt is probably the easiest to get working both on linux and windows, with wxWidgets being a close second and Gtk being quite a pain to build on windows. I’m most familiar with gtk so that would be easiest for me, but I guess I would have to build the windows releases for that. Qt has some quite weird licensing terms so on that basis I would also prefer gtk.

wxWidgets was quite bad (at least the GUI designers) so I don’t recommend using it, even if it provides a more “native” look on each os.

This is my attempt with wxWidgets:

And with gtk:


(It should be possible to replace those text boxes with web browser like in qt)

And finally Qt version that has web browsers:

As I said above I much prefer working with gtk, so if no one steals this task from me I’m probably going to end up using gtk and having to compile all the releases my self

@Narotiza I really like that launcher design, although as you say, it could do with all the extra sections you list.

Of the three options, I think GTK looks the best, but I assume there’s a load of customisability for each so it won’t be so much of a problem. Is there a reason why we can’t just use CEGUI again though?

For both of you, here are some details of the website design if you want to emulate it:

  • Background colour: #2B2B2B with 90% opacity
  • Text colour: #DEDEDE
  • Heading text colour: #FFFFFF
  • Link text colour: #6ACDEB
  • Hover link text colour: #56A7BF
  • Content font: Lucida Grande, Arial, sans-serif
  • Titles font: Century Gothic, Arial, sans-serif
  • Base font size: 12px

CEGUI is meant for realtime graphics (meaning that it needs the application window to be rendered (usually) 60 times per seconds) whereas those other GUI libraries I mentioned are designed for desktop applications meaning they only render when needed and thus consume a fraction of the cpu time. That’s why game engines aren’t used to create launchers. And it should be possible to use fewer libraries than the normal thrive executable and that way reduce the download size of the launcher.

For maximum modern app development we could use electron. Which allows desktop apps to be created like websites with javascript and html. I haven’t looked into how such apps are distributed but as that library is pretty popular you would think that they have figured out how to distribute them easily

I tested electron out and it seems pretty cool, it’s especially useful that I can create releases for all platforms with a single command.
And it uses css for styling. So @Oliveriver if you could post those properties as a css style sheet I could throw them in more easily.

This is what I got now:


I didn’t apply styles yet as I was struggling with HTML wanting to overflow everything and cause scrollbars all over the place.

2 Likes

I tried to add some of the style things, but this is still quite bare:

I’m going to focus next on making it work.

Btw if anyone has access to create a new repository in the revolutionary games’ github page getting a repository for the launcher would be great.

1 Like

Looks really good, showing a lot of quick progress!!

I was able to integrate @Oliveriver’s feeds into the launcher:

This is starting to shape up pretty nicely

5 Likes

Oh god yes we’re getting a launcher!!

1 Like

It’s turning out great so far!

I started implementing the downloading and unzipping on releases, so I don’t have anything to show for that.
But I added a popup thing for the links and play button:

Would be good to get a repo up for this soon, so someone could help me with the html styles and content…

4 Likes

Progress update: the launcher can now download, unzip and run thrive.
It even shows log of the thrive output while playing:

also the feed is back after it broke after the website updates

4 Likes

You’re making great progress so far! Any news on the layout itself? I can design assets if necessary, like the gear and such.

Are you familiar with html and css? Because basically all of the layout is in one html and a css file and they should be pretty easy to tweak.

I hope we can soon find someone who can create a repo for the launcher so we can get some collaboration going on…

Also, I just wasted spent an entire day fixing the streams and getting a truncation working for the posts. But now the feeds are better than on the main site; they have youtube videos and images in them. I also added some variables that control whether images and youtube videos are loaded.

Here’s a screenshot:

2 Likes

That makes two of us who’ve spent far too long micro-managing those feeds. :smile:

Once the repository is up I might reverse-engineer them and adjust what’s on the website (although if it’s anything other than HTML and CSS I’ll struggle). I can also help with visuals if you want. How far away are you from making something that can check for changes in the latest release and only download files which have been changed? That’s really the main utility a launcher would have for us.

The repo is now here: https://github.com/Revolutionary-Games/Thrive-Launcher

Pretty far as I haven’t really found anything premade that would create delta zips. I’m thinking I’ll need to write a script for creating delta updates before it makes sense to try to implement it in the launcher.

I noticed there’s some horizontal scrollbars and I assume that’s because of the large images; can you shrink the images down automatically?
EDIT: Also, by assets I meant the graphics and stuff; I have no knowledge in either of those things.