Game Design Document¶
Intro¶
You are a Golemist and you want to be the best there ever was. So, grab some Golems, raise them big and strong, and do battle with other Golemists in a tactical combat system.
This game is inspired by:
Final Fantasy Tactics (combat, stats, jobs)
Final Fantasy Tactics Advanced (different job trees for different races)
Monster Rancher (monster raising sim)
Gameplay Description¶
Jobs¶
This game utilizes a “job system.” Each golem has access to a set of jobs and has a currently active job. Different jobs can provide different stat boosts and access to certain abilities. Jobs can also have requirements that must be met before they can be used (e.g., a certain number of levels in another job).
A golem gains “experience” in a job via “Job Points” (or JP). After acquiring enough JP, a golem will obtain a new level in the current job. This is no limit to the number of levels that can be acquired for a job. However, job levels have no benefits themselves (e.g., stat gains). Instead, job levels can used to unlock new classes, and the JP earned can be spent on purchasing new Abilities. Jobs can also have a number of stat boosts available for purchase with JP.
Details on all available jobs can be found here.
Golem Stats¶
The golem stats are:
- Hit Points
The amount of damage a golem can take before going down
- Magic Points
A resource for using abilities
- Physical Attack
Multiplier for damage on
physicalabilities- Magical Attack
Multiplier for damage on
magicalabilities- Movement
The number of tiles the golem can move in a single turn
Abilities¶
Golems have access to a set of abilities. By default, all golems have a “Basic Attack” as determined by their active job. In addition to this “Basic Attack,” golems have purchased abilities. Abilities can be purchased for the active job with JP earned while that job has been active. Different jobs have access to different abilities.
Once an ability has been purchased, the golem will continue to have access to it even when changing jobs. This can lead to some fun and interesting golem builds.
Abilities have the following stats:
- EP Cost
How much EP is required to use this ability (can be zero)
- JP Cost
How much JP is required to purchase this ability (For calculation see formula)
- Type
The damage type (either
physicalormagical, but not both)- Range (min and max)
The number of tiles away the ability target can be from the ability user
- Power
This ability power (AP) determines how strong ability effects (e.g., damage) are
- Hit Chance:
How likely the ability is to succeed (100% is common)
In addition to stats, abilities have a list of “effects” such as:
Doing damage (or healing with negative damage)
Moving the ability user
Moving the ability target
Displaying visual effects
Playing a sound effect
Some effects (e.g., damage) make use of a derived “strength” stat.
This is the ability power (AP) multiplied by one of physical attack (PA) or magical attack (MA) depending on the ability type.
For example the damage of a magical attack would be AP * MA.
- Job Point (JP) formula
Value: That base value of that power’s attribute.
Power - Absolute(Value) x10 (targets attribute x2)
(1 - EP Cost) * 10 - Value
Range - ((Max Value - 1) x2 - Min Value - 1) x5
Hit Chance - 100 - Value
Movement - 10 per square of movement x2 if usable on others
Power - (EP Cost) + Range - (Hit Chance) + Movement = Final Cost
Example * Gust ** Power 1 = 10 ** EP Cost 1 = 0 ** Range 1-1 = 0 ** Hit Chance 100 = 0 ** Movement 2 = 40
10 - 0 + 10 - 0 + 40 = 50 JP
Combat¶
This is the current focus of the game.
The combat is turn-based.
On each golem’s turn, a golem may move up to their movement stat and use an ability (in any order).
Movement can also be split before and after using an ability.
Combat ends when one side no longer has any golems above zero hit points.
Golem Acquisition¶
Golems are currently acquired for free from the “Foundry.” This will be expanded on in the future (see Additional Ideas and Possibilities).
Golem Raising¶
This is pretty undefined at the moment (see Additional Ideas and Possibilities).
Artistic Style Outline¶
Simple
Clean
Bright/vivid colors
NPR/Stylized
Systematic Breakdown of Components¶
Panda3D (often shortened to Panda) is the game engine being used
PBR rendering with IBL
Using panda3d-simplepbr, still need to add IBL
GUI
Using DirectGUI, which is part of panda3d
Game Data
Stored in JSON files and managed by
gamedb
Data Editor
It is desirable to not require hand-editing of JSON files
Ideally done with web technologies and JSON Editor
Can use a web server (built using Flask, bottle, etc.) that we point a web browser to over
localhostProof-of-concept Started in
editorbranch
Abilities system
A system to easily define and execute abilities
Visual Effects
Need VFX for abilities
Will start with Panda’s built-in particle effects
Will need to use a custom file format since ptf relies on
eval(), which is bad news
Audio
Need both background music and sound effects
This can be handled by Panda and its built-in OpenAL support
Do we want to try something with adaptive audio?
Save/Load
This game requires saving and loading
Should be able to dump/restore state from JSON data (most internal data already has JSON representations)
Suggested Game Flow Diagram¶
The main game loop is to participate in combats to gain resources to upgrade golems. Once the player completes the “final battle,” they “win” the game, but they may continue to play.
Additional Ideas and Possibilities¶
Golem age and death
Have set lifespans with events that can reduce the lifespan (e.g., losing combat, stress)
Golems behave differently depending on age?
Acquire golem “cores” or “fragments” upon golem death to improve newly created golems
Player funds
Need ways to earn (winning combat/tournaments)
Need costs
Rent?
Golem upkeep?
Buying golems or items?
Non-combat ways to improve golems and/or acquire funds?
Items
One or two “accessory” slots on golems to give bonuses
Make non-visible to reduce the amount of art required
Consumables?
Allow more ratios of PA and MA in abilities
Currently 100% PA or 100% MA
For example: 50% PA and 50% MA
May just do “mixed” type of 50/50 instead of exposing a ratio
Control how many golems a Golemist can take into combat with some sort of spirit points (SP)
The Golemist would have a limit (one that could be increased) of SP to spend building a team
Golems would have different SP costs (with possible discounts)
Some sort of skill tree or perks for Golemists?
Workshop upgrades
Number of active golems
Unlock new upgrades for golems?
Different training options?
Golemists could join different guilds providing different story lines, abilities, prices, or golems
Story lines, or side quests outside of just arena fighting