Category: GameDev

YoYoGames charging monthly subscription for Game Maker Studio

It looks like GameMaker Studio is finally going subscription-based.

Which makes total sense, and I predicted it about 5 years ago. They denied going to a subscription model at the time, because of course they did. Users at the time weren’t in favor of it, preferring perpetual licensing. But I guess everything changes when you get bought.

Of course, for development tools, everything gets stale if you don’t keep it updated, so a subscription based licensing model probably does make the most sense.

For professionals, anyway. For amateurs and hobbyists, though, it’s a lot of money to pay for a tool if you only use it occasionally. GameMaker’s bread and butter used to be the student/hobbyist/indie developer who could readily afford a one-time price of $40, then $100. Now it’s $100/year, or $9.99/mo. Which is still not that much if you use it a lot, but if you’re just not ready for that type of commitment, there’s really nothing like what GameMaker 8 once was, over a decade ago.

YoYoGames still offers a free edition, intended for student/hobbyist users, but it lacks exports, not even for Desktop OSes, so it’s of extremely limited usefulness for anyone who wants to actually build their projects in order to get feedback from peers and friends.

GameMaker Studio finally coming to Linux?

About 10 years ago, YoYoGames was talking about a Linux IDE for GameMaker Studio on their long-term roadmap. A few years passed, and the roadmap disappeared and all talk about a Linux IDE went silent. It seemed that PlayTech may have been responsible for killing the project when they bought YoYoGames.

I’d given up all hope of a GameMaker IDE on Linux long ago, but a few days ago, this article crossed my newsfeed. It looks like new YoYoGame owners Opera is developing a port, currently in beta. It appears it will be supported on Ubuntu only, but that’s better than zero Linux distros, and Ubuntu is a pretty good choice.

This would have really excited me a decade ago, and would have been the last obstacle to me completely ditching Microsoft. While better late than never, it’s still not really here yet. It sounds like the beta currently has some rather severe issues that make it less than suitable for production at this time. Hopefully this will change quickly. It will be interesting to watch and see how it goes in the coming weeks.

“Life as a Bokoblin” BOTW mock-documentary suggests deeper gameplay possibilities

I absolutely love this beautifully produced fake documentary that was published last week.

Imagine the gameplay possibilities. In BOTW, all we can really do with Bokoblins is kill them or ignore them. Occasionally there are encounters where we run into Bokoblins harassing some Hylian travelers or hunting animals. These encounters have their purpose — they allow Link to rescue the Hylians and do something heroic, while the hunting parties provide a demonstration to the player that hunting is possible activity that they could participate in themselves in the game.

But these encounters are somewhat limited and shallow. They don’t build and develop to anything greater. They hint at what could be, however, and I find the possibilities tantalizing.

This video shows potential for a much greater depth possible in the game. If you unlock the “monster shop” Fang and Bone, operated by the creepy, nocturnal Kilton, you can buy monster themed items, including a mask. These masks can be used to fool enemies of the type that the mask is of that you are one of them, allowing you to encounter them without having to fight them. The items from Fang and Bone are not really crucial to completing the game — in fact, they’re completely unnecessary. And in my run through the game, I encountered the shop very late in my exploration of Hyrule, and thus had accumulated so much power that the shop seemed almost pointless. I didn’t need disguises at this point — I was already comfortable hunting down Lynels and Dragons. So I did not explore these possibilities and discover this area of the game very much at all. Clearly, I missed out on some enjoyable, amusing bokoblin antics by not diving into this aspect of the game more.

As I played through Breath of the Wild, I often felt guilty about killing the Bokoblin enemies. They’re almost cute, they’re almost not really dangerous, and it’s clear from their scripted idle behavior that they have a tight-knit tribal culture.

They hunt, they sit around their camp fires, they cook, they dance, they sleep. Sure, they don’t differentiate between people and prey animals as much as we’d prefer, and Bokoblins might get nasty if they detect a threat, but can you blame them? They’re just trying to survive. Why can’t we just get along?

A problem I have with Breath of the Wild is that for being a vast game, it’s depth doesn’t really match its breadth, and thus the game begins to feel repetitive after a certain point. You usually encounter Bokoblins in camps, and they’re pretty much all the same. There’s a camp fire, a few bokoblins sitting about, maybe a cave or some other shelter, a couple of watch towers. You can approach pretty closely and they mostly won’t notice you. And when you grow tired with scouting about the edge of their range of vision, you can pretty much run up at any point and straight up murder them through button mashing without much risk.

They don’t fight very well — your attacks almost never miss, almost always disrupt them, and if you’re just full-on aggressive with them, you can keep them reeling and beat on them repeatedly until they die, which doesn’t usually take very long. Conversely, their attacks aren’t too strong, usually have a big windup that telegraphs to you that you need to either dodge or interdict with a pre-emptive counter attack of your own, and if they do hit you, they will hurt a bit, but you’ll probably be able to shrug it off and hit back and gain the upper hand.

I like bokoblins, and I think they have a lot of potential, but I just don’t find them as interesting as they could have been if they’d been developed a bit more. It seems like a shame, because it feels like a considerable amount of work went into developing them to the point that they were. They exhibit a lot of different behaviors and it gives them personality. The bokoblin documentary shows this quite well. But there’s not that much that you can really do with them, or need to do with them, beyond slaughtering them whenever you encounter them.

This video, though, shows a glimpse of what could have been. Imagine if there were alternatives to fighting that were not just viable, but interesting, rewarding, and even necessary.

Imagine if you could help an injured or trapped bokoblin, and gain its trust.

Imagine if you could approach a camp of freezing, starving bokoblins, and if you approached with your weapons un-equipped, they didn’t immediately regard you as a threat, and if you approached them with your hand outstretched, holding a food item, they would tentatively approach and you could give them the food and then they’d be grateful.

