A Day with Mochi
is a sandbox game based on systems when you are playing Mochi a young
cat who just arrived on the island of San Felicete. You must help the
local cats and fill up your photo album with Polaroids
by making mischief. Interact with your world, charm the people (or make
them angry), make a mess and escape to the rooftops...
The game is now available on Itch.io
This
game is my final school year project. We have 9 months to produce a
Vertical Slice containing about 30 minutes of Gameplay. We are 11 on the
team with 2 Systems Designers, 2 Level Designers, 1 3C / Tech Designer,
2 Environment Artist, 1 Character Artist, 1 Animator, 1 Generalist
Artist and 1 Game Programmer which was my job.
The project is done on Unreal Engine 5.1 and using Perforce as source control tool.
The
architecture is using both C++ and Blueprints to have a base defined by
me and a higher level that can be used by the Designers.
The game is also using some new tools of Unreal such as the World Partition, Lumen and Nanite.
On
the project, I have the role of Lead Programmer / Technical Reference,
my role is to establish an architecture, be sure that everything is
working on the engine and to setup all the tools that we are using on
the projet.
I am both using C++ and Blueprint on the project,
the use of this two languages in the architecture is to let the
possibility to the designer to help me with some programming and set a
natural boundary between their work and mine. If by trying to solve a
problem they find C++ code, then it means that this is not their area of
expertise.
On the Gameplay part, I was responsible of
creating all the AIs of the game from the base code to their Behaviour
Trees and to code the different systems of the game (Objects, Awards,
Life on the Island...)
Introduction
For the game Plunder's Call (Presented in the previous post) we needed the boat to follow a predefined path during the levels. In order to simplify and to make this task quicker for the designers I decided to create a tool in Unity.
My work
First, I wanted to make a tool that can be reused with other objects than the boat and therefore in other Unity projects, even if the core can be reused on other engines.
As you can see on those pictures, the tool implements Bezier curves to have nice curves that are easy to follow and to make it more realistic in game. Also it is using the Unity Nav mesh to calculate a first version of the path which will let the users to create less waypoints to avoid an obstacles.
In this tool, the waypoints are here to lead the path of course (even if you can let the nav mesh create the path between two waypoints) but also to create different links that can have different kind of data (speed, camera offset and camera dezoom).
Finally, when the object that is following the path is reaching a certain waypoint, it can throw an event with a callback function that can be decided by the user.
Conclusion
This project brings me knowledge in tool development in general but also how to extend the Unity Engine editor. It also allows me to explore mathematic problems such as the Bezier curve and how to make a 3D object following it with his rotation.
Pathing Tools
Simon Gonand
January 25, 2022
Introduction
Plunder's Call is a 4 players multi local coop party game in the same vain as Overcooked and Moving Out where the players are pirates that are plundering archipelagos in different kind of levels. Their goal is to organize and coordinate themselves in order to get a maximum amount of treasures.
Context
This game was a school project made on Unity with two constraints. Only 4 months of production and no artists available on it. To overcome this, we get a budget of 70€ to buy assets.
My Work
On this project I was the only programmer. Which means that I worked on the controller, the local multiplayer, all the gameplay features (including Collision managment & physics), a pathing tool (which I present in detail in the next post) and assets, UI, feedbacks integrations...
Conclusion
This project was my first videogame production and the most complete project that I did on Unity. It helped me to better understand the engine with his pros and his cons (espacially the physic). Being the only programmer of a project was also enriching by the fact that there is no one to rely on when something goes wrong and that is how I learned most.
Screenshots
Plunder's Call
Simon Gonand
January 25, 2022
During the last entire year, I was working on a study of old 8-bit technologies.
For the sake of this study, I worked on the development of an A* pathfinding algorithm using C on the ColecoVision processor (the Z80). The challenge of this project was to put such a complex algorithm on 1kB of RAM.
This project brings me a certain mastery of the C language especially in optimization. For example, replacing arrays by just several bits and manage them using bitshifting in C.
To give a simple explanation, the main optimisation of the project was that the map was divided in a grid of nodes, each node has all his attributes on 2 bytes, as shown on the image below:
This project brings me a certain mastery of the C language especially in optimization. For example, replacing arrays by just several bits and manage them using bitshifting in C.
To give a simple explanation, the main optimisation of the project was that the map was divided in a grid of nodes, each node has all his attributes on 2 bytes, as shown on the image below:
Thanks to this solution, I could save a lot of memory and I manage to run this pathifinding algorithm on this hardware.
I also managed to realize some tests using the Assembly language to compare the performances of the two programs. Unfortunately, I didn't had enough time to finish this project. Nevertehless, I had enough resources to complete my study.
Pathfinding A* on an 8-bit hardware
Simon Gonand
December 08, 2021
During my honours year of BSc at the University of the West of Scotland, I made a Serious Game prototype to help people to learn japanese characters (Hiragana, Katakana and Kanjis). Using a small hand made engine using C++, OpenGL and ImGui.
This game allows me to explore algorithm such as the Ray Casting to check if a point is inside a figure or not, or an algorithm that allows the player to draw with his mouse on the screen.
The Game Design Document and the protype are available on this GitHub repository.
The main diffculty of this project was the short period of time available to make it. Between 2 and 3 months to create this game from scratch including the engine. This project was planned for a team between 3 to 5 people but I did it alone.
Serious Game Project
Simon Gonand
January 21, 2021

This project was small one that I started at school and I improved later. To test myself with OpenGL and more especially with the shaders and lighting managment, I created a program that simulate the reflection of the light on a reflective surface (such as glass).
In other words, this program calculates the direction that the light will take if it reflects of a surface. By taking this direction, it creates a spotlight from the surface to a wall.
After making this, I've added the possibility to move the surface in order to make the reflection moving the same way as we are reflecting the sunlight on our watch.
Finally I duplicated the surface and the lights and give them different colours. By converting the RGB values to RYB values in order to have the primary colours, I manage to calculate the mix of the two lights colours on the wall.
Link to the GitHub repository: https://github.com/simon-gonand/individualProjectAGP
Link to the GitHub repository: https://github.com/simon-gonand/individualProjectAGP
Reflecting Light
Simon Gonand
March 16, 2020