Tag: godot engine

GameMaker: Exodus

I’ve been doing game dev programming in GameMaker since 2010, and lately I’ve been feeling rather frustrated by the pace with which they’ve been improving the tool. Since being bought by PlayTech in February 2015, YoYoGames seem to have hit a brick wall.

Languishing, poor quality betas of (potentially) exciting new features

The GameMaker Marketplace debuted almost two years ago. Today, it is still in Beta. Much worse than that, there has not been any substantial development in the Marketplace website, or the integration with the GM:S IDE, in about the last year-plus.

There’s been a long-standing bug with their marketplace integration, when you have purchased a “large” number of assets from the Marketplace, the interface for managing them bogs down and becomes nearly unusable. I reported this defect, a year ago, and YoYo have acknowledged the problem, but done nothing to address it in a meaningful way, other than to warn users not to buy too many marketplace assets. That’s right: YoYoGames built a store for its users to sell assets they’ve made to each other, and then told them not to buy too many assets.

The interface for My Library is terrible — very basic, and lacking in features to allow you to organize the assets you’ve purchased. The performance problem especially is infuriating, and makes the My Library feature basically useless. I offered some ideas for improving the My Library interface on the GMC Suggestions sub-forum, which is now unavailable — apparently YYG have done more in “archiving” the old forums than simply setting them to readonly. [Internet Archive snapshot of the forum thread.]

YoYo acknowledged the problem, but rather than fixing the performance problem, they recommend a workaround of disabling assets from your purchase manifest, until the number of purchased assets is at a number that GM:S can manage without choking. That is, YoYo recommend that you disable assets that you’ve purchased through the Marketplace store, until you’ve disabled however many assets you may need to get below a number that their terrible interface can manage. We’re talking modern computers with billions of bytes of memory and multi-core gigahertz processors, choking on a list of perhaps 75-125 assets. It’s an embarrassment, and the worst part of it is that it discourages users from purchasing more assets from the marketplace, or using them.

None of this has stopped YYG from taking 30% of sellers’ revenue from Marketplace sales. In many cases, sellers are building assets which provide features and functionality that YYG should have developed themselves. For example, GameMaker 8.x used to have something called Room Transitions, which gave a neat visual transition when switching between one room and other. These were implemented in a way that took advantage of native Windows system calls, and couldn’t be supported on other build targets easily, so rather than re-implementing them in a cross-platform way so that all build platforms could make use of them, the room transition functions were deprecated and removed from GM:S.

Developers were told to write their own room transition code, and not expect the built-in transitions to return in any future updates. A few enterprising GM:S users have done so, and now sell room transitions asset packs through the Marketplace. The result of this is that a feature once included in GM:S now a separate add-on that you have to pay for. Except YYG don’t have to pay the developer anything for the work, and instead take a 30% cut of the developer’s income. This makes the Marketplace a very cheap way to outsource development that should be happening in the core product, not as aftermarket add-ons.

Of course there’s also a lot of assets for sale in the Marketplace that are free, and/or do things that are useful but should not be core engine features. The Marketplace was a great idea, and has a lot of promise, but has languished since the PlayTech acquisition.

Hamstrung by legacy cruft

YYG have been stuck with an old, crufty codebase written in Delphi C for the main IDE, and haven’t gotten off of it in 4 years. They always blame the old codebase for why they can’t deliver new features to the IDE, and promise to consider ideas for new features in “GM: Next”. They had made excellent progress in the first 2-3 years, focusing first on improving the performance of games built with GameMaker by introducing the YoYo compiler and runtime, porting those to modern C++, and incorporating exciting new features like Box2D Physics and Shaders into the old IDE. But since then, we haven’t seen much. GM:S 1.4 was released in late 2014. The PlayTech acquisition was announced a few months later in early 2015. Before the acquisition, we had a major update about once a year: Since the acquisition, YoYo have only released minor bugfix updates to 1.4. The biggest missing deliverable by far is the replacement of the old IDE with something modern and coded in a more maintainable way. The old Delphi codebase has left them hobbled, unable to deliver new features, and having to work harder than they should have to to add simple enhancements and fix bugs in the old.

In the meantime, a third-party IDE for GameMaker has been offered by at least two different groups. Parakeet and Enigma are the effort of frustrated GameMaker users who got sick of waiting for an official rewrite of the GM:S IDE, and took matters into their own hands and built their own. While it’s good to have alternatives, these are precariously positioned as GameMaker is closed source and any third party efforts such as these are prone to breaking if YYG change the way GameMaker works.