What could they then offer you? Might they trade with you for something that they own, or guard? Might they show you a secret, or allow safe passage through a difficult to get to part of the map? Might you learn how to co-exist peacefully, and put an end to the age-old conflict once the evil Ganon is finally defeated? Might you become an honorary member of their hunting band, and gain allies who come to your aid later when you’re ambushed by another band of hostiles?

I’ve been playing video games for nearly four decades now, and as games become more realistic and immersive, I find myself wanting that reality to offer me solutions to conflicts other than violence and destruction.

I don’t want to be misunderstood in saying this. During my whole life, there has been a pushback against violence in video games. I like videogames, and I like violent videogames. I like shooting everything on the screen, and games where you do nothing but destroy and fight never ending waves of enemies. I just have played enough of them.

I think game designers can challenge themselves, advance the state of the art, and delight players by providing different challenges and different solutions to problems apart from straightforward brute force. And to be fair, Breath of the Wild does this, quite a bit more than most games. It’s just that most of these alternative approaches apply themselves to the games physics puzzles than to dealing with foes. When it comes to foes, you basically can fight, run away, or avoid. The combat system does offer a lot of variety. But what if you encountered foes and didn’t have to fight or sneak? What if you could bribe, negotiate, deceive, trade?

In the late 1990s, games like Thief received critical acclaim because they tried something different — rather than killing everything in the game to overcome challenges, what about using stealth and trickery to avoid violent confrontation that is designed to be impossible to overcome? Nearly 25 years later, I want still more options.

Even in the original Legend of Zelda, we didn’t always fight enemy creatures. Moblins were an overworld enemy who hurled spears at us, and our options were to fight or avoid. But not all of them behaved as enemies.

Legend of Zelda - It's a secret to everybody
Even in the original Legend of Zelda, some monsters weren’t hostile.

And who could forget the hungry Goriya from Level 7, who cannot be fought, only placated with food?

The hungry Goriya from Legend of Zelda's 7th dungeon
Another early hint at the possibility of non-violent challenges, the hungry Goriya from Legend of Zelda’s 7th dungeon, who can only be defeated by an offering of food.

There are encounters in Breath of the Wild where Link can give an NPC food or another item, so this sort of interaction with bokoblins wouldn’t be unprecedented, and indeed would have seemed fitting and natural, and a callback to earlier Zelda adventures.

I have a feeling that we’ll get to see such complex, multifaceted interactions in games eventually, and probably we don’t have too much longer to wait for it.

PlayTech sells YoYoGames, GameMaker to Opera

Five years ago, YoYoGames was acquired by PlayTech. Today, I see the news that they have sold the company off for a loss of about $6.4M. Update: It’s come to light that the new owner is Opera.

It was a $16.4M purchase in 2015, and during this time they put a ton of development into GMS 2, released it, and so it’s a bit concerning that this hasn’t resulted in YoYoGames becoming a more valuable property.

On the other hand, I can well understand it. In the past several years, I have never felt comfortable with the new GMS 2.x UI. I find it awkward, unintuitive, ugly, and frustrating to use compared to the GMS 1.4 and earlier versions that I learned first. And at the same time, competing technologies like Unity 3D, Unreal Engine, and Godot been strong competition.

From a coding standpoint, there’s no question that the GML programming language has gotten better and better as YoYoGames continued to develop it.

From a UX standpoint, it’s been a crapshoot. The UI has some nominal improvements, but overall I feel like they changed too much too fast, and I could never get used to it. I spend way more time looking for the feature I want to use, and then wondering why it doesn’t work the way I think it should, and it completely kills my productivity and along with it my desire to work with the tool.

In fact, it’s a big part of why I haven’t done much game development in the last year, and have mostly dropped out of the pursuit.

I hope the new owner does better and continues to make improvements with GameMaker. It was very good at its original intended purpose of making it easy for game developers who are not primarily programmers to create simple 2-D games.

Many amazing games have been built with GameMaker over the last 22 years, which shows clearly the merit of putting simple, usable tools into the hands of creators who wouldn’t know where to begin with tools intended for professional programmers. Hopefully even more will be made in the years go come.

It will be interesting to see what the new owner does with the property. I want to see a product like GameMaker continue to serve the market it has traditionally done well with, while offering features that make it viable for professional game developers as a first rate tool.

Playing REDDER (Anna Anthropy) in 2020

Usually we hate to forget things. But one of the best things about being able to forget is that you can have a cherished experienced again as though for the first time.

REDDER was a game by indie game developer Anna Anthropy and first released on the web in 2010. I played it for the first time not long after, and it remains to this day one of my favorite puzzle platform games. Few games have made me want to design my own games as much as REDDER, and that’s perhaps the highest compliment I can think of to give it.

I’ve re-played it multiple times since then, and always enjoy it so much.

This year is the first year that Adobe has ended support for Flash, the technology that REDDER was originally built on. I have written previously on the impending death of Flash, and what that means for tens of thousands of video games that were built with it during its 25+ year history.

I feared that this would result in a vast, rich cultural legacy becoming more and more inaccessible. I still fear that. Adobe didn’t just drop support for Flash, didn’t just cease continuing development of it. They pulled the plug. Browsers stopped supporting it, so now in order to run Flash objects in a browser, one needs to keep an outdated browser. This of course has its own problems, and very few people will continue do do it. Moreover, as the userbase moves into a post-flash browser-scape, web hosts will over time have less and less incentive to continue hosting legacy Flash experiences, and in time perhaps the only ones that will persist will be deliberate historical preservation efforts.

That’s a damn shame, because REDDER belongs in the Smithsonian, or the Library of Congress, or both.

Fortunately, Anna Anthropy has re-packaged Redder, in a desktop OS format that wraps a Flash player into stand-alone application, and allows it to be enjoyed on Windows and Mac OS X. It is available for $5 on itch.io, and is worth every penny.

What a beautiful thing it is that I can forget this game just enough to be able to come back to it and experience it again, re-discovering the solutions to the maze and helping my little space explorer friend in their quest to collect all the diamonds to replenish his stranded spaceship.

