GioCities

blogs by Gio

Tagged: gamedev

⚖ Your engine hasn't earned your rent

YoYo Games announced today that they’re switching GameMaker to a subscription model. You know, I was planning on doing a high-effort article about this some day, but what the heck, let’s do it now.

First, here are the actual details of the GameMaker change. Instead of buying development tools you can use to develop things, YoYo is making its latest version of GameMaker — GameMaker Studio 2 — free to use. You can download it for free, learn how it works, and invest as much time making your game in it as you want. You only have to pay if you want to ship a game. And if you decide you really want to ship your game, it’s a whopping $80/yr for as long as you want your game on the shelves.

Subscriptions🔗

This idea of a company turning a product into a subscription service is probably familiar to you. Famously, Photoshop and Adobe’s other creative products switched from one-time purchases of software to indefinite recurring subscription fees, after having locked in most of the creative industry.

Earlier this year, a very similar thing happened with Buildbox, another “no code” game maker program. Buildbox changed their terms and conditions to demand revenue from all Buildbox games, including games and in-app purchases. In the normal tier, 70% of your total revenue goes straight to Buildbox. Even if you’re in the highest tier, you can’t stop them siphoning your revenue.

🎮 20 Absolutely True Things about Sonic '06

  • Posted in gaming

Sonic ‘06 is infamously bad. It’s glitchy, it’s a meme, et cetera. But actually, it turns out that it’s really bad. It’s a bad game. I played it. I played so much of it. I own the DLC. It’s honestly hard to describe. So here’s a description.

I’m trying not to include general shoddiness here, which there is a lot of. Also, I’m not numbering them. This isn’t Buzzfeed.


There is “Very Hard” mode DLC. You could pay money for it. This shipped after the game released and they knew about the issues. Sega’s reaction after shipping Sonic ‘06 was to try to charge people for more Sonic ‘06.

In addition to the hard mode DLC, there is DLC for an extra story called “TEAM ATTACK AMIGO”, where you play through a number of stages as side characters. Like End Of The World, you have to finish the whole gauntlet in one go with one pool of lives.

Apparently the game basically loads the whole overworld into memory any time the item layout changes or anything needs to be repositioned, even though really everything is in memory that should be there. This leads to hell situations like the box counting minigame. Oh god, the box counting minigame.

👨‍💻 Positioning Things in Ren'py

  • Posted in dev

As is common in Python, the mechanical process of displaying something on screen in Ren’py is at once easy to execute and deceptively complicated to execute correctly.

The Ren’py documentation does a fine job of defining the specifications of position properties, but intuitively understanding how to use those properties can still be hard because it doesn’t include much in the way of examples or elaboration, so here are some of those.

Your basic properties🔗

These names come directly from atl transform on the documentation. Note that these are generally parallel with the style properties of the same names.

👨‍💻 How we made Befriendus Ludicrously Accessible

  • Posted in dev

Befriendus; everybody’s favorite visual novel about making alien friends. It’s got trolls, yes, but it also has a slew of accessibility options. You can adjust everything: color, font, motion, even spelling. It’s clean, it’s easy, and it works. Here’s how we did it.

Befriendus in-game menu, with accessibility options

When I was designing the basic accessibility framework I had these principles in mind:

  • Accessible scripts must be easy to write; work should never be duplicated
    • Demanding people write multiple versions of work is bad design and encourages accessibility to eventually be dropped in favour of efficient production
  • Humans should never do postprocessing tasks
    • We’re writing software; a computer should do any and all mechanical work, not writers
  • Accessibility options should have as granular control as possible
    • Whenever possible, players should be able to select exactly what they need, not be forced to use something that doesn’t match their needs.
    • Options should be compatible with each other whenever possible
    • Just pushing out transcripts is not accessible design.

The best way to explain these is probably to explain what we ended up doing, and how each design choice was made carefully in accordance with those principles.

🎮 Stanley and the Death of Sourcemods

  • Posted in gaming

My first published, “successful” piece of game content was The Raphael Parable, a little exploration game about wandering through an impossible office. I say “game content” here because The Raphael Parable isn’t a game per se, but a map. A mod for the Steam release of The Stanley Parable that bootstraps the assets and mechanics to create a totally different game.

A new version of The Stanley Parable is releasing soon: The Stanley Parable: Ultra Deluxe is slated to be a remake with improved graphics, new endings, and console support. When I first saw this, I thought it would be a fun opportunity to go back to The Raphael Parable and tighten up some of the work that didn’t age well (I slapped it together pretty quickly, in hindsight, and it shows in places) as a new mod for the new version of the game.

"I love my car, I just hate my engine" Unity logo mug “I love my car, I just hate my engine”

Unfortunately, I quickly realized this was a non-starter for one simple reason: Unity. Ultra Deluxe is made by crowscrowscrows in Unity, which unfortunately stops this iterative development in its tracks. Let me explain:

The Weird Genealogy of The Raphael Parable🔗

The Stanley Parable itself started as a mod. The original published version is a Half-Life 2 mod from 2011, of which the 2013 Steam release is an HD remix. The Source Engine, which Half-Life 2 is built on, makes it easy to author a set of new maps and release it as a “sourcemod”. Davey Wreden did exactly this to make The Stanley Parable; he took the basic 3D engine and a few generic office-themed assets and made a completely new experience.