Promises undelivered and unfulfilled

“GM: Next” feels more and more like vaporware as time goes on. There’s no timetable for its release any longer; YYG have actually withdrawn their old roadmap that charted out their plans for the future so you could know what features might be coming and when.

The last straw has been this failure of the migration from the old GameMaker Community Forum software to a replacement running something with better security and features. They put the old forums in readonly mode in early April and promised the new forum in a couple weeks, which was itself a pretty headdesk move on their part, since there’s no reason why there should have been any downtime — archive the old forum only once the new forum is up and running, ready to launch.

But, almost 2 months later, they still have yet to deliver the promised replacement forum. Inexcusably, they’ve been all but silent on the matter. No apology for taking so long, no explanation of why it’s been taking way longer than expected, no revised ETA on the new forums. I’ve seen one tweet from a YYG source saying that they don’t know when it will happen, and they’re sorry but their “hands are tied” — presumably by PlayTech.

Shaun Spalding of YoYoGames commenting on the delinquent GMC forum upgrade.

Acquisition: What is it good for? Absolutely Nothing!

Say it again!

When the PlayTech acquisition happened, I expressed some concern but optimistically said I’d take a wait and see approach before judging whether it was a good thing or not. It’s pretty clear by now that it’s been a very bad thing.

It’s been my experience from watching small companies get gobbled up by large companies again and again that it’s almost always a bad thing for the small company and those who care about what it does. A small, successful company has drive, passion, and vision. A large company wants to secure its position and diversify its risk, and cares more about maintaining the status quo and staying on top than it does about disruption and shaking things up. When a large company buys out a small company, they say the same thing every time: “We’re not going to change a thing. We’re not going to risk disrupting what’s been working so well. We want to get on board and help them succeed to even greater heights.” It’s almost always a bunch of happytalk to put customers at ease and give investors a warm fuzzy feeling.

But what really happens is the small company totally gets disrupted. There’s usually a round of rebranding that happens, and the small company is paralyzed by Find/Replacing $OLDNAME to $NEWNAME, to no actual productive gain. Then there’s another round of aligning the small company’s goals to the greater strategic vision of the big company, at which point anything interesting or cool that the small company was working on gets squashed or distorted. Oftentimes the best people who made the small company great leave, pockets flush with money from the boost in the stock price from the buyout, in order to pursue other opportunities, where they can remain nimble and free to innovate without all the dead weight overhead from the large company. Products and services shift in ways that alienate former customers, the operation hemorrhages money, customers, and employees for a time, and eventually the burning dirigible crashes to the ground. Oh, the humanity.

That’s what usually — almost always — happens. I don’t know that that’s what’s happened with YoYoGames, but I’ve seen it happen time and again with countless small companies in all kinds of fields.

There’s still a lot of things I like about GameMaker: its simplicity, it’s easy learning curve, the speed with which an demo can be built. I still think it has a great deal of potential for a bright future, but I fear that PlayTech have squandered it for much of the last year. The acquisition has caused YoYo to fumble badly, and from what I’ve seen so far, I have little hope for a turnaround.

Unfortunately, for a proprietary tool a fumble like this is generally fatal. Around the time I got into GameMaker, there was another popular tool, called Torque, that was a bit more sophisticated, and went through a similar ownership transition and died shortly thereafter, to be reborn as a MIT licensed open source project. I guess it’s technically still around, but exist today largely as an afterthought. This situation is starting to feel eerily similar. Although… if GameMaker were to be open-sourced, that would be one of the best possible outcomes of the current situation. YoYoGames have stated on many occasions that this will never, ever happen, though.

Another door opens

For the last two years, I have also been watching an open-source project, called Godot. Godot is a 2D and 3D game engine with many features comparable to GameMaker, but is all modern and open source, and as of this writing is now at version 2.0. The development environment for Godot runs not only on Windows, but on Mac OS X and Linux as well. It looks really good, and I am planning to use it for my next project.

I’m very excited by this. If it works well, and I like it, I will be able to say goodbye to Microsoft, finally, and after the debacle of Windows UpdateRape, forcing users to upgrade to Windows 10 without their affirmative and informed consent, the timing couldn’t be better for me. GameMaker: Studio was the last proprietary Windows-only application that was keeping me on the Windows desktop platform, and I had been hoping that GM:Next might allow me to run GameMaker on Linux, but with Godot I may not have to wait to see if that day ever comes anymore.

I won’t be surprised in a few weeks time if I am kicking myself for not making the transition sooner.

[Update: be sure to read the follow-up post]