The platforming is basic. You move, you jump, that’s it. There’s no wall jumps, no edge hanging, no coyote time, it’s pure basic simple. There’s no shooting, no destroying enemies. Your only tools are your brain, to figure out how to get past obstacles and get to where you need to go, and your agility, to accomplish the task. There are save points, to make the deadly obstacles a lot less annoying. There are switches to flip, which toggle special colored platforms into and out of existence, which serve as doors and platforms that block your way or create bridges to access deeper reaches of the world or traverse deadly obstacles to add an element of risk to the challenges you’ll face. When one type is on, the other type is off. And together they serve as the building block of the platform puzzles you’ll need to solve to win the game.

As you progress through the game, the graphics and music begin to glitch. It’s subtle at first, a tile here and there, and it adds an element of mystery to the game. As you continue to collect diamonds, the glitching increases, until, near the end the entire game is out of control with random tile animations. When the final diamond is collected, the entire facade is stripped bare, and everything turns into raw collision boxes, color coded — a clean, pure visual language.

At the end of the game, visuals stripped bare, at last we can behold the simple beauty of REDDER.

There are only three types of hazard in the game: patrolling robots, which traverse horizontally and are deadly to touch but never react to your presence in any other way; “drip guns”, which shoot deadly pellets that you must duck, jump, or otherwise avoid with good timing, and electrical fields which don’t move and must be avoided.

For all its simplicity, the game provides an engaging challenge to find your way through the complex, maze-like alien world, and collect all 27 diamonds.

One thing I love about REDDER is that there are no locks. You start out with all your powers, and apart from the switch platforms that are the only real puzzles blocking your progress, there’s nothing preventing you from doing anything, going anywhere that you can go in the game, from start to finish.

What I love about this is that this forces the design to challenge you in ways other than “oh if you get the item, you can get past this”. This comes down to understanding the map — the twisting, interconnected pathways connecting the grid of screens that comprise the world of REDDER, how platforms and switches relate to one another, flipping switches in the correct order to allow passage, and having a modest desgree of skill to master the timing and agility needed to make the jumps and avoid the dangers.

It’s a casual play — I would call the vibe relaxing. The music is soothing and evokes a spirit of exploration and puzzle solving. The game provides a fun challenge without relying on fear, anxiety, or frustration. Toward the end of the game, as the graphics and background music become increasingly glitch-ified, the game does start to produce a bit of anxiety. If you’re playing the game late at night, it can almost feel like your lack of sleep is to blame for the game’s breaking down. I really like this. To me it is the “something extra” that gives the game a memorable mystery, a question left unanswered, which both frees and empowers the player to come up with their own explanation, should they choose to.

Additionally there are three secret hidden rooms off-map. These serve no purpose other than to delight you for finding them, and perhaps provide a clue or an auteur’s signature.

BORR
ROB?
OWOR

It seems there have been a few changes from the original in this version. I don’t remember these secret rooms having these messages — a web search reveals that the original REDDER had secret rooms with the words “ANNA” “TRAP” and “PART”. TRAP and PART are of course pairs that make a palindrome, and ANNA is a palindrome, and REDDER is a palindrome. There’s something up with palindromes in this game.

But I don’t know what ROB? OWOR and BORR mean. It makes me wonder what else may have changed, and why the changes were made.

Tangle: A simple Snake clone

After about a year of not feeling like doing anything related to game development, last night I felt like making something. 

So I stayed up all night and made a simple Snake clone that I call Tangle. 

There’s nothing special about this project, it’s just a bare bones, no frills clone of the classic snake game, but I think for a few hours work it’s decently well done, and it plays well. 

I think it took about 2-4 hours to build, and would have taken about a quarter that if it wasn’t for the fact that I haven’t done anything with GameMaker in a long time, and have never felt comfortable using GMS2’s revamped IDE.  It’s minimalist, so don’t expect a whole lot, is what I’m trying to say.  But enjoy it for what it is.

itch.io

play in browser

I never liked Donkey Kong

There. I said it.

Donkey Kong is the foundation of a modern business empire, a cultural cornerstone, the genesis story of the Marioverse. Not liking Donkey Kong is something akin to blasphemy. I gave it a shot. I wanted to like it. But I just never liked it.

I feel like I am about to regret one quarter just looking at this screen capture.

I first played Donkey Kong when it was new, in the Arcade, on Atari, and ColecoVision, and I never considered it one of my favorites. It was a smash hit when it came out, sold tens of thousands of arcade cabinets, swallowed hundreds of millions of quarters, sold millions of cartridges on home consoles, and been ported to just about every console of its generation and the next few after. It was groundbreaking, both technically and in terms of game mechanics and narrative.

I recognize all of that, and I still don’t care for the game. I respect it for its accomplishments, but yet I don’t like it. I can’t enjoy playing it.

This isn’t merely a statement of opinion or taste; I don’t enjoy playing Donkey Kong, and I don’t find it to be a particularly well-designed game.

Let’s talk about that.

Barrels – the first screen

How high can you climb?

Donkey Kong is very difficult and unforgiving. Part of its difficulty stems from the tight window for clearing dangerous obstacles, and the narrow clearance for successful jumps. But much of it comes from design choices that tend to make the game feel unfair.

Jumping

Jumping is the key mechanic around which the whole game is based. Yet, the jumping mechanic is rough. When you jump, you can’t change direction or height, so you’re committed to the path of the jump until you land. This makes jumping risky and hard. When you make a mistake, there’s no second chances. You know you’re going to die, and there’s nothing you can do but watch and wait for it.

You can’t jump very high — just the exact height to clear a barrel or fireball, and the exact distance to clear two barrels if they’re right next to each other… barely. Miss a jump by a little bit and you’re dead.

On the first screen, some of the ramps look like they might be close enough together to allow Jumpman to jump up to the next platform from the one below, but that is not permitted. You can only ascend to the next platform by climbing a ladder.

