Shadow Shooters was a game I developed during the 3rd block of my first year in BUAS. The idea of the block was to make a small framework for raytracing, which we would then use to create our own game.
We had to use the different types of lights we implemented as game mechanics. I decided that I will use a spotlight as a flashlight for my character. It makes it a key element for the player, making it impossible to traverse the terrain without it. I also incorporated point lights in my start menu and win/lose screens, since this was also part of our assignment.
Character Movement
Trap Placement
Terrain Collision
Point Lights
Spotlights
Shadows
In this project I worked on different light features, all running on the CPU. Below are the types of lights I developed:
Point lights and spotlights, which can have different colors and intensity
Shadows produced by round and straight obstacles.
One of the main challenges that this project posed was that I had to create a framework first, which I would in turn use to create a small game. This showed me how important it is to write clean code which you can reuse in multiple places. I had to create the various shapes, colliders for them and the lights. These were the main elements this framework had. Afterwards, I used each element to create the different corridors in the level, the character, the "flashlight" that it possesses, the traps that you can place and the enemies. All this was done with the simple framework I made and the more I worked on the game with my framework, the more I realised how important it is to have a well-structured codebase.
Another challenge I faced was the actual making of the game. Not from a technical but from a design perspective. I had to come up with a game, what I would do in it, what would the end goal be, what would the level look like, and how would I incorporate the use of lights in it. Since I really liked spotlights, I decided I would make a game that focuses around traversing a level using that flashlight. From there I made the level, then the enemies that patrol and the trap mechanic used to kill them.
Ultimately, this project felt like a preparation for my 2nd year in BUAS, where I would have to work on a custom engine. It taught me how important it is to write clean and well-srtuctured code so that it can be reused or developed further in the future. I also learned a lot about what it is to be a gameplay programmer and that even though I am not a designer, coming up with features and ideas myself is very valuable, especially for whenver I begin working with actual designers.
Point Light
Spotlight
After putting all the pieces together, it was time to make the game. I had less than a week to develop it, but still managed to come up with something fun. The things I developed are:
Basic controllable character
Ability to place down traps with which you eliminate the enemies
Used spotlights as one of the primary tools of the player, which they need to traverse the level
Made AABB collision for circle/circle and circle/rectangle.
Gameplay loop to switch between the different states of the game (start menu, game, test level, win/lose screen).