2020 in review

This is a blog post about what I've been doing in 2020! There are many things.

Work

Rivals of Aether


A little logo of mine on the updated RoA splash screen

Rivals of Aether released on Nintendo Switch this year!

Consequently this meant plenty of work tweaking netcode to work on Switch.
And getting a devkit, which took a while due to customs.

Switch had proven to be a very interesting challenge as many things work very differently to desktop and the little console's wireless module had proven to be a trouble as we couldn't possibly foresee just how choppy connections can get on it.

Although we have refined this in subsequent updates, there is still a lot more to do, and rollback will most likely be the only way to have Switch netcode unconditionally work for all players.

Links: website · Steam page

Doodle Derby

Doodle Derby (previously called Fromto) also released on Nintendo Switch!

Links: website · Steam page

Knight Club+


Check out the full trailer!

While Duel Arms will be out when the time comes, an updated version of original Knight Club has been released on Steam this year! It features updated graphics, stages, and, of course, Steam-based online multiplayer with matchmaking.

Links: website · Steam page

Indie Pogo

Frankly this should have been in the last year's post as well!

For projects with deterministic netcode, there is an eventual point where everything works well, the team is aware of how to structure the game code to avoid issues, and thus I don't have to do anything most of the time. An all-around pleasant time.

The game has had a handful of updates

Links: website · Steam page

Antonball Deluxe

Antonball is an intense mix of platformer and ball-breaking action!

I'm doing netcode for the various cooperative and versus modes in the game.

The game is set to release in 2021, but you can follow the development progress.

Links: Twitter · Steam page

Forager


Online multiplayer and modding were one of the game's most demanded features.

Following last year's work, Forager modding update released in early 2020 the multiplayer update is to release sometime in 2021, and, if the stars align, I might actually finally be credited in the multiplayer update... instead of, you know, sitting under Special Thanks despite my code (modding API and networking core systems) making up for 1/6 of the total line count in the project.

The whole chain of events was weird enough that it could have been a separate blog post, but, in short: there was no formal contract (only an NDA), it took almost 3 months from an invoice to the final payment, and I found my version control and Discord permissions abruptly revoked amid that, which, combined with unfortunate or vile timing of ceasing to respond to my messages for the next 5 days, did cost me a few nights sleep as I was no longer sure if I would be fully paid at all.

I couldn't say that I understand the logic behind any of this, but can only speculate that me asking for a written contract (such pleas were left unanswered) or to be paid via wire transfer rather than a payment method convenient to studio (which turned out to require me to pay 17.5% extra tax) had proven to be less convenient than the workflow with other team members.

Upon re-inquiring about my status on the project I was eventually told that I'll be informed if the need for my services arises again.

Though I did get paid in the end, including compensation for the tax rate difference, at this point I'm more than happy to not have to touch this project ever again.

If anything, this serves a polite reminder to never start any work before a contract is signed - no matter how good the game seems or how many awards it won. No hard feelings.

Update: Since writing this blog post, several current and past team members reached out to me with different but similarly unusual stories about their own experiences.
In a way it is comforting to know that it wasn't some sort of personal vendetta against me, but also raises questions about the practices with game's development despite its commercial success.

Update 2: The multiplayer update had now been cancelled entirely (breakdown).

And more

As it goes, there are always a few more projects that are in initial phases.

Most are unannounced, but also here's a hint.

Tools

I worked on many tools this year!

GMEdit

I added a whole lot of things to GMEdit this year!

Mini-plugins:

Pixel Font Generator

I made a web-based tool that allows you to make real TTF fonts out of pixel font "tilesets"!

I later added localization support and people translated it into a number of languages.

Links: web version · blog post

GMS2➜GMS1 converter

The converter that I've shown last year has been released in March!

With a mechanism for automated asset importing and a code rewriting rule mechanism, it can be extended or tweaked on per-project basis without requiring intricate knowledge of writing GameMaker resource parsers in Haxe.

Links: GitHub

Smaller tools

shader_replace_simple for GameMaker
Allows you to patch GameMaker shaders in real-time! Can be used together with GMLive for shader live-coding.

Desktop Screenshots for Unity
A Unity-friendly version of my GameMaker extension for grabbing arbitrary pixels from the screen!

Migration tool for Quality structures
Automates rewriting ds_ functions to their qs_ counterparts, along with accessors.

