New Launcher Project
Hello everyone, a new launcher for WesterosCraft is currently in development. This launcher will replace the current one, which is unfortunately prone to bugs and may be difficult for users to use. Here are just a few enchancements that the new launcher will have.
- Better memory efficiency.
- Completely redesigned UI aimed to be more user friendly and simpler to use.
- Structured asset system similar to the structure of the modern vanilla launcher. The current launcher uses a more out-dated system.
- Completely rewritten backend.
- Will not require Java (planned).
Technical Information
Development History
Development History
Before I discuss the internals of the current launcher, I will briefly go over the history of the project. If you want to get to the important information, skip this section. The current launcher is a modified version of MCUpdater, written using Java's swing API. This library was released quite a while ago, and is outdated in several regards. As a result, the original plan for the new launcher was to rewrite it using Oracle's JavaFX GUI library. This library is intended to replace swing and contains more modern features for desktop applications. As such, work began on the project using JavaFX. You may view the repository for that here.
A few months into the development, problems were noticed with the Java implementation of the launcher. A major issue was the memory usage. Typical desktop applications have relatively low RAM usage, usually below 100MB. The relatively simple design we created using JavaFX was using an astounding 800MB of RAM. This was simply unacceptable. Comparisons were made to the old launcher, which itself uses 400-500MB of RAM. The root cause of this is simply that Java desktop applications are not efficient. So long as we used Java, this problem would not be solved. As a result, work on the JavaFX launcher was suspended as we looked for an alternative.
Some research led us to look into Electron. Electron is a node.js GUI framework that powers many high-profile applications, such as Discord and Visual Studio Code. Tests were run using this software, and it proved to be infinitely better than Java. Hence, the new launcher is being written in Javascript using the Electron Framework.
Current Development Information
The new launcher is being written in Javascript on the Node.js Runtime Environment. The GUI framework used is Electron. Electron is an amazing framework which allows you to write applications using HTML, CSS, and Javascript. This makes creating GUIs infinitely easier. Electron is essentially a glorified chrome tab, as it is powered by Chromium. Electron is very well integrated with Windows, macOS, and Linux, making it very possible to create an app using native OS features. This is something that Java's GUI librarys severely lacked. The memory efficiency is insanely better, as the new launcher only requires about 20 MB of RAM instead of 800 MB. That's a 4000% increase in efficiency.
The source code for this project can be found on our Gitlab.
Why is this Project Taking So Long?
The people currently involved in the project are only able to work on things during their free-time. I myself am currently a full time university student, so my attention is rarely focused on this project during the semester. Others who work on this have jobs and real life situations which have higher priority. Unfortunately this is the reality, and the launcher will take some time to complete.
Can I Help?
Yes! We are constantly looking for extra hands on this, especially in the working on the designs. If you are a designer, we would love to see what you can provide to the project. New coders are also welcome, however only those who have a working knowledge of Node.js and ES6 Javascript. Taking on coders who aren't familiar with the software can lead to producing bad code which would delay the project further.
Links
- Trello (Project Management Tool)
- Discord Discussion Channel (Awesome place where ideas are discussed)
- GitHub Repository (Source Code)
- Electron Framework
Screenshots
You can find all the concept art on Trello, however I will attach some screenshots here to make you guys happy . These concepts are subject to change as the designs are not final.
Feedback and Suggestions are welcome! Comment them below.
Last edited: