To cap off the Game Development concentration at NCSU, the Advanced Game Projects course tasked teams to create a full game. The team consisted of 3-4 developers from the Computer Science department and 1-2 artists from the College of Design. Together, the team picked three constraints by which they design their game. The three chosen by my team were:
- South Pole Setting
- Skill Tree
- Historical Context
With these constraints we decided upon a Metroidvania style game, focusing on combat and exploration. We implemented a skill tree that used experience points to allow the player to unlock different attacks and maneuvers. The levels were designed so that there would be multiple ways to approach an obstacle.
Enemies
My position in the group was AI Developer. I designed the different types of enemies and wrote all scripts that controlled their behaviors. Permafrost contained 5 different enemy types:
- Penguin: The penguin was the basic enemy type. It would slide in one direction until it hit an obstacle that was greater than 45 degrees, at which point it would reverse direction. Ray casting and trigonometry were used to rotate the penguin to match the angle of the ground it was sliding across.
- Wolf: The wolf would remain stationary until the player came within a specified distance. At that point, the wolf would howl, run towards the player and lunge. After the lunge there was a short cool-down before it would judge the distance and repeat. The distance was determined using line of sight, so the player could hide behind cover and not be attacked.
- Spirit: The spirit was the only air-based enemy. It would float in a certain area and swoop at the player if they came too close. If the player were climbing and at the same elevation as the spirit, it would shoot a fireball towards the player.
- Yeti: The yeti was a patrolling enemy, meaning it would walk between two fixed points. If the player enters its line of sight, it would hurry towards the player and start attacking. It only attacks if the player is in the line of sight, so jumping over it is an effective strategy.
- Rifleman: The rifleman is a stationary and ranged enemy. It stays in one spot and faces one direction. If the player crosses its line of sight it will fire a bullet. The line of sight is far, but it is countered by its inability to move.
Skills
I also created some of the skills that could be used once unlocked:
- Flamethrower: The flamethrower was a high damage short range attack. The player would shoot flames and deal damage to any enemies in front of him. To counter the high damage, the player could not move while using this skill.
- Flame Jump: The flame jump was a mix between a maneuver and an attack. When used, the player would spawn an explosions, damaging all enemies in the immediate area, and launch in the air. Using this and the double jump, the player could reach most platforms.
