Category: reviews

DNS Registration

Back when I registered this domain in 2010, I used GoDaddy, mainly on the strength of them having a special deal where I could register a domain for very cheap. I’d been wanting for a while to get my own domain and web host so I could play around a bit, and saw a deal advertised on slickdeals.net for $1 domains, so that was my excuse to finally do it.

I had heard the GoDaddy name quite a bit, thanks to their marketing, and they seemed reliable. And, from a technical standpoint, I never did have any problems with my domain name resolving, or getting hijacked, or anything like that. So for that much, they were fine.

There were several thngs I didn’t care for about GoDaddy: their sexist TV advertising, the fact that at one time, prior to the public uproar over it, they had backed SOPA and PIPA, and then they had a high profile security breach a few months ago, which didn’t seem to affect me one way or another, but made me lose confidence in them.

They also had some other issues, for example, they would email me an awful lot, to the point where it was really spamming me. And the experience of actually registering my domain with them involved a great deal of very aggressive “upsell” and e-checkout spam that made the entire process annoying, about as annoying as trying to order anything from Dell, and it was unclear what many of the additional products they sold even were, let alone what they did, and whether they were something I needed for my purposes, or a good idea, and so on.

So my registration finally came up for renewal, and I opted to transfer DNS to 1and1. I didn’t do a whole lot of comparison shopping, just asked around and people who’s opinions I regarded highly said they were OK. A few people said DNSimple was good, too.

