Leyline Knights


Gameplay Programmer

About Leyline Knights

Leyline Knights is an top-down action rogue-lite game created remotely over the course of 8 months on a team of 16. I jumped on to the project 3 weeks into development, and took on the role of gameplay programmer, implementing the player controller and all of its abilities. On this project, I learned a lot about Unreal Engine 4, the game development pipeline, gameplay programming, and the power of sprint-based production strategies.

In Leyline Knights, you play as Elizabeth, a magical knight who ascends a tree in hopes of gaining the power to heal her sickly brother. The tree, and the denizens of the infinite world contained within, put Elizabeth through harrowing trials. As she ascends, she gains all sorts of upgrades to her combat abilities, granting her strength and allowing her to stand toe-to-toe with even greater adversaries.

My responsibilities in this project involved the following:

1. Implementation of all of the Player’s abilities including:

  • 3-part melee attack, with root motion on the 3rd swing, as well as variable damage numbers for each part of the attack.

  • A chargeable AOE attack, in which the player spins around, dealing damage with their sword (shares upgrades with the melee attack).

  • Ranged ability, which casts a magical projectile in the direction the player is aiming (a.k.a. Magic Cast).

  • A Dash ability, in which Elizabeth dashes a fixed distance along the ground.

  • An Ultimate ability, attainable after collecting certain number of elemental upgrades for the above abilities.

2. Over 50+ upgrades for the abilities listed above:

  • 4 Elemental Upgrades (fire, ice, wind, and lightning) for each ability. These abilities and the combinations below change the behavior of the abilities themselves. For example, lightning cast causes the magic cast to bounce between a set number of enemies and apply a stack of electric status effect to each enemy hit.

  • 6 Combination Upgrades for each ability (Plasma, FlashHeat, Wildfire, Magnetize, Storm, and Hail). Each is obtained by upgrading an ability with a second element, with the exception of the ultimate ability. These upgrades’ behaviors typically indicative of the elements that compose them.

  • 5 Equipment Upgrades, which are separate from Elemental Upgrades, and upgrade the Melee, Magic, and Dash abilities. For example, allowing the player to dash mid dash with half the distance, or each 7th melee attack applying 2 stacks of its respective elemental upgrade(s).

3. Implementation Passive Item system, consisting of:

  • 14 Passive Items, and their functionality.

  • All back end data structures, related data management, and a currency which can be used to purchase Passive Items.

  • Passive Item UI, where the player purchases and equips passive items and the slots on which to equip them.

4. Implementation of the Elemental Upgrade System, consisting of:

  • 15 Equipment Upgrades (5 for Melee, 5 for Magic, 5 for Cast).

  • All back end data structures and related management

  • Elemental Upgrade UI, where the player picks 1 of 4 randomly generated Equipment Upgrade to obtain. These 4 consist of 1 Melee, 1 Magic, 1 Dash, and 1 from any of the 3 categories. If the player already has 3 upgrades in one category, that choice is replaced with one from the other available categories.

5. Interfacing all systems above with data assets, so that values can easily be modified by designers.

  • Utilized data assets so that designers could easily modify values for abilities and all upgrades

  • Utilized data assets so that designers could easily modify values like movement speed, play rate of attack animations, duration of invincibility frames after taking damage, cooldowns, etc.

6. Implementation (but not creation) of all particle effects, and animations related to the player and their
abilities.

  • Implementation and tweaking of lifespan of particles in order to make them properly convey upgrade aesthetics.

7. Controller support for the player controller and some menu navigation.

  • Implementation of Xbox controller support, as well as implementation of custom navigation for some menus utilizing UE4’s UMG system.