Rhythm Blaster – my first game

Recently I got to the second round of the Search for a Star games coding competition, for which I had 2 weeks to a) learn Unity and b) turn something that looked like this:

original

into something that looks like this:

screenshot 2

The game is a 2D space-shooter with a rhythmic twist, inspired by music games such as Rhythm Heaven and Love Live: School Idol Project. Enemies arrive in rhythmic patterns and you have to shoot them down in time with the music. There are two levels, and at the end, you get a score depending on how many hits and misses you got:

screenshot 3_800x450

Here’s a gameplay video:

Download the game (27Mb):
https://onedrive.live.com/redir?resid=56CD19EB372DF550!1221&authkey=!ABi3Sw61HZraNUk&ithint=file%2czip

Download the Unity project (87Mb):
https://onedrive.live.com/redir?resid=56CD19EB372DF550!1222&authkey=!AJvC1OotBXipPgw&ithint=file%2czip

Fireworks particle system set to music with Direct3D 11

In January, I made a particle system to display a realistic fireworks show, in order to learn DirectX 11 and geometry shaders.

The program was written from scratch in C++ and DirectX 11.

Particles are implemented as camera-facing textured quads with transparency generated by the geometry shader. Gravity and atmospheric drag are simulated for each particle on the CPU. Particle states are stored in a set of ring buffers (implemented as C++ vectors where the index wraps around).

I followed a data-oriented programming paradigm for performance. My PC can run up to 1.2 million particles at 60fps, dropping to 26fps during the peak load of 2.8 million particles.

The debugging display in the top left corner shows new particles being added to the end of the buffer and dead particles being removed from the front of the buffer.

Firework data, such as timing, firing location, direction, velocity and colour, were scripted by hand using Excel, saved to a text file and read in by the program at initialisation time.

Music playback is handled by the SFML library.

Total time taken: 10 days

Progression:
Day 1: wireframe cube
Day 2-3: textured cube with transparency:hakase cube_770x600

Day 4: array of 8 million camera-facing quads with the geometry shader:8 million hakases_800x420

Day 5-6: particle system with explosions:explosion of catgirls

Day 7: music playback
Day 8-9: script fireworks display to music
Day 10: add particle trails

Download the Visual Studio project (12Mb) (build with x86 Release configuration):
https://onedrive.live.com/redir?resid=56CD19EB372DF550!1220&authkey=!AGTzG8dHFBkgeME&ithint=file%2czip

 

Lego House in Direct3D 9

I made this project in January to model and render a Lego model, coded from scratch in C++ and DirectX 9.0c, with the invaluable assistance of Luna’s book, Introduction to 3D Game Programming with DirectX 9.0c: A Shader Approach.

Bricks are procedurally generated from a custom text file that specifies the size, position and colour of each brick.

Phong shading was used as the lighting model, implemented using a pixel shader. There is only one directional light in the scene.

Download the Visual Studio project (89Kb) (build with x86 Debug/Release configuration): 
https://onedrive.live.com/redir?resid=56CD19EB372DF550!1218&authkey=!AC0hjMKlGn9EK9g&ithint=file%2czip

Git repository:
https://bitbucket.org/handyj443/graphics-assignment-1-lego/