Onion Trail
Back when I was a student, I lead a small team of programmers and artists to prototype an idea I had. Onion Trail is a cooperative party revamp of the classic game Oregon Trail similar in nature to Death Road to Canada. Like Oregon Trail, the purpose of the game is to survive a road trip by managing resources. If any particular resource depleats, the players are at a high risk of death. However, in this game, players routinely left the vehicle to move around in 3D space. For example, combat encounters, minigames, and pit stops would have the players walking around and interacting with the world. The story involved the world being overwhelmed by plant overgrowth and an unlikely team of gardeners had to save the day. I implemented a playground of game mechanics:
Oregon Trail Road Trip Mechanics
Much like Oregon Trail, the players travelled in a vehicle. In this case, a tractor. They managed the resources of food, fuel, and medicine. If the players ran out of any particular resource, they became likely to die by random encounter along the trip. Here’s an example of what a random encounter looked like.
When outside of the vehicle, players could find resources that would bolster their chances of surviving the trip. Small quantities or resources were collected by walking over them while large quantities had to be carried back to the vehicle.
Players could also lift/throw each other or objects in the scene in order to reach new heights and solve puzzles. Stacked players were bound together and acted like a stiff spring when walking into obstacles.
Some environments were large enough that players could enter buildings.
Players could also interact with objects in the scene and talk to NPCs.
Combat Mechanics
There were supposed to be a variety of combat encounters in the game so I implemented an extensive combat system that supported status effects, piercing, critical chance, and knockback. I used this system to create a large variety of weapon types. For example, melee combat and grenades.
I also made hitscan and projectile bullets. The projectile bullets were capable of ricocheting off of walls.
The combat system was designed to be used by players but also by enemy AI. Here’s a simple AI attacking the player with a melee weapon.
One random encounter involved surviving multiple waves of enemies.
As seen by the flamethrower in the above gif, status effects could be induced on characters. If a player was ignited, they’d start to run and were unable to stop. If they bumped into another player, the other player would also begin combusting.
When a player ran out of health, they’d become incapacitated and could be revived by a teammate. If there were no other living players to save them, they’d instantly die.
When I worked on this project, I was a software engineering student just dabbling with the idea of becoming a game developer. My design was a bit too undefined and ambitious for a small team with no professional experience to achieve in their spare time. Regardless, it was a great time to tinker and learn. Work on the project stopped after I got my first game development job. I may come back to this project if I flesh out a design document and believe the idea is worth pursuing again.