Video:10 Pieces of Hearthstone Design Wisdom ⇒

I quite enjoyed this talk, especially after having played Hearthstone obsessively for a biref period of time.

Personally, the two of the biggest takeaways from the talk were:

1. Stakes in the Ground

I like this idea of having certain objectives or ideals that help to anchor a project during development. Seems obvious, but I think it really helps to steer the game toward an intended direction.

2. Emotional Design

I thought the card which initially stole cards from the opponent’s deck was a great example. It was a card that felt good to play, but also ultimately too negative for the opponent on the receiving end. Finally, instead of stealing cards, the card was modified to copy cards instead. (Also an example of embracing the digital medium!)

How a Seemingly Impossible Game Is Possible ⇒

“People are just so used to that type of game that it becomes hard for them to go back to something that’s a bit more free,” Murray said. “For us, perhaps we’re the generation who grew up with Mario and so we understand levels and missions and quests. So a lot of the questions we get from journalists are about that. How does the mission structure work? How does your rank work? That kind of thing.

The main people that I talk to who are fans are often the generation that’s grown up with Minecraft and they don’t have those preconceptions. They don’t ask any of those questions. They actually assume that it’s just all gonna be there and have that freedom.

Interesting point about the shifting nature of established game conventions.

DevLog #2 - Slow Going

Hello! I’m back for an update!

Issues

Alright things have been pretty slow-moving, as they often are at the start. Ideas are still brewing, and in this case, I’m struggling with the new tools. Specifically, there seems to be some strange bug with 2D colliders in Unity. Others seem to have experienced similar problems.

Aside from that, I spent quite a lot of time just ironing out the interactions with ladders. It’s quite tricky really, but I’m glad it’s working now.

Game Idea

So as mentioned in the earlier post, I’m just sort of building small components of the game and seeing where that takes me. It’s pretty fun, just playing with them and exploring the possibilities.

I think I’m gonna continue building the world vertically upwards. Like Doodle Jump or Tiny Tower, but with more platforming and obstacles. I want to keep the project small, so maybe I’ll have the player backtrack all the way down once he reaches the top. But the journey back must provide a different experience for the player, like in the ending of Braid.

I think that something like that would be interesting.

Progress

  • Fixed ladder interaction
  • Improved workflow by generating 2D box colliders automatically when importing from Tiled. Had help from this link.
  • Add cannon which fires fireballs
  • Add moving platform
  • Add death and respawn elements

Final Thoughts

I’m trying to write code that is more reusable; it’s one of those things that I would really like to improve on. For instance, the same script used to control the moving horizontal platform can be reused for vertical platforms as well. Same goes for the script firing fireballs from the cannon; I’m probably going to use the same script for having the lava spout fireballs vertically too.

Till next time!

DevLog #1 - Genesis

Quick Update

So quite suddenly I find myself free with about a month’s time before I start the Game Innovation Programme at SUTD Game Lab. I haven’t really worked on any games of my own for a while now, so it’s quite exciting to jump back in. I decided I might as well get myself more familiarized with Unity, since that’s what will be used during the programme.

Prince of Persia

Just the other day, I watched this talk by the creator of the original Prince of Persia. Game developers from that era are amazing, dealing with so many technical limitations and yet somehow always manage to find ways to make things work. (It reminded me of Ian Bogost’s Racing the Beam, in which he provided an in-depth look into game development for the Atari system.) It’s incredible just how much effort was required just to get a simple sprite animation to work.

To me it was particularly fascinating how he just built out the small parts of the game, the technology, before he even had a clear sense of what game he was making. He had a very very general idea of what it could be, but he didn’t force it and instead let it slowly take form in a very organic way.

I think I’m going to try that for this new game. I kind of want it to be like a Donkey Kong game, with ladders connecting various platforms. Possibly with some sort of escalators or moving ladders system.

Let’s just start with that…

Getting Started

I grabbed some graphics from Kenney’s platformer pack. I don’t necessarily think that these assets have the right aesthetic for the game, but in this case I’m more concerned about the gameplay. I think this pack conveniently contains all if not most of all the parts I potentially need. (Ladders, buttons, platforms, keys, locks, doors.)

