
FPS Game
First-person shooter prototype where you can explore the testing ground and shoot at targets.
-
Genre : First-Person Shooter
-
Game Engine : Unity
-
Team Size : Independent
-
Platform : PC
Why make another FPS project?
After playing Rainbow 6 and Overwatch 2 for hours, I wondered how FPS games are created. I decided to make a performant game aimed at achieving good visual and smooth performance and in process learn how AAA studios make performant fast real-time shooter games.
Independent Project
How is the performance improved in the project?
Object Pooling for bullets, bullet impact particle effect and decals.
Adaptive Probe Volume (APV) - In addition to lightmap baking, baked lighting information in probes so dynamic objects receive indirect lighting. Objects receive per pixel lighting that results in no seams and better light sampling.
LODs - Mesh is swapped with lower poly-count mesh at determined distance.
- Lower LODs receive lighting from APV resulting in more space available as compared to baking lightmaps for the LODs.
Texture Compression - Textures are compressed to take 5 times less space with no detail loss.
Physics Layers - Physics interactions only occur on layers where needed. Objects do not use mesh colliders and use primitive shape colliders which are much faster for physics simulations.
Caching - Cache needed variables/objects for faster access.
GPU Instancing - Reduces draw calls by rendering copies of mesh with same material in a single draw.
Occlusion Culling - Objects occluded by objects are not rendered. For ex: From the player's POV, the table behind the wall would not be rendered.