Games Development Final year project.
Snap out Farmer
For my Final year project, I have decided to make a game that uses unique ways to teach the player that things you love aren’t always what you hope for. In this project I will find a way to implement the game using all the things I have learned from years of experience in the Unity3D engine and C# language. I have landed on the idea of using a manager-based game that can be split into modules making it easy to remove or add features without changing much or any of the code, rather than just disabling a specific manager. This approach does have a lot of benefits as it becomes harder and more complex the more managers and controllers you add on to it, the reason is because one of the managers may interfere with the actions that another one also controls or modifies. This game will be set in a medieval time period with a low polygon themed inspired by the well-known game World of Warcraft, having quest and interactions with the environment in order to proceed the story of the game.
Created player
Movement manager
Camera manager
Intro to raycast manager (Interaction system)
B1) Fixed - viewer Vector3 is zero
B2) Fixed - rotation reseting unwanted
B3) Fixed - zooming inverted
Added on focus controller
Intro to interaction point
B4) Fixed - Focus items do not defocus, they override
Worked on fixing bug in defocusing an interact point
Finished focus controller
Finished interaction system
B5) Fixed - When interacting with an object and leaving the interaction area the interaction doesn't "pause"
B6) Fixed - Small Interaction items don't work
Created model for coin and textures/materials for it
re-orginized files in unity
Started model for loot chest
Re-Modeled coins
Created a script for Custom Scriptable Objects
Implemented a player stats system
Implemented a Currency Loot script
Player has a working Balance
B7) Fixed - After picking up items the interaction in PlayerFocus is pointing to missing
Implemented the basics for an inventory manager
Added singletons and delegates to update inventory manager and items
Player has a semi working LootItem->Inventory connection
B8) Fixed - When inventory slots are all full the invoke points to a null item reference
Started convertion from LWRP to URP rendering pipeline
Created a shader for the hidden interactables
Started creating a glow effect when the player hovers mouse over an interactable
B9) Fixed - some interactables do not glow when in a specific area/angle
Changed method of indicating interactable material using PBR shaders
Added PostProcessing volume and layer
Fixed bugs and optimised code layout
B10) Fixed - Coin piles do not glow correctly, needs re-modeling
Changed indicator with glowing cirle PBR shader
Implemented a flexible loot chest system
Created animations for the chest interactions
Fixed B5 and B10
Scripts need cleaning up
Implemented an inventory system with interaction support
Added temp items and combined interactable items with scriptable object items
Created grass shader graph behavior
Re-arranged folders and files
B11) Fixed - Grass collision does not react to the right axis
Added ability to stack specific items together in the inventory
Edited currency models to fine tune pivot point rotation
Worked on chest loot system, loot now spawns relative to the rotation of its parent chest rotation
B12) Fixed - fixed issue with relative rotation for chest
B13) Pending - Small interactable items clip out of playable area
Worked on inventory system, started implementation of drag and drop fuctionality
B14) Dropped - UI item holder does not hold items
Dropped idea for drag and drop (no point of creating one)
Implemented a right click to inventory to drop item
B15) Fixed - Counter does not display correct item count
B16) Fixed - Chest can not apply spawn force to specific game objects
Optimizing grass spawn script
orginized files
Added support for area specific post processing
Implemented a developer console in game view (Outputs only)
Optimizing group bush spawning
B17) Fixed - grass spawns only with specific amount of pre generated prefabs
B18) Fixed - Using items action wont show in developer console
Fixed github project cloning micro issues
Worked on optimizing the group grass spawner
Bug fixing (B16,B17,B18)
B19) Fixed - Custom console does not show interactable logs
Worked on orginizing scripts
Started working on custom keybinding methods using script
Bug fixing (B19)
Worked on UIControl optimization
Null and double signed key detection
Worked on Custom console UI
Bug fixing (B20)
B20) Fixed - When Custom console was deactivated messeges threw null reference errors
Started convertion of equipment items to custom scriptable objects
Re-orginized files
Started work on implementing a simple equipment properties menu
Worked on equipment system
Added the ability to drop and equip items
Implemented equipment swap when slot already occupied
Worked on placeholder textures
Bug fixing (B21)
B21) Fixed - Items clipping out of the world when dropped from inventory
Added equipment UI
UI can now display current equipped items
Converted all UI updates to delegate singletons
B22) Fixed - Player can interact behind the equipment ui
B23) Fixed - Un-Equip button doesn't work
Player can interact with Inventories
Items have unique tool tips
Removed Custom Console Box (Beta)
B24) Fixed - Player pointing does not update correctly
Worked on technical plan of this project
Bug fixing (B23, B24)
Worked on custom GUI for gizmos in inspector
Improved Gizmos control and apperance
Worked on Gizmos
Optimized the structure of gizmo list updating
B25) Fixed - Null reference onDrawGizmos and onDrawGizmosSelected
B26) Fixed - Gizmos flicker and not all of them work
Finished Gizmo manager
Cleaned code
Made a list that has all the interactable items in the scene
Bug fixing (B25, B26)
Created placeholders for all equipable slots
Created a better equipment stat system
Removed the Gameobject.Find() with a singleton instance of the player for all scripts
Fixed tool tip UI to show new traits system
Fixed bugs
Code cleaning needed
Added unique positive and negative traits for equipment
Added scalable UI for tooltip with new stat system support
Temp imported a frame viewer for performance testing
B27) Fixed - Null focus pointer when dropping items
B28) Fixed - Gizmos trying to render items that are picked up
Fixed error with item dropping and having a null focus pointer
Fixed error gizmos trying to render inventory items or armor
Completely removed Custom console GUI
Changed OS on laptop device and had to clone and push new files
Equipment Inventory automatically closes/opens depending on Inventory state
Applying traits to player in realtime depending on equipment
Implemented paths that Ai/NPC can navigate to
Added probability to the direction of the Ai
Created tool for easy creation of Paths
Added save/load game ability
B29) Dropped - Scriptable Objects do not save/load
Reworked save function
scriptable objects save capable but needs work
Worked more on save/load implementation
Created asset bundles and hosting them via XAMPP (locally)
Removed fps counter asset
Worked on enemy states, tracking and action triggers
Started creating a nicer scene
B30) Fixed - Fixed build issues
Player stats work (equipment and enemies are affected by it)
Enemies patrol a generated path randomly
Enemies can detect/attack/forget the player
Each enemy has unique attack damage and attack type chances
dropped save/load functionality (scriptable objects do not like it)
B31) Fixed - Stats not applying all the timeplayer can attack enemies
Tweaked test enemies values
Enemies can die
Added ui above enemies with health and name
Added visualization for grass spawner
Created shop custom editor
Added moving shop and static shop options
Dropped static/moving shop type (core limitation)
Added shop blueprint
Custom editor for shop blueprint
Text now follows camera correctly
Created the template UI for the shop
B32) Fixed - Shop trigger is of type trigger
B33) Fixed - Shop UI does not open/close
Worked on shop handler
Dynamically setting up the shop depending on shops stock
Player can interact with shop and when walking away shop closes and player loses focus
Shop UI now have dynamically scaling slots with scroll bar
Shop has buyable items/equipments
Bought items spawn in-front of their shop
B34) Fixed - Player focus reference gets lost after several item purchases, not able to replicate constantly
B35) Fixed - Equipment stats do not scale well
Added enemy loot drops
Fixed equipment stat modifiers
B36) Fixed - Player needs to focus the enemy multiple times until the attack is triggered
Added loot drop chances
Fixed enemy attack inaccurate attack values
Added terrain bounds
Added trees rocks greenery
Started adding real enemies and paths
Created 3 zones that demonstrate how easy is to create enemies tools equipment and paths
Project is NOT done but the Thesis ends here, no matter the grade this project will be finished one day :)
B37) Fixed - Player looses focus reference when focusing specific order of enemies
Fixed bug B37