I then grabbed the CharacterController2D script by prime31. Took me awhile to get it running. Some features seem pretty useful, for instance the one way platforms. The ability to handle slopes may come in useful too for this game. Ran into some problems with collision detection, but finally got it to work. Not sure if it’s worth all the trouble.

Next I tried to find some sort of tilemap editor plugin for Unity, but there didn’t seem to be any free options. Thankfully, I eventually stumbled on X-UniTMX, which allows me to layout a level in Tiled, and then import it into Unity. Seems to work pretty well so far.

It’s not much, but here is what I have so far. Seems like a decent start!

The Making of Threes ⇒

I’ve been meaning to curate articles on game design I find inspirational and fascinating on this site for awhile. Now seems like a good time to start.

This week, the creators of the iOS game Threes released a massive collection of emails exchanged during the development process. The post itself contains about 45,000 words, and I read every single one of them. It is such a rare and special treat to be able to peek behind the scenes and be a spectator to the entire design process. One almost feels like a guest in Willy Wonka’s chocolate factory.

Asher made this interesting point about the tutorial:

I strongly believe that “show don’t tell” is the wrong approach for teaching. All players learn differently. We want to show AND tell.

There’s definitely the crowd who we could hand this game to without instructions and they would figure it out. (In my head I’m calling them the Puzzlescript crowd.)

And then there’s people who won’t know what to do unless you tell them and give them explicit goals.

And THEN there’s the people who will blindly follow directions, but not understand what they’re doing and be confused later.

So we want players to do three things: Listen + Do + See. The merge sections of the tutorial have all three of those things. Listen: There are instructions. Do: You have to merge the things together. See: You clearly see the results of your actions.

I’ve always been more of a “show don’t tell” believer; there is a distinct sense of wonder and satisfaction in figuring things out on your own. But Asher does make some good points. And for a game like Threes, including a tutorial really lowers the barrier to entry for most players. Having learnt the basics, players are then equipped to explore on their own the intricate possibilities nested within the rules.

I think the honest correspondence between the designers really captures the excitement and frustration of making a game. Reading these emails, one also senses the brief episodes of tension when there were disagreements about certain design decisions; diplomatic tones were used, and compromises made.

I guess I’ve always suspected that game design would be a lot of work, but I was still blown away by the amount of effort that went into making Threes. I have since bought the app, and I am having so much fun with it.

Perloo and Art Games

Perloo is an iOS puzzle game, and it is a gem. There are no save points in Perloo. Sit down, shut the world out, and play through it.

No, wait. Play with it. It took me about twenty minutes to complete, and in that time I was a child again.

I am tempted to label it as an experimental art game but such arbitrary categorization seems moot; games like this simply are. They are deeply personal expressions, clothed in the form of a game. Typically in such games we detect unmistakable hints of the author’s intent. Paradoxically, this intent is often peripheral and yet pervasive within the game. It is whimsical and seldom explicit, dancing teasingly just barely beyond our vision, like ghostly grey dots on a Hermann grid illusion…

I tend to think of art in general as an expression of its author’s intention. This expression is what is then exposed to interpretation by others. We often feel like there ought to be a “correct” interpretation, but art is personal, not only to the author and but also to its audience. Perhaps the essence of a piece of work lies not in what the author meant, but in what it means to you.

Because each personal interpertation is special, private, even sacred.

It is a gift, a secret, and a mirror.

[Post-mortem]Inverse

Introduction

Inverse is an endless runner with the added feature of being able to “invert” between the black and white worlds.

To play this game one has to be “platform-neutral”, or able to instantly switch beliefs. One moment the blacks are obstacles, and the next they are empty spaces to be traversed. It reminds me of this part in the Name of the Wind by Patrick Rothfuss where Kvothe was learning about the Alar for the first time from Abenthy. He was being taught to hold two opposing ideas in his head and to believe absolutely in each of them simultaneously.

Process

