Botpulation (Final Year Project)

My final year project game and websites, made in Unity3D and HTML/CSS/JavaScript

Trailer

Gameplay

Details

Bot + Population = Botpulation

Botpulation is a single player, 3D side scrolling sci-fi adventure game for PC. The whole game is developed by myself, including programming, 2D & 3D assets creation, level and visual design & project management.

The game is featured in SIG Playful Media Showcase 2022 at City University of Hong Kong.

Here are the main features / systems of the game:

Graphics

The game uses Unity’s High Definition Render Pipeline (HDRP) to achieve a better graphics. Moreover, there is also a option to enable real-time ray tracing for Screen Space Reflection (SSR) and Screen Space Global Illumination (SSGI).

If player have a Nvidia graphics card, then they can also enable Nvidia's Deep learning super sampling (DLSS).

NPC AI

There are 2 types of NPCs: enemy and pedestrian. They are both implemented using Hierarchical Finite State Machine (HFSM).

Enemy AI demo: https://youtu.be/nrqpPbA9h2I
Pedestrian AI demo: https://youtu.be/t1L0FkH_z8c

Inventory

Players can pickup / buy items within the game world, where items are stored in the inventory. There are 3 types of items, which are consumablemission item and trash. Each items can be useable/droppable/sellable/stackable depending of the type of object.

Useable: These Items can be used and give effects (e.g., use health kit to restore player's health)
Droppable: These items can be dropped to the ground to clean up the inventory
Sellable: These items can be dropped to the selling zone and sell for a discounted price of the original value
Stackable: These items can be stacked together until it reached it's maximum stackable size

Map

Players can view the whole map and create way point to get a optimal walking path. A mini-map is also shown at the top left corner, and the path will update as the player walks. The path is caculated using the A* path finding algorithm.

Quest

During the game, player needs to complete quests in order to progress.
- The quests are mainly divided into main and side quests, and each quest have its own tasks also
- Some tasks can be optional, finishing one task will unlock its next tasks
- If all tasks are done, then the quest is complete and, and rewards will be given if it has reward (money / items)

There are 3 main quests and 4 side quests (total of 14 tasks), the tasks are mainly as following types:
- Find items
- Go to locations
- Talk to NPCs
- Fight enemies
- Interact with objects 

Traffic

A simple traffic system is also added to the game to make the environment more lively. 6 trucks will driving along the main road’s path, and if players or other objects blocked its front path, then the vehicle will brake. 

Combat

Players can use the pistol to destroy the enemies. The pistol is upgradable with 3 different firing modes: single shot, burst and automatic

Setting

Players can access the setting screen via main menu or pause screen, where they can adjust the graphics and audio settings and to view the control scheme. Settings are saved on player’s computer, so the game will remember the last selected options even if the game is closed.

Feedback

Link: https://joesiu.github.io/FYP-feedback

This feedback site allows users to view every in game feedbacks submitted by other players. Players can submit feedbacks in game, the feedbacks will then be send to a Firebase server from Unity3D via REST API. While this feedback site will load all the feedbacks from the Firebase server.

Blog

Link: https://joesiu.github.io/FYP-blog

A blog site to log my progress. It's a modification of this Jekyll theme.


Creation date: August, 2021 - April, 2022

Language used

Coding languages used on this project:

  • C#
  • Git
  • HTML
  • CSS
  • JavaScript
  • Jekyll

Software used

The software used on this project:

  • Unity3D
  • Blender
  • Adobe Photoshop
  • Adobe XD
  • Adobe Premiere
  • Audacity