Not that you’d normally ever want to, but you can’t jump down from the edge of a ramp to the one below, either — the height is not great, but it will still kill you.

If you jump off a platform, you die if you fall just a short distance. Jumpman can’t survive falling any farther than the peak height of his jump.

Ladders

You can’t get off a ladder until you get allll the way up to the top of it, or allll the way to the bottom. Very often, you’ll think you’re there, and try to move left or right, only to find that you’re still locked onto the ladder and unable to move. A better design would have been to treat horizontal joystick input as continuing Jumpman’s previous climbing direction, moving him the rest of the way up/down the ladder until he is clear.

There’s no jumping from a ladder, either. Allowing this would make the game play feel less stiff, and give the player greater control and flexibility. It seems like Jumpman should maybe be able to reach up from the lower ladder to grab the bottom rung of the upper half and climb up, or to jump off from the top of the broken ladder to get some extra distance and height out of the move. And, surely, if only he could only jump vertically from the top of the ladder, you’d be able to reach the top half and continue up. But no, he can’t do any of these things.

Some of the ladders are broken, turning the ladder into a deadly dead-end. You can climb up them, but only get part-way. Even if you’re at the very top rung of the bottom half of a broken ladder, barrels rolling by below you will still hit you and kill you, even though you’re well off the ground. It’d be nice if the game gave you a break and decided there was enough clearance that you could be safe here. And a barrel that decides to roll down from the platform above and take the ladder path will also kill you. If it does, there’s no way you have time to get out of the way in time; you’re a sitting duck You’re stuck on the broken ladder until you backtrack down and get off. If you could jump off the ladder, or jump to clear the gap where the ladder broke, you’d have one more option, open up possibilities, a chance to dodge out of the way, and it would make the game feel a little more fair. But Donkey Kong doesn’t give this to you.

Hammer

The Hammer power-up allows Jumpman to fight back against the barrels and fireballs that are his bane, and earn extra points. But this comes at a cost.

Jumpman can’t climb ladders with the hammer, and cannot jump. This means he is stuck on the platform where he grabbed the hammer, for as long as the hammer persists.

The hammer is a temporary item, which runs on a timer that ends after a few seconds, but without warning. You can be right about to smash a barrel when suddenly the hammer disappears, leaving you defenseless and no time to jump out of the way. And if that happens, again you have no choice but to die. This feels unfair. To fix this problem, the game should give the player a cue to let them know that their hammer time is about to expire — blinking or an audio signal would be helpful. And maybe if the game detects that Jumpman is facing a barrel, and it is within a “close enough” distance just as time is about to expire, give the hammer enough extra frames before despawning it to allow the barrel to be busted, avoiding what would otherwise feel like an unfair death.

Since the levels are timed, and running out of time will kill you, and you can’t clear the level when you have the hammer because you can’t climb with it, getting the hammer can screw you if you grab it while the timer is running low.

As well, your remaining time gives you bonus points, so being forced by the hammer to wait before you can finish the level can actually cost you points, unless you can smash enough barrels/fireballs to make up for the lost bonus time, and make it worthwhile. It would be better if you could cancel the hammer early, or if you could still climb and jump while holding it. Or, perhaps hitting the jump button while holding the hammer could make Jumpman throw the hammer, giving you a useful way to cancel it early, and a ranged attack that could come in handy and give you one more option.

The hammer may make you seem invincible, but you can still be killed if a barrel gets past the hammer to touch Jumpman. Most players don’t realize this until, soon enough, they learn it the hard way. A barrel coming down a ladder can be hit by the hammer, but if it swings out of the way and the timing is just wrong, the barrel may hit Jumpman in the head before the hammer swings back up. Likewise, the rolling barrels may approach Jumpman from behind, or roll under the hammer while it is swinging above Jumpman’s head. The swinging of the hammer is automatic, not controlled by the player, so whether the hammer hits the barrel or the barrel gets through is somewhat random. Usually Jumpman will hit, but once in a while the barrel will get through. I would fix this design issue by making Jumpman invincible from the front while holding the hammer, but still let him take hits from above and the rear.

Barrels/fireballs

Barrel pathing is pernicious; whether a barrel will go down a ladder or continue down the ramp can’t be known for absolutely certain, but it seems that barrels are more likely to go down the ladder if you’re on the ladder, making using ladders especially deadly. It makes you paranoid to avoid starting up a ladder until any approaching barrels have cleared the ladder you need to climb. To some extent, you can manipulate the barrel AI by your position and direction, as the enemies will tend to take the path that is least advantageous to you. So by standing to one side or the other of a ladder, and facing the right direction, you can often influence the barrel to take the short path or the long path.

Barrel spacing is too random and can often kill you unfairly. Donkey Kong will sometimes roll two barrels at you too far apart to jump both together, and too close together to jump the first one and then immediately jump the next one.

Sometimes DK will toss a barrel that will go straight diagonally down the screen, ignoring collisions with the ramps. These move extremely fast and are unpredictable, making them all but impossible to dodge. If you happen to be in their path, at the top of the screen, you have almost no warning and no time to get out of the way.

Collisions with barrels will kill you with any overlap — even if you’re standing on the platform below, with your head poking above the next level, a barrel rolling along that level will collide with you and kill you. An if it passes below and clips your feet even a little, while you’re on a ladder, it’ll kill you as well. Collision boxes could have been made smaller, to make slight collisions forgiving, and allow for exciting “close calls” rather than cruel kills.

Rivets screen

Rivets – the final level (but also the 2nd one you reach, for some reason)

You clear this screen by popping all the rivets out of the girders, causing the structure to collapse. You clear the rivets by walking over them. This creates a narrow gap between the two rivets, really it’s just a crack. It looks narrow enough that you should easily be able to walk over it without inconvenience, much less danger. Yet, if you try, you find that Jumpman will fall through this narrow gap, to his death. This could have been nerfed by making you stop at the edge of these gaps rather than fall, or by allowing you to step over them unimpeded.

