top of page

Horpus

Project Type: Forsbergs skola / group project

Software Used: Unreal Engine 5.2

Languages Used: C++

Primary Role(s): Programmer, UI

Team Size: 4

Project Time: 4 weeks

About Horpus

This prototype of a game is about a man that wakes up in his apartment thinking it’s just a normal day. He follows his daily tasks and finds a cat blocking his way from going outside. After an altercation with the cat the man wakes up in a completely different atmosphere where he has to think, hide, use items, equip items and plan his escape by outsmarting the HORPUS.

I was in charge of making player movement & camera, Inventory & equip systems, functionality of equip, use and deploy items.

Persistence of items and inventory. Made the main menu and pause menu screens. Sneak, Inventory, highlight selected invSlot, Equip, Objective and item UI's.

Hideable sofa and wardrobe.

Trailer:

  • The trailer for Horpus.

Demo:

Gameplay:

  • Hide, use items, equip items and plan your escape!

tutorial.gif

Tutorial Stage

  • Teaches the player how to interact and use/pickup items.

Inventory:

Inventory has Struct array[4] containing:

  • ItemClass (class ref) - To spawn it when dropped

  • ItemIcon(texture2d) - To show Icon in UI

  • ItemDescription(String) - Display Item Name

  • ActiveActorSpawn(Actor class ref) - Spawn Trap

  • Equipable(bool) - To be able to equip it on use

  • SneakLevel(float) - Add to sneakLevel when equipped

  • Usable(bool) - To use it when in range of the door

  • When item is pickedUp it fills the necessary info into the struct array.

  • CheckFirstEmpty: finds the closest empty in the array and puts it there. 

  • Highlighted(Selected): itemSlot shows itemDescription

  • If InventoryCurrSize < 4 the UI will display Inventory Full!

  • Add item, Remove, Drop, GetElement, EquipItem, Add equip, RemoveEquip, InvCurrSize, index.

Items:

Each item is collectable.

  • Catnip->Trap->Collectable

       - Lures the Cat to the Catnip for 2sec​

  • Keys->Usable->Collectable

       - Uses the Key to open a door​

  • Shoes->Equippable->Collectable

       - Adds to SneakLevel when equipped

  • You cannot pick up any items until you retrieve your backpack.

  • Every collectable can be pickedUp, drop them again with "X" or use them with "Mouse1".

  • Once an item is used, it is either equipped, activated, or spawned and cannot be collected again.

  • Hide base class contains animation towards the hide Trigger. Sofa, Wardrobe and table derive from it.

  • Wardrobe needs extra animations to open and close the door.

  • When interacting with the Hide objects while positioned within the trigger box (shown as a dot when interactable), an animation is triggered, guiding the player toward the hiding location.

  • During the animation, player movement is temporarily disabled, allowing only the ability to look around while in hiding.

  • Should the player choose to interact once more, the animation will seamlessly reverse, smoothly withdrawing from the hiding spot.

Persistence:

  • Using BP_GameInstance for persistence while game is running (we dont need save file for this prototype).

  • Sets the Inventory, EquipInventory and SneakLevel to the current InventorySaveArray when restarting the Level or changing level.

  • Everytime the player picks up or drops an item it updates the InventorySaveArray so it will be up to date when player respawns.

Main Menu:

Pause Menu:

Objective:

  • Made a Rich text to be able to make the objectives Strikethrough after finishing a task

Sneak: 

  • A higher SneakLevel results in reduced footstep sound produced by the player.

  • SneakLevel: 0f-1f

  • While holding shift +0.3f to sneak level.

Inventory:

  • 1-2-3-4 to highlight(select) a inventory slot.

  • Shows Icon of item when picked up.

Equip:​

  • Moves from Inventory to Equip Slots

Item:

  • Shows the item name above the world object

  • Inventory Full, Pickup the backpack appears in the center of the user interface.

bottom of page