[Editor’s note: Be sure to read the follow-up to this article.]
I’ve only been a Game Maker user since August 2010, but I have found it very easy to pick up and learn quickly — so much so that by February 2011, Packt Publishing noticed my blog and asked me to contribute technical review on their upcoming. Game Maker has its quirks, but it has one of the gentlest and most accessible learning curves of any programming environment that I’ve tried so far. It has its detractors, and it does have some weaknesses, but overall I like it a lot.
YoYoGames is giving away licenses for their still-beta Game Maker HTML5 for participants in Global Game Jam. Kudos to them. What a great way to support indie game developers! Considering that the beta for GM-HTML5 is $100 for a license, and Global Game Jam is free, this is a rather good deal. I happen to be participating in Global Game Jam this year, so it provided me with a code that allowed me to download a copy of the software for use with a time-limited license key.
Wasting no time, I spent the rest of the evening producing a quick demo game to get familiar with the new program, and learn how it works. I was able to build a mostly-working Space Invaders clone in just a few hours.
Here, then, are my thoughts on the product so far:
HTML5 as an application platform
The great allure to the World Wide Web as a software development platform is that it enables you to distribute software very widely very easily — as easily as hosting a web site. The web browser is nearly ubiquitous, and with the latest version of the major browsers, HTML5 is reasonably well-supported, even though the standard is still being worked on, and may in fact never be finalized.
HTML5 as a platform for software development offers universality, in that you can reach any platform that has a browser that supports HTML5. But this comes with the risk that different platforms may not conform to the still-a-work-in-progress HTML5 W3C recommendation. HTML5 is a shaky platform to build on for this reason, and may never become truly universal. HTML5 is really in the same boat as Java, which promised “write once, run anywhere”, but delivered “write once, debug everywhere.”
HTML5 developers will always be at the mercy of the browser developer, and the HTML5 standard. This isn’t surprising — any software developer is at the mercy of those in control over the platform their software will run on. But HTML5 is a maturing, de facto standard that is supported increasingly widely, and each web browser is bound to support it without 100% consistency.
There are many different tools that can be used to generate HTML5 applications; Game Maker is but one of them. Game Maker HTML5 concentrates on the HTML5
<canvas> element is pretty stable, widely supported in modern browsers, this is hopefully a relatively solid foundation to build a game on.
Despite these dire warnings, HTML5 seems likely to be a good platform for development that can reach a majority of platforms with greater ease than just about anything that’s come before it. It’s definitely possible to create a high quality game experience that can be enjoyed easily by many.
Getting Into Game Maker HTML5
Your old Game Maker project on HTML5?
Game Maker supports importing old Game Maker projects created with Game Maker 8.1. Game Maker 8.1 can convert Game Maker 8.0 projects; I’m not sure about Game Maker 7 and earlier, as I’ve never used those versions, but I do know that Game Maker 8 could open .gmk project files created with Game Maker 7, usually without any compatibility problems. So, there is a reasonable path to taking an old game and converting it to HTML5. This may give older projects new life. Previous to HTML5, it was possible to play Game Maker games in a web browser, but it required installing the Game Maker plug-in, which often crashed, and wasn’t available for some common browsers. The comparative ease of creating native HTML5 games which run in any stock browser that supports
Group Development Features
Game Maker has always been geared toward solo development and being self-contained. The downside to this is that it makes it difficult for groups to team up and work together on the same project. In the past, if you want to work as a group, one developer will have to act as a master project manager, and the other developers will need to coordinate their efforts to code to some agreed upon standards, especially object, resource, and variable names, and deal with exporting and importing. It really makes working as a team a drag.
Game Maker HTML5 improves upon this, by replacing the old .gmk self-contained project format with .gmx. The .gmx format is actually a directory, within which each individual component file of the game project is available for editing individually. This enables developers to work in teams as long as they stay out of each others way. I don’t have a second license installed on a second computer to test out how well this works, but it’s nice to see.
Export Project Feature
The other major new feature I noticed was an “export project” feature. I haven’t played with this yet to know how it works or what it gives you, but it may be that this helps with some of the issues that development teams experience when porting a Game Maker project to “the other OS”. Previously, Game Maker Standard supported exporting scripts, sprites, and other resources only, not entire projects.
Improved Code Editor, Room Editor
Not drastically, but the improvements that were introduced in Game Maker 8.1 are continued here. I haven’t used these features enough yet to fully appreciate how improved they are over the last release, but they are noteworthy improvements nonetheless.
On the downside, at times I find that it’s a bit aggravating to work between two different Objects, because opening an Event or Action still yields a modal properties dialog, which prevents you from switching back and forth between two open screens. This is still a problem in GM-HTML5.
New Help File
As expected, the Help file has been updated. Not only do they include the new features for HTML5, but it appears that the documentation has been re-organized a bit. It’s a lot of reading material, so I haven’t been all through it, but hopefully they’ve revised and edited to improve the content and make it easier to use.
Pricey, Still in Beta
Game Maker HTML 5 has been available to the general public as a beta software for a few months now. YoYoGames has announced that they will charge $199 for a license after beta testing is over, but during the beta period it’s available for 50% off — $99. That’s $60 more than what they’re asking for the previous version, Game Maker Standard 8.1. For a beta.
My initial reaction to learning of this increase was dismay. This is a huge jump from what they used to charge. I bought my Pro license of Game Maker 8.0 when it was still $25; Game Maker Standard is now $40, and Game Maker HTML5 at $200 is 5x the cost of Standard, and 8x what I paid for Professional just over a year ago. It worries me that such a high cost will scare away amateurs and casual/hobbyist developers, and that for professional game developers, other products such as Unity or XNA Game Studio will be more attractive. If this concern bears out, YoYoGames could be pricing themselves out of their market.
I trust YoYoGames to understand their business more intimately than I do, so if this is a good decision for them and allows YoYoGames to stay in business, I’m for it. If $200 is too much money for you, Game Maker Standard is still around and will continue to be offered at the relatively low cost of $40, as is the free Game Maker Light (Standard with a few features locked until you pay for the upgrade), and either should be “good enough” for casual game development.
Unfortunately, “still in beta” really is true. While I found the software usable, and was able to create a running game with it, when I built the HTML5 version, there were a number of bugs with it which were not to be found in the Win32 .exe build. Obviously these issues are excusable, since it’s a beta, and I trust that YoYoGames will fix these issues before the product is out of beta, but it does merit mentioning them since, for now, it may limit what you’re able to do with your HTML5 builds.
So far, the features that have given me problems have been:
- Intersect Boundary event (detects when part of an object is outside the border of a room)
- Room Restart action
I’ll add more if I run into it — I haven’t but scratched the surface, and already two very common, useful language features do not work in any browser that I’ve tried.
I’m not sure how close YoYoGames are to taking the “beta” designation off and calling it a full-blown release, but a few months is a bit long by today’s standards. Prominent products like Google Chrome and Mozilla Firefox are being released on a development schedule measured in weeks rather than years. I’m sure YoYoGames has much less in the way of resources than Google, Mozilla, or Apple, so it’s to be expected that there’ll be more wait between releases. Nevertheless, they are going to need to improve their processes in order to reduce the lag time between releases.
Otherwise, Game Maker HTML5 is very much like previous incarnations. If you’re used to GM7 or GM8, you’re going to feel right at home. Of course, this means that you’re accustomed to, and willing to accept, some of the inherent weaknesses that have been part of Game Maker’s history for some time now. By which, I mean:
Debugging in Game Maker consists of a rudimentary variable tracking function and runtime exceptions logging. Setting up variable watches is tedious, and needs to be re-done each time you run the game, although the trace configuration can be saved to a text file, and re-imported, rather than re-typed each time.
In my projects I’ve augmented these built in features with non-game functions that I use for development purposes.
For example, I took some file i/o functions from GML and built a logging system that I can use to track what my program does. Being able to read the logs and verify that a particular branch in my program was reached when the game logic that I wrote dictated that it should be is invaluable. There’s no line-by-line execution tracing, so this is all I can do, and without it I really would be stuck. Another “development” feature I’ve taken to adding into my game projects is some logic to enable me to view an Instance’s properties by clicking on it. This allows me to get at the state of any object I can see, without having to figure out some way to set up a variable trace. It’s a pain to have to re-implement these things again and again; it really is something that should be built into the framework so that when you’re running a game in Development Mode, it provides that feature to you for free.
On the other hand, having to build these things for myself has an intrinsic value as a learning experience. One of the things that I really enjoyed about learning Game Maker is how much it makes me appreciate things that more “mature” languages and development environments have built in. Game Maker’s simplicity enables a newbie developer to get by without these things, and the newbie developer’s newbness makes it likely that he will make mistakes and run into problems that these missing features can prevent or resolve. Hopefully, the developer realizes at a certain point that there is a need for these features, and then takes it upon himself to implement them on his own. Extending the environment in this way is an important step toward a programmer’s enlightenment, and Game Maker leaves some fruit hanging low enough that they can have the satisfaction of discovering these things for themselves.
Game Maker projects consist of a single file, typically a .gmk or gm8. HTML5 introduces the .gmx file. I’ve never reverse engineered any of these, but it’s my understanding that they are all of these are essentially “containers” that store resources like sprites, sound effects, and fonts together with source code. The result is a self-contained, tidy, file; this is great for newbie developers who might be overwhelmed by a project consisting of multiple files and subdirectories. But it makes version control basically impossible. The closest thing Game Maker offers to version control is to save the last (up to 9) iterations of the project under a different name. This is a far cry from svn or git, and it’s too bad Game Maker doesn’t allow some way to look inside the .gm* container format and manage versions for the various components. It would be super sweet if YoYoGames eventually did build something like this, which would allow Game Maker projects to be properly versioned in a real-world version control system. I’ve heard that this may be coming in Game Maker Studio. I sure hope so.
The Game Maker HTML5 Environment uses non-standard themeing for its interface. I can’t fathom why they decided to break from the standard Windows Explorer theme, but perhaps it is intended to complement the color scheme of the YoYoGames web site, and aid in “branding” the Game Maker product.
Personally, I find the dark background/light text to be harder to read. I can live with it, but I’d prefer the standard defaults, the option to customize or skin the environment application.
The Game Maker Lineup
The product line for Game Maker is starting to feel a bit crowded. One thing I worry about is that YoYoGames won’t be able to provide full support to all products that they offer. Even now, the product is largely community supported. Fortunately, Game Maker has a large and enthusiastic community of developers. Currently, YoYoGames offers the following:
|GM Lite||Windows||Win32||Free||The entry-level model for beginners dabbling in game development.|
|GM Standard||Windows||Win32||$39.99||The old flagship, formerly Game Maker Professional. The “full-featured” version; creates Win32 .exe files only.|
|GM Mac Lite||Mac OS X||Mac OS X, iOS||Free||The entry-level model for beginners dabbling in game development.|
|GM Mac||Mac OS X||Mac OS X, iOS||$39.99||The sibling of “Standard”; creates Mac OS X .apps.|
|GM HTML5||Windows||Win32, HTML5||$99 (early adopter beta discount)$199 (full price)||Currently still in Beta.|
|GM Studio||Windows||Win32, Mac OS X, iOS, HTML5, Android||????||The new flagship, coming sometime in 2012.|
Prior to GM-HTML5, one of the biggest problems with Game Maker as a development platform is that the Mac and Windows versions are only mostly compatible with each other; you can’t simply import a project built on Windows in to Game Maker Mac and hit build and expect it to work perfectly — certain functions are OS-dependent, and YoYoGames has a little more work to do if they want to completely abstract the underlying platform and let the designer concentrate simply on game development. It’d be great if you wanted to collaborate with someone running “the other OS” if you could simply swap project files and build and have a working product. As it is, you almost can, but not quite.
When I heard that Game Maker Studio was in the works, I hoped that it would simply replace Game Maker Standard, and become a platform-unifying product that consolidated all Game Maker users under one umbrella. Instead, it looks as though we’re headed toward balkanization, with Game Maker Standard, Game Maker Mac, Game Maker HTML5, and Game Maker Studio users fragmented into their sub-communities, each dealing with slightly different issues, with broad (but not 100% reliable) overlap. This will complicate the community’s ability to self-support, and could potentially be ruinous to the cohesiveness of the community that helps make Game Maker development enjoyable. The community is invaluable — it really isn’t too much to say that the community is the product — and I hope YoYoGames both recognizes this and continues foster a healthy and vibrant community. I know when I was starting out with my first project, had it not been for the community support forums, I would have had a much harder time figuring out Game Maker’s quirks, and the official support wasn’t nearly as helpful in supporting developer questions.
My advice to YoYoGames is to bring the community together around the upcoming Game Maker Studio product, unify the Windows and Mac OS X developer experience, phase out the other products, since they’re redundant once Studio is out, and price Studio at a point that allows YoYoGames to stay in business and is yet attractive to casual/amateur developers while giving everyone professional-quality tools.
- Expensive relative to previous versions.
- Same old Game Maker, now can target HTML5.
- Still in Beta, don’t expect fully working games in HTML5 just yet.
If you already like Game Maker, are an early adopter or an enthusiast for the Game Maker platform, go for it. If want to make your games more easily accessible to the world, HTML5 promises to do that for you, albeit with some kinks to work out, and the discount price for buying in during the beta period is a good incentive to buy now. Getting into it now will mean you’ll be ready to release HTML5 games that much sooner.
Otherwise, you may prefer to wait for Studio, or remain on Standard indefinitely. I imagine YoYoGames will make an upgrade path to Studio so that developers who invest in HTML5 will not feel like they’ve wasted their money. Global Game Jam participants will be able to buy Studio at 50% off.