The combat of XENOCORE
Xenocore was a month-long project during which I took care of all aspects of combat including:
Player offensive capabilities
Enemy design
The design of the 8 elements
The design of 100+ upgrades
It's a topdown roguelike set on an alien planet where the player is stuck in a time loop. With some heavy inspiration from Hades I & II, I created a system which not only makes every run special, but allows for complex synergies and very diverse builds. With every element being distinct and yet still fitting with the others, I ensure a smooth combat experience throughout every trial.
All enemies occupy distinct niches with quite simple behaviors that compliment each other nonetheless. When enemies fill each other's weaknesses and move in different directions depending on the player, no complex pathfinding/state machine is needed. Space will naturally be occupied, forcing the player to keep on moving.
BASE COMBAT & ENEMIES:
The player's base abilities are:
Boomerang attack: Press left click to throw out boomerang, while it's out, press again to recall it. It deals damage on both launch and return.
Boomerang spin: Press right click to throw spinning boomerangs around you, dealing damage in an area.
Dash: Press space to dash. The dash has 2 charges and comes back after a cooldown.
Spell: Press Q to consume your energy and cast your spell. Inaccessible by default, has to be obtained through upgrades and depends on the element chosen.
Melee Enemy: Runs to the player and deals damage in an area.
Shooting Enemy: If within a certain range of the player and has line of sight, stops and shoots a few times. If player is somewhat close, walks away, if the player is too close, slam the ground and deal damage in a small AOE.
Dashing enemy: Walks within range of the player and then, dashes.
Healing Enemy: Runs to a random enemy, stops, gives them some armor once and heals them slowly over time.
Boss: When above 50% hp, dash at the player and summon shooting enemies, when below 50% hp, shoot at the player and summon melee enemies






INTENTION:
The trio of the Melee, Shooting and Dashing enemies occupies spaces surprisingly well because of their design. The melee enemy runs fast and confronts the player directly, occupying the space close to them. Shooting enemies will stay away and even walk away if the player gets too close. Dashing enemies will both be close and far at the same time due tot their high mobility.
This makes it so that levels feel more full because enemies occupy space well. It also gives opportunities for the player to alternate between special and normal attacks, while using their dash to both dodge and get to enemies. This simple design allows me to create a more varied combat experience without developing complicated pathfinding systems.
ELEMENTS:
What makes every run different in Xenocore is the elements. They were designed with the intention to have a pretty balanced spread of supportive/offensive effects and single target/AOE effects.
Swarm: fast damage over time in a small area around afflicted enemy
Haunted: 3 seconds after being haunted, enemies take damage scaling with the damage they took during those 3 seconds. After that another enemy becomes haunted.
Crystallize: crystallized enemies have a chance of dropping energy & currency when hit.
Null: creates a null bubble which stays in place and pulls enemies towards it's center.
Starfall: when afflicted by starfall, enemies have a chance of being struck by a shooting star when they take damage.
Rust: rusted enemies are more susceptible to critical hits and occasionally take damage when they attack.
Tectonic: creates a tectonic zone which slowly grows and deals damage in it's area.
Radiation: creates a radiation ring around the afflicted enemy, the closer enemies are to it's center, the more susceptible to damage they are.

PROGRESSION:
Killing all the enemies in a room rewards a player with one of 4 possible rewards (health, currency, elemental upgrade, boomerang upgrade). Health and currency rewards simply increase those values respectively, one allowing the player to last longer while the other one allows them to buy more stuff from the shop. Boomerang upgrades improve the boomerang's offensive capability, mainly by increasing it's AOE capabilities.
At the start of every run, the game selects 4/8 elements that the player can get as room rewards. Limiting the possible elements allows for a good balance between focusing on a specific build and choosing a bit of everything depending on your luck. When an elemental upgrade is given as a room reward, it will randomly choose an element between those 4.
ELEMENTAL UPGRADES:
Each element follows a theme with their upgrades, giving them a sense of identity.
A shop will appear after the 6th room. In it the player can buy boomerang upgrades, health upgrades and elemental upgrades. However, the elemental upgrades from the shop contain only the elements that weren't chosen at the beginning. This makes shop purchases more exclusive and still allow the player to get the other elements if they want to.
To ensure an engaging progression in terms of difficulty, the game takes in count several factors. With every room beaten, the chance of an enemy spawning with armor (making them tougher) increases. For every 2 elemental upgrades the player gets, they will have to face an additional wave of enemies. This allows me to control difficulty even if every room is premade.


SWARM:
Swarm is all about lots of small but fast instances of damage, just like a swarm. It's the best at triggering "on hit" effects such as starfall.
HAUNTED:
The theme of haunted is death. Death as if the player itself is a ghost, making them harder to hit, but also death because of it's high damage and control over the dead.
CRYSTALLIZE:
Crystallize is all about economy. Giving the player offensive benefits from their energy and currency. It also occupies space with growing crystals and crowd control.
NULL:
Null is all about keeping enemies together and allowing the player to play at a distance. This makes it a safe option for less experienced players who prefer to keep enemies at a distance.
STARFALL:
Starfall is all about luck and chance. A lot of it's upgrades revolve around triggering random effects to benefit the player. Perfect for lucky players.
RUST:
Rust is all about bodily trauma. This applies to both enemies and the player. Giving bonuses depending on hp levels, sacrificing health or making enemies take damage when they attack.
TECTONIC:
Tectonic focuses on proximity. Rewarding the player for playing inside tectonic zones or close to enemies. It also makes the player tankier, allowing for such confrontations.
RADIATION:
Radiation is all about taking up space and spreading. The player makes entire areas of rooms deadly to enemies.