In Month 2 of Final Project, we had to design and develop the core systems for our game engine. We were a team of 4. Every member expressed what he wanted to work on and, after discussing,systems were assigned.
Engine Core Systems:
Our engine follows a component based design. Each core system communicates with others by sending and receiving events. Every object/entity has components that are updated by the respective system. Example: CAnimator is the component in charge of computing the current animation pose for the model of an entity and it is updated by the Animation System.
We decided to follow this path so every member of the team could work on their system without needing to constantly modify code that everyone needs to work on. It reduces dependencies and increases modularity.
The main systems that we wanted to get the basic functionality done in the first month were:
- Asset Manager
- Input Manager
- Audio Manager
- Physics System
- Event Manager
- Collision System
- Animation System
- Entity Manager
- Behavior Manager
- State Manager
I am really passionate about simulations and in-game interactions. That is why I decided to work on the Collision System and Animation System. It has been challenging, but it has make me grow in a fast pace as a programmer. You may find more information about those systems in the posts linked above.
Changes from prototype:
As explained in my other post “Final Project – Month 1: Prototype “Dino Rush” “ , we had to make some changes in the design and theme of our game:
- The core gameplay is still there: Third Person Shooter where you have to defend your base from waves of dinosaurs.
- We got rid of the traps and made the player a kind of Super Cyborg Soldier with 3 different styles of skills: Shooting, Abilities and Specials.
- The new theme is that the human kind have been nearly exterminated by a race of Cyborg Dinosaurs that came from another dimension. The player is now the last resource that humans have to protect their last standing bunker (base).
- To finish a wave of enemies, the player needs to recollect “dust” from the portals where the dinosaurs are coming from and bring them to the base. When is full, it will destroy all the dinosaurs of the wave and continue to the next one.
During the prototyping of the game, we had a lot of feedback indicating that we needed to decide if we wanted to make more of a shooter or a trap placing/tower defense game; doing both will hurt the success of the game since there was not much time to get the correct balance. So, we decided to follow the shooter path, with a touch of extra skills and cool abilities that will make it fun.
Wanted to say thanks to my awesome team “Dead Texel”. We all have been working hard to get an awesome game to show. Each of the members is a very solid programmer and valuable co-worker. You guys are the best!
In the video you can see how our game is going after a month of development. Thanks for reading!