I experimented with a few variations of the central idea. First I added collectible coins, as many endless runners do. It didn’t feel right. When I was playing the initial prototype, I decided that the game should be very free-form, similar to skateboarding or parkour. (“Oh hey, I wanna try and see if I can jump on that platform over there! YES!”) Players should be able to choose their own routes and set their own mini-goals, rather than have to go the path traced out by some coins.

Sidenote: Coins in Super Mario and rings in Sonic never made much sense. Why are all these coins FLOATING? Why are they here? Who left them here? Why should I pick them up? Where the heck am I going to keep all of them?

Next, I spent an afternoon writing a whole bunch of code to provide much greater variation in the heights of the platforms, kind of like in Canabalt. That made the game feel more complex and less fun. I think it might have been because it destroyed the middle line, which upon reflection was crucial to the feel of the game.

Win/Lose

I struggled for quite a while to decide on a win/lose condition. I’m usually all for toughness and instant permadeath. But then I felt like players should be able to explore this world a bit more, and so I gave them three lives instead. Falling into deep pits was still instant kill though.

There is no real win condition. In that sense I think Inverse is more toy than game.

Feel

The black and white aesthetics reminded me of the piano. Which is why I wanted a piece of piano music. This track by Chris Zabriskie is awesome by the way.

Conclusion

I think I’m getting better transforming an idea into code. I think it may be time to focus more on polish, and perhaps try on a bigger project. It feels good to be churning out work.

Play Inverse

[Post-mortem]Cirque

Introduction

Cirque is an abstract rotational action game, inspired loosely by Super Hexagon.

I really enjoyed the simplicity of the controls in the iOS Super Hexagon. Touch the left half of the screen to spin left; the right half does the opposite. It’s elegant compared to virtual d-pads. Cirque is a browser game, but maybe I’m taking of taking a stab at mobile.

Steiner Chain

The first real challenge was getting the outer ring of circles to form nicely around the center circle. If you think about it, the radii of the outer and inner circles have to be a of a certain ratio for that to happen. Now, I’ve never been that good with geometry, but after searching around I stumbled on the mathematical concept known as a Steiner Chain.

“Given two circles with one interior to the other, if small tangent circles can be inscribed around the region between the two circles such that the final circle is tangent to the first, the circles form a Steiner chain.” Wolfram Math World

Pretty fascinating stuff, especially when you vary the sizes of the outer circles.

Structure

The biggest problem faced with this project was probably how to structure the gameplay. I wanted to make this an endless, highscore-chasing sort of game. Initially I wanted to make just a single level, with the difficulty slowly increasing. But I suspect it would have been really frustrating to be forced to play through the easier parts of the game again. The current game implements a “save point” of sorts; when a player dies he can restart the current level.

Conclusion

I’m not really sure where to go on from here. It still doesn’t feel that fun as it is. I’m gathering feedback to see if it sparks of any interesting ideas. Let me know what you think!

Play Cirque

[Post-mortem]Palette

Introduction

Palette is a game about mixing colors. I made this using PuzzleScript over a few days.

Puzzlescript

PuzzleScript is a really cool tool. You can pick it up and make a game within minutes without any prior programming experience. You draw everything in the game by laying out characters in a grid, from right within the editor. Write a few rules. Make a level, and you’re good to go! Talk to me if you run into any problems.

It’s free as in beer, and free as in freedom. You also get to peek behind the curtain at games others have made.

The Idea

I wanted to try my hand at a really minimalistic game, so I decided the game would have:

  • No instructions or tutorials: Players should experiment and figure things out on their own. At the same time, I would try to make things as intuitive as possible.

  • No story or context: Besides having a kind of elegance to it, I think pure abstraction leaves room for players to fill with their imagination.

  • No use of the action button: The only keys would be the arrow keys for movement, apart from Undo and Reset.

After toying around with several ideas, I finally had this idea for a game about the mixing of different colors.

Process

In the first few levels, I had to gently teach the players the basic mechanics. I tried to design them so that the only way they could advance in these “tutorial” stages was if they understood the mechanic, even if it was only at a subconscious level. Once the basics had been established, I made some levels which explored the mechanics more deeply.

