Game Document 1
Game Document 1
LITTLE WOODS
Backstory
A forest guardian in training, with the guidance of his master, is tasked
to clear slime-infested areas in Little Woods in order to protect its
forest home.
List of Assumptions
Assuming that systems are scalable.
Assuming that "-1", "-2", < > , [ ] in the json files are placeholder texts.
CORE GAME LOOP
Earn
Currencies
Unlock End of
new wave wave
Upgrade
Get Weapon /
Stronger Stats
Results in
USER SCENARIOS
Goes through
Start Game New Game Pregame1
Dialogue
Continue on Upgrade
Earned Gems
to next wave Skills
SYSTEM BACKEND
Based on whichever weapon the player selects, it will give the current
avatar stats buffs in terms of addition.
The enemy system provides the basic stats and images of each slime.
When the enemy wave ID is called, it will match the enemy wave ID
against the enemyWave system and put all the same enemyWaveID into
a list.
It will then check the list's enemyID against the enemy system, and if the
enemy ID matches, it will take note of the number of enemies needed to
be spawn (numOfEnemies), and the duration between each enemy
spawning (enemySpawnDelay).
When an enemy dies, the currency drop system will first check against
the enemyWave ID. If it matches, it will then check for the enemy ID. If
the enemy ID matches then, it will calculate the chances of its currency
dropping.
It will check if the random value meets the chance value. If it does, it will
randomly generate a qty value between MinQty and MaxQty.
To show the currency dropping to let the player know that they have
auto-collected something, the currency ID in the currency drop system
will be checked against the currency ID in the currency system. If it
matches, it will get the currencyImg (served as a image path) to spawn
the currency.
The amount of times the currency will be spawned is based on the qty
value.
SYSTEM BACKEND
Dialogue System
Example:
After the first step is completed, the next would be the data population.
the word "avatarName" in the system would be filled dynamically by
retrieving the avatarName in the PlayerProgress.
the leftAvatarId and rightAvatarId are used to search for the exact Id
stored in the Avatar table to retrieve the image of the character. If "-1" is
found, it means that it is supposed to be filled with the player chosen
avatarId, and hence, the program would retrieve it from the
PlayerProgress.
Next, the dialogueText would be displayed and the < > tags - namely the
avatarName or the enemyId, would be retrieved from relevant tables
and be replaced accordingly.
SYSTEM BACKEND
Whenever a new scene appears, it will track the current scene via its
name, so that when the player loads the game up again, it will display the
scene where the player last left off with the exception of the slime wave
scene (it will lead the player back to the game scene).
It also keeps track of the player's chosen avatar and weapon IDs, their
respective images as well as all the stats combined. The stats will be
updated whenever the player buys a skill.
It also keeps track of the player's collected currencies and displays them
in the game scene. The currencies will be adjusted accordingly when the
player collects more or spends them on skills.
It also keeps track of three lists - unlocked skills, unlocked slime waves
and completed dialogues.
Storing bought skillIDs into the unlocked skills list help keep track of the
skills the player already bought.
Unlocked slime waves list helps keep track of when a slime wave is
completed, which helps let the game know if the slime wave is to be
unlocked or not when the player loads up the game.
SYSTEM BACKEND
This will help check if that particular scene needs to be played out when
the player completes a slime wave.
SYSTEM BACKEND
From there, it will load the skillTreeImg to display the skills, and the rest
of the data to display for purchasing of skills.
A bought skill will then split the affectedStats by '@', and from there, it
will check the Save/Load system for data that have the same names as
the affectedStats.
Active skill will be applied by checking against its ID against the SkillTree
system. If matched, it will check if the player has unlocked the skill or
not. If yes, the skill be be initiated. If not, it will not be initiated.
SYSTEM BACKEND
When the player clicks on a slime wave, it will pass the enemyWave ID to
not only the wave initiation script to initiate the correct slime wave, but
it will also be passed to the player analytics to keep track.
Throughout the slime wave, the player analytics will keep track of the
number of enemies defeated, along with the battle time, damage taken
and currency collected.
Core features
The core feature of the game's dialogue system would be the branching
feature, as shown previously. The player would be required to choose a
response to the NPC's request to train him to be the next forest guardian
to protect the Little Woods from the threatening slimes.
The truth of the matter would be that both of these choices would
eventually lead to the same path, and this availability to make a choice
adds to player interaction and gives an illusion of freedom in the game.