💾 Archived View for tilde.club › ~winter › gemlog › 2023 › 9-15.gmi captured on 2024-07-09 at 01:50:48. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2024-05-26)
-=-=-=-=-=-=-
I started playing video games in the 1980s, which should give you a decent guess as to my age. Maybe the first video game I remember playing was Smurfs on the Colecovision, which my dentist had cleverly set up in the waiting room. But I remember clearly the first time I wanted to actually make a game: I had sat down and started to play Bad Dudes for the NES. I was moving my muscley protagonist around the screen, beating the crap out of ninjas. I remember being amazed. This game was great! There were so many colours of ninjas! I wanted to make a game, too.
And so I told my dad, and he humoured me, and we went down to the library and looked for books on making games. This was the 80s, remember. The internet was nascent, and the web years away. But we found a book on game development in BASIC, and checked it out. I got home and started to read it. I was just a kid. I didn't know how to program computers. This was weird! I put it down.
I had what I consider a blessed childhood for games: I got a NES in grade four, sold it and most of my games to get a SNES with Street Fighter 2 Turbo a few years later. I played fighting games, I played roleplaying games, but as much as I loved playing games, I still had the itch to make them.
In grade seven, I had a mandatory typing class, because that was a thing back then. Learned to touch type. And then in grade nine, I had another typing class, and this is where my life changed. I already knew how to type, as did a few of the other kids. But they knew how to get around the lax security in Novell Netware, and get into QBasic. They showed me how to modify the source to GORILLA.BAS so we could play without sound, and add our own features. They showed me a few programming concepts in QBasic.
The time of the NES had passed, the time of the single dev writing games for 8-bit computers long gone. I've always been a bit sad about this: if I had been a bit older, I think I could've been part of that era. But my age is what it is, and I ended up being part of a different era instead.
In high school, I coded a lot. Dumb little text adventures, mostly, but it was fun. I uploaded them to BBSs. The sysops deleted my amateur efforts. I graduated from QBasic to Pascal. I still just wanted to make games.
But the honest truth is I wasn't good enough, and although I was decent at programming, I was no wunderkind. I knew one of those, by the way - a guy who got a job in high school writing code for a prof at the university, who got a BeBox to work on; who's since worked at Google and other Silicon Valley darlings, and who's one of those people who can just grasp things instantly. Difficult things that I'd have to read over and over and over and over and still not get, he got immediately. Life's not fair that way. But as I found out, what you lack in skill, you can always make up for in tenacity.
My want has always exceeded my grasp, but I actually consider that a good thing, as I've found that I can eventually find a way to reach, given enough time. For games, I had a few abandoned efforts in high school (grade 11 and 12, ish?), as well as one in university, trying to write a game in C without fully grokking all the memory implications of C. But that's okay! I learned from each of these. Quite a few years later, after I left school, I got a job writing C++ code for a financial services company. And I got good at it, or good enough, anyway, to the point where I knew what I was doing if I avoided the tricky, sharp corners of the language (which we did, or put appropriate guard rails up), and I kept thinking about the game I always wanted to make. Not the game with a veritable rainbow of ninja colours (though that would still be great), but the RPG. I'd been playing them since 1990, when I first played Final Fantasy on a friend's NES on a sleepover. Eventually it had gotten to the point where they were almost all that I played.
And after five years slinging C++ for a living, I figured I had the skillset to finally do it, to make an actual game that I could release, and even if I didn't make any money, it'd at least be something I could attach my dreams to. And I was right, about both these things: I've made a few hundred bucks in sales; I've had many thousands of downloads (I offer the game for pay-what-you-want); and it's been the project that I can dream on, hack at, release updates to when I feel like it. It has a small community. I'm extremely proud of what it's become. But this gemlog isn't about that. It's about the technical decisions I made early on, which seemed maybe a bit quaint or antiquated back then, and the vindication and faint sadness I feel now.
When you start a new software project, especially a big new software project like a game, you're faced with all kinds of technical decisions. The first, and arguably most important, is which programming language to use. I chose C++ because I knew it, because it made cross-OS development easy, and also because my first company was slowly dying, and I didn't want the years of daily C++ use to be for nothing. And then I had another choice: did I want to use an engine? A game engine buys you a lot, gives you a lot of hooks and APIs to really speed up your development. But it also hems you in, forcing you to be reliant on another company's code, its updates, its terms and conditions. In the early 2010s, this didn't seem to be a problem for most people. A lot of games (and I mean, a LOT) were using either Unreal, or increasingly, Unity. But I decided to go at it the traditional route: I'd build everything using the language and libraries I'd selected. It wouldn't be easy, it would certainly take longer (a lot longer), but the resultant code, warts and all, would be entirely mine.
This is the approach people used to take, decades ago, when there weren't any game engines. You own everything, but development takes longer. And games are, to put it mildly, significantly more complicated now than they were when I was a child.
Game developers furious as Unity Engine announces new fees
Unity, company that puts out the game engine of the same name, recently touched off what could conservatively be called a shitstorm with its announcement that it would start charging developers additional fees once certain thresholds were reached. If you reach a certain number in sales, or downloads? You start paying Unity. Oh, Steam/the app store/whatever already takes 30% off the top, or more? Too bad!
I don't feel vindicated; not using an engine had always been a very deliberate choice, one I'd made because I wanted to understand, and own, every step of my development process. I just feel bad for all the developers who have tied their games and studios to this engine, only to have the terms suddenly change. To put it another way, I'm generously what you could call a hobbyist developer. If I were trying to make a living making games, this change could be devastating.
It feels unreasonable. In some sense, it feels like it should be illegal: if you purchase the Pro license, or whatever, that should get you a piece of software that you can then use to make your software. That's it. Terms should be able to be changed for future development efforts, but they shouldn't be retroactive. That's crazy.
I don't have a horse in this race, but I know others that do; a number of my peers in my little microgenre use Unity, to varying degrees. Some of them only use it lightly, e.g. for their UI. Others are more deeply invested, using the engine more heavily for their core gameplay mechanics.
And all of them are, right now, wondering if they need to find an escape hatch. There seems to be a hope in the community that the reaction to this announcement might cause the company to walk back the worst of its ideas. But I don't think so. The last couple decades online have really laid bare that companies will eventually consume themselves chasing next-quarter profits and share prices. I hate Doctorow's term "enshittification". It's too cutesy. But it certainly describes what's happening here. Unity's a public company. They're resigned to profit-chasing. If it weren't this, it would eventually be something else, something to extract a little extra value from each customer and thereby juice its profits and stock price enough to trigger the annual bonuses.
Unity Boss Sold Stock Ahead of Scummy Dev Fees Announcement
It shouldn't have come to this. The engine's terms and conditions should be fixed and specific for a particular version; developers should have an expectation in terms of what they're working with, what they can expect. Games are a hard enough business as-is: the long grind of development, uncertain revenue and reception. There are a lot of side-questions to these shenanigans: will Unity walk this back, based on the reception? Will it drive developers to open source efforts like Godot? But this announcement was clearly planned. Turns out, Unity's CEO, and other board members, sold thousands of shares a week before the announcement. Enriched themselves with millions. Maybe that was scheduled in advance. Maybe not. But it certainly seems like the sort of thing you'd do before you make a deeply unpopular announcement, knowing, as you do, that you're going to reach a sticky hand into the pockets of thousands of developers, many of whom are just barely getting by, taking what you claim is your share, from the terms and conditions you just changed to favour yourself.