Description

“Red is the enemy” is a 3D game project where we write a custom game engine primarily with c++, limited 3rd party libraries and rendering API. The project spans over 2 semester(6 months) and is completed in a group of 9.

Role / What I worked on

For this project, I was the tech lead and I worked primarily on

Engine architecture

  • ECS
  • Templated
  • sparse sets
  • groups
  • delegates
  • hierarchy
  • prefabs

Serialization

Resource Management

Renderer

  • OpenGL
  • Textures
  • Deffered Shading
  • SMAA
  • PBR with IBL
  • Bloom
  • SSAO
  • Shadows
  • Instancing
  • Batching
  • Shader pipeline
  • particles(billboard and sprite animation)
  • OIT
  • Vignette

Embedding Scripting Language

Editor

  • ImGui
  • Scene Graph
  • Inspector
  • Viewport
  • Profiler
  • File viewer

Gameplay

  • Gun bobbing
  • Gun muzzle flash
  • Enemy Explosion VFX
  • bullet impact VFX
  • bullet trail vfx
  • Smoke particles
  • Death screen
  • Add lighting

What I learnt

For this project, I was responsible for developing multiple key features for the game engine, which helped me gained a lot more technical skills and knowledge compared to my other projects.

However, I believe the project could have done better if I did not need to develop this many key features.

In my opinion, the issue was that some of the programmer’s programming efficiency was not on the same level, which in itself is not an issue as development teams often have programmers with different level of skill, but because we also did not conduct any code review or knowledge sharing, which led to a lot of issue such as bugs, code with poor performance, code that was hard to understand, or all of the above.

At that time, I felt the most efficient way of solving this issue was to either redo the code or take over the key feature completely.

In retrospect, I should have tried to convice my team the importance of code review and sharing our research so everyone had a better understanding of the codebase and have the ability to handle key features.

Screenshots of gameplay

redistheenemy_png0

redistheenemy_png1

redistheenemy_png2

redistheenemy_png3

redistheenemy_png4

redistheenemy_png5

GIFs of gameplay

! Image quality and framerate severely deteriorated due to limitations of GIFs !

redistheenemy_gif2

redistheenemy_gif3

redistheenemy_gif5

Download