Skip to content

AMonoyios/CO3808-Thesis

Repository files navigation

CO3808-Thesis

Games Development Final year project.

Title

Snap out Farmer

Project Context

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.

Versions

20w16a:

Created player
Movement manager
Camera manager
Intro to raycast manager (Interaction system)

bugs:

B1) Fixed - viewer Vector3 is zero
B2) Fixed - rotation reseting unwanted
B3) Fixed - zooming inverted

20w23a:

Added on focus controller
Intro to interaction point

bugs:

B4) Fixed - Focus items do not defocus, they override

20w23b:

Worked on fixing bug in defocusing an interact point

20w23c:

Finished focus controller
Finished interaction system

bugs:

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

20w23d:

Created model for coin and textures/materials for it
re-orginized files in unity

20w23e:

Started model for loot chest

20w24a:

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

bugs:

B7) Fixed - After picking up items the interaction in PlayerFocus is pointing to missing

20w24b:

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

bugs:

B8) Fixed - When inventory slots are all full the invoke points to a null item reference

20w24c:

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

bugs:

B9) Fixed - some interactables do not glow when in a specific area/angle

20w24d:

Changed method of indicating interactable material using PBR shaders
Added PostProcessing volume and layer
Fixed bugs and optimised code layout

bugs:

B10) Fixed - Coin piles do not glow correctly, needs re-modeling

20w25a:

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

20w26a:

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

bugs:

B11) Fixed - Grass collision does not react to the right axis

20w26b:

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

bugs:

B12) Fixed - fixed issue with relative rotation for chest
B13) Pending - Small interactable items clip out of playable area

20w26c:

Worked on inventory system, started implementation of drag and drop fuctionality

bugs:

B14) Dropped - UI item holder does not hold items

20w27a:

Dropped idea for drag and drop (no point of creating one)
Implemented a right click to inventory to drop item

bugs:

B15) Fixed - Counter does not display correct item count
B16) Fixed - Chest can not apply spawn force to specific game objects

20w27b: - Supervisor meeting No1

Optimizing grass spawn script
orginized files

20w28a:

Added support for area specific post processing
Implemented a developer console in game view (Outputs only)
Optimizing group bush spawning

bugs:

B17) Fixed - grass spawns only with specific amount of pre generated prefabs
B18) Fixed - Using items action wont show in developer console

20w28b:

Fixed github project cloning micro issues
Worked on optimizing the group grass spawner
Bug fixing (B16,B17,B18)

bugs:

B19) Fixed - Custom console does not show interactable logs

20w28c:

Worked on orginizing scripts
Started working on custom keybinding methods using script
Bug fixing (B19)

20w28d:

Worked on UIControl optimization
Null and double signed key detection

20w29a:

Worked on Custom console UI
Bug fixing (B20)

bugs:

B20) Fixed - When Custom console was deactivated messeges threw null reference errors

20w29b:

Started convertion of equipment items to custom scriptable objects
Re-orginized files
Started work on implementing a simple equipment properties menu

20w30a:

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)

bugs:

B21) Fixed - Items clipping out of the world when dropped from inventory

20w30b:

Added equipment UI
UI can now display current equipped items
Converted all UI updates to delegate singletons

bugs:

B22) Fixed - Player can interact behind the equipment ui
B23) Fixed - Un-Equip button doesn't work

20w37a:

Player can interact with Inventories
Items have unique tool tips
Removed Custom Console Box (Beta)

bugs:

B24) Fixed - Player pointing does not update correctly

20w44a:

Worked on technical plan of this project
Bug fixing (B23, B24)

20w44b:

Worked on custom GUI for gizmos in inspector
Improved Gizmos control and apperance

20w44c:

Worked on Gizmos
Optimized the structure of gizmo list updating

bugs:

B25) Fixed - Null reference onDrawGizmos and onDrawGizmosSelected
B26) Fixed - Gizmos flicker and not all of them work

20w45a:

Finished Gizmo manager
Cleaned code
Made a list that has all the interactable items in the scene
Bug fixing (B25, B26)

20w45b:

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

20w46a:

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

bugs:

B27) Fixed - Null focus pointer when dropping items
B28) Fixed - Gizmos trying to render items that are picked up

20w47a:

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

20w48a - ignore:

Changed OS on laptop device and had to clone and push new files

21w12a:

Equipment Inventory automatically closes/opens depending on Inventory state
Applying traits to player in realtime depending on equipment

21w12b:

Implemented paths that Ai/NPC can navigate to
Added probability to the direction of the Ai
Created tool for easy creation of Paths

21w12c:

Added save/load game ability

bugs:

B29) Dropped - Scriptable Objects do not save/load

21w12d:

Reworked save function
scriptable objects save capable but needs work

21w12e:

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

bugs:

B30) Fixed - Fixed build issues

21w12f:

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)

bugs:

B31) Fixed - Stats not applying all the timeplayer can attack enemies

21w13a:

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

21w13b:

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

bugs:

B32) Fixed - Shop trigger is of type trigger
B33) Fixed - Shop UI does not open/close

21w14a:

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

21w14b:

Shop UI now have dynamically scaling slots with scroll bar
Shop has buyable items/equipments
Bought items spawn in-front of their shop

bugs:

B34) Fixed - Player focus reference gets lost after several item purchases, not able to replicate constantly
B35) Fixed - Equipment stats do not scale well

21w14c:

Added enemy loot drops
Fixed equipment stat modifiers

bugs:

B36) Fixed - Player needs to focus the enemy multiple times until the attack is triggered

21w14d:

Added loot drop chances
Fixed enemy attack inaccurate attack values
Added terrain bounds
Added trees rocks greenery
Started adding real enemies and paths

21w15a:

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 :)

bugs:

B37) Fixed - Player looses focus reference when focusing specific order of enemies

21w17a:

Fixed bug B37

About

Final Year Project - Uclan Cyprus

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published