Hi ! I’m a game designer and programmer who just got out of my graphics programming master’s degree.
I’ve always been creative but I never found an art form that kept me engaged until I dove into game development.
This website sums up all my game dev related projects.
Enjoy !
Turn-based multiplayer browser game developed in 6 months with a team of 9 people as a bachelor final project. The front-end is written with Vue.js, and we used the FastAPI and PostgreSQL python libraries for the back-end.
The game is based on the Mafia board game (or Loups-garous). Since it was developed during covid, it is, you guessed it, covid themed (nobody’s perfect).
This clone was developed in a team of 2 for a school project in 3 months. It consists of two distinctive parts : a crude game engine based on the C++ SDL library, and the game itself.
It was one of my first projects ever written in C++, and since we did everything from scratch, it was a nice introduction to writing a game engine and procedural animations.
In collaboration with ENSAS (the Strasbourg architecture school), this VR application lets students visualize various lighting effects on wall openings they can modify in real-time.
They can freely add or remove material, and one of the big challenges was to find intuitive controls for that.
It is written with Unreal Engine 5 and leverages its new dynamic lighting and mesh systems.
This simple static first person shooter written for unity and the oculus quest VR headset, this is a 2 month-long project in a team of 2. It was made to showcase immersive player-world interactions in VR: the point is not the gameplay itself (though it’s fun, trust me) but the way the player controls and launches the game. Using a physically simulated, big old analogic control panel, they can set different variables (timer, target size, speed & position, etc…). Very satisfying if you ask me.
During a 6 months internship at Naval Group Cherbourg, I developed and compared several VR scenes with different audio programming solutions.
The project aimed to incorporate accurate sound ambiance in the submariners’ VR training, because it plays a big role in their focus and decision making.
Trikz is my first try at shipping a video game. It is a mobile game where the player is a prisoner that bets on his bottle flips to invest in the domination of his prison block over the others.
I am writing it with Unity, and it is still in progress. It is my introduction to the new Unity’s input and UI system.
Brobots is a friendship celebrating endless runner where you dap up with your bro bots. It was developed in two days with a team of three for the 2024 Kenney Game Jam, themed “Connection”.
This was my first jam, and I am pretty happy with the design and especially the scoping of the project. I managed to have a publishable version in one day and spent the rest polishing the game. You can try the game in your browser here.
This is a 3D pixel art game where a little procedurally animated robot cooks themselves nice meals using ingredients found on an (also procedurally generated) teeny tiny planet.
I designed it to be juicy and beautiful, more like a nice toy than a challenging game.
It is my current graphics programming playground and teaches me how the Unity Pipeline works.
A 2D adventure game made with a team of 9 people in Unity. It won the artistic award.
You play as Gregg, a shy, new-born tadpole, who’s just trying to reach the surface. This jam taught me a lot about team game design, and integrating (beautiful) art assets into a game engine.
The game is playable here.
A language based puzzle game. It was made in a team of 7, and based on Karina Al-Katauneh’s thesis, who elaborates escape games for allophone students to learn French.
You play as a new comer who doesn’t speak Gnom. The game won both people’s choice and game design award.
The game is playable here.
Cas-Contact is a turn-based multiplayer browser game developed in 6 months with a team of 9 people as a bachelor final project.
The game is based on the Mafia board game (or Loups-garous). Since it was developed during covid, it is, you guessed it, covid themed (nobody’s perfect).
At the time, this was the biggest project I had initiated. As said in the title, I endorsed two roles in this project : Front-end developer and project manager.
For the latter, I applied the SCRUM method as actively as I could (we weren’t developing in full-time on the project, so daily meetings were not possible for instance).
I split the team in 2 (front and back) and organized the work into sprints with concrete deliverables and meetings at their term. We also had bi-weekly meetings where we would quickly go over the progress of each team, and discuss the concerns of everyone. We all wrote and maintained the specifications together.
As a front-end developer, I was in charge of designing and implementing the UI : chat, characters, events… I also integrated some of the chat and lobby functionalities.
The game featured :
The front-end was made with Vue.js. I also used Adobe XD to help design the UI and the game screen.
The back-end was written in python, and the database was a PostgreSQL running in a docker. We also used FastAPI and socketIO’s web sockets.
We also did a bit of marketing around the game by recording an audio story that I wrote with one of my teammates.
We were very happy with how the project turned out as the game was running smoothly and (almost) without any bugs. I learned a great amount about building a full-stack application
However, the fields I got the most out of are definitely project and team management. I found myself spending hours —and even enjoying— tasks I never really fancied, like planning, organizing and risk analysis. The project was validated with a 16/20
For my advanced programming class, we had to code a replica of the famous arcade game “Tempest” using C++ and the SDL2 library. This project was made in 3 months with a friend.
This project was my first ever game project. I had no idea what the code architecture for a game might be, and most of the work was to wrap my head around that.
Subsequently, the first step of the project was to write a specially designed game engine, using modern C++ and the SDL2 library. We chose to go with a “Game” class, that was responsible for handling the logic and rendering of all the objects in the game, as well as an “Object” class, that would hold data about all the specific objects.
The aim of this project was to get comfortable writing in modern C++. Even if unfortunately, we didn’t achieve a full copy of Tempest, we still had a viable engine, as well as a playable game in the end, and C++ became my favorite language.
At the National Superior School of Architecture of Strasbourg (ENSAS), students conduct research on the impact of sunlight on specific wall openings. For this purpose, they use a mechanical sun simulation (the blue picture) and something they called “lumboxes” (tiny model houses with an easily replaceable paper wall).
The aim of the LightLab project was to offer a faster and more flexible way of conducting such studies by making use of VR.
LightLab falls within a bigger project, part of a long collaboration between the iCube research laboratory’s VR branch and the ENSAS. While I was in charge of developping the tools and UI to edit walls, Thomas took care of the configurable sun part.
The project is all developed in Unreal Engine 5 and makes use of Lumen for the global illumination. For the editable walls, I used Unreal’s dynamic meshes plugin. Since this was my first time using the engine, a considerable part of my time was dedicated to learning.
The tool allows the user to draw a specific shape on a wall, and then add or subtract matter between the two modification planes. The wall also keeps a history of the changes so that the user can undo or edit any modification they made.
Thanks to this collaboration, I learned a lot of things in Unreal Engine, and on game engines in general, since this was my first experience using one. Although most of the project is made in C++, it was also the first time I was using a visual scripting system such as Unreal Blueprints.
LightLab was later incorporated with the laboratory tools module intended for the ENSAS, and it was validated with a 16/20.
During my second Master’s Degree year, we had a class called “interaction”, where we had to develop a VR project in Unity, showcasing some player / environment interaction. I teamed up with Walid, a good friend of mine, to develop Target Tranquilizer.
Walid being the hardcore FPS fan that he is, and me being the hardcore VR user interface fan that I am (yes), we decided to go with a shooting range game, where you control everything that happens in the game with an physically simulated big old control pannel.
This game was developed in Unity for the Oculus Quest 2. While Walid worked on the environment, the gun and the targets, and modelized everything, I was in charge of the control pannel and the character.
The VR character made use of the Unity XR interaction toolkit, and OpenXR.
For the pannel, I used every available joint in Unity. I was able to use the spring joint for the buttons, and the hinge joint for the levers, but I had to use the configurable one for the sliders. Since it was my first time using Unity, this project was a nice introduction to Unity’s physics engine and to C# and Unity in general.
To me, this kind of user interface is the most suitable for VR. As we say, “a good UI is invisible”. In this case, the interface is not only part of the game, but it is part of the world and reinforces the sense of presence.
This project clearly was one of my favorite ones to work on at University, and I swear it is not only because I was allowed to have a VR headset at home during the time of the project. I was deeply motivated by the idea that we were developing a game, and it was the first project I was proudly showing my friends.
Judging by the great smile on the teacher’s face while testing it (and the 18/20), the project was validated for the lesson.
After experiencing the VR training exercises developed by Naval Group, the sailors reported a discrepancy with reality : the absence of ambient sound in the simulation, which plays an important role in the field. My internship aimed to compare available audio solutions for Unreal Engine in order to select one and to integrate it into the VR training experiences.
First, I had to do research on acoustic phenomena, to build a good idea of what was a physically precise simulation : propagation, reverberation, measure, human hearing.
Then, I studied all the available solutions and established a benchmark to help narrow down the field of research to three solutions : Microsoft Project Acoustics, Steam Audio and Wwise. I also run some tests with a python tool called pyroomacoustics.
To test the audio solutions we had chosen, I needed to develop some test scenes and demo them. The first scene came from a 3D scan of a building on the Cherbourg site. I imported it from Maya into Unreal and had some integration work to do.
I then developed a basic VR controller (I was using SteamVR with the HTC Vive) with movement, teleportation, and that could emit some clicking sounds to test the audio. I also developed a user interface to allow the user to change the objects acoustic materials and drag the different sound emitters around.
After testing those 3 solutions, we decided to try and develop a basic solution. So on an other 3D scan imported scene where the user was static, I developed an other user interface for the audio control of the solution.
During this internship, I learned a lot about working in a corporate environment, and about acoustics. Technically speaking, I also extended my skillset on the Unreal Engine :
The deadlines of the project were made, and my internship was validated with a 16/20.
When I was in Australia in 2024, something weird happened. I had never had that much time to think before. All of the sudden, I felt the urge to create something. I started drawing, writing, and then, diving deep into podcasts like the Indie Game Lunch Hour, and the Game Design Round Table, I started thinking about games.
All of this led to my first solo video game project : Trikz. The aim was mainly to see what I was capable of, and how much time developping a small scope mobile game would take me. (spoiler, it’s still in development)
Trikz is a mobile game where you play as a prisonner who fights boredom by betting on their bottle flips.
At the time, my only available computer was my girlfriend’s 2012 MacBook Air, so selecting an engine from the two I was somewhat familiar with (Unreal Engine and Unity) was fairly straightforward.
For reasons I can no longer fully explain, I chose Unity’s UI Toolkit for the user interface. While I wouldn’t make the same choice for such a small project in the future, I’m still glad I took the opportunity to learn how to use it. The same goes for the new input manager by the way.
Having set a deadline because I was told to, I used ClickUp to manage the project. I successfully met nearly all my tasks deadlines, only to realize that completing those tasks didn’t actually result in a finished game.
As a result, and due to time constraints, the game is still in development. I’m currently aiming for a release on June 1, 2025. Also, I now realize the importance of a deadline.
Jokes aside, Trikz proved me I was fully capable of developping a game, and genuinely got me into game development. I do not think I would have participated in my first game jam without this project.
Kenney is a popular video game artist who creates thousands of free 2D and 3D assets for people to use in their projects.
Each year, he organizes a game jam with a few constraints : use his assets and follow the theme.
The 2024 theme was “Connection”. We chose to go with one of the possible interpretations of the theme : social connections, and we developed an endless runner called Brobots in 48 hours.
The game takes place in the brobots world, who don’t have a lot to do except going where they have to be. The tradition there implies dapping up the bros you come across. When you use the right input, you can dap up your bro and put yourself in their shoes ! The brobots go faster and faster, and if you miss 3 daps with the same bot, you lose.
Go dap your bros up here.
Brobots was developed in a team of 3 :
It was made with Unity, and I learned a lot of things on the engine : assets integration, animation, camera movement. I was responsible for everything in the game except some parts of the UI and music integration.
It also was my first time designing a game with someone else, and I really enjoyed the creative collaboration.
This first game jam experience was very gratifying, and it encouraged me to pursue game development and game jams. I learned heaps on communication, adapting my way of work to a team, and scoping a project.
Since this was my first game jam, I really wasn’t sure I could design and develop a game in under 48 hours. But ultimately, I am pretty happy with how I scoped the game and managed the development, as it is finished, playable in the browser, and rather fun, if you ask me.
I have always been very inspired by the pixel art aesthetics. Being a graphics programmer of heart, I wanted to explore what was possible to achieve such aesthetics with a Unity 3D project.
So I started developping Cooking Planet. It is still in the prototyping phase, and I still don’t know exactly what I am going to do with it. It is much more a playground for me to test techniques than an actual game project. Loving it though !
I started by developing a “pixelizing” pass, by simply down then upscaling everything after every other rendering pass. However, this was cheating, because I was rendering heaps of useless pixels that got lost in the downscaling pass. And since I knew I was going to implement all sorts of other passes after that, I wanted to find a way to only render on the target “pixelated” resolution.
I achieved that by setting the render target of my camera to a small scale texture, and using an other camera as my main.
I also implemented a simple cell shading shader, and an outline pass as a fullscreen pass, using a Sobel filter on depth, normal and color buffers.
I also started implementing a small proceduraly animated character to run around the planet.
This project made me discover Unity’s Custom Render Passes, and get familiar with URP and its features. I also knew GLSL before this project, but not HLSL, although they’re quite similar.
The Global Game Jam is (as the name implies) global. It takes place in various places all over the world, and it turns out that East Games organizes the Strasbourg edition.
This year, the theme was “Bubble”. We decided to develop Bubble UP, a 2D immersive adventure game that takes place underwater, with a twist on the movement mechanics.
You play as Gregg, a shy, new-born tadpole in a bubble, who’s just trying to reach the surface. To get there and hatch, you’ll have to propel yourself by blowing small bubbles, but be cautious ! Every bubble you blow draws air from your main bubble ! Don’t shrink it too much, or else…
Quick ! Go help Gregg here !
The team was made of :
We had a lot of graphic designers, and I learned a lot about integrating visuals in a game. Christelle, whose artistic direction the game is based on, drew everything in black and white. Then Laura, our tech artist, did all the coloring and integration of the assets.
We developped the game with Unity. Since I was the one with the most knowledge on the engine, I spent a lot of time going from pc to pc to provide help and explanations. Kevser, one of the developers, was pretty new to programming, so I also had kind of a “mentor” role on this jam, which I enjoyed a lot. I was responsible for most of the game mechanics including movement and air depletion, pick-ups, player spawn & death, enemies and animations logic.
Thanks to Christelle’s stunning art, and the ridiculous talent of every artist in the team, Bubble UP won this year’s visual award in Strasbourg.
This was my first in-person game jam, and it was a revelation for me. I already knew the experience of a game jam, but sharing it so intensely with teammates who I didn’t know 2 days prior changed my perception, and it gave me a whole new motivation.
It taught me a lot about interdisciplinary communication and project/team management. I also learned heaps about game and level design, and about controls, animations, and level management in Unity.
In a Scientific Game Jam, there is a PhD student in each team, and the game is based on their thesis. This year, we formed our team around Karina Al-Katauneh, who studies and elaborates escape games for allophone students to learn French.
We were very inspired by the thesis (although let’s face it, we got an easy one) and we decided to capture it with our language based puzzle game : Gnome Society. The twist is the physical notebook we made for you to solve the puzzles.
In the game, you are a new comer who doesn’t speak Gnom. You have to help the people there by drag and dropping them in the right places, but they don’t speak perfect French either ! Luckily, a French anthropologist who studied the gnome society 10 years prior left you her notebook, which is going to prove essential for your adventure.
You can play the game here
The team was made of :
Since Baptiste is a very good developer, I was able to spend a lot of time helping design the game and the puzzles, especially at the begining of the jam, during the ideation process.
On the development side, the game was made using Godot. Although it was my first time using it, I now feel pretty good on the engine, and that is all due to the intuitiveness and all the helper features it presents (hi tweens). I was in charge of the UI, some of the drag n’ drop features, some of the quest features, the animations, and the asset integration (sound, visuals).
We were super happy with how the game turned out. When people started coming in to see the game, not a single player left without finishing it, usually in about 20 minutes. People were playing together and were glad to solve the puzzles with the notebook. Karina was also very happy about how good the game captured her thesis, and enjoyed watching people play it.
The game won both people’s choice, and game design awards. Although this is not the main reason why I consider this game jam a success. After the week-end, Joséphine and Solène, the 2 people with the most game jam experience in the team, told us it was the “chillest game jam they ever made”. I think this tells us that our scoping, communication and project management was so good that we didn’t feel any big rush, and we all enjoyed our experience. Above all, it means that a team who enjoys themselves is more likely to make good games.