Coscoroba
The Swan Takes Flight
Jan 2020 – Apr 2020
A 2-player Alt-Control game in which players have to crank a pipe and hit a foot-pedal each to control the up-down and side-to-side motion and firing, for an all powerful Anti Aircraft gun setup on a spaceship
Cosocroba is a semester-long project undertook at Entertainment Arts & Engineering - University of Utah. In a team of 12 highly talented individuals:
@VishalNaidu - Gameplay Engineer | Gun Master
@HaydenGriffin - Producer | Cat Herder
@AidanOkeefe - Producer | Audio Wizard
@KaranGanesh - Producer | The Camera Guy
@BalajiGanesh - Game Engineer | The Hardware Guy
@JacksonKeller - Environment Artist | Likes Rocks
@XiaohangDing - Model Artist
@RajeshChilagani - Gameplay Engineer
@XingnanChen - Gameplay Engineer
@LinBao - Concept/Model Artist
@ErikaWood - Gameplay Engineer
@JinleiWang - Technical Artist
I Am Gun-Master
How I contributed:
-
Game Engine: Unreal Engine 4.24
Language Used: C++
-
Set up the Weapons System for the ship
-
Airburst Gun & Gatling Gun
-
Wrote the AnimBP & State Machines for the gun
-
4 round firing & cooldown (Gatling)
-
Spool up/down (Airburst)
-
-
Wrote the Firing Logic for the gun
-
Wrote Projectiles and used Particles from Paragon character packs
-
Muzzle Flash
-
Trail
-
Explosion/Hit
-
-
Wrote the Damage Logic to deal
-
Radial (splash) damage (Airburst)
-
Point damage (Gatling)
-
-
-
The Ring - allows the players to rotate around the ship, allowing the players to spot enemies from all directions
-
-
Designed the Hierarchy Structure
To divide the player character's functionality into the following categoeies, allowing the engineering team to work in parallel and thus, faster:-
Base Character (Health | Damage Events | Shield)
-
Weapons System (Firing | Input Maps)
-
Camera System (Weapon Station Rotation | Input Maps)
-
Socket System (Getting Inputs From Raspberry Pi)
-
Child Character Blueprint
-
-
Helped optimize the communication & physical controller input mapping from Raspberry Pi to in-game controller events
-
Made the Intro Cinematic in UE4, in the Water Level
-
Thanks to @HaydenGriffin & @JacksonKeller for the gun meshes & animation clips
-
Thanks to @EpicGames for the Paragon VFX assets
-
Tutorial Level
-
Wrote the sequential event firing logic, based on player actions
-
Designed the tutorial (water) Level
-
How do my guns work?
Gatling Gun:
-
Get the following variables from the main CharBP:
-
IsFiring
-
WeaponMode [Airburst / Gatling / BDG]
-
-
If IsFiring is true, then start increasing a variable called RotationRate
Which directly controls at what rate a variable called CurrentRotation climbs
-
CurrentRotation directly controls what Roll value the Barrel bone has
And is clamped between 0 and 360
-
The AnimBP has just one state machine and every animation in it is an empty clip
Why?-
It's because I wanted the state machine to change states from Idle to Spooling to Firing based on RotationRate
-
Each state change would give me the AnimNotifies I want to toggle the Actual Firing Function, Firing and Overheat Sounds and Effects
-
-
There's a ModifyBone node which controls the current angle of rotation of the barrel
Airburst:
-
Get the following variables from the main CharBP:
-
IsFiring
-
WeaponMode [Airburst / Gatling / BDG]
-
-
AnimBP graph has one main state machine to do the following:
-
Start from Idle
-
Move sequentially across 4 identical firing states (for a burst of 4 rounds)
-
Enter cooldown state
-
Provide AnimNotifies for Firing
[No need to write a complex cooldown/firing control code | I can play stuff like MuzzleFlash, smoke, control the blue glowing reload indicator with ease]
-