It’s been a while since I posted anything, so I thought it would be a good idea to detail what I’ve been working on. If you are unfamiliar with the game, or are interested, you can play the Ludum Dare version here. The Ludum Dare version was made in 48 hours as a part of a development competition. I have been working on an enhanced version of the game for the past couple months and I am planning on releasing it in august. To start, I’ll go over the elements that I have added.
Gray Operation Floor Blocks
This is a new block that is similar to the Blue Operation Block in that it can be used multiple times, but it can also be passed over. I generally refer to it as a floor block. The use case for these are operations that must be performed when a user takes a particular path and this block allows for it. You can use this on a path and the player will be forced to walk over it and perform the operation, where as a blue block would have to be off to the side and would therefor be optional. You do have to account for the fact that the player would have the ability to walk over the block multiple times, but that can be dealt with in other ways.
A block that will teleport the player to the matching landing block. There can only be one portal landing block for each color per level and all portals of that color will link to it. These are not super necessary and I’m not sure they really provide any meaningful logic that couldn’t be done using other methods, but they do alleviate spacing issues in some levels, so in that way they can be useful.
A block that forces only movement in a particular direction. You can step onto it from any of the 3 directions that it is not pointing, but can only move off of it in the direction that it points. This is a very useful block that forces the player to perform certain actions, or more often to not perform certain actions.
Wire is an element that hooks up to different blocks (Any Operation Block or Gate) and will set their value to that of the player when a wire trigger is hit. Wire is the most dynamic element of the game and is something that I have just added so I am still working through all the possibilities. The key part of the wire is that it allows the player’s value to have feedback into the level. It also opens up the ability to demonstrate functions, substitutions, and probably more than I have actually found. It’s pretty cool to play around with. Here is one of the introductory puzzles for the wire that may help you grasp the concept a little better.
In this puzzle, you need to plan ahead and figure out what you need to set the =block. It’s pretty obvious that it needs to be 7, so you can add 2, trigger the wire, which sets the =block to 7, then continue adding 1 until you are equal to 10. That’s probably a terrible explanation, but hopefully you got it. I’m excited about the wire because I think it will allow for some really interesting concepts and puzzles to be made.
Push Block [Not Implemented, but something that I am thinking about]
This would be a block that has a number that can be pushed by the player. All the rules that apply to the player would apply to this block. For instance, it can be pushed into operations, it must meet conditions to pass through gates, and it could be used to trigger wire networks or it could be the target of a wire network. I think the idea is that pushblocks would have a special place they would go in a level to unlock a lock. I don’t know if this will really add anything meaningful, but it probably would allow for some different type of puzzles, so I’ll probably implement it sometime soon.
So I’m up to around 60 puzzles currently and generally have a pretty good feel for making them. It’s an interesting process because I honestly just wing it most of the time. Sometimes I will sit down with a piece of paper and just start drawing some things and doing a little math and see if I can make something interesting. Other times, I will approach it with a mathematical principle or theory in mind and try to base a level off of that. A very high level goal of mine is that each puzzle feels somewhat different and they aren’t just variations of the same idea. This makes things much harder, but I think will result in a much more satisfying experience for the end user. Take for instance the level titled ‘War of Attrition’ in the Ludum Dare demo:
It’s a neat puzzle and doesn’t really overlap with any of the previous puzzles. I like puzzles like this where you can look at it and almost immediately get the point. I need to hit all the switches and be less than 99. The actual puzzle is trying to figure out how to accomplish that task. I could probably take the simple idea of this level and make 10 similar, and subtly different puzzles from it, but I have decided against it. (If players want more of that type of level, they are free to create them in the editor and upload a level pack) I want the official level pack that I release it with to really touch on a lot of different things, but not overuse any particular thing.
Another interesting thought when designing levels is how mathy (not actually a word, but it should be) they should be as opposed to how logical they should be. I’m using the term logical to describe levels with more of a dependence of switches, portals, and non direct mathematical elements. In general I prefer to make levels more mathy than logical, but I find that the levels that seem to work the best integrate them together.
I’m hoping to have a fairly high level of difficulty, but I need to be careful that it’s not just artificial difficulty. I don’t just want to add a bunch of numbers and throw down a gate and say figure it out. I want levels to be somewhat difficult to solve until you grasp the concept that it is demonstrating, and once that is realized the solution will come naturally. Here is an example of a puzzle that does that.
It may look a little foreign as it has some of the new elements in it, but basically you start out as zero and can add one as many times you want. You can then trigger a wire that sets the equal gate to your current value, then it performs some operations. You need to find the value you need to be so that after those operations are performed you will equal what you were originally. It is basically the function: (((x-2)-3)*2) = x, where you need to solve for x. This mechanic is introduced slowly by having a couple easier puzzles that build up and show that you can represent functions. I like puzzles like this, because solving it is going to result in some kind of deeper thinking. You probably aren’t going to just stumble upon the solution randomly, but you will need to look at it and think about it for a while.
When I release, I am planning on having somewhere between 75 to 100 levels and they will be split up into groups of 5. I am thinking that each group of 5 will be logically grouped in that they either introduce a new mechanic or that they are puzzles with a particular theme. The game will start off with some simple levels, like a lot of those in the Ludum Dare version, and then slowly start getting more difficult as more mechanics are introduced. It’s important for me that if a player gets stuck on a particular level, it won’t completely stop him from progressing further, so there is some flexibility built in on how the levels unlock. Basically, to unlock the next group of 5 levels, you have to beat at least 3 levels of the previous group. I think this serves a good balance of not being too punishing if you can’t solve a puzzle, and at the same time not too easy (You have to solve 60% to continue advancing). This will probably be something that I will get more feedback on when I get some testers to actually play through it.
I would describe my expectations for the game as realistic, but hopeful. This will be my first complete game that I will be trying to sell and just getting it out there will be satisfying to me. From my calculations, my total cost for the project will be around $1000, so I am hoping to make at least that much back. Anything on top of that will just be a bonus for me. I mean honestly, it’s a math based puzzle game and visually, it’s kinda boring. It has pretty niche appeal, but I think it’s really good at what it does and it’s going to be really polished. I think it’s success will mostly depend on if I am able to market it effectively and get any coverage from some sites that cover indie games.
There is also the education aspect of the product. While I’m not really focusing on schools now, it is something that I’ll try to do after releasing it. I’m not really sure how to go about this, but I suppose that I’ll try to make contact with various schools or organizations and see if they are interested in the game. I also think I will make several level packs that focus more on simple math operations to solve. I think it could be cool opportunity to have students create their own levels, perhaps every student in a class creates a level and then as a class they make a level pack from it. I don’t know, there seems to be a lot of potential and I just hope that I can reach as much of it as possible.
I will be releasing it on PC/Mac/Linux for $5. This will come with the game, editor, and the ability to upload and download levels/level packs that others have made. I also plan on releasing it on iOS/WindowsPhone/Android, but these version won’t include the editor, as using it on the small screen would be a bad experience. The mobile versions would still have the ability browse and download levels that others have made though, so they still benefit from the editor. I’m thinking the mobile versions will be $1.99.
That’s pretty much the extent of my update. Things are going well and I am hoping to release it in the first week or two of august. If anyone is interested in doing any testing with some of the levels that I’ve made or would like to make some levels with the editor, I will probably have a build ready for some beta testing coming up. Just leave a comment or send me an email at: email@example.com.