Trainline by someone

[raw]
made by someone for Ludum Dare 59 (JAM)

Build railways, Deliver goods. Get stuck in endless loops.

Spent far too much time trying to get the trains to follow the tracks properly that I failed to make it a game.
The intention was to set up automation rules rather than having to manually control the signals. It did not happen.
As is you can only create tracks and make some money by carrying goods between stations.

Controls:
- WASD: move
- Right click to rotate camera - Left click to select objects, to change points, and to change signals
- Del to delete the selected train
- Space to pause then game

Build stations next to a track and they will be assigned random supply and demand values.
Stop a train next to a station to automatically load or unload.
Don't create too sharp corners or everything will break horribly.


Post Jam Version

I have now uploaded a post-jam version here that has the automation system I wanted to add but spent too long struggling with the track editor and getting the trains to follow them properly.
It also adds towns to the world so there are actual places to transfer goods between.
The track editor has also been greatly improved and the disabled buttons for placing signal boxes and demolition now work.

I am quite pleased with how this version turned out. The actual jam entry is sorely lacking some crucial features.

Ratings

Overall 827th 2.583⭐ 26πŸ§‘β€βš–οΈ
Fun 820th 2.333⭐ 26πŸ§‘β€βš–οΈ
Innovation 744th 2.74⭐ 27πŸ§‘β€βš–οΈ
Theme 761th 2.75⭐ 26πŸ§‘β€βš–οΈ
Graphics 747th 2.68⭐ 27πŸ§‘β€βš–οΈ
Humor 667th 1.69⭐ 23πŸ§‘β€βš–οΈ
Mood 827th 2.348⭐ 25πŸ§‘β€βš–οΈ
Given 20πŸ—³οΈ 24πŸ—¨οΈ

Feedback

demian4ik
Apr 21st Β· 14:20 UTC
The idea with trains is good. But at the beginning, it’s unclear where the cargo needs to be transported from and to.

In my opinion, it would be better to add points on the map showing where resources should be picked up and delivered, so the player can plan railway construction around that.

It would also be cool to add different types of transport, like passenger and freight.
🎀 someone
Apr 21st Β· 18:22 UTC
Thanks for playing.
Towns around the map with various resources and demands was indeed the plan. The current cargo destinations is a nasty last minute hack to make it at least do something.
LDJam user 219121
Apr 22nd Β· 01:34 UTC
The rail placing system is very cool! That must have been hard to make! It would be awesome to see this as a finished game someday
Madbarron
Apr 25th Β· 22:30 UTC
Props for getting as far as you got, this was super ambitious :thumbsup:
jelch
Apr 29th Β· 03:09 UTC
Trains! A great start.
Theogen
Apr 29th Β· 04:46 UTC
This is a seriously impressive demo for a 3-day jam! Did I understand correctly that you used your own C++ engine?
🎀 someone
Apr 29th Β· 09:56 UTC
@theoratkin yes it is my own [c++ engine](https://github.com/sgynn/base/). It has grown quite capable over the years of Ludum Dare but I still find things that need fixing or improving every jam.
Gecko64
Apr 29th Β· 12:04 UTC
Very impressive proof of concept, I would like maybe a little tutorial. But other than that very impressive for a 3 day demo. Good job :)
Theogen
Apr 29th Β· 15:14 UTC
@someone That's super cool!
Alex de la Cour
Apr 30th Β· 16:56 UTC
Took me a good minute to figure out what I was doing (I was just running around the awesome looking terrain until I noticed the UI in the top corner, d'oh!)

Some tutorialisation could have gone a fair way, but I appreciate that this is a pretty impressive system that probably wouldn't have left you much time for any frills!
Richard Baltrusch
May 04th Β· 08:43 UTC
Impressive tech demo and still kinda fun to run around in even without any gameplay. The train cam is a nice addition!

And I totally get following the tracks must have been difficult. For my game I simply used a tile-based approach so my trains could use A*-star pathfinding - bit wonky but it worked until I needed to implement reverse signals (I finished the first day in a foul mood after my reversing trains decided to go off-track and disappear into the bushes). How did you implement your path following logic?