FABIEN SACRISTE
DEVELOPER
SKILLS
Programming Languages
- C#
- Typescript
- Java
- Objective-C
- C/C++
- Python
Softwares
- MS Visual Studio 2019
- MS Visual Studio Code
- Unity 5
- Eclipse
- Blender 2.71
- SourceTree
DataBases / Versioning
- MySQL
- Bitbucket
PROJECTS
VR F1 Racing Simulator - C# - Vizuality Studio
The video below shows a working version of the F1 simulator I've worked on while at Vizuality Studio. I decided to use the game Assetto Corsa because it was offering the most realistic physics and graphics at the time. The easiness of accessing live data from the game (i.e. velocity, car orientation, speed, tires pressure...) was also a key element.
The application I developed would read the data in real time from the game and translate it so the motion platform would move accordingly. The motion platform had to receive data at a frequency of 100Hz.
The tracking of the driver's head was made by using a trio camera set which would track some LEDs on the helmet. My application would then read the data from the cameras using the VRPN protocole and send the driver's head position to the game.
Octree / Frustrum Culling in a 3D environment - C++ (Project in progress)
After programming the physic engine (mentioned below) I have decided to improve the way I handle objects in the scene. First of all I want to integer an octree system in order to manage the objects in a better way, therefore the collisions between all of them. Then I want to use the octree to implement a frustrum culling. This way I only send to the GPU the objects that really need to be rendered.
Here are a couple of pictures to understand the octree.
Real time physics applied to shrapnel on a destructible terrain - C++
This is one of the final projects presented at the end of my Master's course. The aim of the project was to be able to create a crater in the ground and make shrapnel fly in the air to simulate an explosion. To do so, we created a small physic engine. The video below presents our work and the final result. More info about the project is available in the pdf file
Record - Unity 3D | C# | 3DS Max
Record is the first video game I made during my first year of learning video game programming. It's a first person puzzle game. The aim is to complete a succession of levels using different features, such as "duplication" of oneself, "telekinesis" and "special vision". Every time a feature is used, the character loses some energy represented by a battery on the left corner of the screen. 3 levels have been created, each one focusing on a specific feature.
Kick Time - C++ | SFML 2.0
The main purpose of this project for us, was to create a game mixing elements from different old school fighting games (MKII, street fighters). However, the main influence was MKII, therefore we decided to use it as the principal inspiration and theme for our game.
BallZ - Unity 3D | C#
This game was a project at the beginning of my second year of learning video game programming. The aim was to create a game involving a ball that we can't touch, therefore using the surface as the interactive component of the game. The goal of the game is to finish the different levels as quickly as possible with the highest score.
3D/2D Bezier curves project - C++ | freeglut
Maths project programmed in C++ using freeglut. The objective was to create a program that allows to create a 2D bezier curve in a window, and its 3D representation in another window.
3D chess game modeling
Here are some rendered pictures of a 3D chess game made with 3DS Max.
Crowd Simulation - Zombie Crisis - Python | Blender
This project was the annual project of my second year. The goal was to make a program that simulates a crowd, but in order to enhance the creative side of the project, we decided to involve zombies.
Therefore the project is about the behavior of a crowd facing a zombie herd. If caught humans can turn into zombies and then attack humans as well.
Domineering - Unity 3D | C#
I developped various AI using different algorithms to play against the computer.
Algorithms : NegaMax, Minimax, KillerMove, AlphaBeta.
The aim of the game is to prevent the other player from playing the last move.
Minesweeper - Eclipse - Java
Android application programmed in java. The aim of this project was to study the basics of programming on android. It is possible to change the size of the grid and the number of mines. It is also possible to save the best scores.
Duke Robot Nukem - Unity 3D | C#
Project made using machine learning algorithm. There is a scene with a big battlefield, there are 5 bases generating soldiers. The way to move and the weapon are generated according to the previous soldiers generated. The characteristics of the soldiers that have killed the most enemies before to die will be used more as templates for the future soldiers.
EXPERIENCE
Video Game Developer March 2017
Sideplay - Online gambling (Jersey - Channel Islands)
• Development of back-end applications to generate tickets for online gambling games using C++, objective-C and Java. Some of my most interesting projects include a crossword generator and a Candy crush style generator. They are both easily customizable with parameters that help the user to tweak the generators.
• I contributed to the development of online games using Typescript and JSON. The main objective here was to focus on the management of the resources as the games had be able to run smoothly on desktop, phones and tablets.
Software Developer March 2016 - Dec 2016
Vizuality Studio - VR (Jersey - Channel Islands)
• Development of an F1 simulator incorporating VR with a 6DOF motion platform. I developed an application (using C#) that was converting data extracted from the game "Assetto Corsa" to the motion platform. The application was also managing the conversion of the game to VR, and the head tracking of the driver.
Application Developer Feb 2015 - Feb 2016
10dot1 - Network Consultant (London - UK)
• The company works with a web based application designed for video editing and video project management. The application uses a res-API, which I then used to develop a desktop application for MAC (using Objective-C) in order to process data and information more easily. The main advantage with this application is that we can customize it according to what the client wants and that it is much faster and intuitive to use.
• Development of various scripts to adapt the web application to specific client requirements using Python and XML.
• Development of a web interface using Javascript / angularJS / nodeJS in order to extract information from the application
Application Developer 2012 -2014
Societe Generale - Investment Banking (Paris - France)
• Development of an application that generates statistics on working teams and services with different scale ranges (national or international). Many parameters are customizable to allow the users to personalize most of the settings according to what they need. In order to make the use of the application easier, a detailed documentation has been put on the internal network of the company.
• Development of different tools to help the support team, allowing them to automatize (schedule) some tasks, or to do them quicker.
• Support of the developed applications.
Web Developer and Network Administrator 2010 -2011
Maupard Fiduciaire - Accounting firm (Paris - France)
• Development of the company's website.
• Maintenance of the IT park : helpdesk and support, maintenance of the servers.
• Training lessons for employees : MS Office, how to update the website database.
Network Technician 2008 -2010
Wolters-Kluwer France (Paris - France)
• Development of a web interface to manage the supply of the company.
• Installation of computers, and network setup (computers, printers, network drives...)
• Assembly and disassembly of computers (desktop and laptop)
DIPLOMAS
Master’s Degree in Video Game Engineering 2014
ESGI - Paris
- C++
- Video Game programming (Unity, C#)
- Engine programming
- AI, machine learning
- Android Programming (Eclipse, java)
- Computer law and internet
- Mathematics for computer graphics
• Clipping, curves (bezier,nurbs)
• 3D Representation, quaternions, matrixes
- C#
- Code optimization
- OpenGL
- Operational researches
- Iphone programming (Xcode, Objective-C)
- Serious gaming
- Thesis - The use of machine learning in video games
Bachelor in Video Game Art 2012
ESGI - Paris
- Video game programming (unity, C#)
- 3D modelisation (3DS Max)
- Digital animation programming (blender)
- Maths
• Set theory
- C
- Game Design
- Java
- Linux administration - Shell/Python
IT BTEC Higher National Degree 2011
CERFAL - Paris
- Computer programming
• C, java, html, javascript, css, php, MySQL
- Maths
Fabien Sacriste
View my profile