Documentation + User Guide
Comparison (To Concept Statement)
During 7 weeks of development of <Waned Blesses>, we are here at the end of the development.
Compare to the vision laid of the concept document and original idea, there are many detailed features that couldn't get completed in time. Opposite, during development there are also new ideas and these new ideas turning to new features completed better than concept design.
- Environments objects
- In the concept document, there are many objects such as house, stalls, wells, and lighthouse such things laying around showed on the concept map. The art style I expect that could fit the game is rare and almost impossible to find online that could be downloaded and use for free. So then it can only be done by myself or a 3rd party artists to create customised. The most difficulty that couldn't complete them by myself in time is because of my art skill that is not high enough to create then in a short time.
- Terrain visual effect
- At the start of the design of the game, was planed to create a kind of 2D terrain effect that uses art asset, to create a different height ground level feeling to make the map looks more interesting(reference to Pokemon games). But also, couldn't do the art in a short time, so the idea is abandoned for now.
- Weather system
- Sadly, there are 2 technical challenges that could not make the weather system to real in time. First, at the start of the weather system design, there will be an algorithm that calculates the change the weather becomes rain(snow) or windy depends on the current season. Then the duration of this current weather will be calculated by another algorithm. The best idea is every weather other than sunny will happened for a period of time that not too long or short, then balanced happens with sunny days depends on the weather. This weather calculation algorithm also needs to prevent the weathers won't swap to each other frequently to have the best effect. Because this is such of complex design to accomplish, I made it less priority, implement it so only if there have extra time left before I finished the main core game mechanics.
- Growing mechanism
- For the first design of crop growing mentioned in the concept statement, in some of the growth stages, the crop required to gets interacted by the player with an empty hand or some unique items. For example, player needs to do something to the crop in some growth stage in order to make the crop continual grow to the next stage. The idea has been abandoned because it could add a huge amount of items that need the player to identifies for each, to control the softness and wetness of the soil ground is already hard enough for a casual game.
- Trading and villager NPCs
- They're supposed to be NPCs to keep shops run, or just simply walking around in the game. But this takes too long time to make with each individual NPC will have their unique walking path and different time for them to start to do different things. So the idea is sited aside for the current version of the game, the shops will refresh automatically by in-game time counter instead.
- Trading period limitation
- Extends from NPCs design, the trader is designed to come to the island once every 3 days to buy or sell products from player. Because there wouldn't be NPC implemented, the limitation has been removed, the buy and sell shop will refresh daily since the time is passing quickly, the player will need to catch up time to sell the product to their desired shop, so the player could have more chance to buy or sell but a different kind of time limit shop.
Test Section Feedback
From the game testing section, the game is tested and surveyed with the following main point:
- Game Controls
- Control difficulty
- Control operability
- Game Arts
- Art style
- Game Playstyle
- Game difficulty
- Game playability
- Game balances
- Bug Finding
- General suggestions
Game Control
From the survey form and tester's feedback during the testing section, the game control has very positive evaluations on control smoothness and keyboard keys layout.
But showing on the survey form, there is a tester find the game controls are a bit hard to understand, also found that tester needs some time to understand the uses of each key by my explanation. So there I added a helping guide could go from the main menu to have a short tutorial about each key's uses for players themselves to read at any time.
Game Arts
The game arts have highly positive feedbacks about overall colours are fit well to the game, the character and crop animations, visual effects on crops, and item icons are nice looking and easy to understand.
The art and visual effect still have a huge space to expand and polish. Points of arts that could be improve in further development are:
- Particle effect when character walk/run, watering/hoeing soil, drop/buy/sell items.
- Sea/water wave sprite sheet animations, shader reflections/waves.
- Better and more terrain, environment objects(houses, wells, rocks, bushes...).
- Better animation with holding items, using tools, interacting objects.
- In game UIs to inspect item attributes, soil state warning signs(when low wetness of ground for the crop to grow or other non-normal states). Better looking for time and gold display, some sign looking background for these texts.
- Different season environments changes(trees, ground colours).
- Weather visual effects, when rain, wind, snow cases environment change(trees, ground colours).
- Too many more could be list down...
Game Playstyle
To make testers have enough time to test the most features of the game, a special version of the game that reduced crop growth time was uploaded used to test, so the tester could speed up to test the game in limited time.
This change had positive feedbacks to say this testing version of the game has fair speed, it is just already and well to play with. So the final version of the game crop growth speed is based on the testing version, which means the game crops grow much faster than it supposed to have.
Bug Finding
After many tests by different testers in the test section, a rare bug that hard to triggered normally has been found. When the Run and Interaction action keys are pressed at the exact same time, character's motion will freeze and no longer following any other controls.
This has been fixed by delaying each action's duration time, basically means a short cool down after every action. When a new action key is pressed, the program will check if the current is not on any other's action cool down, the new action will be activated, otherwise, it wouldn't.
General Suggestions
There are few good suggestions against the whole play style of the game, but it may change too much to the game, it is hard to implement in a short time, so they are not fully applied to the game.
- Play Style
- By the feedback from testers, the game map is too big and empty, nothing much could interact with. The plan for the further update is to make this whole map to several small areas that could unlock by gold, each area with new items or features added to the game. This could be a way to engage player to keep playing the game by achieving goals.
- Game Features
- Continual to play area section, in each new area unlocked by gold, there could be some new kind of shop and new ways to sell products. Maybe a shop that asks for a number of same or different products in a limited time, a bonus gold if player sold all required products to this shop in time. Or maybe a shop that could exchange one product for another.
- Extends to the feedback to have multiple type of shops, we could also have multiple items other than seeds. There is a special luxury item is added to the game: the light source. The game has day and night rotation during time passing, when the game is on the night time, the play screen will be covered by darkness to influences player's vision. A light source item has been added to the shop allowed player to buy at a high price. This game has no clear target to achieve some of the points to 'win' the game, so an expensive item that could make the game easier will engage players to continually play the game.
- To preventing there are still hiding bugs existed in the game could make player freeze, or causing the game can not continually play during run time, an in-game menu is added. The in-game menu will pause the game to make the time stop counting and the character will no longer able to control. At the same time, character action will be rested to default state, this could or may fix any character freeze bugs if there is one.
Asset List
Sprites
Name | Uses | Create by |
Ground sprite sheet | Sprite sheet of Tile maps as game background | Made by me |
Tree sprite | Sprite of tree as environment object with collision | Made by Ghlczero |
Player sprite sheet | Sprite sheet of player to create character animation | Made by Ghlczero |
Shadow circle sprite | Sprite used to make shadow looking under an object, had on player and trees | Made by me |
Soil ground sprite | Sprite of soil ground block use to grow crops | Made by me |
State bar sprite | Sprite of empty state bar shape use to show soil softness and wetness state value | Made by me |
State square sprite | Sprite of a square use to fill state bar to show current state value of a soil ground | Made by me |
Barrel shop sprite | Sprite of a shop that buy items from player | Made by me |
Mat shop sprite | Sprite of a shop that sell items to player | Made by me |
Tools sprite | Sprite of tool items that could use by player | Made by me |
Crop sprite sheet | Sprite sheet of crop in each growth stage | Made by Ghlczero |
Products sprite sheet | Sprite sheet of items that produced from crop | Made by Ghlczero |
Seed sprite sheets | Sprite sheet of each seed that could grow a crop | Made by Ghlczero |
Empty layer sprite | Sprite of removing all objects on screen effect when quit game | Made by me |
Scripts
Name | Uses | Create by |
MainMenuCameraMovement | Script used to control the main menu background camera random moving direction | Made by me |
MainMenuManager | Script used to control UI animations and button pressing event at the main menu | Made by me |
InGameMenuManager | Script used to control in-game UI animations and pause the game time and disable character controls | Made by me |
PlayerController | - Script that handling all player key pressing, including walk, run, pickup, interact, call in-game menu - Control all player animations from current player inputs - Storing current holding object | Made by me |
TimeCounter | - Static class object counts the in-game time every n second - Create text under Canvas to display current time, day, and season, refresh texts every n second - Indent and count from time to day - Refresh crop growth state every in-game tick(n second) - Refresh shops buy/sell items every in-game day - Control night/day animation transition effect at a certain time | Made by me |
GameSeason | Season class stored 4 season enum, each season's next season, days in each season | Made by me |
GameTime | Time class stored hour, minute, and second, indent from second to minute to hour | Made by me |
ScenesManager | Static class object use do all sorts of scene switch work | Made by me |
GoldCounter | - Static class object counts the number of golds player had - Create text under Canvas to display current golds player had - Do all increase and decrease to player's gold count number | Made by me |
LayerSorter | Script that will update the sorting layer of the object's sprite renderer component this script is attached on by its current y-axis value | Made by me |
CreateShadow | Script that will create a shadow object as a child to the object of this script is attached on | Made by me |
MaterialCreater | Script that will create an instance material to the object's sprite renderer component this script is attached on | Made by me |
ObjectDetect | Script use to control detect area object trigger under player object as a child, it collects all objects inside this trigger and finds the closest one for player to pickup of interact, then call the closest object's material instance created by MaterialCreater to enable outline, showed as highlighted | Made by me |
ItemObject SeedObject ToolObject | Scripts use to create scriptable object, the scriptable object stored information for objects(item, seed, tool) that player could pickup/use/interact with, informations could be: - Item: offset while holding by player, buy/sell price, object sprite, if this item has night vision effect at night(use for special item: light source) - Seed: offset while holding by player, buy/sell price, object sprite, the crop information(scriptable object) and crop prefab - Tool: offset while holding by player, buy/sell price, object sprite, the value increase if this tool interacts with soil | Made by me |
CropScriptable | Scripts use to create scriptable object of each crop, the scriptable object stored information for each individual crop, it contains the information of: - Sprites for each stage of growth - The item information(scriptable object) harvest out by this crop - The seasons allowed to grow for this crop - Maximum, minimum value of softness and wetness required for this crop to grow - The days for this crop to grow in each its stage - If this crop able to harvest multiple times - Maximum age of the crop(max age will start counting once planted down to soil) | Made by me |
IPickupItem | Interface class, implement by item who able to pickup by player | Made by me |
IUsableItem | Interface, implement by item who able to use by player while holding | Made by me |
NightVision | Script that will create a light source(sprite mask) and follow the object who attached this script | Made by me |
Item | Script on each item object that can be pickup, stores its information(scriptable object), operate when pickup, dropdown, and interact, control its collider when player pickup or dropdown, create light source if needed | Made by me |
Seed | Script on each seed object that can be pickup, stores its information(scriptable object), operate when pickup, dropdown, and interact, control its collider when player pickup or dropdown | Made by me |
Tool | Script on each tool object that can be pickup, stores its information(scriptable object), operate when pickup, dropdown, and interact, control its collider when player pickup or dropdown | Made by me |
Soil | Script used to control soil object state to the soil object who attached this script, show state bar if current soil inside player's object detector, increase/decrease softness and wetness state then update state bar value | Made by me |
SoilStateCreater | Script that creates a state bar under the object as a child to who attached it(normally only soil object) | Made by me |
Crop | - Script that controls crop state to the crop object who attached this script - Every time TimeCounter update a game tick will let this script know, then this script will increase one point of max age point, then check and increase grow point if all requirements(season, soil softness, soil wetness) are all meet - Depends on the crop information(scriptable object) if the crop grow point enough for the next stage, the script will change its sprite - If the crop stage is on harvest stage and player interacted with this crop, will instantiate a product object for player to take away | Made by me |
BarrelShop | - Script used on barrel object that buys items from the player, the script collected few groups of object information(scriptable object) for each season the shop could buy - The script will choose an item each day to buy and depends on the current season to increase or decrease the price - The script will create a world text UI on top of the barrel shop to display the price of the item - When player interact with barrel shop, script will check if the item player holding is the same as this shop current buying, if does, the script will call GoldCounter to increase player's gold count number | Made by me |
MatShop | - Script used on mat object that sell items from the player, the script collected few groups of object information(scriptable object) for each season the shop could sell - The script will choose an item each day to sell and depends on the current season to increase or decrease the price - The script will create a world text UI on top of the barrel shop to display the price of the item - When player interact with barrel shop, script will check if the item player have enough gold to buy the item, if does, the script will call GoldCounter to decrease player's gold count number and instantiate an object for player to take away | Made by me |
Animations(Animators)
Name(By folder) | Uses | Create by |
Camera Movement | Animations of start menu background camera movement | Made by me |
In-game Menu Movement | Animations of in-game menu UI movement when enable or disable | Made by me |
Main Menu Movement | Animations of start menu UIs transition to each other | Made by me |
Night Cover Transition | Animations of transition effect when in-game time going to night or morning | Made by me |
Pickup Area Rotation | Animations of pickup detect trigger object rotations | Made by me |
Player Movement | All animations of character in all directions(idle, walk, run, pickup, interact, holding idle, holding walk, holding run) | Made by me |
Start Game Transition | Animations of starting game transition, played when first time load in to main game scene | Made by me |
Materials(Shaders)
Name | Uses | Create by |
Outline shader | Material of objects that pickupable or intractable, make highlighting looking when player near an object to tell it is selected | Made by me |
Waving shader | Material for crops to have waving(by wind) visual effect | Edited from Brackeys's tutorial |
Font
Name | Uses | Create by |
Pixel Font | Font used on UIs and in-game texts | Made by Craftron Gaming |
Credits
Arts: Ghlczero from Twitter, Pixiv, Deviantart (Special Thanks to the wonderful art creation)
Font: Craftron Gaming from dafont
User Guide
How to Play
In <Waned Blesses>, player will be managing a small farm located surrounding by forest. Player will be growing crops and take good care of them to make a profit, buy items to help you make your farming life better and easier.
To grow a crop, player will first need to pickup a seed and interact with soil ground(seed can be buy from shop). Each single crop will have their unique growth requirements such as season can be grow, soil softness, and soil wetness(check Crop Information section below). Once placed a seed to the soil ground, the crop life time will start to count, the player will needs to make the requirement of the crop to the correct level to make the crop start to grow. If the crop life time is up to the maximum it could have, no matter what growth stage it is on, the crop will turn to withered state, and the player can do nothing with it.
Once the crop grew to the final stage, you can harvest it by interacting with it when the character is not holding anything, the crop will drop you its product after that. Depends on the crop, some of them allowed to harvest multiple times, so continually give out your patients, wait for it to bring you another piece of present.
To sell the product you just harvested, find a barrel looking object with an object sticky on the side of it, that object is the item/production of this barrel shop current buying. Check the price on top of the barrel, each barrel will have different price to buy items even if they are buying same item. Hold the item you like to sell to the barrel shop, find the barrel shop with best price you like to sell to, interact with it. Once your item is sold to the barrel shop successfully, your item on holding will take away by barrel shop and your gold count will increased by the price labeled top of the barrel shop.
Now we have gold to buy things, find a square looking object has an object set on top of it, and there also have a price labeled on top, this is mat shop, used to sell items to the player. To buy an item, the player will need to simply interact with the mat shop with an empty hand, if your gold count is enough to buy the item, mat shop will drop down the item it was displaying for you to take away. Of cause, your gold count will decrease after that.
(More detail about how to control to play, please see Game Functions section below)
Game Controls
Up - W
Down - S
Left - A
Right - D
Use/Interact - J(Tap)
Pickup/Dropdown Item - K(Tap)
Run - L(hold)
In-game Menu - Escape(Tap)
Game Functions
- Plant Seeds
This is seeds looks like in game
This is soil grounds looks like in game
To plant a seed to soil ground, follow the steps:
Step 1:
Stand closer to highlight the seeds you like to plant.
Step 2:
Tap 'K' key to pickup the highlighted seed.
Step 3:
Walk close to a soil ground to make it highlighted.
Step 4:
Tap 'J' to interact with the soil ground were highlighted while holding the seed you like to plant.
Now you have a seed planted on soil ground, time to give it some water and good care!
- Managing Soil
This is water can looks like in game
This is hoe tool looks like in game
To take care of your crop by managing soil state, follow the steps:
Step 1:
Stand closer and highlight the tools you like to use(hoe could increase softness, water can could increase wetness).
Step 2:
Tap 'K' key to pickup the highlighted item.
Step 3:
While holding a tool you like to use on soil ground, walk close to a soil ground to make it highlighted.
Step 4:
Tap 'J' to interact with the soil ground were highlighted while holding the tool you like to use on soil ground.
Step 5:
Check the soil ground state frequently to make sure crops are growing.
- Harvest Crops
This is a crop that ready to harvest looks like in game
When crop grew to the last stage and ready to harvest, follow the steps:
Step 1:
Stand closer and highlight the soil that is growing the crop is in the harvest stage.
Step 2:
Tap 'J' to interact with the crop is on the harvest stage with an empty hand.
Step 3:
Pickup the item produced by crop from the ground, you right to take it away!
- Selling Products
This is a barrel shop used to buy player's product looks like in game
To sell an item to shop for golds, follow the steps:
Step 1:
Check the icon displayed on the barrel shop if it is the same item you like to sell.
Step 2:
Find the best price barrel shop you like to sell your item to, stand closer to highlight it.
Step 3:
Hold the item you like to sell and tap 'J' to interact with the barrel shop were highlighted.
You sold the item successfully, the gold will increase to your gold count!
- Buy Items
This is a mat shop used to sell items to player looks like in game
To buy an item from the shop by golds, follow the steps:
Step 1:
Check the icon displayed on the mat shop is the item you like to buy.
Step 2:
Find the best price mat shop you like to buy from, stand closer to highlight it.
Step 3:
Tap 'J' key to interact with the highlighted mat shop with an empty hand.
Step 4:
Pickup the item dropped by the mat shop, you right to take it away!
- Collect Light Sources
This is a light source item looks like in game
This is what a light source will do in game
Light source item will randomly sell by mat shop, to use them you will simply place to anywhere on the ground of the area you like to have some extra vision at night.
(Be aware that light source item is quit expensive sometimes, choose carefully between shops)
Crop Information
Crop\Requirments | Soil Softness | Soil Wetness | Grow Time | Age | Spring | Summer | Autumn | Winter |
Carrot | XXx | XXx | Short | X | √ | |||
Potato | XXXx | XXX | Short | X | √ | |||
Chilli | XXx | XXXx | Short | XX | √ | √ | ||
Strawberry | XXXx | XXX | Short | XX | √ | √ | ||
Pumpkin | Xx | Xx | Short | XX | √ | √ | √ | |
Corn | Xx | XXX | Short | XX | √ | √ | ||
Tomato | XXx | XXx | Short | XX | √ | √ | ||
Sunflower | Xx | Xx | Short | X | √ | √ | ||
Carambola | XX | XXx | Long | XXXX | √ | √ | √ | |
Eggplant | XXXx | XXX | Short | XX | √ | √ |
The max of Soil Softness and Wetness state is 'XXXXX'.
Age is around 7 days for each 'X'.
Lowercase 'x' is equivalent to half uppercase 'X'.
Waned Blesses
Status | In development |
Author | CurryGeyGey |
More posts
- DevLog Week 7 - User InterfaceOct 09, 2020
- Game TestingOct 06, 2020
- DevLog Week 6 - Item TradingOct 01, 2020
- DevLog Week 5 - Crop GrowthSep 27, 2020
- DevLog Week 4 - Pickup ItemsSep 17, 2020
- DevLog Week 3 - Game WorldSep 10, 2020
- DevLog Week 1 - Player MovementAug 28, 2020
- Game ConceptAug 25, 2020