Hello, and welcome to the first issue of GA Status Report, a (hopefully) weekly series about the development of our upcoming game, Garrison: Archangel.
We've been developing Garrison: Archangel for quite some time now and have also been demo-ing the game in some conventions within our area. We've got quite a lot of feedback already from those of you that have played the game. So, on behalf of the development team, thank you for your support.
If you're not familiar with the game, Garrison: Archangel is a fast-paced fighting game featuring powerful mechs that you can customize to your own liking. We have a playlist of videos here. The game will be available on Steam Early Access in the coming months, so stay tuned!
The Weapons of Archangels
In Garrison: Archangel, you can equip your mech with different kinds of weapons. These weapons attach to different body parts that allow you to fully customize your mech to suit your fighting style. Some weapons have unique abilities that further improve each weapon's versatility and mechanics.
This means that our system needs to accomodate whatever crazy mechanic our designers want. It also needs to have little to no programming effort to pull off properly. Unfortunately, we don't live in a perfect world. Our weapons system, while it works, requires a lot of programmer effort and we ended up having to code every single weapon. This is not ideal, so we improved the system and built it from the ground up.
Legacy Weapon System
Before I explain how the new weapons system work, I must first explain our original system. Look at the image below:
The Beam Saber falls under the the archetype MeleeWeapon, which contains logic for melee attacks. The Shotgun has the archetype Gun, which contains logic for ranged attacks. Pretty simple, right? Now what if we want a sword that shoots out beams instead? Enter the Dominus:
The Dominus is a huge sword that is capable of turning impact energy into powerful projectiles. Essentially, it's both a melee weapon and a gun. Using our previous system, it falls into both the MeleeWeapon and Gun archetypes. Since each weapon can only be of one archetype, we will have to create a new class of weapon that is used solely by the Dominus. Again, this is not ideal.
New Weapons System
The new system is composed of small, bite-sized Components. These Components are then attached to each Entity (the weapons). This is called the Entity-Component System, it's a programming pattern that's used in a wide variety of applications. You can learn more about it here.
In this case, we gave each weapon the Control component because we want them to respond to user input. The shotgun has a ProjectileFiring component, which allows it to fire projectiles, and the Ammunition component which allows it to have ammo.
Both of them have a Logic component. These components are similar to the MeleeWeapon and Gun archetypes we had before, except this time, they can be used or extended by any weapon.
The Dominus also got the upgraded system. Here, the Dominus received the ProjectileFiring component, as well as the DominusLogic component, which is an extension of the MeleeWeaponLogic component, that contains the firing control on top of the melee controls.
This new system allows us to simply add these small components on new weapons with little to no additional programming effort. While it is possible to achieve the same result using the legacy system, it would require a lot of programming effort to create new weapons. With the new system, the programming effort needed has been reduced by a lot, if not completely removed.
I hope you enjoyed reading this report, and see you next time!