Gameplay Programmer
Voidsinger
Developed: August 25 2021- March 29 2022
Voidsinger is a 2D spaceship building and combat sim tech demo with rhythm game elements. The player can build large complex ships and then battle to the death with other ships to gain new resources to expand their ship.
Team Size: 5 - 10
Engine: UE5
Code Language: C++
Depending on development stage
My Involvement
Role: Lead Programmer
Things I did:
-
Implemented custom 2D physics
-
Implemented explosions
-
Implemented save games
-
Created content creation tools
-
Implemented movable & resizable widget windows
-
Taught other programmers
Role: Designer
Things I did:
-
Pitched game idea
-
Designed parts & combat
-
Designed the Voidsong system
Role: Team Lead
Things I did:
-
Tracked team progress using managerial software
-
Distributed tasks
-
Create developer's guide
System Overview
-
Physics - The game has a custom 2D physic system that all ships are a part of. This system takes into account the dynamic ship centers of mass and changing collision. Using this it calculates the given movement that a force will produce dependent on where that force is applied. It also can detect collisions (not implemented in the demo video) between ships and calculates the resulting velocities.
-
Thrust Control System - Because of the complex physics and many thrusters that a ship may have, there is no way for the player to control their ship without assistance. The thrust control system will take in the player or AI's desired velocity and calculates which thrusters to fire depending on their orientation and location relative to the center of mass of the ship.
-
Thermal Destruction - Each tile in the game has a temperature that can spread to adjacent tiles or dissipate to space, and if the temperature rises above a certain amount the tile will melt.
-
Explosive Destruction - Explosions will destroy pixels within a certain radius around them, however, that radius is decreased depending on the strength of the parts it's exploding. Parts can also shield other parts behind them, so a recursive algorithm is used to follow the possible paths an explosion may take and destroys the necessary tiles as it does.
-
Resource Systems - Some parts produce, consume, or transmit resources, so there is a system for detecting when parts are connected through resource transferring parts and storing each connected system's resource totals.
-
Voidsongs - These are the primary way the player interacts with the world. They consist of verbs, nouns, and factions. The verbs will indicate what effect to apply to the activated parts, the nouns will determine what kind of parts to activate, and the faction will determine whom to activate the parts on.