CAGD 470 Group 1, Sprint 1
- Els Fouche
- Feb 6
- 5 min read
Kill Everything As Fast As Possible
Kill Everything As Fast As Possible is a 3D first-person boomer-shooter where you take control of a killer AI hell-bent on destroying everything in sight.
Project Credits:
Daniel Bocanegra-Ramos: Lead Designer
Jack Bradford: Producer
Dylan Brown: 3D Artist
Els S. Fouché: Lead Programmer, Level Designer
Sean Gibson: Programmer
Sophia Villenueve: 2D Artist
Hitting The Ground Running
I did not waste any time during this sprint. Even before our official kickoff (but after speaking with my designer and producer, of course) I immediately got to work on the initial project setup including initializing our Github repository with rules to prevent any force-pushes to our dev branch. Once that was taken care of I got to work on the features that were already locked in - player movement, the dash ability, and a level countdown timer.
The designer requested that the dash mechanic have an on-screen cooldown indicator. This is displayed in the lower left using one of Unreal's built-in widget assets. The dash ability allows for a maximum of two chained dashes with each having their own cooldown. After confirming with the designer that this system would not need to expand, I implemented it simplistically rather than making it scalable.
During this process I communicated frequently with the designer to dial in the player's movement. To enable the designer to better envision the end result of certain settings, such as the FOV, I created videos comparing and contrasting them alongside movement speeds, jump heights, etc (not shown). I'd also like to point out the level start countdown and level timer. As mentioned, the level timer was a guaranteed aspect of the design that could be implemented even prior to kickoff without generating work conflicts.
I discovered something interesting while working on the level start timer (which I refer to as the "warmup" time) - By manipulating the text's size and position independently with different easing functions I was able to create an illusion of movement that, I feel, looks quite polished and pleasing to the eye. This is definitely a trick I'll be employing again in the future for its ease of implementation and solid aesthetics.
Kickoff
Following the 'official' start of the sprint I implemented the player's double jump ability and the score counter. Personally, I'm very fond of how the double jump feels to use. One potential area of improvement would be for me to implement coyote time. Currently the player immediately falls at a realistic point when moving off a ledge which, due to the constraints of in-game cameras, feels unfair. This is something I'd like to implement in a future sprint.
I worked on a save and load system early in the sprint but I didn't finish wiring it into the other systems until towards the end. Currently the save/load system is fully functional with hooks for saves generated by checkpoints, menu buttons, or anything else and also exposes the ability to enable and disable autosaving as needed.
Currently the save system does not have a method implemented for deleting existing save data. This is something I intend to add in a future sprint. As I mentioned before, I didn't finish wiring the save system into the rest of the game until the end of the sprint. This was because I felt it was necessary to get the critical systems, such as shooting, added to the game before worrying about saving and loading. I spoke with our producer and designer and they agreed.
Shooting
Kill Everything As Fast As Possible will utilize both hitscan and non-histscan weapons. The first weapon I was requested to implement was the handgun which is a hitscan weapon that can pierce through enemies and deliver critical hits. In the video above I demonstrate the current implementation of shooting and enemy piercing. To visualize where hits were occurring I decided to spawn text at the impact point with a slight offset. This text is set to face in the same direction as the normal of the impacted triangle. Combined, this creates the illusion of the text hovering just above the bullet's impact point. The reason I devoted a bit of time to this was to communicate visually to the designer and producer that the bullets were actually piercing through objects.
The shooting itself is handled in an actor component to prevent blocks when other developers need access to the player character. The underlying system is built to be scalable to account for any number of new guns the designer might add, accounting for different shot patterns, ammunition costs, damage values, etc. To aid in this I created a data table that the designer can update as needed to tweak in-game values.

Game Flow
Late in this sprint I was informed by the designer that he'd like a playable prototype before the sprint ended. I decided that this was an achievable goal and so I "locked in" as the expression goes. To get the game to the point of being a functional prototype I wanted to have a full game loop e.g. title screen -> main game logic -> game over -> retry / quit.
At the time of creating the game over screen the only direction from the designer was to have death result in a fade to red. With this implemented the basic game flow was complete. The final things I worked on in the sprint were a settings menu and the game's first build.
I was starting to feel the time crunch as the end of the sprint approached. It may be obvious that this was the case considering the obvious lack of polish on the title, game over, and settings screens. I don't regret emphasizing functionality over aesthetics, of course - something playable is better than something pretty but broken. Speaking of which, I was successfully able to create a functioning build prior to the end of the sprint.
Summary
I was able to put a significant amount of time into this project this sprint. I feel that my results speak to that. I did, however, also participate in the 48-hour Global Game Jam 2026 (check out Red Oni / Blue Oni on my itch page!) which leaves me to wonder how much more I could have done for this project. That said, I'm overjoyed at having the opportunity to deliver two prototypes in two weeks. Admittedly one of those prototypes doesn't have any goals e.g. enemies as of yet, but nonetheless this was an extremely productive sprint.
Previous Posts
N/A
Comments