In later Mario games, Mario has the ability to fall any distance without injury, so long as he doesn’t fall into a bottomless pit. In Donkey Kong, though, Jumpman can’t fall any distance greater than the height he can jump. This means you have a lot less options and possibilities for moving around a level. The result is the controls feel stiff and uncomfortable.

You can grab a hammer on this level, as well, and if you do, you’ll be stuck walking back and forth on the girder you’re on, unable to walk over any gaps created by a missing rivet. This often means waiting for several seconds on one of the smaller side platforms, unable to climb up or down the ladders, and unable to cross the rivet gap. When you have the hammer, the fireball enemies that move around this level will often keep out of your reach, unless they happen to already be on that platform with you, seemingly waiting for your hammer time to end, so they can swarm you the instant you’re again vulnerable. If this happens, you’re often blocked from multiple sides, or facing two consecutive fireballs spaced so that you can’t clear them with any possible jump. Again, it’s like the game is designed to punish you.

Elevator Screen

Elevators – oh shit.

I could never clear this screen as a kid, not that I got many chances to. To get to it, you have to clear Girders, Rivets, and then Girders again, making the first Elevator screen level the fourth level in the game, and by this time I’m usually out of lives.

The jumps on this screen are very unforgiving, due to the height that Jumpman will fall if he misses the moving elevator platforms that he must land on in order to make his way to the goal. If you mis-time your jump, you may miss the platform, or simply land on it after falling too far. And you don’t have to fall very far to fall too far and trigger a death when you land.

There are bonus objects to pick up on this level, and not very many other scoring opportunities. But the bonus objects are so difficult to reach it’s not really worth it. You’ll waste too much time, or miss a jump and die.

At the end of this level, there’s a bouncing spring that moves horizontally very quickly, bouncing at you before falling down the right side of the screen. This makes any approach up the level involving movement through the right side of the screen especially deadly. It takes pixel perfect timing to avoid this final obstacle, and it’s probably the hardest single challenge to negotiate in the entire game. Apparently (I say, because I’ve never done it) the way to clear this final obstacle is to wait patiently, and time your move so that you can pass through the danger zone between one spring launching and the next. Move at the wrong time, and you’re screwed. It’s possible stand in a specific spot where the spring will bounce over Mario harmlessly. I don’t think it’s possible to jump over the spring; if you can it’s almost certainly not worth the risk.

Pie Factory Screen

Everyone thinks the cement trays are pies, and who am I to argue?

This screen is also known as the cement factory, or the conveyor belt screen. I don’t remember ever playing it, so I don’t really have complaints here. To get here, you need to clear 7 screens, and since I could never get past the Elevator screen in level 4, making it to the Pie Factory was far beyond my ability. It’s also the level that is often omitted from home console ports. I don’t even know what you need to do to clear this screen.

I watched some videos of people playing this level, and it looks like it might one of the more enjoyable levels. A few of the platforms are conveyor belts, which affect Jumpman’s horizontal speed when running on them, depending on which direction you’re facing, they’ll make you slower or faster. This doesn’t seem to affect your jumping ability much, though, because any other objects on these platforms are also affected by the conveyor belt speed.

At the top of the screen are two extension ladders which slide up and down according to a timed pattern. To clear the level, you have to wait for the ladders to extend up, then climb to the top-most platform. This doesn’t seem terribly difficult, although you’ll be at the mercy of the timing if there happen to be any fireball enemies nearby, you may not be able to get past them due to the timing of the ladders.

It’s hard to say without having played it, but all-in-all I think the Pie Factory might actually be one of the easier levels in the game. Which makes it seem strange/questionable that it is the last to be introduced to the player.

Lose a life and start over

On any level, if you lose a life, you start over from the start of the level you’re on. No progress is saved, no checkpoints. In order to clear the level, you have to do it perfectly, not making any lethal mistakes. This makes clearing any level which you have difficulty with especially difficult.

In a modernization, I imagine that there would be a waypoint system to allow you to keep some of the progress you make in a level. On the Rivets screen, this would be a simple matter of remembering the rivets you’ve popped. On the Elevator screen, starting Jumpman on the last platform he safely touched before dying would be helpful. On the Barrels screen, resuming exactly where you died would be nice, but if not, then at least start over on the last platform touched.

Why did Donkey Kong succeed?

Donkey Kong was one of the most successful arcade games ever, and even today it is a favorite of many gamers who appreciate the games of this period.

In 1981, arcade videogames were still quite new and had grown almost unimaginably popular after about a decade of market growth and technical development, with great interest in any new title that came out. It was a time we now look at as a golden age for the video arcade, after several years of ascendancy through the 70’s black and white era that gave way to the mega-popular blockbusters that dominated the early 80’s, games like Asteroids, Berzerk, Defender, Pac Man, Dig Dug, Joust, Galaga, and Moon Patrol. Out of all of them, only Pac Man made more money than Donkey Kong. What made it such an attraction?

Donkey Kong had the benefit of being unlike anything that had come before it, in terms of play style and technology, yet it had instant familiarity all at once, in the way it echoed the familiar King Kong story from classic cinema. It had colorful cartoon-like graphics. Its sound effects and music were charming. The game play was novel, yet intuitive, despite the brutal difficulty level. And for an arcade game, being extremely difficult was actually a good thing, since it resulted in shorter games, more credits per hour, and thus higher revenue. The challenged appealed to many gamers of the time. And there were not yet other games similar enough to compare against it, so the rough edges in the mechanics weren’t very obvious.

As one of the earliest platformer games, it broke ground and innovated, and for the time that was enough. Despite the shortcomings, rough edges, and unforgiving difficulty, it captured the minds of the public and gave them entertainment.

For all that, though, it just wasn’t for me, and I’ve come to accept that. For my quarter, Ms. Pac Man or Zookeeper is a far better play.

