Wilderness Supervision

Wilderness Supervision is a management simulation game about organizing rowdy campers. It was made in 72 hours solo for Mini Jam 93. In the game, you take control as the sole chaperone of a camping trip and have to command the many campers to complete tasks. However, the campers will quickly get distracted and go on to pursue other activities, such as talking to their friends.

This was a fun and challenging project as being a solo developer meant that I had to focus much of my time on aspects like sound and art, things I was unaccustomed to needing to implement. I used various available resources and free art/sounds to supplement my lack of experience with art. During last game I did solo, I neglected those aspects which led to a worse off game, however I am more confident in Wilderness' aesthetics.

Features/Things I built:

  • Overall Design
  • Object interactions and controls
  • Camper AI and State Machine
  • Art, Sound, and Animation
  • UI implementation

Game Design

The jam gave a limitation that the game needed to have indirect controls. Immediatly I planned to have some form of game with controllable units that could disobey commands. The themeing of camping came from my own experiences in the Boy Scouts (and inspired the flavor text and names of the campers). Learning from previous jams, I held back on overcomplicating the concept, cutting social activities the campers could be directed to do, like playing cards or archery. I also limited myself to only two stats for the campers, Energy, how willing they were to do tasks, and Happiness, which contributed to how likely they were to socialize and was averaged as a 'score'. Looking back I could have combined them to simplify AI behavior logic.

Multiple camper's info panels, showing their recent activity and stats.

AI Behavior

For pathfinding, I used Aron Granberg's excellent A* package. Each camper has three basic things they can do, work on a task, wander idly, and socialize. I set up the campers to run a weighted RNG check everytime they completed their current activity, creating the loop of: Pick an activity to do, pathfind to determined activity position, handle activity, pick an activity to do. The agency the player has is the ability to override their activity check and assign them to work on a task. The check is weighted however, so that the more the camper does a task the more likely they are to land on a different activity on their check and stop working. The intended playstyle is for the player to learn to not overwork the campers and give them downtime.

Social Coordinator

The campers' socializing activity was the hardest to develop. I wanted socializing campers to gather together and 'talk', which became difficult as each camper ran indepent of each other. I solved this by creating a 'Social Coordinator' to act as a middleman. I used WinSock's Select function as inspiraton to handle this behavior. When a camper wanted to socialize, they'd join a queue on the Coordinator, which would wait until it either timed out or detected enough campers, then assigned them to socialize, by giving them a point on the perimeter of a circle at the midpoint of all queued campers. As an added bonus, the Coordinator gave a shared space to hold shared data between the campers, such as a list of possible names and the flavortext for each of the three activities.

Two campers stand near close as one of their info panels show they talk to each other.

Post Mortem

Reception of the game at the jam was pretty good, but there were some aspects I wish I caught in time (and have since improved on). Combining Energy and Happiness would have simplified the game without sacrificing any complexity, as they both did very similar functions. In the end build the tasks took too long to complete, which I had initially offset by having a larger pool of campers, but that ended up only making it more complex to a new player. Scaling down both the time taken to complete a task, as well as the overal number of tasks and campers would've made it more approachable.

The chaperone panel showing the level's tasks.
scroll-up