Project
2022
Project
2022
Role: Creator
Description
Open Legend
This project is an experiment, mixing rules Open Legend and parts of Paper Mario game.
The player runs around in a map collecting items to increase their stats that is required for tougher fights. Combat the friendly are placed on the left and the enemies on the right, and each one acts in a turn order. The combat system comes from Open Legend that uses attribute stats that determine what and how many dice the player gain for a given action. The main rules in Open Legend are exploding dice (If the die gets the highest number, roll another die and add the result to the total, same rule for the new die) and "Advantage" (Extra dice with by the number of "Advantages" and choose the dice with the highest number).
Everything is done by me except the graphical assets, and most of the code of inventory and Ability ScriptableObject from GameDev.TV.
It was challenging implementing Ability and Affliction Systems and framework. Using abstract classes and ScriptableObject trying to make it as flexible as possible.
Ability needed to be changed and added onto for the combat and open legend system.
Affliction needed to be able to handle both being in turn based and open world, and the effects when adding to a creature.
It was a challenge to implement the games rules with dice system, such as advantages and explosive dice.
I fixed this by implementing classes as rules with memory as to prevent infinite loops.
The system goes through phases
RollDice: Roll unroll dice and advantages
ConfirmDice: Remove dice from advantages and check for exploding dice, and if any dice are unrolled go back to RollDice Phase.
SumResult: Add the results together and any modifier.
The challenge was to transport the player and the enemies into a turn based battle scene.
How I did this were to use a EncounterManager keeping track of the creatures with Encounter and instigator. After changing scene communicating with BattleManager the information to setup the combat.
Additional Features
Characters (Player, NPC)
Movement
AI
Game Phase (Game over, combat)
Menu (Pause)
etc