Transit Terror by Rytannic
Transit terror, my Oregon Trail inspired, post-apocalyptic, rng-based cannibal simulator is as finished as it'll probably ever be!
Really had fun working on this one. Once again it was nice to go a bit more art focused (still crappy programmer art though lol) instead of working myself up over code. My 4th Ludum Dare submission and definitely not my last! Would love to get some feed back and would be great if you guys tried it out and told me what you think.
What is the game?
The game is about driving your bus as far as you can by managing resources and making decisions based on events that will determine the survival of your 20 passengers. Do you stay and fight the hordes of zombies and bandits to perhaps loot some more resources like food or fuel for the road, or do you speed off in an attempt to not risk losing what little you have. Currently there are about 10 different possible random events, 5 of witch have multiple outcomes. A bit less than I'd hoped but I really just ran out of event ideas :/ Hopefully there's still enough flavour for at least a few runs :) Its a proof of concept if anything.

Resources, the name of the game
Managing resources effectively is key. The player will be required to keep tabs on supplies, food, fuel and morale to keep the party going. Running out of fuel? Trade some supplies with a nearby stronghold or camp. Morale running low? Get your guys an extra ration each to keep their spirits up. Haven't found food in a while? That's what the 'Cannibalise' button is for.

Upgrade your Post-Apocalyptic Death Chariot
By spending supplies gathered in the wastelands from random events like winning hostile encounters and scavenging, you can upgrade your bus to not only make it look cool as hell, with the final upgrade sporting an M1 Abrams cannon on the roof, but also increase your combat effectiveness. Combat effectiveness is calculated based on how many passengers you have that can fight, how well supplied you are, and the upgrade level of your Bus.

