Bob Saves The World

06/10/2023

Bob Saves The World is a third-person shooter game where the player controls Bob, an awesome dude who is the only person that can save the world against evil alien monsters. To conquer that, Bob has several guns like a rocket launcher, a jetpack to help him cross the map and a great sense of courage. Be ready to shoot aliens, jump, fly and more important: Have fun!

Features:

  • Player can shoot with different weapons like handgun, assault rifle and rocket launcher.
  • Player will fight different types of aliens like melee, tanks, shooters and flying.
  • Player can use jetpack and jumping to move easily across the map and defeat the enemies.
  • Each level has it's own objective to be completed.

Project information:

Type: Personal Project.

Tech: Unity (C#)

Platform: Windows PC (compatible with gamepad and keyboard & mouse)

Role: Programmer and game designer

Bob Saves The World was really inspired by Sunset Overdrive and Ratchet & Clank, both games developed by Insomniac Games.

The goal of the project was to create a compelling third-person shooter experience combined with an engaging movement that the player can use to move across each level and to fight interesting enemies.

In order to create a great third-person shooter experience I had to implement the shooting system with different weapons, specially the rocket launcher. Things like VFX, sound and camera shaking were essential components to create a satisfactory gameplay, specially combined with enemies hit damage animations.

Player's movement was also a key component to the project. Not only the player can move and jump normally, but he can use the jetpack to move across the map. Besides that, each level of the game has platforms that can boost the player to create a satisfactory gameplay momentum.

Initial players were struggling with the camera speed when they were shooting at the targets. After the initial feedback, I had to balance the values to make sure that player's experience wouldn't be disturbed specially because camera movement is a key component on a third-person shooter game. The camera has three speed types: Normal speed, speed on shooting and speed on aiming. Each of them has it's own purpose: normal speed is the default state, speed on shooting is when the player is not aiming but shooting freely, and speed on aiming is when the player is actually aiming/focusing on a certain target to get an accurate shot. 

Another challenge was to create a variety of enemies. To do that, I had to implement a state machine system to handle all the enemy`s types from melee to shooters. For terrestrial enemies pathfinding during investigation I had to create a script that tell the enemy to always search for player around it's spawn location once the enemy saw the target he triggers his specific attack. For flying enemies the movement was pretty simple, I implemented waypoints they follow.

Optimization was an important topic to be aware, because each level has several enemies with their own AI, VFX and a great amount of 3D models. To increase game's performance I searched for tools that could help me: Object pooling, batching, occlusion culling, texture and lighting optimization and the Unity quality system.

Fábio Lamin - Game Programmer
All Rights Reserved 2021
Desenvolvido por Webnode
Crie seu site grátis! Este site foi criado com Webnode. Crie um grátis para você também! Comece agora