In Unmatch, (my soon to be iOS game) all the levels are made entirely by hand. While it seems the rest of game development is moving towards procedural, or semi-procedural gaming, I have chosen to hand craft my levels. There are several reasons that I made this decision, and it was not an easy choice. I started in the beginning attempting to at least automate either the generation or solving portion of the game. Meaning that the game would generate puzzles for me to solve and review, OR I could’ve made the levels by hand and let the computer find out if there was a viable solution.In this post I’m going to let out the dirty secrets on how I originally hand made levels, and what has changed. I’ll also outline why I chose to DIY (do-it-yourself) all the puzzles in my games.
The original process was to create a level by hand inside the Unity scene view, and then output the level code to the console. Then I would copy-pasta the level code into the game for a particular level. This meant building levels that were pretty and hoping they had a viable solution, or building a solution and then jumbling everything up so it “hopefully” looked pretty. Not the best method, since it meant moving the tiles by hand inside the editor. There were several times that I started from a solution, jumbled the map, and then forgot the solution and couldn’t solve my own puzzles.
The paper process, was a period where I hand drew puzzles on paper. This meant using half the sheet for a solution, and then using the other half to draw the same tiles in a different pattern. While this was pretty fun and exercised my brain quite a bit, it had it’s own issues. Mostly when it came to some of the later challenge types, and determining accurate move counter estimations. While this was fun and crafty, I then had to transpose this new map into the computer anyway. It made the whole development cycle seem less fun and more data entry.
The new process! I spent some time actually building in an editor. That’s right, Unmatch has an in app level editor. It was and is the best solution. I can build new levels anywhere I can use my iPad. I click away on the tiles and can start from a solution, or from something pretty. I also added code that requires that I playtest the level and confirm a solution before sending it off to be copy pasta-d into the game at my home computer. It’s such a lovely tool that even my wife (Playtester #1) has made a few levels. My 3yr old son thinks it’s fun too, but I wouldn’t call what he’s making puzzles. He thinks it’s a drawing app, and to a degree he’s right.
Below are a couple screenshots of the parts and pieces that work inside of each tile, and the settings inside the inspector that drive the graphics and functionality of each one.
Now onto the pros and cons that I weighed in the decision to make my puzzles by hand. It was not an easy decision, and I’ll admit that I’m still not persuaded to add in automation of some kind. For now here is my list/reasoning. Feel free to disagree with me on any of these and leave me a comment.
1: Quality – Each puzzle is crafted to a level of difficulty and beauty of my choosing. Some make sense, and some are pure logic.
2. Timing – Building the advanced AI required to build even moderate quality levels, or to solve them would quadruple my development time.
3. Complexity – An AI capable of handling all the many tiles and layouts would dwarf my game in terms of code complexity.
4. Playtesting – If it’s computer made or hand crafted, players are the ultimate judge of quality. It’s easier to adjust how the gameplay evolves from user playtesting if it’s hand crafted. (At least I think so)
1. Quantity – Hand crafting takes more time. More time per level means less levels in the long run.
2. Post release time – Unless I have a nuclear arms size stockpile of extra levels, players will eventually get to a point where they have to wait to get more after release.
3. Human error – I am human. I will mess something up. That’s not to say that an AI is not without it’s faults, but that is also mostly due to human error in it’s design.
For the time being Unmatch will contain handmade levels. In the beginning I had a grand idea of releasing the level editor to the public and letting people share their puzzles with each other. This may still be a reality but ONLY if it can be presented in a clean and clear manner.
Ultimately letting the user generate there own puzzles would solve the quantity issue, but that leaves quality to the individual, and there is no guarantee that puzzle players want to be puzzle makers.