Tools Used Art: Photoshop Engine: Unity Scripting: Visual Studio Music/Ambience: FL Studio 12 Sound: Audacity Almost all sound effects across all 4 of my Ludum Dare entries have been edited recordings of my mouth
Special Thanks
Big thanks to Papa Porg (https://www.facebook.com/porggod/?ref=br_rs) for shouting out the game in his facebook group. I never asked him too, he offered it. Thanks fam.
Final Notes
Been looking through some of the entries this Ludum and they just keep getting better. I know I say this every time but I'm genuinely so impressed at what some people can do in just a couple of days. Keep it up guys. I'll see you in a few months.
IMPORTANT Okay, so it's come to my attention that there is a bug where sometimes the road just ends. This is because the the mile count increases based on a collision that occurs when the car translates into a trigger. The car translates on an Update() function and because of this it updates more frequently at higher fps counts. This means that faster computers have more frequent events and a faster bus that will sometimes travel straight through the trigger and into the eternal nothingness. The only way I know to fix this is to limit the fps somehow or play on higher resolutions to decrease the fps. I've tried using a FixedUpdate() function but that breaks other stuff. Apologies. I should have noticed this in playtesting and generally just made the game better. It was a very silly way of going about it.
Hope you enjoy the game.
Ratings
| Overall | 221th | 3.475⭐ | 22🧑⚖️ |
| Fun | 191th | 3.4⭐ | 22🧑⚖️ |
| Innovation | 155th | 3.421⭐ | 21🧑⚖️ |
| Theme | 131th | 3.825⭐ | 22🧑⚖️ |
| Graphics | 208th | 3.5⭐ | 22🧑⚖️ |
| Audio | 268th | 2.921⭐ | 21🧑⚖️ |
| Humor | 123th | 3.275⭐ | 22🧑⚖️ |
| Mood | 212th | 3.225⭐ | 22🧑⚖️ |
| Given | 11🗳️ | 17🗨️ |
It's a little bit too fast and too random, but I enjoyed it
Also, that sometimes happens on the lowest settings and extremely high fps counts. What graphics option did you pick?
Happy, you still enjoyed.
interesting game
@geckoo1337 Sound criticism. Definitely not my best work. Just gonna put it behind me and keep moving forward lol.
Thanks
Also I was looking through your source code see if I could assist you anywhere and I think there's some things you could apply in any future programming endeavours.
- The EventPanelController script screams of classes to me. I would have created a nested class inside EventPanelController, call it something like "Event" and then you can just put any necessary variables inside of it (eventName, eventTitle, button1Active, button2Active etc.). You then put [System.Serializable] for the class, create an array or a list and then you can just make events in the editor :)
```
```
//This is all inside EventPanelController.cs
[System.Serializable]
public class Event
{
//Stick all your variables in here
}
public List<Event> allEvents = new List<Event>();
```
- You could have probably stuck all those survivor sprites into an array
- To fix your bug you would just not translate the bus in general (also you forgot to * carMoveSpeed by Time.deltaTime), what you would use is a co-routine. Let me demonstrate.
```
//This is your co-routine, named RoadCycle, coroutines accept parameters
IENumerator RoadCycle (float time)
{
//Makes the co-routine run forever
while(true)
{
yield return new WaitForSeconds(time);
//All your code goes here
}
}
//How often new events occur
public float timePerCycle;
void Start()
{
StartCoroutine(RoadCycle(timePerCycle));
}
```
I hope this all helps :)
if its one thing ld43 taught me, its that i rather enjoy road trip make-decisions-as-you-go games. And this game was no exception. the moving scenery and the bouncing bus were just very entertaining to watch.
the buttons on the bottom weren't very understandable in that it wasn't clear how they effected the other stats. Like, how do you up your combat percentage? Upgrading the bus? And what's the pink mushy stat on the far right?
Other than the missing information, this game was cool and fun to play
A couple of pain points I noticed revolved around two main elements.
1. It was often unclear what the results of choices would be due to the terse dialogs, and the impact of RNG was also not always clear. This reduced my sense of agency, making it feel more like the game is playing me than I am playing the game.
2. Having an event-driven system would have been better for this kind of game, or otherwise offering some kind of occasional rest stop situation where you can take a breather. This compounds with the other issue: Dealing with sometimes confusing choices with a limited amount of time can be frustrating because have neither enough time to form a workable strategy as a beginner, nor to analyze its success before something else is requiring your attention.
Since the dialogs occlude mouse input for the buttons on the bottom, a lot of tension forms over the process of trying to grok what choices you should make and select an option before a dialog pops up, requires you to read and choose and option, then bring your mouse back over, switch back mental contexts and select a choice before it happens again. In an event-driven system, the game would only move as you do, giving you time to make decisions about your resources. Perhaps these decisions are free to be made between events. Perhaps they have time-related penalties that lead to the next event being triggered.
Rest areas would solve this problem in another way, providing intermittent chances for the player to size up his party and consolidate resource between hectic bouts of gameplay. That provides the fast-paced gameplay you might have been looking for without sacrificing the much-needed improvements over UX.
Thanks for making the game, I had fun.
1. You are entirely right! Damn... I should have made it a lot clearer what choices did what. I never thought about that since I was the one that programmed it so I always knew. Very good criticism.
2. I feel partly that the slim window to manage resources was due to the massive error of putting the whole game on and Update() function instead of FixedUpdate() which caused the game to run varying on your FPS. Lower fps = slower bus and therefore more time between events.
I completely agree with all your points and will 100% act on them if i ever work on the game again.
Thanks for playing and I'm glad you had fun :)
Choose a random period of time within a range. ( In JS this would be `Math.random() * (MAX - MIN) + MIN` )
Each loop iteration / frame, store the last timestamp using a high-precision timer. In the next frame, take the difference between this frame's timestep and the last frame's timestep. You then have a time delta whose value changes based on the time between frames, which you can subtract from your time period. In Unity you have Time.deltaTime() which saves you a couple steps.
When this time period reaches zero, call your event and then get a new time period and start over. Now your events will trigger independently of the time between frames.
Btw, seems I was the last one to give you rating number 20 so you should get into the final rating.
Good luck!
The graphics are nice, would be cool to have a few a/b choice events, introduce a bit of story that way.
Fun nonetheless - my max is 71 miles :stuck_out_tongue_winking_eye:
@joror Yeh lol. Its roughly 80% luck I'd say. Glad you liked the game! I also do the strat where you eat most of your guys at the beginning lol. Less people lowers your chance at winning combat encounters though so be careful ;) 71 Miles is pretty damn good :D