Felix Marcoux

Bolt’n’Punch

Technical proof of concept

— PROJECT NAME

Bolt'n'Punch


— ROLE

Programmer

Narrative designer


— DATE

September 28 – October 22 2023


— SOFTWARES USED

Unreal

Perforce


Bolt'n'Punch is a First Person Brawler developed as part of a game design course at UQAT. The player plays Lyft, a factory worker, as his workplace is invaded by robots. The player must progress through the factory while punching, throwing and uppercutting robots to reach the exit. The game's inspiration was to put Doomfist, an Overwatch (Blizzard, 2016) character, in a Doom (id Software, 2016).


The course forced 12 projects through a strict selection process until 2 were left remaining. I joined the project after my own project was eliminated, and while I was switched to another project later, Bolt'n'Punch was eventually picked as one of the 2 projects left standing.


This technical proof of concept for the game was developed with Unreal Engine 5 by a team of 14 people. The final build of the prototype can be downloaded here (Warning: The build has optimization issues and might run poorly on older machines).


You can also play the final game on Steam here.


My work

  • - First version of the charged punch mechanic
  • - Omnidirectional dodging
  • - First version of an aim assist for punching
  • - Slow motion and hitstop on enemy death
  • - Scriptwriting and slight narrative design

Design team

- Félix Marcoux (Me)

- Christian Forget

- Anthony Legros

- Frédérick Bélanger

- Hugo Lefebvre

- Rémi Côté

- Xavier Ménard-Beaudoin

Contact

  1. email@domain.com

  2. — Twitter
  3. — Instagram
  4. — Facebook


Programming


The prototype’s success was highly dependant on how the controls felt. Only the basic punch was already implemented when I onboarded in the project. So, in order to get some of the other main mechanics working quickly, I was put in charge of the super punch and dodging mechanic.


This first version I made for the charged punch (Doomfist’s signature move) basically reused the punch’s code and repeated it quickly while the player charged straight ahead. However, this version had trouble handling collisions with large groups of enemies and I was hesitant, for performance reasons, to use a MultiSphereTrace each Tick.


In the end, this version was scrapped and reworked later in the development, but it provided the team with a quick way to test metrics and see how the controls felt.

I also worked on a first version for omnidirectional dodging to give the player a more Doom-like mobility. However, this mechanic was scrapped due to the charged punch already allowing the traversal of large gaps.

On popular demand, I also later created a first version for a slow motion and hitstop effect to increase the satisfaction of the punching mechanic. I made it by only tweaking time dilatation variables and by adding a slight camera shake. The idea was however scrapped from the final prototype.


Apart from the charged punch and dodging mechanics, I also created the first version of an aim assist for punching. The idea was submitted to me by a colleague who felt like some punches didn’t land as effectively as hoped if the player was slightly off. In the end, this mechanic wasn’t kept in the prototype because it confused many players with how it seemed to snap to enemies.

Finally, I used one of my colleague’s objective system to guide the player’s progression through our small level. This entailed putting progression markers throughout the level, as well as spawning enemies and opening doors when those progression markers were reached.


For good measure, I also places tutorial texts throughout the level, which was something we neglected and were criticized for in a previous playtest.

Narrative design

During the whole process, I was also put in charge of adding a narrative touch to our prototype. I did my best to create a script that would present mechanics in a natural manner while hinting at some character’s personality. I also tried to give some characters different tones based on feedback from the team. It helped me to better understand the main character’s motivations and the game’s universe to help the art team’s creative process.


However, I had to later minimize the number of dialogues in my script, because the prototype was mainly meant to show players how to play and too many dialogues also caused issue with the objective system.


Finally, I tried my hand at designing complementary factory posters that could be used in the environment to help players learn the main mechanics. Like many other things, they were ultimately left unused in the prototype’s final version

2 versions of the original script

Indicative posters (unused)

Grabbing mechanic

Crouching mechanic

Few of my contributions made it intact in the prototype’s final build. Most were either scrapped or improved later by one of my colleagues. However, I can say that they allowed the team to see immediately what worked or not regarding gameplay and narration. It allowed us to modify the project’s vision accordingly. Thus, I’m proud to have participated in the game’s creation and contributed to the game making it through the selection process. While I was switched to another team for the rest of the course, the team kept working hard and the released game came out great in the end