Jadu AR
Shipped: 2023
Genre: Augmented Reality Fighting Game
Platform(s): iOS/Android
Description: Create an AR avatar and fight avatars of other remote players in your space.
Unusual elements:
- Combines Street Fighter with Augmented Reality
My roles:
- Gameplay Programmer
Jadu is the biggest commercial success of the projects I've worked on, with over 100,000 installs reported at the end of 2023. I worked at Jadu in 2023 as a gameplay programmer, where my biggest task was to develop avatar boundaries, which prevented avatars from simply running away from each other rather than fighting.
While the creation of the boundary was simple enough (create an invisible barrier a certain distance in front of each avatar; since the avatars are almost always always facing each other, this will create an impassible barrier for the other player), the big challenge was making sure the creation, setup, and destruction of these barriers followed the existing architecture and code style of the game, which was structured in a way that was very different from any other project I'd worked on.
Another task of mine at Jadu was about vertical planes in single-player mode. Since this mode utilized the real-world walls and other barriers of wherever the player was located, I had to make sure that there would never come a situation where the player's avatar and the NPC avatar they were fighting were separated by a physical wall in the player's space. I fixed this issue by writing code that detected collisions between avatars and vertical planes in the environment, and checked the angle between the normal of the plane and the ray from the center of the plane to the avatar to see if the avatar was behind that plane (and likely trapped). If so, the plane briefly deactivated until both avatars were on the same side of the plane again.
I also had to adjust the strategy of NPC AI in the game, since members of the game's beta's fan community noted that NPCs of all difficulty were easy to beat if the player always attacked rapidly. I experimented a lot with how to fix this, with strategies like shields and other defense mechanisms, but found that the most effective solution was to adjust the AI so that if an NPC was starting to approach a player to attack, and noticed that the player was doing something offensive, the NPC would back away and throw a ranged projectile at the player, forcing them to stop attacking to either dodge or shield the incoming projectile.