
Description of the project
Creation of a 3D shooting and platforming game for PC made in 14 weeks remotely at the Campus ADN​.




Wallpaper - Aldeir Silva




Production
Hive
Gameplay Programming
Requirements​
-
Fully functional game based on a pitch
-
3D game for PC made with Unity in C# based on an existing core project
Intentions
-
Bring to life the gameplay mechanics from the pitch and the game design
-
Characters: state machines, animation driven, code driven (jumps only)
-
Make the code as simple as possible

Level 4 - LD: Lucas Comeau-Ponton/LA: Camille Loison
Members
-
My roles: Lead Gameplay Programmer Assistant, Gameplay programming and Game design
-
The gameplay programming team: Gameplay programming and Game design
-
The other department teams: Game design, Level design, Animation, 3D modeling, FX, ...
-
We were about 30-35 students with support from our teachers to work on the game
Production made in 14 weeks remotely as an internship at Campus ADN
In this role, I had to make decisions with my teammates to be sure the game would work as intended. I also did a bit of tech support by solving various problems for the team.
Planning for the gameplay programming team

Level 1 - LD: Marc Daze/LA: Aldeir Silva
-
Plan the tasks and delays accordingly with the production needs and the team skills
-
Follow up on the progress of the team
-
Help the team as much as I could on a technical and moral level
-
Keep track of the features and bugs
-
Make sure the team followed the game design
-
Make sure the code is working and clean
Participate and lead meetings
-
Lead the gameplay programming scrum meetings
-
Participate in four meetings per week with the leads (teachers), lead assisstants and with the producer
-
Keep the leads (teachers) and the producer informed on the procress of the gameplay programming
-
Plan the tasks with the other lead assisstants
Build Master

Level 1 - LD: Marc Daze/LA: Aldeir Silva

Scrum meeting recap

-
Make a build version of the game at least once per week
-
Using Perforce to branch the gamedata
-
Solve the problems when they occured to build the .exe
-
Test each builds to find the bugs
-
Make sure the build works for the build reviews and the playtests
Level 3 - LD: Maxime Galarneau/LA: Elie Monferran
Project structure
-
Creation of the structure of the project in Unity for the programmation and create all of the prefabs for the ingredients

Gym with all of the ingredients, pick ups and ennemies for testing
Lead Gameplay Programmer Assistant tasks
In this role, I had to create key features of the game, as well as debug the game with my teammates.
Avatar


First planned version (simple version) of the avatar's state machine
-
Create the avatar state machine with Benjamin Chouinard (Unity programmer) using a given base version, and modify it to become the Hive avatar
-
The master state keeps track of a lot of infomations with accessors like: health, number of heals, ammo, upgrades, number of shields, state of shield, number of ores, keys in possession, ...
-
Idle, shoot, walk, run, jump, fall, shield, death, sonic push, healing, ...
-
Integration of the avatar animations and FX with Étienne Chaumont (Lead Animation Assisstant) and Kim Proulx (Lead FX Assisstant)
Diegetic UI
-
Design of the diegetic UI with Elie Monferran (Lead Artistic Direction Assisstant)
-
Creation of the PoC (Proof of Concept)
-
Programmation of the behaviour of the final UI:
-
The gauges are moving or appearing according to what the avatar's master state has ​
-
The FX and sounds are playing according to what is changing
-
-
Disposition of the diegetic UI on the avatar

Keys
Ore %
Heals
Stuns
Shields
Life
Ammo

Shoot


-
The gun doesn't work like guns usually do:
-
The gun has a certain amount ammo
-
When the player runs out of ammo, the gun stops working and starts reloading
-
Once it's reloaded enough for a shot, the player can use the gun again
-
-
Two guns in one:
-
Semi-auto: one press of the trigger equals one bullet, it makes ​more dammage per shots and it's more precise
-
Auto: Keep the trigger pressed to shoot many bullets, it makes less dammage per shots and it's less precise
-
-
Shoot made with Pierre Castanet-Combe and Lucas Comeau-Ponton (Gameplay programmers)
-
Strafing made with Benjamin Chouinard (Unity programmer)
Shield
-
The shield ability can be unlocked in the second half of level two
-
The player can hold a maximum of three shields
-
It can block two enemies attacks before breaking
-
If it makes contact with a mortal ingredient (laser or pressure jet), the shield breaks and hurts the player


Sonic Push

-
This ability is used to stun some enemies, to push them, to break breakable walls, to push the wagons or to move when on the wagons
-
If an interactive ingredient or an ennemy enters the detection cone of the avatar as the player triggers the ability, a message is send to it to activate a function


Full game loop
-
Creation of the structure that makes it possible to play the entire game in a loop
-
Including the introduction, the menus, the level transitions and the ending of the game
-
Made with Lucas Comeau-Ponton (Gameplay programmers)
-
The save and resets are made by Lucas Comeau-Ponton (Gameplay programmers)



Beta Terminal
-
Creation of a new game design for this made with Maxime Galarneau (Lead Game Design Assistant) to help de gameplay
-
The player can upgrade how much the healing item works or how fast the gun gets empty and reloads
-
-
Programmation of the behaviour of the new version of this ingredient
-
The terminals are sharing variables with the avatar​
-
If the avatar uses the same upgrade ten times, that side of the terminal stops working
-
If the avatar uses fourteen terminals (the maximum in the game), then all the terminals stop working
-
Each beta terminals only works once
-


Other features
-
Creation of the key system and healing system
-
I participated in the making of many smaller features:
-
Alpha Terminal (mid and end level zone)​ with Lucas Comeau-Ponton (Gameplay programmers) and Benjamin Chouinard (Unity programmer)
-
Debug of the door system (keys, terminals, ...)
-
Various debugs and features (Code and Game Design)
-
Level 4 - LD: Lucas Comeau-Ponton/LA: Camille Loison


Gameplay Programmer tasks
Production mentions
Even though I want to be a level designer, I think it is important to know the technical side of making games in order to work efficiently.
That's why I decided to work on my programming skills with this project. I learned a lot thanks to this production.
-
Planning for the gameplay programming team
-
Participate and lead meetings
-
Build Master
-
Project structure
Lead Gameplay Programmer assistant Tasks
-
Avatar
-
Diegetic UI
-
Shoot
-
Shield
-
Sonic Push
-
Full game loop
-
Beta Terminal
-
Other features
Gameplay Programmer Tasks

Level 3 - LD: Maxime Galarneau/LA: Elie Monferran
This was a great opportunity to test our skills and to make sure we were ready to work as a production team with all of the different departments.
Other development informations
Ameliorations I'd like to make
-
Make the jump more fluid and have more air control
-
Clean the code of the doors. The problem is that we separated the unlocked and locked doors. We could have used code of the locked ones everywhere, but the level designers would have had to change all their door models.
-
Work more with the animators to clean the animation transitions
-
Add custom scripted events
-
Make a new version of the avatar's state machine and pooling manager customized to our game. The current ones are heavily modified versions of "Blank" from Campus ADN
Challenges and solutions
-
We had to start working remotely just as the project was starting because of the Covid-19. I'm not accustomed to work from home, but I adapted to it.
-
Communication between the departments was challenging. Maxime Galarneau (Lead Game Design Assistant), Samuel Deschênes (Lead Level Design Assistant), and myself took on ourselves to create written schedules for everyone to see what was going on with everything in the production.
​