Subsequently, I introduced new mechanics which built on earlier ones, which followed a similar pacing. I think this gave the game an appropriate progression in terms of difficulty.

I eventually hit a block, when I tried adding a button and door mechanic. I quickly discovered that there wasn’t much I could do with it, so rather than having a few rather stale puzzles, I axed the whole damn thing. Reflecting on it, I think it made the game purer. This is a game about colors, and only colors.

I usually start designing a level by thinking about how the general approach for the solution would work. For instance, for one of the earlier puzzles, it was “the player needs to navigate the blue block to the target, without mixing it with any other colors”. Then I’d make a big room to test out the idea. When it seems like I have something interesting, I shrink the room, taking away whatever that isn’t needed. I then try to see if I can force a more interesting solution. Rinse and repeat.

Playtest

My first playtester was…my dad. My dad’s hardly a stranger to puzzles and games. He taught me to play chess, sat beside me when I played through the Tomb Raider series as a kid, and erm, adores Temple Run. Watching him play an early build of Palette was interesting. For instance, I noticed that it wasn’t immediately obvious that the player could occuply the same square as the target. I addressed this by adding a second level in which the player had to walk over the target area to complete the level. I also made adjustments to the art when my girlfriend complained of being confused about which blocks were push-able.

Aesthetics

I went through a few iterations. For such a simple game, I surprised myself by putting quite a bit of thought into the design of the various building blocks. For example:

  • The targets essentially occupy the negative space of the blocks. When a player successfully places a block on its matching target, a solid square is formed. I think it’s quite a strong visual feedback to players; there is no confusion about whether or not the objective has been achieved.
  • I wanted players to be able to see the color of the target if they were standing on one. Sometimes an unexpected pattern is formed, which surprises the player and hopefully makes them pause just to consider it for awhile.

  • The background and wall blocks were always going to be either white or black (or grey, a mixture of the two), which are considered to be neutral colors. This was to emphasize the colors in the blocks. I eventually settled on a light background, which just seemed cleaner and less dull. I had initally made the game based on an additive color scheme, but as the combination of red, blue and green was white, it was hard to get it to show on the background. I eventually switched to a subtractive color scheme instead.

Music

Music can really bring out a game, and it was important to me that this game had one. I searched on YouTube for music released under Creative Commons, and before long I found what I thought was a suitable piece.

Conclusion

The most rewarding experience in playing a puzzle game comes when the player suddenly just sees the solution after struggling with a puzzle. That aha moment is quite beautiful, for both player and designer.

I’m quite happy with how this turned out.

Play Palette

UPDATE: I posted my game on the PuzzleScript forum and received quite a fair bit of feedback. It seems that the original color choices weren’t very popular, so I’ve made a few changes. I think the game looks much cleaner now.

[Game]Naya’s Quest by Terry Cavanagh

Introduction

Naya’s Quest is a cool little game by Terry Cavanagh of Super Hexagon and VVVVVV fame. And it’s free. You should play it before reading this. It shouldn’t take you more than an hour. In my most humble opinion, it’s not even that important that you complete it.

But at the very least, play till you understand the beauty of it.

Go play it. Now.

Gameplay

It’s amazing how he took a very basic illusion, one that most of us have encountered before, and turned it into a game.

The result is a series of mind-bending puzzles that forces your brain into thinking in new perspectives. Personally, that was the most fascinating aspect of the game — rewiring my brain. If you think the puzzles are tough, just imagine how much harder it must have been to conceptualize them.

Story

There isn’t that much of a story here, in terms of content. And I don’t mean that in a bad way. While most things are left unsaid, I truly enjoyed the little bits of text that deepened the sense of mystery.

Controls

The controls are a bit wonky to be honest, and often felt frustrating to use. Might have been due to the isometric nature of the game, but I think there’s definitely room for improvement.

Conclusion

Check out this interview with the creator on his creation process. In particular, it discusses why he decided to release it for free, which I thought it was sincere and inspiring.