[Project] New Launcher (Official)

CashBanks

A Knight at the Opera
Staff member
I have no idea how you do these things but I really appreciate that you’re doing them! It’ll be great to streamline the launcher and cut down the number of support forum posts.
 
  • Like
Reactions: Wazgamer

Dan_Prime

Emissary
Guest
Hello everyone, an update is long overdue. This project hasn't been forgotten, I've just been having a very busy semester. I got some free time this past weekend (mostly by putting off my other work lol) and managed to work on this a bit. The implemented features are mainly related to UI transitions and Java detection. I've got a lot more technical details on #launcherdev on discord, so feel free to check that out if you're interested. Full changeset from the past week or so can be found on github.

https://github.com/WesterosCraftCod...09...c6f912180667d17d74839b89a51ee280a5c7269d
 

Dan_Prime

Emissary
Guest
Another update, this time with pictures :)

Java validations have been added to the UI. Basically, the launcher will validate that the Java path specified is valid before each launch. If the value is not valid (32-bit, non-existant, etc), it will perform a discovery on your system to search for a valid installation. If no valid Java installation is found on your system, you will be prompted with a few options. The first is to have the launcher install a valid copy of Java onto your machine. It will be installed to {whatever}/.westeroscraft/runtime/x64. You will also have the option to decline the installation, and fix the issue yourself. Note, this last option is not implemented on the UI just yet, but it will be.

Here are some visuals:

Here, I try to launch with an invalid Java version.
63caff6be6fdc5c22b80f10dfdec8ce8.gif


Here, I choose to have the launcher install Java for me. Ain't nobody got time to install Java manually.
The gif is kind of short, but the game launch is started right afterwards.
2e5a5318d47eaf125e01f8ec5f19bc04.gif



If something goes wrong during the download (ex. oracle's website changed format), the following will be displayed.
The link to the troubleshooting guide will likely be changed to an article or video which is specifically dedicated to help with installing 64-bit Java.
7fb99182594a5a87ae38a845f7ea3a2b.gif



More on the way soon™.
 

Dan_Prime

Emissary
Guest
Added preliminary Java detection functionality for mac. This will need to be improved upon, but so far it's working relatively well. If any of you decide to pull the latest code and try it out, be aware that the game currently will not launch on Mac. There is some issue with the command line argument to launch minecraft. I'm not sure what the issue is exactly, the same exact thing works fine on Windows. Hopefully I can figure it out this weekend at some point.

I really want to get this launcher out during the summer, so I'm working hard towards an alpha test period. I've worked out a list of things I absolutely need to get done before this happens, you can check that out on trello. This list may grow as time goes on though, issues tend to arise out of nowhere. I wouldn't expect alpha tests to be ready until at least the middle of May. The main reason for this is that my spring semester ends the first week of May, which means my finals are coming up in just a couple of weeks. Time might get tight.

Even though this is the case, there's a small chance that the tests may come earlier. Keep in mind that this project is open source, and you're free to pull the code at any time. If you do so and find an issue which I'm unaware of, feel free to jump on discord and let me know about it. Just note that the code on master is "unstable" (the launcher is pretty stable on windows tbh) and likely to change without warning. Pull requests are also accepted if any of you have enhancements to the code for Linux/Mac which I've overlooked.

As always, all progress is discussed on Discord. Please do come say hello sometime, it gets lonely :).
 
Last edited:

Dan_Prime

Emissary
Guest
The end of the semester is absolutely unforgiving. Regardless, I've managed to put some more work into this project. Serveral items on the alpha checklist have been completed, you can view that by clicking on the link in my previous post. Currently I'm working on the server selection UI. I've opted to have this shown as an overlay as it provides us with much more space. This allows us to provide more details than simply the name of the server.

Concepts:

The following image shows the server selection UI when there are many servers available. This probably won't be the case most of the time, however it can be handled. The seven pointed star indicates the main (default) server.

4ca9a293e663771b9561fe3c781273f0.gif


Slightly more realistic view is when we just have two servers.

30a0148ec29f42eca1cbf7355cb19dff.png


Or three servers as we have currently.

