This will give solutions to Graph Train! Graph Train is a really short game that I made during a game jam. You can download it right now for Windows, or learn more about it.
While we worked in a team, I was responsible for all of the level design. After playtesting, I thought it would be interesting to take a quick look at each individual level and work out what went well and what could be improved.
Level 0 - Tutorial
This was the only level that people managed to complete successfully without extra help. It was a good introduction to the basic mechanics, but the last puzzle was a bit confusing.
Most players successfully spotted that it needed to be changed from y=2 to y=0. This was an excellent opening puzzle as it communicated what the game is about effectively with a simple puzzle.
While this was a good puzzle, many players were confused as it started with y=sin(x) and needed to be changed to y=x^2, a completely unrelated function. Many players felt misleaded by the initial function, and would've got it had this not been there.
This level aimed to showcase the idea behind collectibles. This was a good level as it allowed for a few different solutions, and also allowed players to continue even if they couldn't figure out the puzzle. Some players didn't immediately think about trig functions, and found this challenging.
The camera didn't pan over this level properly leading many players to get confused. People also found it weird that the level was already complete, with many of them panicking having the train about to derail while they can't see the track. Some even cleared the level, when they could've just left it. The straight line solution for collecting the frog was fine, albeit a bit uninteresting.
Level 1 - Transformations
Level 1 was a really good illustration of how this can be used to teach a particular topic. However, difficulty was a bit too high and collecting the frogs was often difficult and unsatisfying.
The first puzzle was good at introducing players to the idea of transformations, althoug some players were confused as they couldn't see the whole graph due to poor camera handling.
This puzzle was one of the best in the game. Almost every player managed to get this correct, with many also managing to collect the frog. The best part of this level was the two-stage process where you initially solve it, and then realise that you can also collect the frog. Collecting the frog was a very natural progression from the previous transformation, which made it much more attainable for players.
This puzzle was surprisingly hard, although some players did manage to complete it successfully. The majority of players began by reflecting in the x axis instead of the y axis. Most managed to correct themselves, but often it was too late. Finally, players also had to shift the graph up by one. This was ultimately a bit too much to do in the time available, and would've benefitted from a slow train. Also, the frog is very difficult to obtain and doesn't follow naturally from the existing solution in a satisfying manner.
While the idea behind this level was great, the execution was severely lacking, and as a result nobody managed to get this correct. The idea was that you are given a very complicated function that you haven't seen before, and have to simply transform it. The easy solution was to simply stretch vertically, but this was not clear and was very hard to spot. Most players instinctively deleted a lot of the function, which made it very difficult as they then had to type a lot back. The key idea was that the function begins by going through the frog, then when you apply the stretch, it stops going through the frog. To get the frog, you have to rethink and instead apply a horizontal shift. Unfortunately, while some players recognised the need for a horizontal shift, typing it out simply took too long. A few players used degrees instead of radians.
Level 2 - The Finale
This level had some very interesting puzzles but was a bit too difficult. It would've benefitted from a slower moving train.
This had various solutions. Most players chose to flip in the x axis, although a few chose to square it. No players tried to use abs(x), however this was a valid solution. Most players successfully solved this graph, which served as a useful warm-up for the later puzzles.
This puzzle required using arctan(x), then flipping vertically. This was a really interesting puzzle that was very well done. Unfortunately, as with many other puzzles, there simply wasn't enough time to execute. Collecting the frog was very satisfying (requiring a horizontal shift), although required quick typing to actually attain. Also, having to shift vertically by 1.2 was confusing and should've been moved so it only required shifting by 1. Many players also deleted arctan(x) to put the minus sign at the front, which wasted valuable time.
Of the players who managed to make it to this puzzle, very few got it correct. Even out of those who spotted it was an exponential, some chose a different base and few divided by 2 in time with correct brackets. This puzzle required a bit of guesswork and could've been designed better. One player managed to complete it with a different base for the exponential by scaling the power differently. Collecting the frog required very unintuitive use of sin(x) which was difficult and unsatisfying.
The final 'puzzle' was not my idea, but is a great addition to the game which gives it a lot of personality. I won't spoil this one in case you want to have a go.
While there were some great puzzles, many of them were too hard or uninteresting. Some of the puzzles were not as effective due to poor camera handling, but others were simply not very good. Overall, the difficulty needs to be decreased and the frogs need to be designed into the level, rather than an afterthought. That said, the puzzles demonstrated a great proof-of-concept, giving many interesting scenarios to work through, and some of the puzzles were brilliant.
More About Graph Train
I've also done an article explaining my role in the overall development process. You can read it here.