Legend of Zelda: Breath of the Wild Diaries (1)

I bought a Nintendo Switch last spring, two years after launch, when Super Mario Maker 2 was announced, and I bought my obligatory copy of Legend of Zelda: Breath of the Wild on the same day.  And then didn’t play it until a global pandemic swept through the country and forced everyone into becoming homebodies.

I guess that’s weird, right? You should see my backlog of Steam games I have purchased but never played.

So, I’ve read reviews and know a bit about the game ahead of playing it, but I’m trying to experience this game as much as I can by figuring it out on my own, and not going to walkthrough sites and reading how to win the game. I think this is the best way to enjoy the game, because it seems like the designers meant for it to be a journey of discovery, and I want to experience it that way, and not as a list of tasks that I need to complete in order to say I’ve experienced the game.

So far, I’m liking the game. I think my response to the experience of playing BOTW is more interesting and nuanced than gushing fanboy praise. Zelda games are Top Shelf, and typically get high 90% reviews. And while they’re clearly lavish, and intended to be special, I think I’m enjoying being critical of it as well, perhaps more than I would enjoy the game if I felt nothing but awestruck by the whole thing.

I’m playing it handheld, and I wonder if maybe the small screen contributes to my feeling this way. There’s no denying the graphics are beautiful, but maybe they’d be much more impressive on a 40+” screen rather than on a 7″ or however big the Switch’s screen is.

At any rate, I started posting my progress and impressions on Facebook, and as I’ve gotten into it more, I think it’s more fun to post this sort of thing on the website too.

I haven’t done something like this before, but I think what I’ll do is continue posting to Facebook, journaling my progress in the game, and then re-publish them, cleaned up, here, later. The Facebook posts aren’t public, but these articles are. They’ll be published on a delay, so commenters won’t be able to spoil the experience for me. Hopefully this will be interesting and worthwhile for people to read along.

I get that these days the hip thing to do is stream and talk, and that’s where the monetization is (or was, for a while), but I’m a bit more old school than that, so it’ll be text, and occasionally images. Assuming I can remember to take screen caps, and then post them. While pictures are great, I’m not really here to sell the game, but to talk to my experience of it and my reflections on those experiences. And I’m not sure that images are all that necessary for this. If you’ve played the game, you know what I’m talking about.

And it’s been out almost 3 year snow, so if you haven’t, well, you should have already. What’s wrong with you?

Oh, and it goes without saying, I’m not worried about posting spoilers. The game’s been out.

Open World Arcade Post-game report

This past Saturday, Dec 7, I had the joy of exhibiting my game, Ancient Technologies, at the Akron Art Museum’s Open World Arcade. It was an honor to have my game selected by the committee for inclusion in the event.

I made Ancient Technologies in 2016 for Ludum Dare 36, already quite a while ago. In preparation for the event, I wanted to make a few improvements and add features I’d wanted to include in the game, but hadn’t had time for due to the time constraints of the game jam weekend.

As a result, behind the scenes, I did battle with a few “ancient technologies” of my own.

At the Open World Arcade on Dec 7, 2019, Chris Sanyk showed his game, Ancient Technologies.  A young gamer tries it out.
Chris Sanyk at the Open World Arcade at Akron Art Museum, 12/7/2019

Plenty of time to get ready

About a month prior to the event, I had to decide how to bring my game to the public. I didn’t want to use my daily driver laptop for this, as it is the machine I depend on for everything, and I just didn’t want to assume any additional risk with it being touched by anyone who I didn’t know. But I have an old AMD Phenom II PC that I built around 10 years ago, which had sufficient specs to play the game, so I decided I would bring that.

I don’t run this box a whole lot, so the very first thing I needed to do was get it updated. I had wiped it some time ago, and reinstalled Windows Professional 7.1 x64, Google Chrome, a few other minor apps, and then hadn’t used it for much since then. So when I powered it on, the first thing I wanted to do was run Windows Update. WU detected about 150 updates that needed to be downloaded and installed, which took quite some time to complete, and I expected that it would take an hour or so, but it ended up taking far longer than it should have. My PC ran updates overnight, and I woke up the next day to find that it had failed to apply updates.

I then had to spend a few days researching the failure, and trying various things to get the system to update. Eventually, I found a Microsoft tool that fixes Windows Update when it breaks in the way mine was broken, and was able to install updates. Well, almost all of them. There’s still one update that just will not install, no matter what I do. Oh well. Typical Microsoft garbage.

I didn’t need to have the PC connected to the internet for the event, so I wasn’t that worried about not having it 100% updated, but I always like to run systems that are updated and maintained.

Once the hardware was updated, I turned my attention to the game. There were a number of features that I had to drop from the original Ancient Technologies, so I took the opportunity to work on adding these.

The most important to me were the UFOs and the player’s special ability (hyperspace, shields, or flip) that in the Atari 2600 version of Asteroids that I was re-creating inside of Ancient Technologies, is activated by pressing Down on the joystick. Fortunately, getting these implemented wasn’t terribly difficult, and I found it enjoyable to add these things in and get to see the fully realized vision of what I had wanted this game to be. It took me only about four evenings to do it, and it mostly went smoothly.

And, actually, adding these features wasn’t what took most of my time, it was fixing numerous minor bugs that I kept finding in the game as I tested it, and I tested the game extensively. None of these bugs were game breaking, and probably wouldn’t have been noticed by players in a short session, but, being a perfectionist, if I know it’s there, if I can fix it, it needs to be fixed. Numerous minute details, like logical conditions that should prevented certain sound effects from being heard, such as the TV being turned off, or the game console being unplugged or the cartridge being removed from the slot, needed to be checked and tested and fixed.

I figured out a simpler way to do this: create an audio group for all the sound effects that play through the in-game TV, and then set the gain to 0 when the TV is off.

The last minute stuff

