Saturday, November 23, 2024

Mechanics Planning 1

    When I develop my game, I'll be using the Godot Engine. I know this will be a tactical rpg, with grid based movement. I want characters to have jobs and skill trees. That by itself already gives us a lot of things to make.

    Here is what I am thinking currently. I'll likely make a page that has an expanded version of this labeled game design document. Some of this is obvious, but will be useful for turning everything into code.

Combat:

    This is the core of the game. The combat system must be able to figure out who's turn it is, allow the player to move and use at least one action of their turn, and  make the ai move and take at least one action on their turn. It must also figure out if the combat is a victory, defeat, or at a point where a character must speak.

    When moving, there will need to be grid based movement, likely using A* path finding. However, that only figures out movement from point A to point B. There also needs to be systems for targeting area of effect style spells.

    Spells will need to have targeting systems, and the ai will need to be able to prioritize and decide which spell to use.

    Spells and attacks(which are also spells) need have their effects scaled on the caster and targets stats.

    Combat also needs you to deploy characters.

    Having a list of squares per combat sequence that the player can put a character on. This will not be based on the map, as the map may end up being reused. Instead, I'll have a Battle file/resource/collection that defines what goes on and scripts each individual battle. 

Party management scene:

    This will be where you look at your entire party, it will allow you to select individual characters and manage them. It should also allow you to view your inventory and general progress in the game.

A character management scene:

    This will be where a character can be equipped and customized. They will be able to select what job they are using,  choose what equipment they are using, unlock new jobs, and progress their skill trees in their active jobs. 

    I still am not sure if I will allow respeccing, have respeccing being limited or cost something, or restrict it entirely. Additionally, while the job a character has will effect the characters stats, I may make it so that the stats are adjusted on a character changes jobs. Otherwise, they will have a base stat growth, and a bonus based on their class(es) on level up. More to come

Jobs

    Jobs will be the core of how a character is customized. Each character will have a selection of jobs available as soon  as you control them.  Each job will have a skill tree that progresses as you continue to use the job. Some skills will Unlock Spells, others will unlock passive bonuses. Others will increase a characters Feat Points(see below) New jobs may be unlocked by taking skills.

    Some jobs may be temporarily unlocked by equipment.

    Each character will always have a primary job.  They may also unlock a secondary job. The primarily job will determine the characters stats and what equipment a character can use. Both the primary and secondary job will determine what spells a character can cast. 

Feats

    Feats are passive bonuses. Once a feat skill is unlocked it becomes available to equip. Each Feat costs Feat Points to equip. The cost is individual to each feat. As long as it is unlocked, a feat can always be equipped, regardless of class.

Equipment

    Each character will have equipment slots. Each slot is assigned to one type of equipment. By default, a character will have 1 Weapon slot ,1 Offhand slot,  1 Armor slot, and 3 accessory slot.
Some characters may have more or less slots. Some feats may also  adjust equipment slots
Equipment may take up more than 1 slot. For example, a two handed sword may take up a weapon slot and an offhand slot.

    In addition to the slots that a piece of equipment takes up, each piece of equipment will have a category, This is used both for sorting items, and to determine which jobs/characters with certain feasts can use the equipment. A mage would normally not be able to use a katana.

    Some feats may add extra effects with some weapons

Stats

    Every character will have the following stats:

    Health: if it reaches 0, a character is dead
    Mana: Used as a casting resource
    Barrier: Acts as a 
    Strength: Used to deal physical Damage
    Magic: Used to deal magical damage
    Proficiency: Increases the damage done with mechanical attacks. reduces damage done to a barrier
    Dexterity: Used to deal damage with ranged attacks
    Defense: Used to reduce physical damage
    Will: Used to reduce magical damage
    Reflex: Effects chance to dodge attacks
    Luck: increases chance for critical hits
    Speed: Effects turn order
    Move: Effects how far a character can move

Story and Progression. 

    I'm still thinking about the story. I don't have a budget, so I will likely not voice acting or external cutscenes. This means most of it will be told through in game cutscenes or in the middle of battle., Either way I 'll need a dialogue system.


    Specifically I'll be using the Dialogue Manager plug in by NathanHoad. This is released under the the MIT license, which makes it great for both commercial and non commercial use. I'll be creating a test scene later on to make sure it works like I want it to.