Every game jam starts with a solid idea. At first, I wanted to create a simplified version of a space simulation engine—something between KSP and Space Engineers. Fortunately, I quickly abandoned that idea due to its complexity. Ironically, someone else ended up submitting a project that looked like a mini Space Engine. Cool.
So, I started thinking about what I could realistically accomplish. Being a fan of a well-known survival game series featuring anomalies and artifact hunting, I came up with a simple idea: create AI bots that could surround the player. In the game, this is usually accompanied by a memorable battle cry:
“Sboku, sboku zahodi!”
Thus, the name SbokuBot was born. To this day, I still wonder if it was a mistake not to call it s&boku bot to take advantage of the obvious pun.
I thought this was a good choice since game AI is often based on graph structures—something much closer to my professional skills. The initial concept was as follows:
The bots should be able to surround the player, actively using cover.
They should hide while reloading and move between cover spots while teammates provide distractions.
At that point, I started figuring out how to implement it. s&box already had a NavMesh with an API for pathfinding. The tricky part was the cover system. How should I determine cover locations? Manually? By scanning and memorizing the environment? Extracting them from geometry?
Initially, I wanted to do this using a weighted NavMesh, but when I first opened the API reference, I was surprised at how minimalistic it was. The only thing I could do was find a path from point A to point B. That meant I had to refine my idea based on a very broad task description.