Having a Bash at Travel in BIND
- Malin Freeborn
- September 10, 2024
They say you have to playtest, but they forget that I’m a lazy man, so when it came to travel rules, I didn’t feel like simulating a bunch of journeys. So it’s time to get the computer to do the work for me.
Setup
An encounter roll occurs every 1D6 intervals in BIND (where an interval = ‘one quarter of the day’ = ‘6 hours’).
Travel rates are around 10 miles per day for a caravan on a road, so to travel 50 miles, the troupe will need 5 days (i.e. 20 intervals). In bash, we can represent these rules as so:
roll_an_encounter(){
encounters=0
miles=$1
intervals_required="$(calc $miles / 2.5 )"
while [ "$intervals_required" -gt 0 ]
do
encounter_time=$(( RANDOM %6 +1))
encounters=$(( encounters + 1 ))
intervals_required=$(calc $intervals_required - $encounter_time )
done
echo "Encounters: $encounters"
}
Now we can plot a full journey of 30 miles with one command:
roll_an_encounter 30
Some of the first or last encounters are sometimes replaced with traders, but the longer the journey, the less ‘beginning’ and ’end’ there is.
Time remaining: 8 intervals
Time remaining: 6 intervals
Time remaining: 3 intervals
Time remaining: 2 intervals
Time remaining: -2 intervals
Encounters: 5
Currently, a good deal of journeys will be 30 miles, and 5 encounter rolls just seems too much!
The longest of journeys could go up to 80 miles (i.e. 8 days of travel).
roll_an_encounter 80
This looks much worse…
Time remaining: 26 intervals
Time remaining: 22 intervals
Time remaining: 20 intervals
Time remaining: 19 intervals
Time remaining: 17 intervals
Time remaining: 12 intervals
Time remaining: 9 intervals
Time remaining: 6 intervals
Time remaining: 3 intervals
Time remaining: 0 intervals
Encounters: 10
In fact, it’s unplayable. This entire session would be a series of fights with various beasties - hardly ‘background noise’!
Halving Distance
Repeating that with half the usual distance, we can ask the computer for lots-and-lots of rolls, and get the following:
Journey | Min. | Max | Average |
---|---|---|---|
10 | 1 | 3 | 1.4 |
40 | 3 | 8 | 5 |
That looks rather more workable; perhaps a touch on the high side, but that’s a burden for the rest of the system to bear. The best remedy here is keeping the encounters snappy, and fun.