Clone of popular 90's computer game for C#.
git clone https://github.com/Maxwolf/OregonTrail.gitThe solution builds with the standard .NET CLI on any platform:
dotnet build OregonTrailDotNet.sln
dotnet run --project src/OregonTrailDotNet
dotnet test OregonTrailDotNet.slnOn Windows, ./publish.ps1 produces self-contained single-file executables (game, minigame workbench, and training bot) in the repo-root publish folder.
The list below describes how this clone actually behaves. Where the clone deliberately reimplements a rule from the original 1980s/1990s game differently, that is called out with a (differs from original: …) note.
- The trip is simulated one day at a time; each day the vehicle advances toward the next landmark until it is reached (differs from original, which used fixed two-week segments)
- A turn counter increments once per simulated day; there is no fixed 18-turn cap (differs from original's up-to-18 two-week turns)
- There is no time limit: like the 1985 game (which let a party idle for years and still finish), only reaching Oregon or losing the whole party ends the trip. The 246-day figure survives solely as the training bot's pacing horizon
- Each day's ideal mileage is calculated from the value of the party's oxen plus a small random amount (differs from original's per-two-week ~200 mile projection)
- Mileage is an ideal figure; problems (dead/wandering oxen, floods, fog, hail, illness) subtract from it, floored so the wagon always makes at least a little progress
- The travel screen continuously shows miles traveled (odometer) and distance to the next landmark
- Daily mileage is driven by the oxen-value formula rather than a fixed weekly average (differs from original's ~75 miles/week)
- The going gets harder later in the trip: later locations use harsher climates, and high mountain passes apply a slow-going mileage penalty
- Weather changes day to day; carrying fewer sets of clothing than there are party members raises the chance of illness
- Stopping at a fort dramatically reduces the miles covered on the very next travel turn
- Bad weather is driven by whether a random daily temperature falls at/below the month's average for the region (differs from original's flat 20%)
- Injuries (broken arm, concussion, sprains) occur as random Person-category events (differs from original's flat 5%)
- Random events are selected by context (weather while moving, vehicle events while traveling, river events at crossings, cave-ins/blizzards in the high country)
- Snow appears through the cold-weather climate system, river disasters occur at river crossings, and blizzards occur at high elevations
- Clothing and wagon parts cost 2.5 dollars more at each fort further down the trail
- Food costs 0.10 dollars more and bullets 2.5 dollars more at each fort
- Oxen cost 5 dollars more at each fort
- Resting at a landmark lets sick or injured party members recover (quickly if the party carries medical supplies, slowly otherwise)
- Locations carry a fresh-water flag; a bad-water location doubles the daily chance of contracting dysentery or cholera
- The maximum weight of food that can be carried back from a single hunt is 100 lbs
- The fewer animals you kill while hunting, the cheaper the Shoshoni river guide's price in clothing
- A river configured for an Indian guide will ferry the wagon across for a base of 1-5 sets of clothing (rising with the number of animals killed)
- Hunting is the original's real-time field hunt: the hunter walks a scrolling field and animals wander through, with the roster (bison, antlered deer, bear, small game) gated by how far down the trail the party is
- Aim with the arrow keys (or the ring of keys around L, or the numpad); SPACE fires one shot, and each shot costs exactly one bullet
- RETURN toggles walking in the aim direction; ESC ends the hunt early keeping the bag; the hunt otherwise runs out its timer
- Dressed meat is halved on the walk back, zeroed if the wagon is already full, clamped to the space left, and capped at 100 lbs
- Headless hosts (the training bot and the test suites) play the earlier word-typing hunt — a port invention, retained as the text-mode implementation: type the shooting word while an animal is targeted, with reaction speed measured in simulation ticks
- Food consumption in pounds is calculated from the ration level each day (a higher ration level consumes more food)
- A 0-99 dice roll gates whether a category event fires on a given tick (fires on a roll of 0)
- Which event fires is chosen by cumulative per-event probability weights declared on each event
- Events are laid out on a cumulative number line (e.g. 0-6=eventA, 6-11=eventB, …) and a single roll selects one; equal weights reproduce a uniform pick
- An event typically prints a message and can subtract mileage and destroy supplies
- More complex events (bandits, wild-animal attacks, weather, illness) combine several effects such as item loss, ammo consumption, and passenger death
- Illness risk is checked against the party's clothing count versus the number of living members
- Insufficient clothing for the party triggers the illness routine
- The illness routine is also driven by poor eating (Meager or Bare Bones rations)
- Checks how well the party has been eating (via ration level)
- There is a chance to contract a mild, a bad (moderate), or a very serious illness
- Mild and bad illnesses can be shrugged off; a very serious illness leaves the person infected and needs medical supplies (or lengthy rest) to recover
- Higher elevations risk cave-ins, losing your way, and slow going
- 80% chance of getting stuck when departing South Pass
- 70% chance of getting stuck when departing the Blue Mountains
- Being stuck in the mountains never lasts more than 10 days
- At high elevations, storms are blizzards 90% of the time
- Death can come from running out of food (starvation), lack of clothing (illness), or being sick with no medical supplies; running out of both food and ammunition accelerates starvation
- A short message tells you the cause of death
- How far you traveled and the supplies you had left are shown on the death screen
- Historically fewer than 50% (realistically ~20%) of emigrants completed the journey (flavor only, not modeled in code)
- Displays the total time and distance of the journey
- Remaining supplies are shown
- Scoring matches the 1985 Apple II game, verified against its decompiled disk: 500/400/300/200 points per survivor by party health, 50 for the wagon, 4 per ox (cap 20), 2 per spare part (cap 3 of each of 3 types), 2 per set of clothing (cap 255), 1 per 50 bullets (cap 65,535), 1 per 25 lb of food (cap 2,000), 1 per $5 cash; floored per line, then multiplied x1/x2/x3 for Banker/Carpenter/Farmer. Ratings: Trail Guide 6000+, Adventurer 3000+, Greenhorn below
- The highest possible score is 13,860: a farmer party of five arriving in good health with every capped item maxed and $360 of the $400 stake unspent (the $40 minimum is the required yoke of oxen). The clothing and bullet caps mirror the original's endgame memory-handoff limits
