I picked up Mini Metro about a week ago. I know it’s been around a few years, but I never claimed to be trendy.
I like the aesthetic and the mechanics of the game. It’s relaxing to play, yet gets hectic and overwhelming. It’s a fairly unique concept for a game, so it gets innovation and originality points. It’s a math-y game, but it presents the math intuitively and concretely, using shape and color and quantities that you have to eyeball, rather than representing quantities with numbers. There are various rates at which things happen, things that place demand on your resources, and you have to come up with a system that effectively utilizes those resources and balances demand. It requires a bit of strategy and some cleverness, and you can pause it, take your time, and think, or count and measure, or whatever you need to do to figure out your strategy. You have to understand how the rules work, and there is complexity in the ways the rules combine, but the rules are relatively simple taken individually, and they are introduced one at a time in a way that makes them easy to learn.
I don’t think it’s perfect, but it’s a pretty good game concept. Obviously, it’s been successful and popular.
But I think about ways I might improve its design.
What I don’t like about it is that there’s a little too much randomness in the spawning of the station points. Depending on how those play out, you can get totally screwed and have no possible way of managing the problems the game presents you. I feel like a better game design would always ensure that there was a solution that a sufficiently talented player could come up with, but that seeing the solution and implementing it would be the things that are difficult. It’s fine for the game to present a difficult challenge, and more difficult as the game progresses, but they shouldn’t be impossible.
So, for example, spawning a cluster of 6-10 Circle stations with no other types of stations in the region is an unfair situation. The spawning code should either not do this, or there should be ways to consolidate/erase multiple stations into a super-station. The game does give you Interchange stations, which have more capacity and speed than a basic station, but it only upgrades one existing station, and can’t be used to consolidate several nearby stations of the same type into one. I think it would be way more interesting if you could upgrade one station, and then all basic stations of the same shape within a certain radius of the new interchange would de-spawn, consolidating their traffic into the Interchange. But I think the way I’d prefer to solve the problem would be to put the Station spawning in the player’s hands, not have it be done automatically by the game.
So my proposal would be that **passengers** would appear throughout the city, with a destination in mind (indicated by their shape). They have a limited walking distance that they are capable of traveling before they get tired and irritated. Irritated pedestrians change color and vibrate to indicate they are tired and unhappy. They will walk toward the nearest station, and try to travel to the closest station that matches their shape.
To make them happy, you can build a station near enough to them that they will walk to it, and then you can connect stations with your rail systems to take them efficiently to their destinations. You can spawn an unlimited number of stations (hmmm, perhaps), but you have limited resources in terms of rail lines, cars, carriages, bridges, and tunnels to connect them.
The passenger spawning is out of the player’s control, that part is provided by the game as the challenge, and the player can strategically build stations of the type desired, at the point desired. Maybe the player should be constrained by having to choose how many of which shape station is available to them, or something like that.
The other thing that I see with the game is that, at some point the game just decides to flood you with passengers until you die. Usually somewhere around the 1200-2000 passenger mark, the game just cranks up the generation of more passengers, attempting to overwhelm the player and force the game to a conclusion. Again, I think it’s better to give the player challenges that are possible. Maybe it gets harder and harder to keep up with the challenge, but there should always be a way to do it.
(I accept that it could be there is, and that it only seems like the game becomes impossible because I’m locked in to the design choices I made, and if I tore everything down and re-designed, maybe there’d be a way to create a more efficient system with the same resources available to me that could handle the new volume of traffic. But it doesn’t seem that way to me — even on Endless and Creative modes, where I have no constraints on the resources available to me to build the system, no matter how many lines and cars I throw at the problem, the population will always scale to a point where there’s always overcrowded stations.)
One thing I like about the game is that they don’t have an in-game currency that you earn by transporting passengers and use to spend on improvements for your transit system. I think if the game had that, it would be too much like a Sim-style game, and I think removing a concept of money, and de-coupling a potential feedback loop of performance → income → improvement → more performance helps to keep the game simple — and I like that.
I wonder about that, and why the designer of the game decided on that. Because it’s inconceivable that they wouldn’t have considered every completed trip being converted into in-game money that would be spendable on more rail lines, trams, carriages, etc.
And they must have considered that, and then discarded the idea. I wonder why they decided it and what pros/cons they weighed to make that decision.
I’ve revisited the concept, and today I give you Fibonacci8. Update 10/12/2021: it has now been officially registered.
By making the sett of the tartan design asymmetrical, I was able to extend to the 8th number in the sequence, and added a 5th color to the pattern, a natural ecru white.
I tried each of the original four colors for the 8th number, and I thought red and green had the some appeal, yellow was interesting, and blue wouldn’t work because it was the 7th number, and I didn’t want to re-order the first 7 colors. But in the end I decided that adding a new color would give the tartan better balance. Each number in the sequence is roughly as big as the previous numbers in the series combined in the early part of the sequence, so after the first 5 numbers, repeating colors really changes the balance, with the color of the last number dominating. So going with a new, and neutral, color for the 8th value in the series works well.
I like starting with yellow as the starting number, symbolizing the start of the golden spiral, and then not using it again, in order to keep it special and to give the eye a visual anchor to where the pattern begins.
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 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
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 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.
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.
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.
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.
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.
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
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.
My research on Superman has lead me to a deep understanding of the map topography, and I have come to regard it as an inspired design. But whenever I hear people talk about Superman, I feel like I must be in the minority. People who like the game tend to agree with me, while people who don’t, don’t.
Often I’ll hear players who do not have the appreciation for the game that I have complain that the map is a weakness in the design. I always rebut this by saying that yes, it’s confusing at first but once you learn it, it’s actually a strength. I can point to all the shortcuts that are made possible by the map topology, its utility in weighting the randomness of the AI movement, and argue that it’s actually beneficial that the map is confusing, because it makes the overworld seem bigger than it really is, and adds to the challenge of the game.
But I think it would be even more convincing to demonstrate alternative maps, and let players experience them and decide for themselves.
It’s fairly likely that I’m the only one in the world who cares about this, and I’m almost certainly the only one who cares about it as much as I do. But what the hey.
I decided to see if I could could learn how to hack the ROM for Superman, and change the map navigation in order to rearrange the map screens. This would be preferable for authenticity, but it might also be limiting, in terms of what’s actually possible.
If that doesn’t work, or if I have ideas for expanding on Superman‘s design that aren’t feasible in a romhack, the other option would be to remake Superman in GameMaker, keeping it as faithful to the Atari version as possible, and experiment with the map that way.
The easiest Map design to implement would be to make the vertical and horizontal sequences identical, and to make up/right be “forward” and left/down be “backward”. The subway system could be left unchanged, up to go to the next station, and any other direction to exit back to the overworld, keeping the exit screens the same as in the original. At the end of the list of overworld, we can loop back to the beginning.
The biggest problem with this redesign idea is that there are no overworld shortcuts, other than to take the subway. To get to/from anywhere, it is always a straight line. This is slow, tedious, and to me, it seems like it would be boring. Subway travel helps somewhat to speed up travel, and becomes more important. But a bigger problem is that the gangsters can’t really spread out deep into the map by randomly moving in one of four possible directions. Their possibilities have been halved; they can only go forward or backward to the next screen, and so they will all be found in the first few screens, and rarely if ever would they make it to the end of the map.
But on the plus side, this map is extremely easy to navigate, much harder to get lost in. Gone are the one-way vertical transitions from the Phone Booth and Bridge screens, and the confusion they created. This might make it an ideal variation for a very young player, or for someone who is very inexperienced with Superman.
The other easy to understand map would be a cartesian grid. We have a problem in that 21 overworld screens do not map neatly to a regular grid of equal rows/columns. We can take a 5×4 grid to get 20 of the rooms in, with one room left over. We could truncate the overworld to simply remove this screen, which is the easiest solution. At the end of each row or column, we can either have a hard edge, where you cannot proceed beyond, or we can wrap around to the start of the row or column, or we can increment the row/column and move to the start of the next row or column. I’m not sure how to make a hard edge work, though. The easiest way would be to make these edges refer back to the same room, but doing it this way, Superman would still warp to the other side of the same room, which would be weird. Still, as a proof of concept, it’s quick and easy to do.
The advantage of this map is that it would be still be easier to understand and learn. The disadvantage is that, at least using the first two traversal approaches, you can no longer go through the entire overworld by going in one direction. When the world loops, it will only take you to the beginning of the the current row or column.
The ROM Hack
I looked into it and discovered that the ROM hack path would be much easier than I had anticipated. So much of the work had already been done for me by others.
I searched the web and found decompiled assembly source code for Superman, which had been nicely annotated.
This saves me a ton of time. I don’t have to learn how to disassemble the rom myself, and I don’t have to learn 6502 Assembly well enough to be able to make sense of the disassembled code to figure out what’s going on.
So, literally, all I had to do to get started was:
Install Visual Studio Code
Install Atari Dev Studio plugin
Open the decompiled superman.asm
Test it in Stella
I’m astounded that it’s this easy. The annotated source code is documented well enough that I can tell where I need to make my edits, and what the changes I need to make are. Hats off to the homebrew community for developing these tools and making the information generally available!
First, I did a test compile to make sure that the decompiled assembly that I had was viable. It compiled right away without any problems. I fired up Stella and ran it, and it ran, and seemed to play exactly like Superman. Success!
To make the edits, I read through the source .asm file and tried to understand what I could. Fortunately, the file is reasonably well documented. Without actually knowing 6502 ASM, I can’t say I understand everything I’d like to, but I can see enough that I should be able to make edits by trial and error, and make progress.
From reading through the code, I infer that the stuff after a semi-colon is a comment, so the different comments explaining the Offsets help me to understand that Offsets 4 through 7 have to do with the connections between the different screens in the map. All I should need to do is update them with different addresses, and the map will change! Easy!
In my next update, I’ll present my modded Superman maps and do a little analysis of them.
My five year old nephew started learning to play Chess recently, as I discovered on a visit a few weeks ago. We played two games, and I didn’t have too much trouble beating him, but for a five year old he’s not bad. He knows all the pieces and their basic moves and their relative value.
I thought it would be fun to build a video Chess game that he could use to help learn strategy and how to see the board. So this is my latest project. I’ll be posting more about that as I work on it.
My first step was to design graphic resources. I didn’t want to spend too much time on it, just a basic “programmer art” chess set, that I could use to build the program with. Of course, it didn’t end up that way, and I’ve gone down the rabbit hole designing variations on sets of minimalist pixel art chess men. It’s too fun and fascinating not to.
My first attempt was actually rather good, I thought. I went for 16x16px representations of the classic chess pieces. I drew them very quickly, but was very pleased with my results, particularly the Knight.
I could have stopped right there, but it was so fun to make this set that I wanted to continue exploring and see if I could refine my pixeling technique further.
I decided to search the net for images of chess pieces to see what variety there was, and found a lot of examples of beautiful sets. I started to take notes and to infer design rules for chess men:
Chess pieces are called “chess men” which seems antiquated and sexist, especially given that the most powerful piece in the game is the Queen.
The modern standard chessmen are a design named for English chess master Howard Staunton, and have been in use only since the mid-19th century. A strength of its design is that each piece is easily distinguished from the others, making errors from mistakes in identifying a piece — a problem with other sets — unlikely. Previously, chess men of different types had a less distinct appearance from one another, and were not as standardized.
In a Staunton set, the Knights are the most detailed, ornate, varied, and realistically represented pieces.
In Staunton sets, there is a standard height order: pawn, rook, knight, bishop, queen, king. (This surprised me, since Rooks are more valued in Chess I would have expected them to be taller than Bishops.)
The pieces are differentiated by their tops. Each type of piece has a distinct, unambiguous shape.
The body/base of the pieces have a common design, to create unity among the pieces in the set.
I tried to apply design choices to my chess set following these insights.
A follower on Twitter offered feedback that the pieces should be different heights, so I tried that. With a 16×16 pixel tile size, I could only shorten the back row pieces by 1-3 pixels. I also tweaked the King piece by adding a few more pixels to its top, to make it a bit more distinct from the Queen, and moved the Pawn so that it would be more centered in its square.
I do like the result:
I think my initial 16×16 Staunton set look like they’re in ALL CAPS, while this set is more “readable” by using “mixed case” heights for the pieces.
I wanted my chess game to be focused on usability and instruction. I needed each piece to be immediately recognizable, and not to convey a bunch of extraneous information to the player that has nothing to do with play mechanics.
My next attempt was a different take altogether. I wanted the look of each piece to suggest its rules for movement. I also thought that it would be clever if the pieces communicated the rules for using them through their visual design.
I ended up being very pleased with this set as well, although I went through many more variations, particularly with the Pawn. This one also came together easily and rapidly. When your tile size is 16×16 and you’re working in just a few colors, it’s easy to work fast.
Things I like about this set:
The shape of the piece is a built-in tutorial for how the piece moves.
The Pawns still have a pawn-like shape (at least the black pawns; white pawns are “upside down”).
The Knight’s shape may be read as an abstraction of the horse’s head shape of the Staunton piece.
I think out of these variations, my favorites are: P9, Kn2, B3, R1, K? I’m least certain which King I like. I think K4 and K5 are my top two, but I also liked the idea of incorporating a crown motif into the design, to signify the King’s special property of being the King. K1, K2 and K6 were attempts at this, but I think K1 looks too much like a Staunton Rook, unfortunately.
I wasn’t sure which of my designs to use for my final set, so I posted my sets on Twitter and a pixel art community on Facebook. @Managore responded to my request for feedback by coming up with a set of his own design, which I quite like.
His design was retweeted and liked over 500 times, and received many positive compliments from his followers, many of whom are game developers. One of my favorite indie developers, @TerryCavanaugh, who made VVVVVV and Don’t Look Back, pointed out an physical chess set that had been designed a few years ago which incorporated the same ideas.
It’s exciting to see my idea get picked up and reworked by fellow game developers who are inspired by the concepts I am exploring. So fun! Getting that validation that what I’m working on is interesting to others is very motivating. But it’s particularly good to get some attention from developers whose work I’ve admired for years, however modest.
I’m excited about this project and look forward to working on the program. I have more design ideas that I’m looking forward to getting into soon.
My friend Douglas Underhill wrote an interesting article about game design, dealing with the frequency of an ability’s use with its reward payoff. Doug’s question comes down to, given that there are hundreds of abilities to potentially pick from in character design, and that certain abilities are either useful much more often and in a much wider range of situations, or else provide a much greater payoff than others, what can be done in designing the rules system and/or world to encourage diversification in putting a finite amount of skill points into skills that are useful less often, or which provide a lower expected payoff.
Underhill asserts that, ideally, less-used abilities should be higher in their payoff, in order to encourage players to put character building points into them at all, while frequently used abilities should be low in payoff, to offset their wider applicability and to prevent the game from falling out of balance. But it’s an inherent problem because the feedback of high reward will encourage the use of an ability.
Essentially, though, game design encourages the use of abilities that grant a high reward, and the higher the reward, the more likely the player is to use and rely on that ability (barring some other limiting mechanism that mitigates or suppresses over-use).
But beyond unbalancing the game, or making the player’s strategies predictable and boring due to min-maxing, the reward weight/use frequency of abilities in a game’s design will determine and shape what the game is about. Dungeons and Dragons is nominally about role-playing and fantasy adventure, but its rules systems make it a game largely about dice rolling and fantasy medieval combat.
Tabletop RPGs are inherently flexible, though, so a given group of players might opt to make their game (or at least a particular game session) about negotiation and barter in a fantasy medieval economy, and there’s nothing wrong with doing so. But it’s much more likely that the typical group of D&D gamers will spend most of its time fighting and questing for objects and abilities that make them ever better at fighting and surviving in exotic, hostile fantasy environments.
After reading Doug’s article, it got me thinking about how this principle applies in video game design. (more…)
The auto maker Lexus used to have a marketing slogan, The Relentless Pursuit of Perfection.
This sounded really good, right? As a customer, you would like perfect products. You don’t want to spend money to acquire problems.
But from a making perspective, perfection is often the enemy of good. It turns out that perfection, the idea of perfection, as well as the pursuit of it, has a lot of problems.
Perfection as Impossibility
First, everyone has heard the cliche that perfection is impossible in the real world. No matter how hard you work at something, there will always be some tiny deviation from the ideal defined by the design or blueprint. We build things to tolerances, understanding that exactly hitting a desired metric is practically impossible. But we don’t need exact, we need good enough, and good enough can be as precise as it needs to be for the application. In some situations, tolerances are more critical than in others.
Chasing after something impossible can waste a lot of resources, and the futility of it can be frustrating. People tend to put an undue amount of pressure on themselves, feel negatively about themselves when they prove incapable of attaining such a high standard, and react negatively to mistakes and criticism, or even hide or deny problems rather than own up to them, which is exactly the wrong way to respond to these learning opportunities.
Subjectivity and Contingency
Second, what is perfect? People have different needs, different opinions. Needs change as the times change. What is ideal for one situation is likely not ideal in another. There’s no such thing as a one size fits all solution that is a perfect fit for everyone. So perfect then means something more like highly customized, bespoke solutions.
But the amount of resources that are required to create such customized solutions for everyone are often better allocated toward more general solutions that are a better fit for the needs of larger groups of people. Imagine an auto maker taking your exact body measurements, and then using those to build a car with a seat that fits you — and only you — exactly perfectly, and where the dashboard and mirrors are likewise laid out in a perfect way so that you can see all the gauges and reach all the controls without straining.
But this would make a car that is many times more expensive to design and build, is much more expensive to maintain and support, and which has limited resale value. It’s much more cost effective and beneficial instead to design a car with adjustable seats, that can fit 99% of people, is cheaper to design, manufacture, and support, and can be sold to anyone, not just people who are close enough in size to you that they can use your bespoke seat.
And even then, a car that is good for commuting isn’t going to be the best for cargo hauling. Or have the best possible fuel efficiency. Or be good off-road. Or have the safest crash rating. The perfect car contingent upon the usual need will score high in several of these important categories, but different users will value categories according to their own criteria, and may have a variety of use cases that they need to cover with a single vehicle, that cannot possibly be perfect for every need and every situation.
The foil of Trade-Offs
As is apparent in the car example above, most things are complex enough that there are always going to be trade-offs. For example, a structure may need to be strong, but often weight is another important factor, and making something both strong and lightweight is a challenge because increasing one tends to diminish the other. Thus, a perfect thing in all aspects is not possible, but perhaps we replace the idea of a thing that is ideal in all categories with the idea of a thing that is a perfect balance of tradeoffs among the categories. But this sort of perfection is a lot more dependent upon subjective and contingent parameters. A set of compromises isn’t the usual concept of what perfection means.
The more you want to improve something, the more effort needs to be put into improving it. At some point, the amount of improvement that you gain for the amount of effort that you put into the improvement will start to decrease. At some point short of perfection, the value of the improvement isn’t worth the effort.
For example, I could study for 2 hours and get an A on a test. I could study an additional 4 hours, and boost my A to an A+. Perhaps by studying 8 hours, I could score 100% on the test. Is it worth it? Or would that 6 hours be better spent getting an A on three other tests?
Can you hear the difference between a $500 stereo and a $5000 stereo? And if so, is it worth spending 10x as much to get that difference? Is a $200 CPU good enough, or do you really need the $1000 CPU that delivers merely 2x the performance? Sometimes it might be. But the situations where extreme high performance is required are comparatively few.
Perfecting a local maximum
Perfecting a thing requires focusing on the thing. But what if the thing isn’t the important thing, and the thing is merely a means to an end? Say you want the best bicycle. So you spent all your time working on making bicycles better, better, and better still. So now you have a bicycle that’s nearly perfect. In the early days of pedal-power, the design of bicycles was much different.
A design known as the velocipede featured a large front wheel driven directly by pedals, and a tiny trailing wheel for balance. This design was popular for a time, and in the quest for ever greater mechanical advantage for producing higher top speeds, the front wheel diameter was increased. This gave rise to diminishing returns, and negative tradeoffs in balance and safety.
Prior to the invention of the modern bicycle, velocipede design had evolved to a point where it could go no further. Wheel size was so large that any larger would be impractical or impossible. This was a local maximum for the design, the zenith of a particular design concept, but still better designs were possible.
Eventually the design died out when an inventor hit upon a better design, the modern bicycle, which featured two wheels of identical size and a chain driven gearing system that allowed higher gearing ratios than were possible in the now-obsolete direct drive velocipede designs.
Missing the next-gen paradigm shift
But what if your goal isn’t really to ride bikes exactly, and you simply want to go from point A to point B quickly? There might be other vehicles that are better, but if all you can think of is a better bicycle, the idea to invent them may never occur to you. Famously, bicycle mechanics Wilbur and Orville Wright pioneered the airplane. If they’d been focused exclusively on perfecting the design of the bicycle, they never would have come up with their flying machines.
And paradigm shifts continued to happen with flight, from bi-planes to monoplanes, from propeller driven airplanes to jets. At each stage, what worked for the current generation could only be taken so far, and to make the leap to the next generation required a re-thinking and a discarding of older concepts in order for even better concepts to flourish. The old continued to serve while the new was developed, but eventually once the new concept was proven a success, the old fell out of favor. And yet, at no stage was anything truly “perfect.”
The relentless pursuit of improvement
This is not to say that we shouldn’t make things as good as you can. But whatever we do, is always done within the scope of certain constraints. Being aware of those constraints, we should make intelligent choices in order to maximize value, without being trapped by an idea of a perfect thing.
PNG_2_room is a simple, easy to modify demo for how to populate a room with instances according to a color coded image file.
Each pixel in the source image can be color coded to correspond to an object or tile in your game. Use the script room_instance_add_from_png() to populate a room with instances using the image as a key.
For example, this PNG image:
…was used to generate this room:
You can modify the script to use whatever colors you wish to represent whatever objects or tiles in your project.
With this script, instead of using the built-in room editor, now you can use any image editor to create maps for your game more quickly!
You can even allow players of your games to create their own custom maps for your game, using whatever image editor they choose as a resource editor for your game!
A simple demo included in the asset shows how to use the script.
Once again, this Friday I’ll be joining with my fellow Cleveland Game Developers friends to participate in the 2016 Global Game Jam. I’m looking forward to hearing what the theme will be this year, and seeing all the games the different groups at the Shaker Heights location will create. Special thanks to Launch House for hosting us again this year!
Laptop ergonomics are always a compromise. If you put in long hours on a laptop, you know how important comfort and usability are to productivity. So getting the best possible ergonomics given the constraints imposed by the design requirements is extremely important.
It seems many hardware design engineers have forgotten this. The quest for thinner, lighter, cheaper seems to have overshadowed comfort and usability, durability and ruggedness. With each passing hardware generation, we see the same refrain: “The new keyboard is not so bad, once you get used to it.” If we have to get used to a “not-so-bad” keyboard with every generation, doesn’t that suggest that they’re getting worse over time?
And yet, the keyboard is the one component of a laptop that you have the least configuration options for. There are no choices, no upgrades; the keyboard is the keyboard, and you get whatever the manufacturer designed. That means it’s all the more critical that manufacturers give their customers the best possible keyboard.
What if manufacturers gave us keyboards that didn’t take “getting used to”, but felt fantastically comfortable from the moment you used them?
Without a doubt, the best keyboard I have ever seen or used on a laptop has been the keyboard of my Lenovo ThinkPad T61p. It’s no secret, and everyone who’s used one knows how good they are and how far short any other laptop keyboard compares. This keyboard is so good that I’ve continued to use my T61p originally purchased in 2007. After my original T61p died this January, I shopped around looking at the new ThinkPads… and after looking at what was available, I went to eBay and bought myself another T61p.
I won’t be able to do that forever. Already, I feel a need for a machine that can support more than 8GB of RAM, and the new Core i7 CPUs are so much faster than my by-no-means inadequate 2.4GHz Core 2 Duo. And the battery life we see with the current generation of “ultrabooks” in 2015 is impressive.
Will we ever see a return to the keyboards of yore? It wish that it was not in doubt. But I have hope. It appears that Lenovo has finally responded to customer feedback, when this spring they brough back the old style trackpads with physical buttons that had disappeared with the 540 generation. And today, it appears that they are actively soliciting fans of the old ThinkPad brand to ask them what features made the old ThinkPad so legendary. And they updated the X1 Carbon with a more standard keyboard layout in response to complaints and criticism over a senseless radical departure from the norm. Perhaps we’ll glimpse perfection again someday.
To be sure, we will not see a return to greatness if we fail to recognize the things that made the best keyboard of all time so great.
Close to perfection
Behold, The T61p keyboard in all its glory.
Let’s take a look at what makes this keyboard so great.
Full-size keys, spaced the correct distance apart. This makes typing for long periods of time less tiresome, especially for people with larger hands.
Scissor Switch technology allows for longer travel for a laptop keyboard, which is more comfortable than “chiclet” keys. It’s not a full height keyboard like you’d find on a desktop class machine, but it’s very close, giving it a good feel and making it more comfortable again for long typing sessions.
The layout of the non-standard keys is ideal.
It’s important to appreciate how critical the placement of these keys is. Let’s look at them in detail.
A full row of Function Keys, F1-F12. In many newer layouts, this row is eliminated and the F-keys are combined with other keys. This makes compound keystrokes impossible if the F-key needs to be pressed at the same time as the key it is combined with. That’s probably pretty rare, but it is still nice to have this row of keys to themselves. I think keyboard designers eliminated this row in order to make room for larger trackpads. I don’t like large trackpads for a few reasons, which we’ll get into in the Trackpad section.
The arrow key cluster. Most importantly, the arrow keys are all full-sized, and arranged in an inverted “T” formation. Many keyboards save a key by squishing the up and down arrow keys into the space of a single key, putting all four arrow keys in a line, but this space savings comes at a cost of making up and down half sized, and makes controlling games that use the arrow keys way harder.
The other important thing about this cluster is the presence of the “Previous page” and “Next Page” buttons to either side of the up arrow. These are often replaced with “Pg Up and Pg Dn” buttons. I like “previous” and “next” here because it makes navigating web pages with this cluster very fast. I don’t have to move my fingers at all and I can scroll and hit the Back button or Forward button in a web browser. It’s very convenient, and I really miss it whenever I have to use a keyboard that doesn’t have this layout.The Insert|Delete|Home|End|PgUp|PgDn cluster. I really like these where they are, too. Being at the top right corner of the keyboard makes them simple to find by feel, without having to take my eyes off the screen. The Home/End and PgUp /PgDn pairs go very naturally together for navigating text documents with the keyboard. These navigational shortcuts are a great alternative to scrolling with the mouse wheel, and for moving the cursor when text editing. Insert and Delete change the cursor mode, Home and End can take you to the beginning or end of a line of text, while Ctrl+Home or Ctrl+End will take you to the beginning or end of the entire document. Pg Up and Pg Dn are better for scrolling than the mouse is, moving an entire window height up or down at a single keystroke. Clustering them in this arrangement makes for very intuitive and quick document navigation using the cursor, and enables me to be much more productive when working in text files or reading than if I have to move my hand to the trackpad or mouse.
Print Screen, Scroll Lock, and Pause/Break. These don’t get used a whole lot by most people. I use Print Screen all the time, to make screen captures, but the other two hardly at all. Putting them up here out of the way works. Having Print Screen at the left edge of this 3-key row makes it easy to find by touch, without having to take my eyes off the screen to look for it.
While we’re looking at this group, note the power button (the circular button at left.) While not part of the keyboard, proper, I will remark that I find the power button difficult to find by touch. If I’m fumbling around in the dark, it’s easier to find the ThinkVantage key, which feels more like I’d expect the power button to feel like. So, one thing I could recommend is change the power button, locating it closer to a corner of the keyboard, and give it a shape and feel more befitting a power button.
Keycaps shape and feel
All the keys are just shaped right. These keycaps are close to what old classic IBM Selectric typewriters and Model M keyboards felt like, and those were some of the best keyboards ever manufactured.
The Enter key isn’t L-shaped, which leaves room for the \| key directly above. The \| key doesn’t really have a reason to be larger, but it keeps symmetry with the Tab key on the left side, and helps a touch typist feel this edge of the keyboard. Esc isn’t double-sized, as it is on some later model Lenovo keyboards — I think making it the size of the Ctrl key, slightly larger than the standard key, would make it easier to find by touch. Ctrl is slightly wider than standard, but I like that, although it would be better if Ctrl were in the position occupied by Fn, where it belongs. Backspace is another good key to be larger than standard, as it is used frequently by most, and this makes it easier to find in the top right corner.
Sufficient Key Rollover: a must have
Keyboard Rollover is is the ability of a computer keyboard to correctly handle several simultaneous keystrokes. N-Key Rollover (NKRO) is the ideal — it means that the keyboard can handle any number of simultaneously key presses. At a minimum, a good keyboard should have 6KRO.
I’ve mostly used high-end keyboards that have high #KRO or NKRO, and have only recently encountered a keyboard with low KRO. Unfortunately this happens to be my new ThinkPad P50, which is a great laptop in most respects, but it has a paltry 2KRO. If I’m holding down more than two keys simultaneously, a third key press often is not detected (depending on which keys are down). This makes the keyboard hopelessly unsuited to gaming, and as a game developer, this is really not acceptable.
You can test the key rollover of a keyboard by holding down both shift keys simultaneously and then trying to type the alphabet. If any letters don’t type, your keyboard has low rollover. This should never, ever happen on a high end machine. Or any machine, really.
Fn/Ctrl positions should be swapped
On most keyboards, the Fn key is nested between the Ctrl and Windows keys. On the T61p layout, this is reversed. There’s no reason for it, and it’s one of the most common complaints about the T61 layout. In fact, there are even third party firmware hacks to remap the keys into their preferred positions: Ctrl outside, Fn to the right. In the ideal keyboard layout, Ctrl should go first.
10-Key or not 10-Key?
Many widescreen laptops have 10-key numeric keypads these days, much like 104-key extended keyboards on desktop keyboards. This forces the main keyboard off-center with respect to the screen, which means that the users arms and hands will have to skew left of center the majority of the time when typing, which feels awkward. Unless you do a large amount of numeric data entry, a 10-key is not necessary or recommended for a laptop keyboard. Thankfully, at least the trackpad is still centered under the space bar, keeping it directly between the hands on most laptops with extended keyboards that incorporate a 10-key pad. But typing on the QWERTY keyboard, with the hands offset relative to the screen is less comfortable. The extra keys of the 10-key pad also add to the complexity and cost of the keyboard.
Most users don’t need a 10-key pad, and can live without. Unless you’re doing heavy numerical data entry, they don’t add of value. You could always buy a USB 10-key pad as a peripheral and use that if you needed one. Before laptops started sporting 10-key pads on the right of the main keyboard, they used to use the Fn key to use the right half of the keyboard as a sort of slanted 10-key option. I’ve never bothered switching into this mode, and don’t miss a 10-key pad. So, my preference would be for a regular QWERTY keyboard, without a 10-key pad, and the QWERTY keyboard and touchpad centered in the laptop chassis.
Still, some people will want 10-key pads and others will not — and the number who do not is not inconsequential. But the number of people who can’t live without a 10-key pad is much smaller than the number of people who don’t need it. I would prefer not to have a 10-key pad in my ideal laptop. This would be a good item to make a configuration option at time of purchase. Modular, interchangeable keyboard FRUs that have or omit the 10-key pad would be a great solution.
Are backlit keyboards necessary?
Again, some people like them, and some don’t. Illuminated keys can be helpful when typing in low light conditions, but they drain battery and add cost to manufacturing, although probably not significantly, since most laptop keyboards seem to use them these days. Most of them have an option to turn the backlight off and adjust the brightness level, and this seems to be the best choice. It enables everyone to be happy. On laptops which have this feature, I just turn the backlight off, and touch type as always.
Which type of switches is the best?
This is subjective and people can have their own opinions. These days, there are three main types of keyboard: chiclet, dome, and buckling spring. The T61p keyboard had scissor switches, a type of dome switch. These work and feel great — almost as great as buckling spring switches.
I find “chiclet” keys to be fine, I can use a chiclet keyboard without issue, and type fast and with confidence with them, but I still prefer the feel of the scissor switch keys on my T61p. Some people prefer the lower travel of the chiclet key, and manufacturers favor them today because they enable thinner designs. But I really prefer the feel of the full travel key caps, and the scissor switches in the T61p keyboard give a closer approximation of the way full travel keyboards feel.
The biggest disadvantage of the scissor-switch keyboard is that it adds to the overall thickness of the machine, but I strongly believe that thinness is a highly overrated feature. With ultra-thin laptops approaching 0.5 inches, there’s not much room left to go thinner. And there’s plenty of leeway for making a laptop a little thicker to allow for a better keyboard. The T61p is 1.4 inches thick, and I’ve never once felt that it was an issue. I would much rather have a thicker, heavier laptop that is more rugged and will hold up to years of heavy use, and has more room for expansion or battery, than a ultra thin and light laptop.
Really, though, on the switch type, I could go either way. Chiclet keys feel nice enough to be acceptable, but for longer typing sessions I truly like the additional travel and resistance of scissor switches. This is an area where making it a configurable option would be nice. A modular, interchangeable FRU keyboard offering the user their choice of chiclet or scissor switch keys would make everyone happy.
While we’re at it, let’s look at the pointing devices. First, we have the TrackPoint stick, the red nub. People who use them really love them, and they don’t get in the way of people who don’t. They’re a vital part of the ThinkPad brand and image, and should never be done away with.
Next, we have the touchpad. The touchpad is surrounded top and bottom with physical mouse buttons. these are well designed and robust. Positioning them top and bottom is important because it makes them reachable to both the thumb and fingers, regardless of where the hand is positioned on the keyboard or touchpad, which makes using the buttons quicker. We also see a middle mouse button, which is useful for Linux users.
As for the touchpad itself, it is only 2.25 x 1.5 inches — which is ideal. Newer generation notebook PCs have trended toward larger touchpads, which allows for greater precision with reduced sensitivity, but I really prefer this smaller size. It is not so large that it becomes an easy target for accidental bumps by the palm of the hand. I never accidentally brushed the touchpad on my T61p with the heel or palm of my hand when typing, which means I never accidentally click the mouse cursor away from where I’m typing. I do have this problem on many newer model laptop keyboards, and it is a constant, huge annoyance.
The touchpad is not multi-touch capable, and that would be a good improvement to add to this design. It does have scroll regions at the right and bottom edge, which are configurable.
The UltraNav touchpad driver is excellent, with lots of configuration options to get it to work just how the user prefers.
It’d be great if keyboards were more interchangeable in laptops, across different models and manufacturers. It would take a great effort of the industry to standardize the top half of all laptop chassis to have the same shape and size space for a keyboard. But there’s no reason it couldn’t happen, if manufacturers decided to standardize, or if a manufacturer decided standardize within their own product lines. The computer industry has standardized on other things, so why not a standard to allow laptop keyboards to be more interchangeable between different models and makers? This could spur innovation in improving keyboards, since users would not longer be stuck with whatever the designers engineered for a particular model — users would be free to upgrade and choose the style and layout that they prefer.
I doubt that it will happen on an industry-wide level, that we’ll be able to buy generic commodity keyboards from any maker and put it into any laptop, there’s just too much inertia for it. But it could happen if the industry decided it wanted to. Even if it didn’t want to, manufactures could standardize more within their own model lines, and offer a greater variety of keycap types and layouts to satisfy the preferences of different customers. I expect the main reasons they don’t do so have to do with cost, and to some extent integration and aesthetics issues. But these are not insurmountable issues.
For me, a better keyboard is still well worth paying some premium for. A keyboard that doesn’t feel cramped, has a familiar layout for ALL keys, and a satisfying feel, for me, would be something I’d easily pay another $50-100 for, if it were an option to purchase an upgraded keyboard that was just the way I like it.