Hyperlaunch
- 7 Devlogs
- 57 Total hours
a reasonably efficient minecraft launcher
a reasonably efficient minecraft launcher
last one!
I’ve fixed a lot of launcher bugs and prepared a minimal GUI for trying the launcher out.
Windows and Linux builds are functional and tested. I can’t confirm Mac builds work without bugs, but the launcher core itself was tested on a Mac Neo around a week ago.
I hope anyone reading enjoys Hyperlaunch, even if the user interface is a bit clunky at the moment.
i lost my sticky streak 
Modrinth support is progressing nicely, and Hyperlaunch is now (technically) capable of doing more complex searches than Modrinth App allows.
This means Hyperlaunch is better at using Modrinth than Modrinth itself.
I’ve started work on supporting the NeoForge mod loader inside Hyperlaunch. This is harder than Fabric for a few reasons, but the main issue is that it requires directly patching Minecraft’s code.
The NeoForge installer handles this all, but I want to bring the patching system inside Hyperlaunch.
This is progressing nicely too.
I’ve had to add a dependency on 7-Zip’s LZMA SDK as part of this.
It’s been a month since my last devlog because I’ve just been unmotivated to continue working. I do really want to finish this though, so I’ll see it through.
This update is mostly about bugfixes. There are no big new features done.
I spent a good 3-5 hours building out a proper, full featured Modrinth search client, just for the API docs to be wrong, meaning I massively over-engineered a simple system. Really annoying.
All the optimisations and big changes I made over the past few devlogs meant I had a lot of broken code on my hands. Won’t list everything here, but:
No video for this devlog, have some assorted screenshots from development on this devlog’s work.
Hyperlaunch now has the fastest download time of any Minecraft launcher I have tested!
This is due to a number of optimisations done, mostly informed from app profiling (you can see a screenshot below.)
Network activity is also more steady, and should start less connections overall.
Hyperlaunch was slower because parts of the cache system & download system were reading and writing to a lot of files at once.
I used the PerfView profiler to figure out how I could improve the download time after testing Modrinth App and Pandora Launcher and scoring twice as worse against both.
I’ve attached a screenshot of PerfView below, but it’s very ugly to look at.
Changes:
Hyperlaunch is a Minecraft launcher that tries to be as efficient as possible without compromise.
The cache works by URL. It splits the URL into domain name and resource. Take Hyperlaunch’s Stardance project page as an example; if it were to be
cached, the directory would be stardance.hackclub.com, and the
resource would be projects/28654. The resource name is hashed with
XxHash128, a hashing algorithm that’s not used for storing secrets, then
the file at the URL is cached at .hyperlaunch/cache/<directory>/<resource hash>. If the file came with caching instructions (either ETag or Last-Modified HTTP headers), then those are stored alongside the cached file as separate files (see the image attached.)
response.Content.Headers variable. For all other headers, you access response.Headers.Stream objects, and the syntax was strange which resulted in a few unintentional logic bugs that I just didn’t know how to spot.Video and some photos of the cache in action below.
devlog 1
Hyperlaunch is a Minecraft launcher that tries to be as efficient as possible without compromising in any area.
I started this project earlier this year, but I want to finish it under Stardance.