top of page
12.png

Impulse Shooter

Project

Goals:

Impulse Shooter is a solo project realized within the framework of a programming class. This project had two objectives. The first one was to create a simple game but with an original gameplay mechanic. The second was to include procedural generation in the game.

Period:

4 months / March - June 2023

Game :

Concept

Impulse Shooter is both an FPS and a TPS. When the player fires, he switches point of view and sees the back of his projectile while it moves. He can then look around and aim to give it a second pulse. The level represents a shooting range which generates procedurally targets, walls and boosters. The latter gives an additional impulse to the projectile.

Procedural Generation

To make the objects appear, I coded 3 types of Spawners with different algorithms.

 

The first Spawner generates a horizontal or vertical grid, where each grid square has a chance to create a target.

The second Spawner generates several grids, which stacked on top of each other, form a large cubic figure. Each grid square will have a chance to create the third and last type of Spawner.

 

The third Spawner is a smaller accumulation of grids forming a cube. This cube is divided into 3 parts, each creating only one type of objects. The side of the cube that is closest to the player spawns the boosters. The middle of the cube generates the walls. Finally, the targets appear on the face of the cube farthest from the player.

For every Spawner I was able to adjust the probability that an object appears for each one of the red squares that compose them. Additionally, I was also able to cap the number of objects that they make. This allowed me to avoid having amalgams of objects side by side.

Imp1.png
Imp2.png

Concept

Impulse Shooter is a shooting game that isboth an FPS and a TPS. Each time the player fires, the perspective switches from the view of the shooter to the back of the projectile. The player then has the ability to give asecond projectile impulse in the direction of his choice.

The game level takes place ina wide hallway including targets, transparent walls  and boosters, areprocedurally generated. The boosters are objects which, in contact with the player's projectile, allow him an additional impulse.

In Impulse Shooter, players must use precision and strategy to eliminate all targets with an allotted number of impulses.

Development

Intentions:

Impulse Shooter is my second programming project on Unity.

Initially, I had the intention to create a shooting field where the projectile would split itself on command. I was not satisfied with this idea and therefore I came up with the second impulse game mechanic.

Level Design:

In addition of being more interesting to render, the second impulse mechanic made it easier to level design. It is simpler to design a level around a projectile with a limited movement type, than around a projectile that will create several projectiles that goes in random directions. The second impulse gives the player more control which makes the walls decent obstacles instead of being frustrating.

 

Added Gameplay:

In order to improve the gameplay, I added boosters which reset the projectiles' impulsion available. Although boosters are necessary to hit the targets farthest away, they also allow one quick change of direction to hit targets closer to them.

 

The Technique:

The greatest challenge of this project was to code procedural generation of items via the Spawners. To simplify, I created a group composed of several lists of values. Since the lists are stacked on top of each other and have the same number of random values, they form a two-dimensional grid where each value is a square. Depending on the value of the square, an object can appear or not. To create a three-dimensional grid, each value in the two-dimensional grid must be a list of values. Once this concept was mastered, I iterated a lot on the size of the grids and the probability of appearance of the objects according to the range of values of the squares.

bottom of page