Contact

Mail pro : lejeunematheo@outlook.com

Linkedin : https://www.linkedin.com/in/mathéo-lejeune-041138409/

Euphonia

As part of my final year work, we created the game Euphonia. This is a narrative game of exploration and puzzle solving where our main character, accompanied by a small robot, discovers the village of these ancestors and tries to understand past events.

Used tools

For this project, I mainly used Unreal Engine 5 in blueprint to create the mechanics and UMG for the UIs. Google Forms was used to create playtest questionnaires.

Gameplay systems

Riddles

For this task, I created a modular UI in order to be able to change the type of puzzles and solutions more easily.

At first, I started with a UI by puzzle because each one had specific needs, but given the number of interfaces that can be used in the game, I started with a UI capable of adapting to specific needs. (type of puzzles, solution, symbols/words usable for this puzzle, dial already completed or inaccessible).

In terms of inspiration, since we work with a register of 8 symbols, I was inspired by the radial menus of weapon selections like the one in GTA 5.

One obstacle I may have encountered was the use of the mouse, which did not select the same angle depending on the window sizes.

Riddle : Symbols association

This puzzle is based on the observation of the environmental elements of the game and allows the player to complete an interface with symbols. Once successful, the system allows the player to move forward in his adventure.

Riddle : Charade

This puzzle serves only as a reference for the player to enter a code on the handpan interface.

Riddle : Words collection and association

This riddle works as the first type except that symbols are replaced by words. To find these words, the player must read the different panels of the area in order to locate and collect the important words for the resolution of the puzzle.

This riddle results from the first version of the mechanics of language comprehension, but since it is too complex on a large scale, it has been reduced to match a smaller scope that is accessible at the player.

Light Reflection

For this task, I created a system that allows Lao (the robot companion) to reflect light in a cone in front of him.

The obstacles I encountered were finding how to make a visual cone and producing a network of raycasts corresponding to the diameter of the cone.

So I carried out several checks to detect eligible targets:

  • A scalar product lets you know if the actor is in the playable character’s angle of view. If nothing more is done, the actors hidden behind become eligible as well.

  • If at least one actor is detected, a network of raycasts is launched where each of them stops at the first actor encountered to avoid touching actors not directly accessible. Each raycast only detects objects belonging to the enum valurs of EObjectTYpeQuery WorldStatic, WorldDynamic, and Pawn in order to avoid blocking by “traversable” objects (godrays)

Handpan

For this task, I created with Mathéo Gollas a UI allowing to play combinations of symbols and to change the solutions more easily. Feedback that is provided to the player when they enter a bad or correct code.

For the validation of a response, each object that can be activated by the handpan is notified. If the index of the zone or the handpan is played matches the index of the object, then it checks whether the code play matches its own and activates accordingly.

The obstacle I encountered is related to code validation. Initially, the player was allowed to validate his hypothesis at the center, but this way was less understood by the players. So we switched to a version that automatically validates the code

Scrapped version:

Final version:

Symbols menu

For this task, I created a UI that is completed as the player progresses through the puzzles in order to keep track of what they have already accomplished. The interface fills itself with each puzzle resolution.

A first version consisted of an hypothesis log where the player selected a pair of symbols and linked them with words found in the environment. This version was of little use, so we preferred to create a journal that contains all the discoveries we make by fire and by measurements of puzzle solving.

Scrapped version: Final version:

Object reactions to player actions

For this task, we created with Mathéo Gollas different interfaces reacting to the player’s actions. We made this choice following the number of objects with which we had to interact and having common systems for each similar object makes the task easier. Each object uses the functions of the interfaces in order to introduce their operation.

The types of objects created are:

  • Interactible objects: objects that provide an action when the player interacts with them via a button.

  • Light Receiver objects: objects that react to rays of light in the environment and those reflected by the player.

  • Powerable objects: objects that perform an action when another object asks them for it following a player’s action.

Zipline/Cable Car

For this task, we created with Mathéo Gollas, a system allowing the player to travel from one point to another using cable car cabins. These systems can either be powered directly or must be powered by the player’s actions.

At the start of the game, a cable is pulled between the 2 points given in the cable settings, and these two points are set as departure and arrival when the player enters a cabin.

While the player crosses with one gondola, another takes the opposite route so that there is always a gondola available at any station. The cabin variables swap their values at the end of each ride so that the player always stops in the right place.

A first version was to force the player to follow the cables of the zip line.

Scrapped version:

Final version:

Settings

For this task, I created a UI to meet accessibility needs:

  • Input sensitivity
  • Display modification and graphic quality
  • Switching from one keyboard type to another (AZERTY/QWERTY)
  • Language (French/English)
  • Sound volume (general, effects, music)
  • Reminders of the different keys

All these parameters are also saved in a “.sav” file that contains the parameters and associates them with the game start.

Created Tools

Respawn system

A respawn system was in case of a fall of the character into the void, the player is placed back on the nearest area from which he fell.

To do this, target areas are distributed over the levels and each time the player crosses one, it will reappear there when the player crosses the collision area at the minimum height that the player can reach.

QA & Production

Playtest management

I took care of managing the playtests; the tasks I was able to do in order to best prepare them:

  • Communication between the group and the organizers so that each member knows what they need to do and prepare for the test day.
  • Launch posts warning of our presence at test locations via our social networks.
  • Drafting end-of-session questionnaires and reviewing them to summarize player feedback.

Survey links :

Short survey : https://docs.google.com/forms/d/e/1FAIpQLSfNivbWjuvDzZ0Yg_8RqFwTaI2aNv91rC8Q-Mdo_5paPvM7-Q/viewform?usp=publish-editor

Long survey : https://docs.google.com/forms/d/e/1FAIpQLSei9R54Vm2nDQ7B9WYd1_JZW-lWwzzpkWlGs8uhXFSCTqYnNQ/viewform?usp=dialog