Bam
By Ward Dehairs, September 10, 2023
Bam is an exhilarating multiplayer battle game in mixed reality (MR). Place your tabletop arena anywhere you want, scale it, rotate it, and puppeteer your miniature robot to victory in a jetpack-fueled boxing match. Seize the crown, lose the bomb, or punch your opponents out of the field.
I worked on Bam part-time for only a few months, so I cannot overstate my personal contributions, still I managed to do a lot of different things:
XR transforms
The game takes place on a sort of virtual table that is shared between several AR users. To set this up in a way that is straightforward for the player we wanted a system of handles that the player could manipulate to move the game around. This is a bit funky, since we want the arena itself to be static inside the game-engine. Otherwise we would certainly run into trouble with physics, collisions and graphics of the game. This means that that the AR setup is actually ondergoing a transformation, that keeps the hands of the user on top of the handles of the arena. This along with synchronizing that transform between all users in a match was one of my first big tasks while working on the project.
Developing AI bots
Ai in BAM is certainly not a core point, but there needed to be something in place, so players can get an idea what the game is about before inviting a group of friends to play together. The AI uses the built-in pathfinding system of Unity, with some caveats such as pathing to jump-pads and being able to navigate to points in mid-air. For fighting, the bots will of course track and attack their main target, but also have some routines to smack away opponents that get in their way.
Technicals
One problem we faced was having pieces fall out of the map and rendering in front of the real-life environment shown in the AR setup. To resolve this I created a special shader that allows us to spawn in a sort of worm-hole: the piece is visible trough the black circle, but is otherwise obscured. This helps to keep the game more rooted in the AR space, while adding just a bit of extra flair to a main mechanic of the game: knocking opponents off the arena.