My name is Fabrice Lété, and I'm xx. I have been a professional video games developer since 2003 and a hobbyist for much longer.
During my career, I have been lucky to work with a lot of brilliant and inspiring people, using a varied set of technologies and platforms. The purpose of this page is to keep track of the projects I worked on professionally, and to give an overview of my contributions to each. Some of these projects involved hundreds of people, and some just a handful.
I'm a generalist, but my main interests revolve around optimization, low-level programming and debugging.
Here's a timeline of my career so far for a quick overview. Check the rest of this web page for more details.
I lost count of how many public talks (and programming workshops) I gave to date. I gave talks at conferences, trade shows, universities, company events, for internal and external teams, etc. And in general, I like explaining stuff in front of an audience. But just as I was getting to larger and larger crowds, COVID threw a wrench into all this. Giving online talks isn't the same.
To my knowledge, only a few of my talks were recorded. You'll find them below.
DOTS - Unity meets data oriented designDevGAMM (Minsk - 2019)A general introduction to Unity's implementation of ECS, for a general technical audience. Despite the subsequent evolution of ECS, the general principles covered in this talk are still valid. |
|
Converting scene data to DOTSUnite (Copenhagen - 2019)An in-depth discussion of the data conversion pipeline for ECS, for an audience of Unity developers. That pipeline was significantly redesigned by my team later on, so this talk is partially outdated. I gave this talk together with my amazing colleague Simon Mogensen. |
|
ECS - Streaming and SerializationUnite (Los Angeles - 2018)An in-depth discussion of the data serialization pipeline for ECS, for an audience of Unity developers. I gave this talk together with my amazing colleague Simon Mogensen. |
|
Data Oriented Design - The Future of UnityMeet & Build (Belgium - 2018)A general introduction to Unity's implementation of ECS, for a general technical audience. This is basically an earlier version of the talk I gave at DevGAMM Minsk 2019. |
Here is a chronological overview of the projects I worked on so far at various companies. Please see the accompanying text to get a better feel of my personal contributions.
Beyond DivinityLarian Studios (PC - 2004)My very first assignment at Larian Studios involved writing gameplay scripts for the isometric RPG Beyond Divinity, this was done using a DSL developed in-house. It was some sort of inference engine that controlled NPC dialog trees and triggered predefined events created from the level editor. I also contributed a few specific parts of the C++ code dealing with text localization, and I handled the integration of third party copy protection into the game. The game engine was custom made and used C++. The game is available on Steam, and I am delighted to see that some people are still playing it after all this time. |
KetnetKickLarian Studios (PC - 2004)KetnetKick is a PC2TV video game developed for the Flemish children's TV channel Ketnet. It is a 3D platformer that acts as a hub to a variety of mini games and creative workshops. I worked on some parts of the 3D platformer and of the game engine itself, but my main contribution was writing roughly half the gameplay code for the mini games and workshops. I wrote clones of old classics like Pac-Man, Bomb Jack, Boulder Dash, The Incredible Machine, a shooting game, a 3D snowboarding game, a 2D animation workshop and a stop motion studio (added to the game after the initial release). The game used the GameBryo engine, and all my programming was done in C++. I keep fond memories of this project, it was a fantastic learning opportunity. Unfortunately, the plug has been pulled on the servers powering the game a few years ago. But an absolute legend of a fan has managed to capture some high resolution gameplay recordings. |
KetnetKick ZeepkistenraceLarian Studios (PC - 2007)Note: "Zeepkisten" is Dutch for soapboxes. The first game involving real-time networking and 3D physics that I worked on. This game was a Mario Kart clone, and was released as an update to KetnetKick. The game also contained a level editor and took some inspiration from Stunts in that regard. All the code was written in a few months by only two programmers, which was an extremely fun and productive experience. The sad thing is that I didn't keep any good quality material (screenshots or recordings) from that game. A few years later when the game servers were taken offline, I noticed that nothing could be found about it anymore and I had not even kept a screenshot. But thanks to the same person who took care of the KetnetKick videos, some high resolution gameplay recordings now exist. |
CBBC Adventure RockLarian Studios (PC - 2007)A reskin of KetnetKick for CBBC (Children's BBC), which was technically really close to the original one. I worked on the character control, customization and physics, and on refactoring all the 2D stuff to make the transition smoother. The tech and specs were the same, and the game servers have also been disconnected since then. |
KetnetKick 2Larian Studios (PC - 2008)For this project, I worked on everything related to character control and physics. The platforming aspect of the game was more important in this game than in the previous ones. |
Divinity IILarian Studios (PC / PS3 / 360 - 2009)I was only involved in the pre-production of this game, I worked on the engine and physics. I also worked on early versions of the level editor and some ad-hoc pipeline tools. I left the project when it was still PC only. At the time we had released a few private demos used to secure a publishing deal, but the game still looked quite far from what it finally became. The tech was all C++ and built on top of GameBryo, it used various middleware. |
NeuroVSNeuroTV (PC - 2009)For a while I worked for a company that provided real-time virtual TV sets. By using camera tracking (motion, zoom, focus), the tech allowed replacing a color keyed background with real-time 3D. This solution provided presenters with immediate feedback about what the result looked like, and allowed live broadcasting. I have done engine level development and sales support, demoing the software within the premises of potential customers while using their own hardware. |
Knockout PartyHydravision Entertainment (Wii - 2009)I only very briefly worked on this title. I wrote the camera control system that integrated with our external level editor. And I also implemented basic 2D platforming controls. |
Dungeon TwisterHydravision Entertainment (PlayStation 3 - 2012)This board game was turned into a video game by a small team, and I was one of the only three programmers for almost the whole duration of the project. We originally developed the game for Xbox 360, but we subsequently ported it to PlayStation 3, where it was finally released. I implemented significant parts of the gameplay features (player control, action validation), and I wrote the artificial intelligence and networking layer. I also worked on the transition of our in-house game engine from Wii to Xbox 360 and PlayStation 3. I took care of the input, sound and network layers. This game was the swan song of Hydravision Entertainment, which closed doors only months later. Dungeon Twister was not well received, probably for good reasons. But working on this title was a blast, and remains to this date one of the best memories of my formative years. |
The X FactorHydravision Entertainment (Wii / Xbox 360 / PlayStation 3 - 2011)This game used the engine we built for Dungeon Twister, and that's the only reason why I'm in the credits. Amusingly, it shipped before Dungeon Twister. |
Innovation Union LabsFishing Cactus (iOS - 2010)This was the first time I did actual development work on iOS and Xcode, and I still remember having to ask a colleague to help me turn on the Mac on my first day. I was the sole developer on this small advergame. IUL was some sort of Monkey Ball clone, where the player had to explore a large level, collecting various pickups. I have been monitoring the stat servers for over two years after release, and apparently a few people kept playing the game all this time. The game offered very little challenge, but it was rather soothing. It ran on the whole range of iPhones and iPads available at the time. |
Eyeball InvadersFishing Cactus (unreleased)Of all the unreleased projects I worked on, this one has actually been publicly announced. This was a party game for up to 8 players, where you would compete for being the first to pick up orbs spawning at semi-random locations. The core idea was the movement scheme which was inspired by artillery games (like jumping in Worms). I wrote all the game code, and also the AI that simulated a flock of opponents. When stress testing the game with hundreds of AI players, it would behave like a swarm and look pretty cool. I think we had something there, I'd love to revisit this one. |
IndestructoTankFishing Cactus (iOS / Android - 2012)I hardly ever played for fun any game I worked on. This one is the exception. It was a mobile adaptation of a popular Flash game from Armor Games. Only the core gameplay was kept, and everything else was done from scratch. The game was done by a team of two programmers. I handled all the gameplay code and I wrote the custom sprite engine and collision routines, and also a simple but performance particle system that allowed covering the screen with enemies and explosions while keeping a smooth framerate. The game was removed from the stores a while ago, but I swear it had a 4+ star rating at the time. |
After Burner ClimaxFishing Cactus (iOS / Android - 2013)An iPhone / iPad / Android port of the famous arcade game from Sega AM2. Most of the game contents were kept (levels, models, cutscenes, etc.) but everything else was done from scratch using our own engine. I worked on gameplay code, particle systems, performance optimization, and the assets pipeline. I haven't been involved in the Android port, but it was based on the iOS one. |
HavokHavok / Microsoft (2016 - 2018)I worked on the core library used by all the products that Havok provides, and some more stuff I'm not sure I can mention. |
ECSUnity Technologies (2018 - now)I joined the ECS/DOTS project in its early days. I've worked on the core of ECS, including the data transformation pipeline and data store. I've also been involved with training our internal teams and I gave serveral public talks and workshops. ECS stands for Entity Component System and is a way of structuring data and processing with a focus on performance and flexibility. Unity's ECS is designed to leverage CPU cache, vectorization and parallelism. |
Video Game SchoolsI started teaching programming classes at the Haute École Albert Jacquard in Namur back in 2008, at the time it was a side activity and I only teached a few hours a week. Over the years my teaching duties expanded. I eventually helped setup two new specializations in video games programming, and I also joined Digital Arts and Entertainment in Kortrijk. It became a full-time activity at this point. I developed a small cross-platform 2D engine that over a hundred students used to make their graduation game projects on. The engine currently runs on Windows, PlayStation Portable, PlayStation 3 and Android. It could also be piggybacked on a 3rd party 3D engine, allowing progressively turning 2D prototypes into full 3D games. |
#altdevblogadayI wrote numerous articles (20+) for #altdevblogaday 1.0, a cooperative blog project led by Mike Acton. That blog has been taken offline a while ago, but some of my articles were selected by Game Developer (formerly known as Gamasutra) and re-published there: Game Developer. |
LAN parties, Game Jams and DemosceneEver since my university days, I have been involved in various contests and events. Both as a participant and an organizer. I co-founded my university's computer club, and we hosted several large LAN parties (150+ people). I released a few productions at demoscene events, and made a few games for the Global Game Jam over the years. I was a Global Game Jam site organizer for the 2016 edition. |
Computing historyI am really fascinated by the early history of computing. I take every opportunity to learn more on that topic, by reading stuff, visiting museums and exhibitions. I (financially) support vintage computer preservation communities when possible. And I have a collection of old calculators: mechanical, electro-mechanical and electronic. My goal is to save from the trash as much of these technological wonders as possible. I am occasionally doing repairs and maintenance on these, learning a few interesting skills in the process. You can see a small part of my collection in the picture next to this text. If you think that you're a nerd, ask yourself how close you are to owning a literal metric ton of calculators. |
Random stuffAll the other little things I enjoy, in no particular order:
|
|