Bears with Guns

Bears with Guns is a couch co-op twin stick shooter made for my Summer Studio class in the summer of 2021. It was in development at the same time as EDEN and Thriller Theater, with a team of around eight and made in about a month and a half. The game is about a group of heavily armed bears out to steal honey from bees, painting themselves red as a form of camouflage. Bears with Guns is a vertical slice of an initially larger scope, and showcases fairly smart AI, stealth and combat systems, and multiple playable classes with up to four players.

Features/Things I built:

  • Co-op multiplayer functionality
  • Controller and keyboard support
  • Base player interactions
  • AI and pathfinding
  • Tilemapping and art implementation
  • Stealth and Shooting systems
  • UI implementation

Co-op an multiplayer support

One of my first goals in this project was to achieve a satisfactory multiplayer experience without hampering gameplay. We wanted to avoid split-screen, so I built a camera system that would track each player and dynamically adjust position and size to focus on all of them. For multiplayer controls, I utilized Unity's Input System, which has various multiplayer capabilities, such as the Player Input component. I handled player joining by making a player select screen, witch processes joining and lets them select their class. When all players are ready, the main game scene is loaded and the PlayerInput.Instantiate function spawns the player characters while keeping multiplayer controls intact.

Two players selecting their classes.

Player Classes

The different player classes were built with a high level of modularity, so that they can be easily customized by designers. Part of this was because we initially wanted players to be able to upgrade the classes using the Honey they collect in levels, but the feature was cut due to time. The player classes offer slightly differing playstyles, reflected in their weapons and stats. The Panda Bear is a heavy, tanky class that weilds a fast firing machine gun, with higher health and slower speed. The Bee Bear moves faster and has a gun with a shotgun-like spread, encouraging riskier playstyle. The Polar Bear is designed for stealthier approaches, with a higher max cloak, and a slow but quiet gun. Finally the Grizzly Bear is a very offensive class, with decent move speed, health, a faster revive time, as well as a rocket launcher that can damage an area.

Two of the different bears showcasing their different weapon styles.

Enemy AI and Pathfinding

For enemy pathfinding I used Aron Granberg's A* pathfinding package. The enemies' 'brain' is composed of a state machine script I built, as well as a few of Granberg's components, which are enabled and disabled depending on the enemy state. There are three primary states an enemy can be in: Patrol, Chase, and Investigate. When it is patrolling, the enemy moves through a circuit of positions set by the designers. When a player comes within its radius and the enemy passes an awareness check, it switches to Chase, and seeks the closest found player. Investigate is switched to when an enemy is Patrolling and 'hears' (or is close enough to) a player's gunshot, and will look around the area of the noise. There are two kinds of enemies, Drone and Worker Bees. Drones use their body heat as a small AOE attack. Workers, however, have a projectile attack, and will keep their distance when chasing the player.

The first working prototype of the Worker Bee.
scroll-up