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

NameUsesCreate by
Ground sprite sheetSprite sheet of Tile maps as game backgroundMade by me
Tree spriteSprite of tree as environment object with collisionMade by Ghlczero
Player sprite sheetSprite sheet of player to create character animationMade by Ghlczero
Shadow circle spriteSprite used to make shadow looking under an object, had on player and treesMade by me
Soil ground spriteSprite of soil ground block use to grow cropsMade by me
State bar spriteSprite of empty state bar shape use to show soil softness and wetness state valueMade by me
State square spriteSprite of a square use to fill state bar to show current state value of a soil groundMade by me
Barrel shop spriteSprite of a shop that buy items from playerMade by me
Mat shop spriteSprite of a shop that sell items to playerMade by me
Tools spriteSprite of tool items that could use by playerMade by me
Crop sprite sheetSprite sheet of crop in each growth stageMade by Ghlczero
Products sprite sheetSprite sheet of items that produced from cropMade by Ghlczero
Seed sprite sheetsSprite sheet of each seed that could grow a cropMade by Ghlczero
Empty layer spriteSprite of removing all objects on screen effect when quit gameMade by me


Scripts

NameUsesCreate by
MainMenuCameraMovementScript used to control the main menu background camera random moving directionMade by me
MainMenuManagerScript used to control UI animations and button pressing event at the main menuMade by me
InGameMenuManagerScript used to control in-game UI animations and pause the game time and disable character controlsMade 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
GameSeasonSeason class stored 4 season enum, each season's next season, days in each seasonMade by me
GameTimeTime class stored hour, minute, and second, indent from second to minute to hourMade by me
ScenesManagerStatic class object use do all sorts of scene switch workMade 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
LayerSorterScript that will update the sorting layer of the object's sprite renderer component this script is attached on by its current y-axis valueMade by me
CreateShadowScript that will create a shadow object as a child to the object of this script is attached onMade by me
MaterialCreaterScript that will create an instance material to the object's sprite renderer component this script is attached onMade by me
ObjectDetectScript 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 highlightedMade 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
CropScriptableScripts 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 playerMade by me
IUsableItemInterface, implement by item who able to use by player while holdingMade by me
NightVisionScript that will create a light source(sprite mask) and follow the object who attached this scriptMade by me
ItemScript 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 neededMade by me
SeedScript 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 dropdownMade by me
ToolScript 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 dropdownMade by me
SoilScript 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 valueMade by me
SoilStateCreaterScript 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)UsesCreate by
Camera MovementAnimations of start menu background camera movementMade by me
In-game Menu MovementAnimations of in-game menu UI movement when enable or disableMade by me
Main Menu MovementAnimations of start menu UIs transition to each otherMade by me
Night Cover TransitionAnimations of transition effect when in-game time going to night or morningMade by me
Pickup Area RotationAnimations of pickup detect trigger object rotationsMade by me
Player MovementAll animations of character in all directions(idle, walk, run, pickup, interact, holding idle, holding walk, holding run)Made by me
Start Game TransitionAnimations of starting game transition, played when first time load in to main game sceneMade by me


Materials(Shaders)

NameUsesCreate by
Outline shaderMaterial of objects that pickupable or intractable, make highlighting looking when player near an object to tell it is selectedMade by me
Waving shaderMaterial for crops to have waving(by wind) visual effectEdited from Brackeys's tutorial


Font

NameUsesCreate  by
Pixel FontFont used on UIs and in-game textsMade by Craftron Gaming


Credits

Arts: Ghlczero from TwitterPixivDeviantart (Special Thanks to the wonderful art creation)

Font: Craftron Gaming from dafont

Shader: Brackeys from Youtube


 

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\RequirmentsSoil SoftnessSoil WetnessGrow TimeAgeSpringSummerAutumnWinter
Carrot XXxXXxShortX
Potato XXXxXXXShortX
ChilliXXxXXXxShortXX
StrawberryXXXxXXXShortXX
PumpkinXxXxShortXX
CornXxXXXShortXX
TomatoXXxXXxShortXX
SunflowerXxXxShortX
CarambolaXXXXxLongXXXX
EggplantXXXxXXXShortXX
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'.