b0bc9895ba9b1fafd3df6a783aaf066f.png


There is minimum and maximum height for the server list. If the maximum height is reached, it will become scrollable. With the standard dimensions, the UI can comfortably fit four servers without scrolling. If you have any feedback, feel free to comment or message me.

Also, incase you decide not to check the trello link, the game now launches on MacOS.
 

Dan_Prime

Emissary
Guest
Getting closer to alpha, I expect to meet the mid-May goal. A few things remain on the todo list, hopefully I can get them done soon. A lot has been completed these past few weeks, although I haven't listed everything on Trello. To get a really good idea of what's been done recently, check out the commit history.

Server selection UI has been fully implemented. Of course there are several small things which could be tweaked or added, but overall it's functional. As you can see in the image below, the player count is updated when a new server is selected. The test server is offline for some reason, you can see how the UI displays that.

9150408fe0d046ebf64a04b851489395.gif


I also turned dynamic backgrounds back on. I was sick of looking at Winterfell lol.
 

Dan_Prime

Emissary
Guest
Application auto updates are implemented. The launcher checks for updates on startup and then every 30 minutes.

Basic implementation looks like this:

4b5b0c6e7f45104d16b91b732af90c76.gif


I will add more details down the line. For example, I could add the changelog, update title, etc. I'll probably do that when I'm working on the settings UI.

Just note that during alpha the application will not be signed, so you may get some security warnings depending on how good your antivirus software is. I'll elaborate on this when alpha is officially announced.

There's not much left to do before we get to alpha, I just need to have the distribution index hosted. I'll need @mikeprimm to help me set that up though. There are several other stability updates which I might include before alpha is released. I'm still considering their impact, since users shouldn't be casually using this during alpha. It should only be used if you're willing to identify bugs and provide feedback actively. I'll update the todo list if the completion of any of these become necessary.

I have finals this week, so hopefully we'll see alpha ready in the next 2-3 weeks. As always, the code is open source on github and you're free to pull/build at any time.
 

Dan_Prime

Emissary
Guest
Due to slight delays with the distribution index, news loading will now be included in alpha. Currently experimenting with many different layouts, trying to make it look good. I'll probably have more updates this weekend, I'm done with finals after Friday. See #launcherdev on discord for the latest.
 

Dan_Prime

Emissary
Guest
Nah, I'm a student. I try though lol.

Anyway, News UI is basically done. I implemented some transition/error views. For example, if the news fails to load, if there is no news, or if the news is loading. The code has has also been cleaned up a bit. I squashed the commits from the feature branch into a single commit on master, check that out on https://github.com/WesterosCraftCod...mmit/40de1e3cd329685dff4c34dcecd9fb96bee32e64

The distribution index is now hosted, huge thanks to @mikeprimm . I will be working on integrating this into the launcher. It shouldn't take too long. Once that's done, I will examine everything and add a few quality updates. From there, I'll start drafting the information for alpha testing. Expect that to be ready sometime between this weekend and next weekend.
 

Dan_Prime

Emissary
Guest
Hey guys I could use some help with ideas for the new auto update UI. The goal is to make it a bit more obvious than the current one.

I'm going to paste the long and convoluted message I put in #launcherdev on discord which describes the issue:


okay so basically this is what happens

We check for an update > there is an update > we download it > once downloaded we can restart + install

currently we check + download in the background. when it's ready to install we do the glow on the logo

things we can do

notify of the update and download regardless

download in the background as we have been

notify and ask if they want to download

from there

do we show any progress when it's downloading? if so where

where do we show the notification?

when it's downloaded

how do we notify

--

if we do an overlay, the overlay system needs to be reworked a bit

spontaneously showing an overlay could interfere with existing overlays and we would need to somehow queue its display

that would ensure we don't interfere with active overlays

--

do we make a new UI section on the landing view to update stuff?

something active only when an update is available/download/ready

could we make the settings UI green and put this in the settings view? would users know what this is?

a lot of things to consider

---

the goal to keep in mind is this:
* Easy updates
* Keep users informed
* Make sure the user knows that what we're showing them is for an update.