The day before Open World Arcade, I tested out my game one last time. This time, I did more extensive play testing with my gamepad. Mostly, I’d been testing the game with keyboard input, since it was more convenient. To my horror, I discovered that the D-pad on Xbox 360 gamepads is absolutely terrible. It wasn’t so noticeable before, but now that Down does something, I kept accidentally hyperspacing when I just wanted to turn. It was completely unacceptable. The engineers who fucked up the D-pad on the XBox 360 gamepad should be flayed and their families put to ruin. Seriously, you guys, how hard is it to include a bit of tech that’s been around since the mid-80s, and not make it total garbage?

Suddenly, on short notice I had to find a better controller, a wired gamepad that worked via Xinput, and that has a really good D-pad.

I researched and couldn’t find any reviews that I considered reliable enough for alternative wired XBox 360 controllers that have a D-pad that doesn’t suck. I did find a number of tutorials on how to do surgery on your controller to make it work better, but I wasn’t willing to take a risk on it so close to deadline. I’ll probably do it later, though.

I did end up finding a few controllers for Xbox One that had reviews for good D-pads. I wanted to pick up a Hori Fighting Commander, which looked like it would be ideal, as it lacks analog sticks, it therefore must have a good D-pad. But I couldn’t find a physical store to buy one at within 100 miles, and I couldn’t order one to be delivered and have any hope of getting it in time. This was super frustrating.

I ended up picking up a PowerA Enhanced Wired gamepad for Xbox One.

Then I found that because Microsoft is a horrible company, they couldn’t be bothered to ensure that Xbox One controller drivers were available and easy to install for Windows 7, and had to spend several hours trying to find a method to install drivers so that my PC would recognize the damn thing. I still don’t have it working on my laptop, but fortunately, for whatever reason, I found a driver that will install and work on the PC I intended to use for the Arcade. Why the exact same driver won’t install on my laptop, I have no friggin’ clue. Goddammit, Microsoft, why? Why do you have to be so abysmal when it comes to supporting your own shit?

One nice thing, though, the D-pad on the PowerA Enhanced Wired gamepad for Xbox One is better than the horrible D-pad on the otherwise pretty darn good Xbox 360 controller.

Another last minute idea that I had was that I thought it would be fun to put Ancient Technologies side-by-side with the original. I had the equipment, I only needed a small enough CRT TV set that I could easily transport it and set it up. I didn’t have one, but I put the word out and one of my friends had a small TV that I could borrow.

Game Day

Game day started out smoothly, until I realized during setup that I had forgotten to pack my PC’s speakers. My desktop system has a nice set of 5.1 speakers which were really more than was called for, and I knew I had a set of regular stereo speakers in a closet somewhere, meant to grab them, got distracted, and forgot. This necessitated a last minute run to a store where I could pick up a set. Fortunately, I had plenty of time before the opening of the Arcade to do this, and it ended up not being a huge deal, but I had to drop another $25 on that, which, after the $25 I had to spend on a gamepad yesterday, left me annoyed at myself.

When I came back from the store, I happened to check my phone, and saw in one of the Facebook communities that someone had posted a photo of their old living room gaming setup:

Posted to one of the gaming communities I follow on Facebook, just before my day at the Open World Arcade began: an old TV set with Atari 2600 system connected to it.  Suddenly I felt connected to millions of people who grew up with this experience.
This looks familiar…

Seeing this hit me emotionally, and it made me feel that the game I was about to exhibit belonged and had relevance and cultural resonance. So may people in my generation grew up in a house with a big wood cabinet color TV set, and hooked up their game systems to it.

The screen where Ancient Technologies takes place echoes a common experience shared by a generation of the first video gamers.
Ancient Technologies harkens to a shared past.

I also discovered, to my dismay, that the TV set that I borrowed wouldn’t work. I didn’t have time to test it prior to the event, but when I looked at it more closely, I discovered that the power button was gone. There was a hole where it used to be. A remote control was taped to the TV set, but when I tried it, it wouldn’t work, and then I noticed that the batteries inside had gone bad and corroded the contacts, so there would be no way to use the TV. Regretfully, I put the TV and the Atari back in my car, and they would not be a part of the show.

Turning my attention to the PC, I booted it, launched, and tested that everything was working as it should. Of course, it wasn’t. Why should it be? I had only tested extensively and fixed every visible problem that I could see for a week. But somehow or another, the “put down” sound effect that I had coded wasn’t working. When you unplug the cartridge, or the power cord, it’s supposed to play the sound, but it doesn’t for some reason. I had never noticed this previously to the day of the event. My first thought was, “OK, somehow or other, I accidentally added the “put down” sound effect into the group of sounds that play through the in-game TV set, which is off, and that must be why the sound isn’t playing.” Nope! When I turn the TV on, the sound still doesn’t play. And when I went back to review my code, the “put down” sound effect isn’t in the TV sounds audio group. What’s more, if you unplug the joystick it also plays the same sound, and that’s the one place where it’s still working properly. Looking at the code in that object vs. the others, it’s the same frickin code: when you click the mouse on the object, play the sound. It works there, but not in two other places that are identical. No clue why. Maybe it’s because the joystick stays in the same place, while the cartridge and power cable move, putting them away from the mouse cursor, which somehow retroactively fails the audio_play_sound() function, even though it’s in the same god damn code block as the code that moved the object? WTF, GameMaker? What the Fing F?

Ancient Technologies is coded in GMS 1.4, which is no longer supported. I suppose the next thing to do would be to import the project into GMS 2, compile it, and see if it behaves the same way. I had been enjoying picking up this old project and working on it again, but with weird shit like this breaking for no explainable reason, it really puts me off wanting to do anything serious with GameMaker.

This problem wasn’t a showstopper. Most people who played the game probably wouldn’t have noticed it at all, not knowing that there was supposed to be a sound played when there was none, or in a lot of cases not even doing the action that would have triggered the sound effect. But after looking into it and finding no fault in my code whatsoever, I’m more frustrated with GameMaker Studio than ever.

The Open World Arcade

