Documentation + User Guide


The Lonesome Fisherman was a very ambitious project to intend on completing within the short time period we had. Unfortunately, I was not able to implement a lot of the concepts and ideas I had discussed in my concept document. The following features are yet to be implemented:

  • Items
  • Bait system
  • NPC trader
  • Attack animations
  • Dungeon tiles art
  • Music/Sounds effects
  • Boss room
  • Differing room sizes
  • Treasure room
  • Multiple floors
  • Fishing mini-game
  • Controller support
  • Customizable controls
  • Multiple enemies

The list is undoubtedly much bigger than it should be however I am not necessarily displeased with the result I have so far. I intend to keep working on this project outside of my studies because I do believe I am more than capable of achieving my vision. Many of the features, most notably the procedural generation proved to be much more difficult than I had imagined and took up most of my time while developing this project. I didn't specifically choose to not implement these features rather, I ran out of time as a result of some poor time management.

The feedback I received was fairly expected, as I was missing a majority of the gameplay at the time. I prioritised the features that people were most keen to see and even if not fully completed to the extent I wanted, were done to a reasonable standard. Although I noticed that some people believed that the controls were unintuitive, I am disappointed I could not add the customizable controls in time. 

My game features many assets that revolve around the player and their interactions with the world and enemies, procedural generation, and more.

Player Assets:

  • PlayerMovement - Controls basic player 8 direction movement
  • PlayerDash - Allows player to dash through enemies and over water
  • PlayerAttack - Checks to see collision with enemies and calculates the damage to deal to each enemy
  • PlayerHook - Throws out the fishing hook for attacking enemies
  • PlayerHealth - Controls the health of the player and calculates damage to the player on contact with enemies
  • PlayerFishing - Uses raycasts to find nearest water block to fish in
  • PlayerStats - Contains the stats for the player such as speed, max health, damage, cooldown reduction, size, etc
  • MoveRoom - Moves the player between rooms when moving through doors
  • MovePlayerOnCollision - Moves the player to the enemy if one is hit
  • FishingHook - controls the time it takes to fish and what bonus is received
  • Insanity - Controls game difficulty over time
  • Death, Run, Idle animations - Players animations 
  • HookGuide - The on screen cast range for the hook
  • HookIndicator - Indicator for when hook is available to use

Enemy Assets:

  • AStar AIPath - Controls the enemies pathfinding movement
  • EightWay Animation (Modified version of tutorial tasks) - Used in conjunction with the animator to control the sprites
  • EnemyHealth - Contains enemies health and calculates the 
  • EnemyStats - The enemies stats such as speed, health, armour, size, etc
  • Enemy run Animation - Enemies run animation

Procedural Generation:

  • Room layout images - Base images for room layouts, using just colours
  • ColourToGameObject - Changes those colours into respective game objects
  • DoorState - Controls whether the doors are opened or closed
  • LevelGeneration - The majority of the room generation, using a 2D array and filling in specific slots to align with world position
  • MapSpriteSelector - Chooses which sprite to display on the map for each type of room
  • Room - The room class, contains information about each room
  • RoomInstance - Generates the actual rooms for the player to move through, creates tiles, doors and the position of each room
  • SheetAssigner - Randomly selects the room layout for each room, from a list of pre-made room layout images
  • SpawnEnemy - Only spawns enemies once when first entering a room

Others:

  • ManagerController - Manages the reload when holding down the R key
  • Insanity - Controls the difficulty of the game over time and adds camera shake
  • Cinemachine - Cinmemachine camera, not used to the full extent at the moment but will be when different sized rooms are added
  • Heart Containers - Randomly drops heart containers upon killing an enemy
  • Heart UI - Displays the full and empty heart containers
  • Map Material - the material used for the map camera

USER GUIDE

In The Lonesome Fisherman, you play as a fisherman wandering through a mysterious web of procedurally generated caves fighting off enemies and fishing to gain rewards. Using your fishing rod to attack and hook enemies while dashing around at high speeds you must avoid getting hit at all costs, health is hard to come by and enemies continue to get even stronger. 

Use WASD or the arrow keys to move, space to dash, right-click to hook, E to fish and hold down R to restart the run!


Leave a comment

Log in with itch.io to leave a comment.