IMETA Trivia Island

About

Interactive internal company training game I developed in collaboration with Bluebee. Players explores an island, solving messages in bottles scattered across the map, revealing new information upon successful completion.

Project Information

  • Role: Gameplay Programmer
  • Time Frame: 1 Month
  • Team Size: 1 person
  • Tech: Unity, C#, WebGL, Mobile

Introduction

IMETA Trivia Island is a project I worked on with Bluebee, designed to provide an engaging and interactive internal company training experience. The goal of the project was to make learning about a specific topic both enjoyable and effective by immersing participants in a game-based environment.

Players spawn as random characters on an island, tasked with collecting messages in bottles that are scattered across the map. Each message presents a trivia quiz, challenging the player to answer correctly in order to reveal valuable information in their journal. By finding and solving all the messages, players unlock a final message, earn a spot on the company leaderboard, and can revisit the information they've gathered throughout their journey.

Character Movement Controller

For this project, I decided to code my own character controller instead of using a plug-and-play plugin. Although using an existing plugin would have been simpler, I wanted to improve my skills in game programming and develop a deeper understanding of character movement mechanics. Therefore, I implemented a rigidbody character controller specifically for this project.

One of the main objectives I had in mind while coding this character controller was to enable the character to dynamically navigate all terrains, including moving smoothly up slopes and over steps. A standard character controller often lacks the ability to handle such terrain variations effectively by default, which can result in jerky or unnatural movement when encountering changes in elevation.

To address this, I implemented a system that allows the character capsule to hover at a controlled distance from the ground. This hovering also helped with maintaining ground clearance and reducing friction, allowing for smoother movement and better responsiveness. By applying a force to maintain this hover distance, the character is able to react dynamically to changes in terrain, such as being gently pushed upward when moving up a slope or step.

WebGL and Mobile-Friendly Implementation

IMETA Island on mobile phone

Another significant aspect of the project was making the game available on WebGL and ensuring it was mobile-friendly. I focused on reducing the complexity of the game assets and utilizing URP to ensure the game would run smoothly on different hardware configurations.

For taking WebGL text input from the users on mobile, I had to implement this custom kou-yeung/WebGLInput that takes input using a JavaScript library and passes it to the game.

For Interface, I incorporated a responsive design that adapted to different screen sizes and resolutions. I also simplified controls to be more intuitive for touch-based devices, using virtual joysticks and touch buttons.