top of page
English

Timothé Lafranche

Oh, hello there! It's kind of you to stop by here.
My name is Timothé Lafranche.
In addition to gameplay programming, I am also interested in video game AI and graphics programming.

Projects

ExempleMoteur3D.png
3D Engine

Work in Progress

Solo

C++ / OpenGL

NetProject.png
Guild Manager

March 2026

Solo

C# / .NET / Unity

EcranRavenor.png
Ravenor's Stories

December 2022

Solo

C# / Unity

image176.png
Valley

June 2022

Gameplay Programmer

C# / Unity

PlayTheMeca.png
Play the Meca !

August 2019

Project Manager

C# / Unity

Gameplay Programmer

Aube20Lucioles Fin_edited.jpg
L'Aube des Lucioles

May 2019

Game Designer

C# / Unity

Gameplay Programmer

L'Aube des Lucioles

Student project

Date: May 2019 | Engine: Unity | Roles: Game Designer, Gameplay Programmer

Link : https://hermadeus.itch.io/laube-des-lucioles

L’Aube des Lucioles is a Zelda-like developed during my second year at Rubika. The player takes on the role of an outcast trying to discreetly escape the caves where they grew up. They can then try to help other outcasts they meet, or choose to prioritize their own survival.

The game is divided into 2 main loops:

  • The first one involves exploring the caves to find a path to the exit.

  • The second consists of escorting the player’s companions to the exit they have found.

For my part, I mainly focused on the AI, both for the companions and the enemies.

For the companion behavior, I concentrated on creating something simple to facilitate their management during escort phases. The player needed to be able to quickly and easily give directions to their companions when problems arose. They were managed as a single entity and could follow the player closely, stay hidden for cover, or flee to the camp in case of serious danger, depending on the player's instructions.

As for the enemies, since the game is essentially a stealth game, it was necessary to give them behavior predictable to the player. I opted for a state machine allowing enemies to patrol, follow a sound they heard, or chase and attack a spotted target, whether it was the player, one of the companions, or an enemy of a different type, like a guard attacking one of the cave monsters. After several feedbacks from playtests showing that the player felt little danger, I added another behavior requiring the AI to go to the nearest enemy camp to alert them. Once the alarm was raised, a new enemy would appear where the player had been spotted, making the infiltration more difficult.

PlayTheMeca.png

Play the Meca !

Professional project

Date: August 2019 | Engine: Unity | Roles: Project Manager, Gameplay Programmer

 

Play the Meca ! is a serious game on tablet developed by a group of 5 second-year students from Rubika. The goal of the project was to help trainers in an automated warehouse train new employees on 3 different workstations. Since the game was coupled with training, the aim was to focus on real-life situations and the technical aspect.

 

As my first experience as a project manager, I learned a great deal about managing a project, but also about how to communicate the progress of the project, the challenges encountered, and how to find solutions to those problems.

 

In fact, it didn’t take long before the first problem arose: the scope. Initially, we were tasked with creating 4 training stations within 3 months. But after discussing with the team, we realized that this scope left us with very little room to maneuver in case of problems. Quickly, I talked with Decathlon to find a solution, and it was decided to remove the "Forklift Operation" station, as translating it into a tablet game seemed less interesting, and to add more time to test and fine-tune the other stations.

 

As we approached the end of development for the third station, a bit ahead of schedule but not enough to add the fourth one, we had a discussion with the whole team to see what we could do with the time saved. During development, we had created a level editor in Unity to help us during testing and balancing for each station. We also pointed out that since the goal of the project was to assist trainers in their training, the most practical solution for them would be to be able to create new levels to evolve with their training sessions. I then proposed to Decathlon that we use the remaining time to give them the ability to create their own levels, which was quickly accepted.

 

These few months taught me a lot, both about team management, communication between different teams, and especially the importance of being understood between teams with different areas of expertise.

ExempleMoteur3D.png

3D Engine

Personnal project

Date : Work in Progress  |  Language : C++

Link : https://github.com/Linkazer/Moteur3D

 

This 3D engine project using OpenGL came about as I was looking to expand my skills in video game programming. I found a strong interest in graphics programming, and this project was born when I decided to start from the basics.