The event itself was great. I sat in my chair all day, and people came up and gave Ancient Technologies a try. I tried to give each person the experience from the start of the game, rather than leave the Atari console hooked up and playing Asteroids already. Players were about 50%-50% on having owned an Atari or played one before. I had people of all ages try it out, from about 4 on the low end to a gentleman who looked to be in his 60s.

Most of them were uncomfortable with the controls at first, having forgotten the function of the Down direction, or never having known it. I observed that nearly all of them immediately went to the dual analog sticks on the gamepad, a conditioned reflex that explaining the controls to them would not undo. About half of the players opted to use the keyboard controls rather than the gamepad, and it occurred to me that I could just as well have not bothered providing the gamepad at all, and no one would have really missed it.

Almost everyone started out playing the Hyperspace variation, and everyone’s immediate reaction to starting the game was to rapidly touch every control on the gamepad to figure out what did what. In virtually every case, the first thing they did was blink out of existence, into hyperspace, and then re-appear, confused and often about to collide with an Asteroid, which would promptly kill them. I realized pretty quickly that Hyperspace was probably the worst ability to start players off with, and that Shields or Flip would have been a much better choice. I needed to explain to most players that there were several variations, and how to access them using the Game Select switch on the console by clicking it with the mouse.

Many players seemed to hesitate after losing a life, reaching for the mouse for some reason. I’m not sure what they were thinking in the moment, but perhaps they weren’t aware of how many lives they had remaining, and thought that they would need the mouse to restart the game. But most players didn’t play more than once, even though I told everyone they could play as many times as they liked. It occurred to me that using the gamepad’s start button would have been convenient, but this wasn’t really a design decision given that I was trying to replicate the experience of hooking up and using an Atari 2600, and the Game Reset switch is on the console, not on the controller. A few players left their game in-progress, but I didn’t let it bother me.

I had left a stack of flyers with information about the game, but if anyone took one, I’d be surprised. I don’t think anyone did, although a handful at least looked at it. I also left a notepad for players to leave feedback or a comment, and only one person did so. I’m not sure what to take away from that, to be honest. I didn’t push anyone to leave me feedback or take a flyer or one of the business cards that I had, unless they engaged me in conversation and seemed like they would like one, then I gently offered that they could take one if they wanted.

Most of the “feedback” I obtained was through silently observing players and noting common patterns in how they engaged and interacted with the game. This gave me a bunch of ideas of things that I wish I would have thought of to put in the game, but couldn’t have thought of without watching someone else experiencing the game. Any time I noticed anything that could have been added or changed to make the experience better, I took note of it. Much of this was help/tutorial text on screen. Although, I wanted to avoid that, since the first part of the game is figuring out how to hook up the Atari. But I think something, like a ? icon in the corner that appears after several seconds of nothing happening, could have possibly helped players get into the game. As it was, I found that I had to explain to most of the players how to set up the Atari, and I think that defeated much of the purpose of letting them figure out the “Mystery of the Ancients” for themselves. Another feature I would have liked to add was an idle timer that reset the game after a period of inactivity, so that it would always start the next player off with a fresh experience even if I forgot to reset the game after the last person.

In all, it was a great experience for me to show my little game to random people and see how they interacted with it. Thanks to the Akron Art Museum and their wonderful staff for organizing this event.

Superman (Atari 2600) alternate map Romhacks, part 4

I had one more idea for an interesting map. This time I wanted to emphasize the importance of the Bridge to the map. So I thought, I would split the map into two halves, and put the bridge between them, as the only way to get from one side of the map to the other.

This was my prototype:

The prototype was shaped like an H.

I thought that this map had interesting potential, but I also had some concerns. I wanted to make sure that the traffic flow would still work, and that by splitting the map in this way, I didn’t make it likely that random movement would tend to collect everybody in one area of the map, and I wanted the random distribution of characters to not be unevenly distributed between east and west ends of town. I also wanted to ensure that the subway system would be evenly distributed, both in terms of entrances and exits, and that the subway provided useful shortcuts.

As I walked through this map, I quickly decided that a less obvioulsy symmetric map would be more interesting. I re-arranged screens and quickly came up with this:

A masterpiece of design!

The connections between the screens are a bit different from my previous versions. Moving horizontally, the map wraps, shifting up a row if you’re at the east edge, and down if you’re at the west edge. Vertically, the columns wrap around without shifting. The Bridge screen is different, when moving vertically it wraps around back to itself. This serves to keep the Bridge screen isolated, so bridge pieces will be somewhat protected from the helicopter when placed here.

Finally, the extreme corners of the map, the northeast and southwest corner screens, are connected to each other horizontally, creating a second junction between the two halves of the map. This helps provide a route for Clark Kent to walk to the Daily Planet at the end of the game, without being forced to use the Subway system, although this overworld walking route is very long.

The subway exits are again unchanged, and the subways provide several routes for traversing from one side of the map to the other. I arranged the subway system so that each colored subway screen has two exits on the opposite side of the map, and one exit on the same side of the map.

Thus, despite the broken bridge in the center, this map has very nice traffic flow between both halves of the map, many interesting shortcuts, and a challenging layout to learn, without the confusing one-way vertical borders on the Phonebooth and Bridge screens that vexed many beginner players of the original. After playing this map a few times, I think it’s every bit as good as the original, and might even be more fun to play. And aesthetically, I love that the Bridge is now the centerpiece of the map, and truly joins the two halves of Metropolis together.

Here’s the map again, with the wrap routes indicated:

I don’t think there’s much more I can do with the map after this. So I think this is where I will leave the evolution of the map variations.

I would still like to introduce randomized bridge piece starting screens, but to figure that out will require more understanding of the source code than I currently have.

I also think it would be neat to make a super-rom that includes all of the map variations in one file, switchable via the Game Select switch. Again, this is beyond my current capabilities with my very limited understanding of the source code and 6502 asm.

You can download the entire collection of romhacks here: