Originally this post was supposed to go live on New Year’s Eve, but I maintain an exceptional skill of recalling that there are more things worth mentioning only as I’m halfway through writing the post.
Work
GameMaker
The current GameMaker beta releases contain options for reducing size of HTML5 games (explained in the earlier post).
The checkbox is called “Enable conditional compilation” and can be found in Preferences ➜ Platform Settings ➜ HTML5;
Currently it should be used together with a downloaded HTML5 runtime (see: Path to HTML5 Runner), but that’ll be fixed in one of the upcoming releases.
Nuclear Throne
Once a quarter or two, I return to poke Nuclear Throne for a little bit. This time, it’s settings.
First, you can now adjust the framerate and aspect ratio.
The original design intention was to keep the game in 4:3 for roughly-equal view distance in all directions, but it was decided that you should be allowed to have your fun if you’re not playing a daily/weekly challenge, so you can now change aspect ratio - to 1:1, 4:3, 16:9, or even a custom one.
The framerate is less ambiguous - if your system can afford running the game at a higher framerate (and almost any desktop computer should handle NT at 60fps until lategame), you might as well. Almost everything in the game has been adapted to work with time scaling, so the game doesn’t just look smoother - it works smoother.
The other big thing is control settings - I have finally overhauled the menu to use the new system, which means that it can now have sub-menus and adding new options is less of a headache.
So you now get a handful more options (such as sliders for gamepad rumble and deadzones), ability to bind two buttons/keys per action, and a few experimental settings - like precise gamepad movement (instead of classic 8-directional one) and an option to aim with a mouse while using a gamepad that might be appreciated by some.
As usual, there is also a handful of fixes, and I also had to move the game to a more current GameMaker version, which brings a few bugs and novelties.
You can find this beta on “openbeta_win64” branch on Steam and the Nuclear Throne Together version of it on “ntt_testing” branch on Steam (NTT updates will be moving back to itch after I rewrite the patcher to work with new GM versions)
Voidigo
I’m helping port Voidigo to the current GameMaker version!
The game has stuck to GMS2.2.5 (released around December 2019) for quite a while due to being in active development and potential work involved with porting and subsequent fixes.
After a few dozen hours of work and fixing some code that appeared to work by pure chance, the game appears to be in a largely-playable state.
There’s still some work left to do, but we’ll get there.
Tools & GameMaker things
I released an update for my pixel font converter tool that improves upon a few things and adds support for creating SVG color fonts.
I wrote a post about filtering strings in GameMaker - say, implementing your own string_letters function that works for non-Latin, or returns everything except for the letters, and so on.
I updated my GameMaker syntax highlighter to address a few oddities.
A bug in the stable GM2023.11 release is causing the editor to corrupt a handful of my extensions upon loading the project (with an error that looks like this)
Other stuff
I updated my post about the keyboard adventures to reflect the recent tweaks to hardware and layout, and moved the list of other interesting custom keyboards to a separate, filterable table.
Also wrote a small post about a trick that I came up with to display current keyboard state on PC side.
Between other activities I’ve been also gradually configuring Debian on the little laptop of mine - because I’ve had enough of Windows 11’s nonsense, but also since I could use it for Linux builds/testing instead of a VM.
An interesting subject overall - with Cinnamon [desktop environment] in particular, I can replicate most of the conveniences that I have on Windows, and most of the software that I use is cross-platform, but not all of it, and especially not the bits used for things like console development, so Windows isn’t easily escaped with my career.
Ukraine
I have recently learned that a classmate of mine has been serving in army for some time and has died in combat. It is strange to think that you might miss an opportunity to see someone (when it was still 2021 and COVID-19 cases were quite high), and that’s it - you’ll never see them again.
In my life I have missed out on some things due to withholding from activities that might be a bad idea, and have a few scars from times when I really should have known better.
One of the biggest drone and missile attacks against Ukrainian cities was a few days ago, with slightly smaller attacks falling on New Year’s eve and January 2.
Russia might want you to think that this is a retaliation for sinking another one of its ships (which, judging by how little remained of it after detonation, was carrying missiles for these same attacks), but that’s a trick - it’s not like anyone needs an excuse for killing civilians these days, nor would playing by aggressor’s rules make it any less likely. For example, Kherson gets shelled every other day, to the point that this doesn’t get much coverage outside of local news anymore.
Time to time people ask me how I manage in this kind of situation when things are just Not Good at all times.
Admittedly it’s easy enough to get overwhelmed, and there are still occasions when I sit in shock for a day because the news are too much to handle even by today’s standards, but paralysis is not a good long-term strategy, and will definitely not solve any of this.
It is good to be generally aware of the situation (say, checking news once a week instead of doom-scrolling) and do what you can to help, even if it’s a little thing - for example, although an average donation in Ukrainian crowd-funding campaigns is somewhere around $10, people manage to fund a variety of equipment together.
And that doesn’t apply just to Ukraine either.
Year in review and resolutions
All things considered, 2023 was slightly more productive than 2022.
Which, you know, is still less the amount of work that I usually do, but It’s Something - I did some work and updated some of my GameMaker assets.
The promised novel GameMaker extension was the Apollo rewrite, which is in a functional state (you can grab it from GitHub), but isn’t entirely on par with the original version yet (mostly lacking coroutine support).
I could even use my research to create additional extensions of this kind (say, to bring JavaScript to GameMaker by integrating one or other JS runtime), though it’s unclear whether there’s much of an audience for any of this.
I did not make a videogame in 2023, though I did make a few test projects and building blocks that are needed. Perhaps this year?
And there’s still a big pile of potential and/or non-urgent work, assets, and blog posts that I’m yet to get around to.
Overall, I hope that 2024 will be a little better than 2023.
Thanks for reading, and I’ll see you later!
“fixing some code that appeared to work by pure chance”
lmao very relatable.
I want to thank you for another year of inspiration and motivation. I admire your continued dedication for the GameMaker community especially in these unfortunate times.
I hope to approach you with a small project in the coming weeks.