EVERCASTING
ENGINE:
Unity
TEAM SIZE:
9
TIME FRAME:
9 Months
MY ROLE:
Programmer
PROJECT INFO:
ABOUT:
Evercasting is a single player isometric fantasy rogue-lite where the player is trying to escape a time loop of their own creation, repeatedly respawning at the start until they succeed. The elemental powers of the protagonist are the core of the gameplay experience, with different types of projectiles interacting with each other in a variety of ways.
The game can be found at: https://luminous-bear-studios.itch.io/evercasting

MY ROLE IN THE PROJECT:
Within this project I worked on the procedural generation, enemy AI, backbone of the element system and an item system.
The procedural generation functions off of a series of level designer made rooms with up to 4 exits (1 for each cardinal direction). When deciding what room is spawned, the exits of the surrounding rooms are considered. If there is no adjacent room yet, there is a decreasing random chance that an exit will generate in that direction. Afterwards, the links between rooms are connected to allow the player to travel in-between rooms. Lastly, a minimap is generated to show the level layout.
The enemy AI is somewhat rudementary given the scope of the project, however it served as a good way to learn the basics of AI and the implementation with state machines. The system is far from perfect but highlighted several avenues for me to expand my skills.
I set up the backbone of the elemental interaction system which meant setting up the table above in an easily expandable way. The outcome of each elemental combination is stored in the table. Enumerators are assigned to each element and used to determine the X and Y position on the table.
Lastly, I worked on a simple item system which enhances the player's attributes such as health, elemental resistances, critical chance etc. These were awarded to the player when completing several rooms. Through inheritence the attributes surrounding survivability were carried over to the enemies.
CODE:
Code for the procedural generation can be found at:
https://github.com/Alex-Botez321/Evercasting/tree/main/Assets/Scripts/RoomGeneration
Code for the enemy AI can be found at:
https://github.com/Alex-Botez321/Evercasting/tree/main/Assets/Scripts/Enemies
Code for the element table can be found at (This has been further edited by Daniil Sherry after my first itteration):
https://github.com/Alex-Botez321/Evercasting/blob/main/Assets/Scripts/Elements/ElementTable.cs
Code for the item system can be found at:
https://github.com/Alex-Botez321/Evercasting/tree/main/Assets/Scripts/Scrolls