Transferring this domain to the new registrar was not entirely easy, but I managed to go through all the hoops and set things up. The name finally transferred over today, and for some reason at first 1and1 seemed at first to be using my hosts’ name servers, which was good, but then a little bit later, this updated and they were using their own nameservers, which caused my site to go down for a few hours. I had to log in to my account and reset them back, but it still took about two hours to resume resolving properly :-( I’m not sure whether this was my own mistake, or theirs, but it’s resolved now.

Hopefully this will be the only problem that I have.

New Page: Recommendations

As an experiment, I’ve created a new page for the site, Recommendations.

Here, I provide a list of recommended books, in no particular order, that you should read, and will probably broaden this in time to include movies and games that I think are good, too.

I’m using Amazon’s Associate program for the links, so if you click them it’ll get me a little money, which is always a good thing.

Accordingly this also marks my first step toward monetizing the content on the site. I don’t really expect this to be a big money maker or anything, but we’ll see how it does. Mainly, I’m just interested in getting people to read stuff that I found useful or insightful, and sharing a bit of opinion about it.

Seidio 3800mah extended battery: suddenly it’s like I have a phone

Since I got my Android phone in May, I figure it’s a good time now to revisit my earlier review.

After six months of having my phone, I established a routine I’ll call the Battery Anxiety Lifestyle. I would drive to work, about a 40-minute drive, and between unplugging from my charger when I woke up and getting to work, I’d have already lost anywhere from 5-10% of my charge. By noon, I was down to about 70%, and by the time I got done with lunch, I was at 50% and entering “power saving mode”. I’d plug in to re-charge and by mid afternoon I’d be back up to 100%, and have enough battery to get me through an evening of being not umbilicaled to a wall socket. And, well, as long as I got home by around midnight or so, I’d be down to around 20-50% depending on how much I used the handset in the evening.

Plainly, the Samsung Galaxy S2 is geared toward a sedentary lifestyle, where you’re never inconvenienced by having to sit tight by a wall outlet for a couple hours. At least, that’s how it works if you actually use your phone.

I got sick of that, and last week I broke down and bought a $60 extended battery from Amazon. It’s a Seidio 3800mah and today was my first day with it in, and I feel liberated. I didn’t have to charge in the middle of the afternoon, and I’m still above 50% charge at 8:30pm. I really have to wonder why this isn’t the way it is for everyone, why you have to spend another $60 to get a special battery to have a phone that you can actually use.

The biggest problem with this bigger battery is that it requires a bulging back plate. Now, I don’t mind the added mass or bulk at all, but no one seems to make any kind of protective armor case that will fit the handset with the extended battery in place. So I have to adjust to transitioning from Battery Anxiety to Drop Paranoia. To try to protect the handset a little, I bought a soft, silicone rubber case for around $3, and cut out the back of it so the bulkier backplate protrudes outward. It basically gives me a bumper around the edge of the phone, which I hope will be adequate protection in the event I drop it on a hard surface.

I really don’t like this solution, for a number of reasons: One, the cutting job I did looks like a sixth grader’s shop project. Two, I don’t think it fits or protects as well as before I cut it. Three, it covers the side buttons for power and volume. You can feel them through the case, and press them still, but it feels a lot less precise. Still, I consider the battery capacity to be essential, and so I’ll have to live with it. I’m usually very careful and protective of my handset and don’t drop it very often, so hopefully it’ll hold up.

Before I switched to the bulkier battery, I was using a hard Body Glove case that I liked a lot. This chopped soft silicone boot is passable, but inferior. I really want there to be armored cases designed for extended battery covers! No one seems to make them, and they should. Really, the extended battery should be mandatory, and ruggedized phones should be mandatory as well. I don’t understand how people can get by with a dinky battery and an unprotected handset. There’s a ton of accessories out there for the Galaxy SII, yet no one makes an armored protective case for an SII using an extended battery. There should be. Most people with an extended battery would buy one, and their existence would probably boost sales of the batteries.

GameMaker HTML5 – deeper impressions

For Ludum Dare 24, I worked on my project in Game Maker: Studio, and did most of my development work targeting HTMl5. I produced a Windows build as well as an HTML5 build, and have spent a lot of time enhancing the game since the compo deadline.

This has afforded me the opportunity to become much more familiar with GameMaker’s HTML5 shortcomings, so it seems like a good time to follow up on my initial impressions from the January beta. While most of the basic features are solid, there’s still a lot of bugs, unsupported features, and inconsistent implementations in the HTML5 runner. Unfortunately, it adds up to make the HTML5 module a bit lacking for serious game development.

Don’t get me wrong — it’s still very possible to make a decent, playable HTML5 game with GameMaker Studio. Just, if you’re hoping to be able to do absolutely everything in HTML5 as you can in Windows, you’re in for a long wait. While much of the framework runs equivalently, there are a lot of minor differences. And while these are minor details, producing a polished, professional game is all about minor details, and getting them right.

I still think there is a lot of promise for HTML5, but W3C, WHATWG, and the major browser developers have to pull together to solidify the technology standards. YYG can’t do some of the things with the HTML5 runner that they currently do in the Windows runner, without this happening. To their credit, they have been releasing updates rapidly, patching bugs almost weekly.

Unfortunately, this means that HTML5 games built in GameMaker Studio are not going to be as pretty or as polished as Flash can be, at least for the foreseeable future. Of course, Flash has many of its own problems: with the rise of the open HTML5 standards, Flash’s future is in doubt, and it seems to be in decline, so it’s not like it’s a great platform to pick up right now if you’re not already well versed in it. Unfortunately, the usurper isn’t quite ready yet. The W3C recently announced the HTML5 recommendation will be finalized in 2014, but even once that has been accomplished, it’s still up to the browser developers to support the standard consistently and completely — something they were never able to accomplish with HTML4. This points to HTML5 being a less solid platform than game developers might hope for.

Here’s some of the shortcomings I ran into while developing Karyote.

Color blending

The Game Maker HTML5 runner doesn’t support all the color blending modes that the Windows runner does. Color blending effects really make games look great when done well, so this is a huge disappointment graphically. I submitted a bug report for this and YYG closed it saying they can’t do anything to address it until the web standards catch up.

Surfaces

Surfaces kindof work in HTML5, but I have a major problem with my implementation in Karyote. Somehow, the game broke when I added a drawing surface, such that in normal run mode, most of the objects in the game don’t draw/don’t exist. I don’t have any understanding why, either.

It works fine in Windows, but in my HTML5 build it doesn’t work unless running in debug mode. The problem only exists when the game is not running in debug_mode, so debug mode is not helpful for me to trouble shoot with. In fact, the running version that I have up of the enhanced build currently is running in debug_mode, with the debug console hidden with CSS.

Creating sprites – no control over collision masks

This was my first game where I implemented procedurally generated sprites, and they work great in my Windows build, but not in HTML5. For some reason, when I create my sprite in HTML5, they don’t get a correct collision mask, and end up with a mask that is much too large, resulting in poor hit detection. It seems the collision mask is set to match the bounding box of the sprite, rather than the image. In the Windows build, the sprite automatically gets an accurate, precise collision mask.

There’s a gml function sprite_collision_mask() which is supposed to allow me to set the collision mask, but this doesn’t work in HTML5, either. In reading up on the issue, I learned this is a bug, and there’s presently a workaround available by using sprite_duplicate(), but this approach apparently can cause excess memory consumption and/or performance issues.

Drawing round objects are approximated

If I draw_circle() in gml, I don’t get a true circle. I get a polygon which has enough sides to reasonably approximate a circle, as long as the radius is sufficiently small. For even a moderately sized circle, you can see the flat edges and corners. Smooth, scalable vector graphics like you’d expect to see in an SVG or Flash animation don’t seem to be implemented yet.

Update: There’s a gml function, draw_set_circle_precision(), which can be used to set the number of sides in your circle-approximating polygon between 4 and 64. The more sides in your pseudo-circle, the slower they are drawn. This still isn’t a true circle, and will still have smoothness issues when scaled very large, but it’s better than nothing.

Conclusion

I still see much potential for HTML5 games, but until these issues have been fixed, it’s going to be hard for GM:Studio developers to equal the graphical quality of a good Flash developer. HTML5 is the heir apparent to replace Flash, but it’s still emerging and has yet to establish itself as a mature technology, and it will likely be a few years before this will happen.

Meanwhile, Flash is not the best game development platform, either, and it’s not the best web application platform, and while it’s under steady assault due to the mobile market spurning it, it’s still a more mature technology, and there are game development frameworks for it. While I can’t really recommend Flash to a new developer, if you’re a seasoned Flash developer you may want to stick with Flash for web browser games for a while longer yet, unless you really want to reach the mobile device market yet don’t want to do native development for some reason. But really, the answer for mobile devices is to do native development — the difference between a native Android or iOS game and what can be delivered through HTML5 is like night and day.

Or, if you’re really looking to make web browser games, you may want to take a look at some of the competing technologies, such as Construct, or Unity 3D, native HTML5, or something else.

GameMaker has some definite strengths, and is making steady strides, but the battle is far from over and there are other legitimate contenders in the market.

If you use GameMaker for other platforms, the HTML5 module is still worthwhile, but you’re not going to be able to do absolutely everything you want to be able to do with it. Buying it now still gives you a lot of capabilities, and if you haven’t yet, you’ll probably want to get started now in order to get familiar with them so that you’ll be ready to deliver robust, high quality games once the technology catches up. Waiting until the platform is perfect before jumping in is just not a good idea, as you want to have as much of a head start as you can get to sharpen your skills.

You’ll need to HTML5-ify a version of your project to work around some of the limitations of HTML5. Use your source control and fork a branch for your HMTL5 customizations and workarounds.

An HTML5 game has a lot of potential to be a good way to entice players to try your game, and may lead them to download your other builds, by providing a limited demo that runs right in their browser. And there are plenty of games that you can make right now that are “fully featured” as long as you don’t require the things that HTML5 isn’t capable of delivering right now. But if you want something with a lot of eye candy, the equal to what you can currently do on your Windows GameMaker projects, it’s just not there today.

Ingenuity Fest

This weekend is Ingenuity Fest in downtown Cleveland, held this year at North Coast Harbor. Cleveland Game Developers has a space, and we’re hanging out, demoing games and promoting our projects and talking about our craft. A number of our members brought tech demos and projects to show off.

One of the most fun games I’ve seen in some time, BaraBariBall, is on display here in our space. It is not, unfortunately, one of our creations, but it is a lot of fun. It’s a bit like Super Smash Bros., but simplified and with a graphical style reminiscent of the Atari 2600. I really like the graphical style. The animation is particularly well done. And the controls are superb. I never could get into Smash Bros. due to its overly complex controls. Any time I played it, all I could do is mash buttons and hope for the best. With BaraBariBall, the controls are greatly simplified, and this makes the game much more fun. It’s now more of a contest of reflexes and tactics, and less about memorizing and mastering strange controller contortions that unlock special moves.

I can’t wait for this to come out so I can buy it.

We also have JS Joust set up. Again, this isn’t something one of our group created, but it’s fun. It uses the PS3 ice cream cone controller and a Mac OS X computer.

Cleveland Game Developers Matt Perrin, Brian Gessler, and Jarryd Huntley have all brought in projects that they’re working on.

Matt Perrin whipped up an interesting project just for Ingenuity, which he calls Monster Sumo. You draw your own graphics on a sheet of paper, then take a photo with a camera phone and upload your monster to a server. Then you can do battle with another monster created by your opponent. I suggested that this would be a lot of fun to play with a Kinect interface, but for now it’s just controlled with a more traditional input device — I’m not sure if it’s keyboard, or gamepad, or possibly either.

Brian Gessler brought a prototype game that uses Kinect. He described it as kindof a reverse Breakout, where you’re trying to push the wall up and the computer is trying to break holes in it. It looked interesting but unfortunately the laptop he was running it on was having trouble playing it at full speed. Brian promised to do some performance optimization before bringing it back tomorrow.

Jarryd Huntley had a game rigged up to play on an Oscilloscope, in homage to Willie Higinbotham’s original ur-pong, Tennis for Two. Unfortunately, his oscilloscope died just before the festival, and he is trying to source a spare on short notice so he can demo the game.

The Wii U. Texting while Driving?

Nintendo officially announced the launch date and pricing of the Wii U today. We’ve known a few things about it for a while, now, specifically the new controller with its built-in high resolution color touchscreen.

Secondary screens have been done before. The Sega Dreamcast controller had a built-in module that docked in the controller and provited a tiny low-resolution monochrome display, for minigames and private information for multiplayer games. And Nintendo has on occasions done Game Boy/Game Cube crossover games, where part of the game is played on the handheld system and part is played on the TV.

Wii U represents a maturation of the concept, and the first time a very high quality screen was put onto the controller. There are a lot of interesting possibilities that come out of this, succinctly summarized as “asymmetric”, which is fancytalk for “Thing A happens on screen A while Thing B happens on screen B.”

The main strength of 2-screen gaming is this assymetric aspect. Of course, network multiplayer gamers have had this for quite some time. The Wii U seems even more geared toward multiplayer gaming, where the multiple players are together in the same room. One difference I see is that the Wii approach lends itself more to a “shared data/private data” game. While technically this is the way it usually is with network multiplayer gaming, the sharing now becomes more literal.

Most networked PC games give each player “*My* Thing A,” where whatever that thing is, it’s essentially the same for all players, just their view of it. For example, their avatar’s first-person view of the map from its position on the map, with their private data for their health and inventory. Wii U has the potential to give each player a unique “Thing”. A great example of this is given in the recent Penny Arcade strip, depicting a hypoethetical computer-aided role playing game on the Wii U. Unlike the typical computer RPG genre, where the computer acts as the game master, and the world and storyline are all pre-programmed, the Penny Arcade concept shows a DM using the Wii U as a world realization tool, but controlling the world in a more interactive way.

This is great stuff, and I hope we’ll get to see it, but it makes me wonder how the Wii U serves the single-player game. To me, the first thing that occurs to me is that a single-player dual screen game is very much like texting and driving. Diverting attention between two screens is a challenge, but maybe not a rewarding one. There’s definitely potential for novel, interesting new modes of play, but I’m not sure yet how it will take shape.

Hopefully today’s press conference will have shed some light on this. I’m looking foward to finding out later today.

Game Review: Iron Tank (NES)

Iron Tank (1988, SNK) is a mostly-forgotten title for the NES, but deserves more recognition than it’s gotten. I think of it as a spiritual companion to the other great NES WWII Shooter, Capcom’s 1943.

Many of its features were successful in other popular games, but it has enough of its own unique strengths that it can stand up proudly as an innovative game with an experience you will find similar to many other games, but still feeling original and well done, not generic or derivative:

  • Radio communications screen for narrative elements (Bionic Commando, Metal Gear). The radio will sometimes give you warning about upcoming challenges, or some mission background to explain why you’re here and what you need to do. This is mostly inessential because the mission is always “Stay alive, destroy enemies, and advance, and destroy a boss.” but it still gives the game a story of sorts. Often the radio message will be “too late” advice, warning you to be careful about a challenge you just got through. Toward the end, the enemy starts broadcasting to you, threatening/begging out of desperation to get you to turn back. This boosts your ego, and is a neat reward for the player.
  • Configurable power up system (many NES games featured this, but Iron Tank’s is unique in its implementation, but perhaps could be described as a combination of Mega Man and 1943.) Your main gun has four different types of power boosts — Long range, Rapid fire, Armor Piercing, and Bomb shells — which you refill through pickups.The pickups are odd in that they are letters which sometimes don’t have an obvious relationship to the power boost they represent. L = Long Range (ok, fair); V = Rapid (velocity?); F = Armor piercing (huh?); B = Bomb Shells (right). Rather than remain enabled until expended or a timer runs out, you can enable/disable them on a sub-screen as needed. This means there’s strategy to the game — you can save up your power and use it when you hit a really tough spot in the game. Managing your power-up resources is critical to winning. Knowing when you need them, and deciding what you need at a given time, and balancing that against the yet unknown challenges that lie even further ahead makes for a cerebral game that layers on top of the action game. There are times when an obvious approach of using power-ups isn’t really necessary, because a subtler strategy will enable you to get by with a stock configured tank, and it often pays off to take the harder challenge now, conserving the power boosts for an even more difficult challenge later.
  • The most interesting power-up mechanic is the [R]efuel tank, which gives you a secondary life bar that extends your primary life bar — but only if you choose to have it enabled. Another interesting thing is that you can both shoot and run over foot soldiers — and the game seems to encourage you to run them over, as doing so gives you a tiny but vital boost to your main energy.
  • Infinite continues, and a password save feature, allowing the game to be longer than would otherwise be practical to beat in one sitting, and not punishing the player too severely for not being able to make it through the challenging parts of the game, and allowing therefore for those parts of the game to be even more challenging.

Basic gameplay

There’s a very good “Let’s Play” series on YouTube, if you aren’t familiar or need to get reacquainted. You are Iron Snake, commander of the Iron Tank, invading Normandy and liberating Europe from an implied but unnamed Nazi occupation. And by “liberate” I definitely mean “blow the hell out of.” Actually, there are occasional resistance fighters and POWs who you’ll rescue throughout the game, as well.

Controls

Controls are often a weak point in games featuring tanks. Not so in Iron Tank. Your tank features an aimable turret, which allows you move and aim independently. The way this was implemented on the standard NES gamepad was effective — hold button B and the D-pad controls the turret. This takes a little getting used to, but is very effective and you can be quite nimble with practice. Being able to aim to the side or diagonal and strafe is an important tactic, and makes the game more realistic and more fun.

Graphics

There is a huge variety of tile-based backgrounds, for simulating the European countryside, cities, docks, airplane hangers, the Normandy beach, cliffs, trees, roads, paths, rail tracks, fortresses, you name it. Even for the 8-bit NES, these are a little rough in spots, though never truly bad, and the variety makes up for it.

Music

The music in Iron Tank is really first rate. It is heroic and epic, evokes both the military marches and the WWII era, adds drama and tension, and provides cues to when more challenging areas are up ahead. Most of the music is in the lower and mid octaves, which gives it a characteristic unlike most other background music on the NES, while seeming suitable for a game about tanks.

Enemies

There really isn’t anything in Iron Tank sophisticated enough to call AI. The enemies all move in basic, simple patterns and pre-set routes, but a lot of variety makes the game challenging. Some tanks sit still, others chase you, while others seem to stand off at a distance and duck and feint, and still others will enter, make a quick attack, and then retreat before you can retaliate.

There’s also a great variety of enemies: infantry, officers, tanks, train guns, fortresses, turrets, and boss tanks called “Think Tanks”. I guess they’re hard enough that you need to think about how to defeat them? You even do battle with airplanes and submarines. Of course tanks are the star of the game, and there is a satisfying variety of enemy tanks, different styles of light, medium, and heavy, which vary in their speed, armor, and armament. Some are barely any threat to you, while others necessitate caution.

This variety of enemies invites a variety of tactics, which keeps the game fresh and challenging. The key tactic is avoiding being in range of the enemy cannons, flanking the enemy’s turret when you can, or when that isn’t possible, waiting for a pause in their fire and placing a well-timed shot to take them out. You can also sometimes use your long range shots to safely take out enemies before they’re able to engage you with their own armaments. Individually, their cannon fire is usually not too hard to dodge, being limited to 8 directions, resulting in predictable pie slices of safe zone. It’s not too hard to take out enemy tanks when they don’t outnumber you too badly and there’s plenty of room to maneuver. Sometimes moving slowly and cautiously, taking out the enemies one at a time, picking apart their defenses is the best approach, other times it’s better to just run for it.

Terrain

Some terrain is more open than others, however. The variety of terrain matches the variety of enemies and enemy tactics, and itself influences the tactics that will be most effective in a given area. Although the game is 2D, there are simulated ledges, cliffs, and rooftops where placed guns can harass you, sometimes out of your own reach unless you have some power boosts enabled. There are walls and buildings and natural barriers that can constrain your movements, but provide cover in return. Water likewise blocks your path, but leaves you exposed to fire.

There are wooded areas where the tree canopy foregrounds partially obscure the action beneath them. The NES didn’t have a capability of alpha channel, but they still made the forest sprites partially see-through, so that when you go under them, you can see the unobstructed part of your tank (or lurking enemies) through them. This is really cool.

Insta-kill anti-tank landmines will block your progress along otherwise open and inviting pathways. They blink, being invisible half the time, so can be difficult to spot.

Destructible terrain

While not dynamically destructible, there are enough buildings and walls that you can blow up to uncover secrets or alternate paths that it’s worth mentioning. Being in a tank and not being able to destroy these things just wouldn’t feel right.

Multi-path map

I don’t know of any other NES game that did this, so Iron Tank deserves special recognition for this design. At several points in the game, you’ll encounter road signs that point out a fork in the road. Depending on which path you take, you’ll proceed to a different level, with different terrain and enemies. One path might be more difficult, but you have no way of knowing before you make your choice. This means that in order to experience every bit of the game, you’ll need to play through it multiple times.

Map x-wrapping

Instead of having an edge, the map wraps on the x-axis. There are certain places on the map where there are no side walls, and you are unbounded in your horizontal direction, but in these locales, the map wraps around. While not exactly realistic, it does make for some potentially useful tactics, as you can return to an area by continuing in one direction, without needing to double back.

Overall

Iron Tank is a solid effort from SNK. The game integrates a lot of the features and design elements of successful NES classics, and does it well. While mainly an action game, the story elements provided by the radio communiques and the configurable power-ups give an element of strategy almost like a proto-RPG. It’s one of my favorite lesser-known games on the NES.

See Also

If you liked this game, you’ll want to check out 1943, Guerrilla War, Commando, Jackal, Heavy Barrel and Ikari Warriors. All have a similar WWII/war theme and vertical scrolling shooter gameplay.

Rave: betterexplained.com is the best thing I’ve read today

I am probably going to curl up all weekend with betterexplained.com and brush up on my math. I haven’t been this excited to read about mathematical concepts since I was a high school senior and discovered William Poundstone’s The Recursive Universe. Which was really more about information theory, but that’s a type of math.

What compelling reads in math can you recommend?

  1. William Poundstone: The Recursive Universe
  2. Douglass Hofstadter: Godel Escher Bach: An Eternal Golden Braid
  3. James Gleick: Chaos

Game Maker beta license expiration cuts off access to tools

This past weekend was the Game Maker Community Jam, a 72-hr game development competition sponsored by Yoyogames. I didn’t participate in this one, unfortunately, due to my license for Game Maker Studio being revoked. Here’s what happened:

Back in January, I participated in Global Game Jam, at which I obtained a free, time-limited license for Game Maker: HTML5, then in beta Due to bugs that I encountered with Game Maker HTML5, I had to start over twice after my project became corrupted, for reasons still unknown but hopefully long since fixed by Yoyogames. I ended up completing my project that weekend with my old standby, Game Maker 8.0 Professional. I just barely got it done, but had to sacrifice a lot of sleep and many features that I’d hoped to include as a result of the time/work lost due to the project corruption bug.

A few months later, in April, Yoyogames released Game Maker: Studio beta, which I downloaded, and I began using it. I played with the Studio beta a bit during Ludum Dare 23, but quickly realized that a 48-hr competition is no time to be discovering a new version of a tool, so again I fell back to a stable release, this time Game Maker 8.1. After LD23, I began porting my project, Bactarium, to Studio, refining it along the way.

Some time later, Game Maker Studio concluded its beta testing, and released 1.0. My beta license stopped working, so I had to buy Studio. Yoyogames had made an offer with their Global Game Jam that participants who tried out the HTML5 beta, which they had offered to GGJ participants for free, would be able to get 50% off when it was finally released. So, when I went to their web site to purchase my license, I was expecting to have to pay something. However, when I entered my old HTML5 license, the store allowed me to download the core Studio 1.0, as well as the HTML5 add-on license, for free.

Apparently this was in error, but at the time I had no way to know this, no way to claim the 50% discount that I should have been entitled to. I assumed that Yoyogames was being really gracious to people who participated in the HTML5 and Studio beta program — maybe I was getting two discounts and they stacked? In any case, I would have been willing to pay for the product if the site had been set up to take my money, but it wasn’t, and it didn’t require me to pay anything. The HTML5 license I received at GGJ apparently entitled me to download the GM:Studio 1.0 core, plus the HTML5 module, all for free. I was of course thrilled.

So I downloaded Studio 1.0 and used it, working on bringing Bactarium into Studio so that I could port it to Mac OS X and HTML5, and worked on a few other tech demos as well to familiarize myself with the new features. Things have worked fine up until last week, when I went to download and install the latest update. After installing, when Studio launched it told me that no license was detected and I needed to enter it. Figuring the license data had gotten blown away by the upgrade for some reason, I went through the license recovery process and re-entered my license key. However, Studio refused to accept my key.

I opened a ticket with Yoyogames helpdesk, and promptly received a response within 24 hours, informing me that my license key was no longer valid, as the HTML5 license that I had from Global Game Jam had expired. OK, I can accept that, no big deal. The communication from Yoyogames helpdesk further explained that they would be sending out coupon codes within about a week to people who participated in the beta, so they could get their discount. So, basically, I could choose to wait up to a week for the coupon code, or pay full price now. I would have thought that the old license key itself would have been the discount code, but oh well. I’m electing to wait.

Waiting put me out of participating in the GMC Jam this weekend. Oh, I suppose I could have worked in 8.1 again, but by the time I received the notification from the Yoyogames helpdesk, I’d lost enough time that it didn’t seem like a good idea to try to throw something together. I had other things to do this weekend, so I did them. No regrets about any of it, but it would have been better if the logistics had worked out a little better. I don’t mind the license expiring, since I’d expected it to anyway, and I don’t mind paying for my license, but not being able to purchase with the discount because Yoyogames didn’t think to distribute the discount codes prior to expiring the beta licenses is a bit disappointing.

So, today’s Monday. I still have not received my coupon code, but as they had said it would be happening sometime in the next week, I’ll try to be patient and wait for it to come by Friday, hopefully. I’m really hoping it’ll come through soon.

Darker Implications

One concern I now have is that, in reading up on the way Game Maker currently works, apparently you need to connect to Yoyogames server at least monthly to re-validate your license. This anti-piracy measure goes a bit too far in my opinion, and potentially hurts legitimate users. Copy protection crackers will always find ways to defeat such measures, while legitimate users will always be at risk of having their license killed in error, thereby denying them access to software on their own hard drive, that they paid for.

I can understand why Yoyogames feels they need to control licenses with a phone-home system tied to a remote killswitch, however the potential exists for legitimate users to be left in the cold if Yoyogames decides to kill an old version in order to force everyone to upgrade to their latest. If Yoyogames ever decided to stop supporting this version of Game Maker, or discontinue Game Maker entirely, or go out of business, all the paid-for licenses of the product potentially go bye bye.

It’s one thing to stop supporting an old version of a product, quite another to shut down license servers, effectively killing off the old version so that users are forced to upgrade. To be clear, I’ve seen no indication from Yoyogames that they plan to ever do this to their customers, only that they now have the mechanism available to them that allows them to do so. I sincerely hope that they never do this, as the backlash from the community would be substantial.

I would hope that as a last measure that they’d release some patch that permanently unlocks all licenses so as to prevent this from happening, and if they don’t then I’m sure the cracker community likely will, although this would technically violate the EULA as well as laws such as the Digital Millenium Copyright Act.

Update

It’s Thursday, and I’ve woken up to find the coupon code from Yoyogames waiting for me in my inbox. They’ve changed things up a bit from the original offer, and it’s about the same although I think it works out better from a certain standpoint.

Originally, participants in Global Game Jam were going to get Game Maker HTML5 1.0 (when it was released) for 50% off the originally announced price of $199. Yoyogames was selling beta licenses for half off, so essentially GGJ12 participants were getting access to the beta for free, and paying the same price for the finished product that the beta testers were paying anyway. This was nice because A) you didn’t actually have to pay anything for a beta, and B) you could try before you buy for a few months.

Somewhere along the line, Yoyogames changed their mind about their products and pricing. Game Maker HTML5 1.0 was never released; instead, it was folded into Game Maker Studio, becoming an optional $99 add-on.

As a result, the original deal no longer made any sense. So instead, Yoyogames has substituted Studio. With the coupon, you get the $99 Studio core for free; and if you want the HTML5 module, you pay full price for it.

Comparing to the old deal, this is better in two ways:

  1. You get Studio, which can build to Windows and OS X for free, and you can stop there if you want to.
  2. For the same cost as the original deal, you can buy the HTML5 module and have three build targets instead of two.

My old complaint still stands, that they should have issued the coupons and given developers a week or two to use thembeforedisabling the temporary licenses. On the other hand, apparently those licenses were only supposed to have been good for two months, and I think I got about 6 or 7 months out of mine, and I’m definitely not complaining about that. All in all, a week’s worth of inconvenience is still a week’s worth of inconvenience, but I’m glad that in the end, they’ve given developers who worked with the beta something worthwhile.