Ashes to Gunpowder
Ashes to Gunpowder is a 2D top-down shooter where the player plays as Hime, the last descendant of an ancient eastern clan who uses the power of light to cleanse the corrupted land that is cursed by malicious spirits.
Project Overview
2016 (6 months) ・ Team Size: 6 ・ Custom Engine ・ C++
An action/adventure top-down shooter, this project was created from scratch. Even the engine was built from nothing but a basic Microsoft Visual Studios template.
Roles
-
UI Programmer
-
VFX Programmer
-
Particle Systems Programmer
UI/UX Programmer
Microsoft Visual Studios ・ C++
-
Rewrite the custom buttons into separate entities that was easy to use.
-
Create menus using the framework.
-
Simplify and speed up workflow when creating and iterating over the menus in the game.
-
Boss health bars, player health, and ability bars.
-
Interaction and arrow charge bars.
-
The cursor and charge bar also change colors based on how much power is currently charged.
-
-
Skill interface and cooldown
-
Buttons with different animation on hover and click.
The UI went through several iterations before the UI designer and I settled on this. Our goal was to create something that was easily readable, understandable and intuitive.
VFX Programmer
Microsoft Visual Studios・ IMGUI・ C++
As the only Visual Effects (VFX) Programmer for the project, I wanted the visual effects to enhance the player's experience by using various tools such as particle systems and animations.
-
Created custom particle system from scratch and supports/uses:
-
Physics (gravity, force, etc)
-
Sprites
-
Animation (via spritesheets)
-
Color change over time
-
Speed over lifetime
-
Size over lifetime
-
-
Integrated it into IMGUI interface to allow designers to tweak values
Using the particle system, I added different player feedback to the game. Some of the feedback that I added helped to make the game more clear and readable at a glance; such as:
-
When the player shoots a charged arrow, there is a particle system trail.
-
When enemies are slowed, small purple particles float out from the enemies' feet so that it is easy at a glance to know that the enemies are suffering from status effects.
-
When the lantern has been extinguished, the yellow particles turn purple to signify that it cannot be used.
The weather effects like rain and lightning were requested by the designer. It also enhances the feel of the game.
To implement the visual effects, I worked closely with the VFX designer to create the best we could with the technical limitations we had.
Particle Systems Programmer
Microsoft Visual Studios・ C++
Any game looks better with particle systems, and when I joined the team, the engine was lacking a particle system. Thus, I was in charge of creating a particle system for the game that was
-
As robust as possible .
-
While reducing the amount of memory needed.
-
Easy to use.
-
Create visually appealing particle systems.
This was an interesting role because I learned a lot about creating the particle system. With the limited time I had for the project, it was hard to achieve more, but I am proud of what I've done. In particular, the rain and ash effects in the game are a single particle system.
Given the limitations of our engine, I was able to achieve:
-
Animations for each particle using the graphics system.
-
Rainy weather VFX.
-
Burning ash/embers VFX.
-
Turbulence particle system.
The rain particle system is created with a mix of techniques such as:
-
A mix of particle system and animation.
-
Each particle plays an animation, from rain drop to the splatter on the ground.
-
The particle then travels downwards from the top of the screen.
-
Lastly, the particle system follows the camera around.
-
Combined, this gives a realistic rainy weather effect.
The ash particle system consists of 2 particle systems:
-
Normal particle system.
-
Using the ash sprite, the particle flies at an angle.
-
-
Turbulence particle system.
-
Affects the ash particles nearby.
-
Give a random upward force.
-
I worked with the VFX designer of the team to come up with a system that could fit his specifications. The end result is a visually impressive particle system.