top of page

Groupsize: 4

Role: Project Owner / Concept / Coder / UI

Development period: 20 weeks

Grade: 1,2 | 97/100 Points

Developed in Unity

Screenshot_39.png

VISION STATEMENT

Embark on a journey through the galaxies with Valen Seyven, a young and clever adventurer who is a prisoner of the ISP (Intergalactic Space Prison). Valen is offered a deal by the ISA that he can't refuse: his prison sentence will be shortened if he helps them track down and capture his old team leader, Gav. Once he is free, he follows the few clues to his boss and ends up at H.U.B, a place where all kinds of beings come together to earn Hex-Ohm or have fun. It turns out that Gav holds a significant rank at H.U.B and is not accessible to lower members. For this reason, Valen joins the organization and starts working his way up. The H.U.B is a massive space station with various stations such as the Robostation and Upgrade Station, as well as a bar, arcade, cafeteria, and a portal to different worlds. Upon registering at H.U.B, Valen is given a weapon and a companion robot that brings different functions in combat and can be upgraded. He now begins to complete quests and must travel to various worlds to do so: Perdita is an abandoned hunting ground where resources were once mined, and Blars is a night blue desert. In his quests, Valen must perform a variety of tasks such as protecting people, hunting monsters, or simply collecting artifacts. As a reward, he receives Hex-Ohm, weapons, resources, hexagons, experience points, and upgrades/new equipment. Equipment parts have a hexagon upgrade system in which the player must arrange their hexagons appropriately to unlock certain bonuses for that object. Hexagons can be combined with each other to create unique configurations. Completing quests allows Valen to improve his player level, and after a certain number of quests, the player rank is increased, leading to more difficult quests. The more enemies he kills, the higher the weapon level becomes. At the same time, the equipment level is passively unlocked with the weapon level. There are also other things that can be upgraded and improved, such as the companion robot. In this way, Valen works his way up through H.U.B until he meets Gav and can demand revenge for his betrayal. After delivering Gav, Valen decides to stay at the H.U.B.

KEY FEATURES

First Person Shooter

PC game

Singleplayer

Open-World

Role-playing game

Each new planet is a new gaming experience

Hexagon upgrade system

NPC companion

Guild / H.U.B

Quests are diverse

USP

Hexgrade System

The Hexgrade System is a unique way for players to buff their stats. It works as follows: The player gets a Hexgrade Tile from a chest, which can be found in the game world. After returning to the H.U.B, the player can interact with the upgrade station and place the tile inside the system. To get a greater buff, the player needs to match the red stripes on the side of the hexagon with other red stripes. If the red stripes are opposite each other, the player gets an additional three HP.

The following is a snippet from the Technical Design Document of this Project

InventoryObject.cs
This script is not a Monobehaviour, but a Scriptable Object. In this Scriptable Object, the HexgradeTile.cs are saved. They are saved using the Binary Formatter as JSON, which can save more data than PlayerPrefs and is also encrypted. The saved tiles can then be loaded and fill the Scriptable Object with the previously saved values.

TileDatabase.cs

This script is not a Monobehaviour, but a Scriptable Object. In this Scriptable Object, the created Asset Scriptable Objects of the HexgradeTiles.cs are listed and given an ID. This ID is loaded and used to fill the InventoryObject.cs, as objects in Scriptable Objects change their ID after restarting.

AddHexgradeTiles.cs

This script pulls data from the TileInventory and the BuffInventory. With the obtained data, the script fills the two UI elements Tiles (for Tiles in the System (BuffInventory)) and Scrollview (for Tiles outside the System (TileInventory)) with TilePrefabs. If Tiles are moved, this is passed on from DragDrop.cs to this script and thus loaded and saved via the Inventories.

HexgradeTiles.cs

This script is not a Monobehaviour, but a Scriptable Object. In Scriptable Objects, you can set values that can be changed in instances of this object. These instances are not added as Gameobjects in a scene, but as Assets. Hexgrade tiles have the following values:

• Rarety [low, mid, high, legendary] (Rarety of the Hexgrade tile)

• BuffType [Health, Shield, Speed, Jump] (Types of enhancement)

• BuffStrength (How strong the enhancement is)

• tilePos1-6 (Which position the BonusHP Tile is placed)

• HexBG (Background of the tile)

• Bronze (Bronze display for rarity)

• Silver (Silver display for rarity)

• Gold (Gold display for rarity)

• Legendary (Legendary display for rarity)

 

Creating an instance of this Scriptable Object:

Right-click on the Assets area → Create → Hexgrade Tiles (at the top)

TileDisplay.cs

This script is applied to the Hexgrade tiles to display the values previously set in the Scriptable Object. For this, a prefab was created, where only the Scriptable Object needs to be changed.

DragDrop.cs

This script is applied to the Hexgrade tiles so that these UI elements can be moved with the mouse. If a Hexgrade tile is placed on another tile, the active tile is placed back in the inventory and the values of the tile, if it has been in the system before, are removed.

 

Hexslot.cs

This script is applied to the background tiles. When the player places a Hexgrade tile on a background tile, this script should tell the tile which position it should take. This is solved with tags. Each background tile has a tag TilesBG/Pos1-7 for the possible seven slots that the system has. If the script therefore determines that this object, on which the script is located, has the tag TilesBG/Pos3, the Hexgrade tile is given the tag Tiles/Pos3. This makes it possible later to find out exactly on which position the tile is located based on the tag of the Hexgrade tile.

 

ResetDrop.cs

This script is applied to the background of the entire system. When the player places a Hexgrade tile on the background, the tile is put back in the inventory and the possible applied value from the system is removed.

 

Hexgrade.cs

This script is dragged to the Tiles Gameobject, which is located in the Hexgrade Gameobject. This script is used by the other scripts to add or remove the values of the tiles in the system. There are two main functions in the script: OnAddHex() and OnRemoveHex(). The first adds values when a tile is in the system and the other removes these values again. The script constantly accesses the TileDisplay to see which values need to be applied in what relation.

bottom of page