TrainStack by TheMonsterFromTheDeep
TrainStack is a game where you get to experience the joy of trains that blow up a lot.
It is a puzzle game, and the goal is always to get the train to the end of the track. The engine must be placed first, and all the cars behind the engine - but in any order.
Not all cars are used in all puzzles.
Most of the puzzles are p̶r̶e̶t̶t̶y̶ ̶e̶a̶s̶y̶ actually quite difficult, according to the comments. I personally found them easy - probably because I made them, and understand the game mechanics with some level of intuition - but even I was stumped by the last one for a while (and at first it was level 8) because I forgot the solution.
Additional controls not mentioned in the game:
F11 - go fullscreen
It is a puzzle game, and the goal is always to get the train to the end of the track. The engine must be placed first, and all the cars behind the engine - but in any order.
Not all cars are used in all puzzles.
Most of the puzzles are p̶r̶e̶t̶t̶y̶ ̶e̶a̶s̶y̶ actually quite difficult, according to the comments. I personally found them easy - probably because I made them, and understand the game mechanics with some level of intuition - but even I was stumped by the last one for a while (and at first it was level 8) because I forgot the solution.
Additional controls not mentioned in the game:
F11 - go fullscreen
Some of the puzzles (for example, level 10) are, in fact, pretty bad - it's possible to randomly drag all the cars on and instantly win.
@negativegeforce I guess I didn't actually think the puzzles were very difficult - that one is relatively simple (you can look in SOLUTIONS.txt if you want to see the answer) but it has to do with the fact that you don't always have to use all the cars (I guess I should have made that more obvious in the instructions...)
I guess really the main difficulty from the puzzles is that ya'll are reverse-engineering the process I went through to design the puzzles, which was basically "place saw traps until the thing doesn't explode." I will say though that the general strategy (I would assume, I don't actually know...) is looking at the different pieces of the level (e.g. traps, hills, broken tracks, etc) and trying to figure out the way to get the train to interact with all of those correctly.
It often involves thinking of what pieces could be destroyed to connect other pieces that shouldn't have been connected before and ordering everything to do so.
That is, of course, for the human-designed levels - level 14 and 15 were not designed with the same intent (although I think 15 originally was, but it later came out to be incredibly difficult) and they just involve trying to figure out an order that will move the train without blowing it up.
progression feels a little overwhelming, as things unlock so fast
also I think level scrolling should have been done with mouse as other controls
Overall really well done game
I still like the idea, though :) And the presentation is great (and highly appropriate), though might be improved with smaller pixels so I can see more of the track/train at once?
I might leave this title screen music playing forever.
@smilewood Yeah, I really wish I had made the traps more clear. One thing I thought I could do was add a red exclamation mark over the traps whenever they were active, but sadly I never got around to it. :(
@KevKeyOnFire that's actually one of the sort of "puzzle" mechanics that is kind of hidden - the train starts out slightly farther when it has more cars, which can actually change how it interacts with the track. I don't know if this is good design or not, so I'd love to hear more opinions.
@eevee Level 7 is an interesting one. The solution actually appears to not be a solution at first, because the train stops at the broken track until the fuel car runs out...
The raw resolution of the game is 120 x 90. I'm not necessarily good at higher-resolution pixel art - I think my highest-resolution Ludum Dare game is 480 x 360. I did sometimes think it would be better to show more of the track, if possible - do you have any idea of how I could do that?
A well polished game with a good eye on details. The way screens move in, the tutorial, the design of text etc. I really like it.
The game still somehow have that "oh I dont get what happened" feeling to it. I think it's about how the traps works and how you protect your neighbours.
Art is perfect and sound is also true to style. One of the most complete game Ive played in here so far.
I enjoy how the game guides you at the beginning, and even encourages you to try the wrong setup just to see what happens (at the level with 2 coal cars and a hill).
Great work!
Great job on putting together a decent puzzle game in 48 hours. It seems to be a really hard thing to get right, as so much of it hinges on really good level design - I've never been brave enough to try.
I got stuck in a few places - I could never quite wrap my head around exactly how to determine which car would be damaged by a given trap. Including the solutions was a nice touch, 'cause you definitely want people see as much of your game as possible.
Really solid entry, dude!
Also: https://www.youtube.com/watch?v=hHkKJfcBXcw
Can you add your game on indiexpo.net ? (it's free)
So we can include also your game in the video ;)
p.s. write #LDJAM in the game's description. (you can already find several games from the jam there)
The music kinda got repetitive, but not too much!
The puzzles got too hard for me after a while, but that's just me.
I think you did a great job for the amount of time you had to make the game. Well Done!
You probably missed some sleep() in the main game cycle, since it eats 100% cpu.
The only code that's running at 100% speed is the drawing code (i.e. it redraws as soon as its done drawing a frame) - do you think that could be causing the problem?
Yes, that's probably it. It tries to draw as many frames as possible (and it probably can draw 100+). When instead you need just 50-60 for smooth animation.
There are 2 ways to do that:
- create a timer event to trigger each 15ms or so and try drawing there
- measure how much time takes each redraw (like System.currentTime... or even better System.nanoTime) and Thread.sleep for (15ms - last_draw_time) in the end before scheduling another redraw
Thanks for the insight. You're the first person to observe this problem in any of my games, which have all been built on the same sort of framework thing for the past 3 events, so I'm surprised nobody else has seen this before.
In any case I'll be sure to fix it by the next event. :P
The graphics are simple, but well done. Exactly what a game like this needs. The animtions are awesome, especially those of the level menu and the one between levels. Well done!
Sound is good, but the music sounds a bit out of rhythm at times.
Score: (because I like scores)
Overall 4/5
Innovation 4/5
Fun 4/5
Theme 3/5
Graphics 5/5
Audio 4/5
Humor 2/5
Mood 4/5
@joe40001 - thanks for the scores! I'm not sure I would consider my game that great, but I'm glad you at least liked it that much. :)
The main strategy in this as a puzzle game is to think of the traps as a tool to break a car. Most of the levels then become pretty similar - you try to set up a train that will make it past the broken track, and then will get broken in a way that will allow it up the hill.