Link Search Menu Expand Document

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.

Road travel and prompt preview

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.

walk over resources preview lift and carry resources preview

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.

player stacking preview collisions carried down stack preview

Some environments were large enough that players could enter buildings.

building interior preview

Players could also interact with objects in the scene and talk to NPCs.

door intearction preview dialogue preview

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.

melee weapon preview grenade preview

I also made hitscan and projectile bullets. The projectile bullets were capable of ricocheting off of walls.

bullets preview ricocheting bullets preview

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.

base enemy AI preview

One random encounter involved surviving multiple waves of enemies.

Wave survival and flamethrower preview

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.

combustion status effect preview

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.

incapacitation preview spikes preview

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.