The Genesis

Having only basic knowledge of how games are rendered, I began by taking a course on how to create a basic rendering engine without using libraries like OpenGL or DirectX.

This gave me a deeper understanding of why each Mesh is divided into multiple triangles, and allowed me to discover the origin of the different matrices used by 3D engines and how a rasterizer works.

The OpenGL Project

With the fundamentals in hand, I moved on to a full OpenGL course.

I learned the basics of how OpenGL works, what makes up a complete model (mesh, materials, textures, etc.), how to use different buffers, how to create shaders in GLSL, how to build a system of spaces and coordinates, which matrices to use, and the Phong lighting model.

Armed with all this knowledge, I started developing a custom 3D engine, which you can find here.

Next Steps

Going forward, I still have quite a few lessons to follow, such as more advanced OpenGL features or better lighting techniques. And once this project is complete, I have a long list of other topics to explore.

image176.png

Valley

Student project

Date: June 2022 | Engine: Unity | Roles: Gameplay Programmer

 

In Valley, you play as the manager of a natural park, tasked with preserving the valley and its ecosystem while making it attractive to visitors who arrive in the area.

 

I joined this project for the challenge it initially presented, particularly with its numerous AIs (such as the behavior of visitors or the animals in the valley). During development, I discovered a great interest in creating complex systems. Therefore, in addition to the AI, I focused on creating the various systems present in the game, whether it was managing visitor satisfaction or the interactions between visitors and the valley's wildlife.

 

But the system I most enjoyed working on, as it perfectly blended with the different AIs in the game, was the ecosystem. In Valley, the goal is to attract visitors and show them every corner of the valley, but the player also needs to consider the impact these visitors can have on the environment. Having noisy crowds of visitors will scare away the animals, and littering throughout their visit will cause the trees to wilt, which will leave the visitors dissatisfied with their experience.

 

In the end, this project became one of the ones I enjoyed working on the most, mainly due to the complexity of the systems required by the game designers.

EcranRavenor.png

Ravenor's Stories

Personnal project

Date: December 2022 | Engine: Unity

 

Ravenor's Stories is a dungeon crawler that takes the principles of tabletop role-playing games like HeroQuest or Dungeon Saga. You control a group of 4 adventurers on a quest to find an artifact in an ancient elven ruin. At least, that was the plan before you encountered the lich that has claimed the place.

 

Initially, the project was just meant to help me familiarize myself with RPG turn-based AIs, with an easily modifiable AI capable of casting certain abilities based on several criteria, such as an ally’s health for a healing spell, the number of enemies in an area for a damage spell, or the amount of armor on the target to determine if an armor-ignoring attack or one that destroys remaining armor would be the most effective, etc.

 

Having also created controllable characters to test the AIs, I thought it would be a good idea to turn it into a full game, which led me to move from simple combat arenas to a dungeon crawler in the style of tabletop role-playing games, which have always been a favorite of mine.

NetProject.png

Guild Manager

Personnal project

Date : March 2026  |  Framework : C# / ASP .NET Core / Unity

​Link : https://github.com/Linkazer/GuildManager

Guild Manager is a project combining a REST API developed with ASP.NET Core and a Unity application.

The purpose of this manager is to enable the management of a guild by adding new adventurers, modifying existing adventurers, or removing obsolete adventurers.

Project Architecture

The project is divided into two parts:

  • REST API for the back-end

  • Unity application for the front-end

REST API

Architecture:

  • Controllers : Manages HTTP requests. Retrieves data in the form of DTOs and sends it to the service in the form of Commands.

  • Services : Retrieves Commands, maps them to Domains, applies business logic, and sends them to Repositories in the form of Models.

  • Repositories : Manages the database based on the Model received.

Data flow:

DTO (Controller) -> Command (Service) -> Domain (Business logic) -> Model (Persistence)

​Features

REST API
  • Character Management (Creation, Retrieval, Modification, Deletion)

  • Retrieval of Persistent Data (Equipment, Race, Job)

Unity Application
  • Retrieval of Persistent Data at Launch

  • Retrieval and Display of Characters

  • Character Creation

  • Character Modification

  • Character Deletion

bottom of page