River Tale

Project information

  • Type: Released Student Game
  • Engine/Language: Unreal Engine 5
  • Date: May - June 2024
  • Team Size: 20 -> 2 programmers, 5 designers, 13 visual artists
  • Duration: 8 weeks
  • Project URL https://buas.itch.io/river-tale
Game

River Tale

May - June 2024
BUas

Immersive multiplayer XR adventure

My Contribution

This project was part of the final block of my second year at BUas, involving a substantial team of 20 members, where I served as the Lead Programmer. Effective communication was essential due to the team's size.

I worked on programming the custom physical controllers and the wireless communication between them, as well as programming some of the boss behaviors using Behavior Trees and the Environment Query System (EQS).

Custom Physical Controllers

Our goal was to implement custom physical controllers, a task that occupied a significant portion of my time. Initially, designers had created an early prototype using Arduino; however, it relied on wired communication, leading to numerous issues such as detached cables and cluttered spaces, hindering mobility.

To address these challenges, I explored various wireless solutions and selected the ESP32 microcontroller, which met our requirements perfectly.

Code for wireless communication between the ESPs using the ESP-NOW protocol

I developed raising and dropping of a physical anchor to serve as a visual feedback for the players. The anchor's level matches the in-game one.

Raising and dropping the anchor
Experimenting with the ESP32

I also designed a comprehensive electrical schematic for the project, providing clear guidance on component connections. This schematic served as a vital reference for the team, ensuring consistency, reducing errors, and streamlining the assembly process.

Electric schema of the project. It's using 4 ESP32 microcontrollers: left cannon, right cannon, helm, anchor

Boss enemy spawning and the EQS

I used Unreal's Behavior Trees and Environment Query System to spawn enemies strategically between the player and the boss.

Environment Query System
Spawning enemies using the EQS

Project Features

  • Custom physical wireless controllers (ESP32)
  • Behavior Trees
  • Environment Query System (EQS)
  • XR Screen

Technologies Used

Unreal Engine 5 C++ ESP32 Arduino IDE