gml_string
GML syntax highlighting... in GML! But also in JS or Haxe.
By this time I've lost count of how many times I wrote a GML parser for one or other purpose.

HDPI+ support for GameMaker HTML5
By default, GameMaker games will use the resolution that the web browser reports, which is not necessarily correct. This extension helps with that.

YY-Reunion
Allows to "reunite" detached resources with their GameMaker Studio 2 project file, allowing to reconstruct otherwise corrupted projects.

gamepad_force_focus for GameMaker
Allows to take input from XInput gamepads even when your game is not in focus.

window_set_icon for GameMaker/Unity/C#
A multi-tool (GameMaker, C#, Unity) extension for manipulating window icon, taskbar icon, and taskbar badge on Windows.

execute_shell_simple for GameMaker
Allows to start up external applications! Particularly handy for getting around a recent Chromium change that causes url_open to open %22http//<link> in GMS versions prior to 2.3.1.

sprite_add_gif for GameMaker
Allows you to load animated GIFs in your games!

Updates

A big highlight of this year is the GameMaker Studio 2.3 update!

I wrote a blog post about just how many new things you can do with the language now.

Consequently, this also meant that I suddenly had decades of extensions to update to support new features or fix compatibility issues.

Then 2.3.1 released, adding a Windows x64 runtime, which meant that I now had even more extensions to update (to include Windows 64-bit versions).

Overall, an indefinite amount of time this year was spent just on updating extensions and tools that make them.

Games & mods

Bouncing Blade Blitz

A little 1P/2P game that I made for Disc Room Game Jam.

Links: itch.io page

Visual clarity tweaks for Nova Drift

I made a multi-version mod for Nova Drift!

It helps with not losing your ship in the game's chaos by introducing options for a variety of "crosshairs" (highlighting the ship position and orientation), background tinting, and a few other.

Links: itch.io page

GMTogether

I have soft-launched my universal online multiplayer tool!

While I'm still fixing some of the more exotic issues, it already works for hundreds of GM games, and the Steam-based version spares you of having to port-forward.

Links: itch.io page · Discord server

Personal life

Due to the global pandemic situation, this was a pretty strange year.

Given that I work remotely and my passtimes involve playing videogames and taking walks through variously desolate spaces, I wouldn't say that I have been particularly affected, save for hangouts being done largely online.

Sometimes the desolate places are in a less than usual state as I walk by them.
You can suspect that the weather is going to be unusual if there are no seagulls hanging out on the beaches.

2021 goals

Well...

Release all the things

Given the workloads of this year, a handful of unreleased tools from the last year remained unreleased, so I should hopefully get those out soon.

Make another videogame?

Wouldn't that be nice.

Especially now that I have an excuse for doing multiplayer games without having to worry about doing netcode for them.

Do a mailing list

Well, I guess I already did:

Get in here, by the way

but what I do want to do with this is to keep the mailing list updated through the year - a recent issue had been that people often don't even realize that I made a solution for their exact problem a few weeks prior (despite following me on social media), so I hope that an organized updated feed will help with that.


And, of course, there's plenty of work to do.

Last year's goals in review

  • Take it easy[-er]
    That's a definitive "maybe" - although I've not took up too many work projects, GameMaker changes left me slightly overwhelmed for the second half of the year.
  • Draw more
    I published a mini-FAQ post and started occasionally posting doodles, although there's still a lot to do and a backlog to sort through.
  • Make a videogame?
    I did make one (1) videogame this year (as per above), which is a +∞% increase over 0 videogames last year.

In conclusion

There's a lot to look forward!

Thanks for reading!

Related posts:

6 thoughts on “2020 in review

  1. You do so many amazing things!
    Is that universal multiplayer tool something you’d consider for devs to insert into their games?

    • The eventual plan is to license customized and/or embeddable versions of the tool to developers that cannot implement “official” netcode at the time but also want something more convenient than just linking players to the tool’s page.

  2. Thanks for everything in 2020.
    Hope you’ll be able to finish those tools from last year!
    (Especially excited for cmnMenu and cmnChat, those have been a pain to build custom)

    • Given that I don’t give talks at conferences or do anything else important, I suspect that I’ll be enjoying my (relative) privacy for a little longer.

  3. Thank you for all the amazing work you’ve done this year. I’m looking forward to the things 2021 will bring.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.