As you might know, last year I made Nuclear Throne Together, which is a mod for Nuclear Throne that adds online multiplayer, fixes some bugs, improves the cooperative mode, and otherwise is very nice.
Just about this time last year, Nuclear Throne update 98 has released, which remains the most recent official update of the game.
Today I've released what is the largest update to Nuclear Throne Together to date.
Modding support
Click for video - "Interdimensional Mutant Buster" by 9joao6
For the longest time, modding Nuclear Throne was a tricky thing to do - either you had to mod a pretty outdated version of the game, or have substantial understanding of GameMaker's file format and "virtual machine" (which is something very few people did).
This changes now - with the new NTT update, anyone can make mods for Nuclear Throne.
With modding you can easily add new characters, weapons, enemies, bosses, mutations (pickable perks), crowns (game modifiers), and more.
Click for video - "Titank" by 9joao6
Modding functionality is deeply integrated with the game and networking, allowing you to load multiple mods at once, and you can play mods with a friend in online multiplayer.
Click for video - "Eternal labs" by Blaac, as seen in Matthanic's mod marathon stream
Now, if you have a bit of a technical background, you might be wondering how this magic works, as the subject of custom scripting in GameMaker games is considered problematic, let alone having it work in networked games.
What had happened is that late last year I have assembled a variant of GMLive that instead of generating JavaScript code generates purpose-specific bytecode, for which I have then wrote an interpreter.
Being something that you are clearly not supposed to do with GameMaker' Language, this involved some interesting changes to game structure, breaking the game, breaking the runtime, and even breaking a C++ compiler (causing it to basically explode during compilation).
The result is amaznig, however - you can change pretty much any game' variable, do things that clearly weren't meant to be possible, and all this is done with a familiar-looking (GameMaker-like) scripting language with a handful of new features on top of it.
People have already made a handful of mods for NTT, and the situation is likely to further improve in future.
Overall this breathes a lot of life into the game.
Native cursor support
Nuclear Throne is a game that demands fast reactions and solid aiming.
Unfortunately, the base game didn't couldn't fully comply on the second part - with the game being locked to 30FPS and drawing the cursor together with game graphics, you would end up with 15...45ms (0.5..1.5 frames) worth of lag, depending on your setup.
While many people didn't seem to mind much, that's not exactly optimal, and I've decided to address the situation - by writing a plugin that allows the game to take advantage of system-level cursor functions.
When enabled ("Options - Game - Native cursor"), instead of drawing the cursor inside the game window, the game will customize the actual mouse cursor, meaning that your cursor will update as fast as your screen permits. Even if you have a 60Hz screen, the difference is huge.
Mouselock option
If you've tried playing Nuclear Throne in a window (or have a multi-monitor setup), you might be well familiar with a sudden sense of panic as you accidentally click outside the game.
While the recent versions of the game made it auto-pause on such occasions, this still brings disorientation.
So it's something that I've adressed with an extension as well - again, allowing the game to work directly with the mouse cursor, warranting it will not leave the game area while the game window is active.
The option is similarly located under "Options - Game" menu.
Native scaling option
By default, Nuclear Throne runs at a 320x240 resolution. This is the resolution that the game and it's graphics were made for.
However, with a few of tricks, it is possible to force the game to render at a higher resolution that it's meant to. And, to tell you something, this actually looks pretty interesting.
The projectiles look nicer, portals look amazing, you can now even see the fine details on smoke particles, and everything looks just deliciously crisp on a high-resolution screen.
Being a fairly experimental option, some things do look slightly broken with it, and I'm sure that some people will prefer the game's usual looks, but in general it's worth trying out regardless.
The option can be found in "Options - Video - Pixel mode".
Matchmaking
The mod now has an option to automatically look for a public game; If multiple players choose the option, they will be paired together.
While a pretty small feature, it is nice for those times when you expect someone to come online but don't want to keep staring at the game window while waiting for the lobby to pop up.
Skins
The update also features a couple of community-created skins for existing characters - Robot C (skin by BioOnPC, portrait art by NotYourSaggitarius) and Skeleton B (skin by BioOnPC, portrait art by Blaac). I am not going to spoil the second one to you, however.
Update checker
With mod's userbase noticeably showing noticeable fragmentation issues (some people were still playing the first public build when the last update released), it seemed important to notify the players when a new update comes out.
So there is now that - the mod will check the current version on the website and notify you with giant text on top of the main menu if there is a new version available, allowing to click that to navigate to the mod's itch.io page.
Bug fixes
Since Update 99 beta was released on Humble, I was able to backport all non-destructive fixes and balance changes from it to NTT.
The mod was also updated to be compatible with u99, meaning that it will continue working perfectly fine when the update releases.
Combined with countless existing fixes, the mod is valuable even if you only play alone.
In conclusion
While I could go on for quite a while (the complete changelog is over 300 items long), I assume that most of readers would like to get their hands on the mod already, so you can inspect NTT-ChangeLog by yourself for that.
I'm pretty happy with what is done - while some things could be made better (and will be addressed in future updates), I was able to accomplish pretty much everything that I wanted as far as the mod's scope goes.
Finally, I would like to thank everyone that supported the mod via itch.io, streamed/recorded the mod, or even just played it and told their friends about it - this means a lot to me.
Have fun!
Pingback: Introducing: Nuclear Throne Together
How do I load a file of mods? In my instance, defpack?
Brucepack, I mean.
From the mod list page, which is conveniently linked in the end of the post that you are posting your comment under.
Hey the download link seems to be dead, please help, thanks.
There’s currently a problem with website that the mod’ downloads are hosted on. Should be resolved shortly. If it won’t by tomorrow, I’ll see about uploading the mod to additional locations for safety.
I don’t really can express what I feeling. There should definitely be words “fucking, “amazing” and “how”. This is a chance for a game to become something like crawl-ref Stone Soup roguelike – living for decades and constantly evolving by evergrowing community.
If only Vlambeer ever opensourced NT on some therms. In a galaxy far-far away… :)
While my attempts to get a permission to publish instructions and bits of reconstructed game code for modding were unsuccessful, I think the new scripting system is more than a viable alternative – not only does it allow to legally mod the game (NTT mods by default contain no source material and thus can be distributed freely), but it also removes the barriers on the way (no need to compile anything; mods work in online multiplayer) and allows to load multiple mods at once, which is something that is always a problem with source code modding.
Overall, while it could be a little faster (to allow doing even crazier things with the game), I’m more than happy with the result.
Now, just need to wait for the appropriate peopleā¦ or myself? to port Nuclear Throne Ultra, and it’ll be perfect
Seeing that people are also asking about this on subreddit time to time, perhaps y’all should organize on subreddit’s Discord and split the tasks – most of Ultra Mod’ content is by no means complex, and could be mimicked even without poking the author for source code.
Wanted to say this mod is fantastic and something the game sorely needed, and I’m legitimately excited to try out the numerous new features in the update. Please ignore that rude person earlier in the comments and keep working to improve this awesome game.
Hey YellowAfterLife,
Thank you for your amazing work for the community, you work Surely deserves more praise!
– Froggie
LOAD MODS HOW EXPLAIN CUNT COCK
That’s not very nice
That’s not how you ask them. These people spent tons of hours to make this update, and this is how you treat them?
It’s pretty much this person.
HOW DO YOU LOAD MOD FUCK FACE
By following the end of the “Chat commands” section in NTT-Readme.
Mod files go into NTT directory or into where the save file is.
This guy is quite rood.
I figured it out :P