I AM

GAMEPLAY / TOOLS PROGRAMMER

image
Hello,

My name is Simon Gonand

I'm a Junior Gameplay and Tools Programmer. Working on several Videogame related project reinforce my love for gaming and programming. I am currently looking for an opportunity to work as a Gameplay Programmer mainly on Systems and Gameplay AIs

I'm aware that it can be not easy to work in this industry with the amount of work and pressure that can be important. Nevertheless I'm deeply motivated in order to fulfill my career objectives.


Studies
Rubika

Game Programming Master's Degree (5th year)

University of the West of Scotland

BSc Computer Games Technology

IUT Aix-en-Provence

DUT Computer Science

Paul Langevin High School

Scientist Baccalaureate Engineering option


Work Experience
Gameplay / Tools Programmer

Digixart Entertainment

Tools Programmer Intern

Rebound Capital Games

Customer Support Agent

Pole To Win Glasgow

Java Programmer

Reactis


My Skills
C++ / C# / Java
Unity
Unreal
Git / Perforce / Plastic
SOME OF WORK

A Day with Mochi

 


Introduction

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

Context

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.

Tools

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.

My Work

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...)

Screenshots

 
Trailer


 


Pathing Tools

 


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.


Plunder's Call

 


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






Pathfinding A* on an 8-bit hardware

 

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:

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.

Serious Game Project

 

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.

 

Reflecting Light


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

Contact Me

SIMON GONAND
+33 6 95 98 75 61
Montpellier, Hérault(34)

Powered by Blogger.

A Day with Mochi

  Introduction 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 ...