Current & past works
Current and previous professional works.
Current & past works
Current and previous professional works.
Project Witchstone
Unreleased Upcoming Title (2022 - Current)
Project Witchstone
Unreleased Upcoming Title (2022 - Current)
“In a living and reactive world, players will be offered unprecedented options to role-play their character and influence their environment, capturing the fun and freedom of a pen & paper RPG campaign.”
Shape the world with your own narrative choices !
The game has not been released yet, but once it does, it will be sure to make ripples in the CRPG genre with its innovative approach to storytelling.
I joined the team as a Senior Game Designer. The posting was extremely appealing to me due to my love for CRPGs. Having spent thousands of hours (not exaggerating) in modern CRPGs the last few years, it was a no-brainer for me when I was offered the chance to design the combat systems underneath this title.
The project has unfortunately ended due to the publisher (SEGA) pulling out of most of its 3rd party indie titles.
Design our spells and abilities.
Design our Player and NPC classes.
Monsters and their power curve progression.
All weapons and armor.
Designed our In-house Combat AI system.
Anything related to the combat pillar.
Looking forward to being able to share more about the project once released !
Note : All the media used here is very old (by a few years). More to come very soon though !
Realworld one
Pharmaceutical VR training (2022 Contract Work)
Realworld one
Pharmaceutical VR training (2022 Contract Work)
Realworld One is a company specializing in the development of VR experiences designed to provide industry workers with lab training in the field of Biology in virtual reality.
My role was that of a Senior Developer, leading a small team of 4.
A lot of blueprints scripting, but also any parts of design that needed to be done to get the experience integrated from A to Z. Animation graphs, simulations, step by step goal implementation, etc.
In joining, I was specifically looking for an assignment that was more technical, and involved a lot of blueprints. The project being in VR was also a new interesting challenge.
At Realworld One, my role consisted mainly of the following :
Blueprint Scripting & full design integration for VR experiences.
Materials / Shaders creation. Had to be well-optimized; It had to run on the Quest headset.
Level design either from scratch, or from laboratory references.
Animation for exploded schematics, machine parts moving, VR avatars. Some of it was sequencer, some of it was blueprints.
Step by step objectives, various VR mechanics.
Multiplayer Replication.
Working with UX to stick to the right methodology. It had to match real life laboratories and procedures.
Led a team of 4; On-boarding, best practices for new hires, scheduling daily meetings, client presentations, performance evaluations, etc.
Write technical breakdown documents before any new projects to plan out the technical approach.
Go through the build and deployment pipeline (Jenkins / Azure framework) to get the projects ready for use (Test / Final builds).
Having a game design background while in this position proved to be valuable. Several aspects of programming and design had to be covered. We delivered several projects as a team, and the reactions were very positive. It was a great experience.
Star Wars
Knights of The old republic remake (2021, Contract Work)
Star Wars
Knights of The old republic remake (2021, Contract Work)
Aspyr is a Texas-based video game company with, at the time, the ambitious project of remastering the cult classic “Knights of the old republic” with Sony as publisher. The team was formed of several Bioware veterans as well as top-notch engineering and design talents.
The project has now been transferred over to another studio for completion, but has not yet released. Most information about the project other than its existence remain under NDA.
I was brought in as a Senior Cinematic Game Designer. Working on the dialogues and scripted events systems. The position was a unique challenge in that it was equal parts system design, and equal parts prototyping; We were starting from scratch.
I also touched on crowd event systems and level design implementation.
At Aspyr, my duties were the following :
Author Unreal Engine sequencer-based, reusable cinematics that sync with branching dialogue options.
Prototype and help design that system from scratch.
Prototype reusable blueprint actors that could contain a cinematic, and be moved anywhere or reused.
Design the first prototypes for dialogue cinematics, including our first “high quality standard” sequence to present to SONY.
Document the process with several tutorials and guides for outsourcing studios to get them comfortable using the system.
Prototyped a crowd event system for NPCs based around the concept of “Action Stations” using blueprints.
Design those first few prototype “Action Stations” along with its data structure as proof of concept.
Overall, we got a lot done in a short time. Our dialogue/cinematic systems were in a good place ! We then got to present the concept to SONY, and they liked what they saw. All in all, we created some pretty awesome stuff, and I hope Knights of the old Republic finds its way onto the market !
NBA / PGA 2k Franchise
NBA 2K, PGA 2K (2017 - 2020)
NBA / PGA 2k Franchise
NBA 2K, PGA 2K (2017 - 2020)
2K sports holds one of the best sports IP in the business in NBA 2K. The online component of the title grew in scope ever since “The Park” was first released in NBA2K15.
It now has an open-world type city where players can challenge each other, explore, and complete achievements and quests to spice up their play time !
Outside the online component, they also offer an extremely robust career mode.
Being a basketball fan and playing the game religiously with friends, I took the easy descision to join the team in California.
I was hired as a Senior Gameplay Scripter. It was also a very fulfilling assignment; I touched on several online and career features while leveraging my perspective of playing well over 1000 hours on the franchise.
The online multiplayer aspect of the game called “The Neighborhood” was one of my main focus.
Design the open-world system for navigation, 3rd person cameras, collisions, shops and interactions.
Create dynamic and interesting presentation cinematics during game intros / outros, or during in-game building transitions (Doors, walking in stores, browsing items, etc).
Create gameplay cameras and camera cuts for online game modes.
Participate in designing the UI and various GFX elements for multiplayer games, as well as special or seasonal events.
Fill the role of both designer and producer for any owned features.
Author over 50 trailers and in-game cinematics for impactful career moments (The playoffs, interviews, marketing trailers, etc).
Attend MOCAP sessions to insure the animations would fit our environments and needs.
Participate in implementing the various career features in coordination with programmers, animators and sound designers.
Create, document and present designs to the team for new career features, and what those would look like.
Help modernize the designer tool sets used for camera and cinematic content creation.
The neighborhood; One of the key pillars of the franchise. I spent most of my time working on this feature during my stay at 2K. In the neighborhood, the player is free to roam about in 3rd person navigation. They can play, shop, participate in mini-games, interact with each other through emotes, send party invites, and leverage various other social systems including matching against each other for online games.
Timestamps - Expand for more information :
Jordan Rec center & The Cages, 2 examples where the player is funneled through a linear matchmaking experience that eventually ends up in a 3v3 / 5v5 game. There were several similar game modes online that were structured the same way.
- Matchmaking lobby.
- Animations, Idle poses, Taunts, etc. (participating in MOCAP shoots for some of them).
- Intros, Outros, Player presentation segments.
- Camera cuts and game flow during gameplay, timeouts, end of match.
Online Neighborhood shops. Several of those were populating the neighborhood where the player can spend currency.
- Work with engineering to setup entry and exits into different map instances.
- Menu presentation.
- Animation loops.
- Cameras.
- Game state flows when inside the shops.
The neighborhood had several seasonal events with different game rules. Roughly a dozen different templates.
- Matchmaking during games
- Animations & Camera cuts when being introduced, winning / losing, showing highlight plays, etc.
- Presentation for different seasonal themes
We had a fully functional locomotion system, as well as mini-games all over the area for the Player to participate in.
- Worked with engineering to design and integrate the locomotion system & 3rd person camera.
- Presentation and game flow for a portion of our mini-games and gym exercise machines.
During gameplay, we had a lot of in-game cut-scenes and cinematics. During the career potion of the game especially, we had in-game trailers that were made to underline a special event in the character’s career progression. Things like getting to the playoffs, winning key games, important match ups, etc. We also had a ton of cinematic content documenting your character’s day-to-day life as he progresses through his journey.
Expand for more information :
I had a pretty extensive role for in-game trailer authoring. The tech was fairly old, so as an added twist, all the teasers were made in LUA. The in-game cutscenes were done by scripting camera cuts, speed up / slow downs, animations … Everything really. My contributions :
Created over 50+ in-game trailers for Playoffs, important games, and a variety of key events.
Work with engineering to modernize our toolset towards having at viewport and a timeline.
Integration of several cinematics and in-game cutscenes, along with their place in the game flow.
I have very fond memories of my time at 2K sports. We delivered 3 new and ambitious titles during my stay there and grew the online feature to be one of the best ones throughout online sports. I got to meet Shaq (he made fun of my socks) and work alongside some great people.
Shadow of the Tomb Raider - (2016 - 2017)
Shadow of the Tomb Raider - (2016 - 2017)
A new title in a completely revitalized franchise, Shadow of the Tomb Raider had pretty big ambitions of upgrading the franchise with a more interactive narrative and questing elements while keeping true to its 3rd person adventure roots.
Dialogue systems, side-quests & objectives, a lot of new areas I had the chance to cover.
I joined the team as a Technical Game Designer inside the performance team. The performance team was a small cell of designers responsible for creating the heavier narrative story beats of the game.
We were heavily tied to the “golden path” of the game, or any shiny new features related to narrative content, such as dialogue systems, side-quests and “town hubs”.
The main focus on my end was to come up with better ways to interact with the environment. Be it through dialogues, scripted events or object interactions.
Helped design the new in-game cinematics timeline tool (was a proprietary engine at the time, similar to Unreal Engine’s sequencer).
Created several scenes throughout the game using this timeline tool, from conversations to small in-game events.
Integrated the first prototypes for dialogues between Lara and NPCs. This included setting up the scene, cameras, animations and audio tracks played by both parties, seamless transitions, etc.
Troubleshooted and worked with engineering to come up with the right set of features the design team would need out of the tool, as well as making sure the workflow was comfortable for other designers to use.
Designed reusable scripting solutions to seamlessly transition between cinematic and gameplay.
Tomb Raider had quite sizable maps with countless side objectives. One of my tasks was to make sure objectives were clear, and quests were easy to follow.
Implemented the breadcrumbs system for sidequests and main objectives to guide the player through his adventures.
Designed and implemented the first prototypes for side-quests and optional tasks.
Took ownership of my share of main story performance beats in the main city hub of “Paititi”.
Designed the narrative side of combat encounters by adding VO’s, animations or otherwise interesting actions NPCs could be taking during their patrols.
Helped write dialogue during combat for both enemies and Lara.
Created visual hints and narrative level design elements to help pace / guide combat encounters.
During my stay at Eidos Montreal, I’ve had the chance to work on several parts of the game, here are some areas of note.
The hidden city of Paititi. The area was a large hub for quests and narrative segments. Here are some key points I was involved with.
Narrative segments scripting along the golden path.
Dialogues, cinematics, and scripted events integration.
Livening up the city with NPCs “Action Stations” and side-quest content.
Objective progression and Breadcrumbs tracking.
Several combat sequences I was involved with were “Hidden Predator” narrative / combat hybrids. The concept behind the “Hidden Predator” segments was that Lara was in full control of the battle, like an Apex predator. Her enemies would display obvious bursts of emotion or fear, or would be visibly apprehensive to her arrival. Those combat segments needed extra development time to inject some narrative content into the NPCs involved in the fight. Here are some key points I was involved with :
Writing barks and dialogue for combat NPCs
Combat segment scripting
Integration of dialogues, patrols and scripted events.
Adding “Action Stations” for guards to give life to their daily routine. (Ex: Fixing equipment, having conversations, installing light fixtures, etc.)
Involved with around 8 to 10 “Hidden Predator” combat segments in total throughout the game.
Scripted climbing segments were common, this is one example of many. They were climbing spots with scripted events attatched to them. I was involved with a few of them.
Scripted events implementation.
Added animation, sound, dialogues and VFX to really make a climbing sections stand out.
Seamless in-and-out cinematic transitions.
During this segment Lara is challenged with a puzzle sequence dealing with mirrors and light reflections.
Event scripting for the cinematics and path leading to and exiting the puzzle room
Event scripting for some parts of the light puzzle
Narrative golden path integration
Objective progression
For Honor
For Honor (2015 - 2016)
For Honor
For Honor (2015 - 2016)
For Honor was Ubisoft’s take on Chivalry and it’s stance-based combat system. The team behind the project had some real talent. The game had a solid single-player campaign, which is where i spent most of my time. It also had a stellar online 4v4 mode, which really gave this game it’s solid reputation.
The game had great gameplay, solid thematic and narrative direction and have a unique play style. The end product really spoke for itself.
I joined the team as an Event Scripter, just off the back of having worked on several Assassin’s Creed games. I was happy to have the opportunity to work on a brand-new IP.
This role was also very heavy in scripting and narrative segments. I spent a large portion of my time on the campaign for the game, working with the various narrative beats it had to offer.
My mandate on For Honor was to lay the ground works and integrate cinematics for all our studio’s assigned levels. An added challenge was that I was a solo act in the Event Scripting team, which had me cover a lot of ground !
Work with level designers to integrate the correct actors, triggers, and level design elements to have working cinematics.
Create seamless in-and-out gameplay transitions.
Integrate all cinematic elements throughout 8 full solo campaign maps.
Integrate all scripted elements throughout those maps.
Sit down with each level design teams to correctly target what their scripting requirements would be, give estimates, and map out tasks in Hansoft.
Work with technical artists to import complex rigs (trebuchets, catapults, elephants, etc) into the game and have our scripted events make use of them as intended.
Here are some areas of note where I had direct involvement.
I had a direct involvement with around 8 missions, but this one in particular was very interesting. It was the introduction to the campaign, so it had a lot of fancy elements going for it !
Integrating complex rigs such as catapults and trebuchets.
Work with the level designer to integrate narrative elements along the mission path.
Seamless in and out transitions to and from gameplay.
Lay the groundwork for the animation team to work on the mission’s cinematic sequences.
The capstone mission for the knights campaign. It had some pretty interesting elements, such as the battering ram, the duel on top of it, and the wolves enemies in the later part of the level.
Worked with level design to Integrate the ram and its progression.
Integrated the prototype scripted events for all boss battles (top of ram, wolves fight, end of level).
Integrated cinematics along the progression path.
Another flagship mission for the campaign where vikings disembark on a beach to lay siege. My involvement was once again revolving around narrative integration and design.
Integrated scripted events & cinematics along the golden path.
Assassin's Creed Franchise
Assasin’s Creed Syndicate (2013 - 2015)
Assassin's Creed Franchise
Assasin’s Creed Syndicate (2013 - 2015)
The assassin’s creed franchise has been the pride and joy of Ubisoft for a long time. I had the chance to participate in the development of the franchise for several years.
From my early days in games as a dev. tester, to my first professional position as a developer, Assassin’s creed holds a special place in my heart !
On Assassin’s Creed, I came in as an Event Scripter. My implication was fairly heavy with anything scripted. Cinematics, custom scripted events, NPC behavior, the list goes on !
I had very heavy involvement in Assassin’s Creed : Unity as well, however it was mixed between dev. testing and event scripting.
Worked on several cinematics and in-game scripted moments throughout the game. This includes integration of actors, creating cameras, sounds and visual effects.
Was part of the team assigned to E3 performance demos, as well as any other slices of gameplay showcasing our game.
Helped integrate the “Gang boss” system where the Player would have encounters in a street brawl format that would mimic a “mini-boss” fight against gang leaders.
Created several scripted events involving essential NPCs alongside massive crowds of hundreds of NPCs
Scripted mass hysteria, or massive groupings. The crowd system allowed us to script very intricate sequences for the Player.
Scripted elements of the game from scratch, such as the push-cart and other one-use systems not covered by programming.
Helped the mission team come up with interesting scripted events or custom assassinations for the Player.
A sizzle reel of my involvement with the game.
(warning, loud audio).
Jacob and his gang enters street brawls of varying sizes, involving custom bosses and his underlings.
Up to 7 different Gang Wars are available to the player.
The event primarily displayed in the video was also showcased at E3 2015, for Assassin's Creed : Syndicate's Playable Press demo.
A multitude of scripted parkour events that guides and tutorializes the Player through a burning train wreck in the first sequence of the game.
Jacob pushes a cart filled with explosives, which he then detonates with his pistol.
This event is 100% scripted, and is non-systemic. It travels in a straight line and blows up when shot. It is fully compliant with all game systems.
Entirely re-usable. Can easily be copied over to another location or settings.
Personal Projects
Personal Projects
Personal Indie Game
I am currently hard at work my own indie game, slated to release in early access by the end of the year.
A new twist on XCOM’s turn-based combat with simultaneous turns. The idea is to cut back on the long turn times of modern turn-based games.
Following this concept, combats can have over 50 units at once without feeling slow.
A sizeable over world map gameplay. We allow you to explore the map, raid encampments and towns, and get riches wherever you can !
The world is explored through a horse carriage holding most of the Player’s possessions. I leverage several Unreal Engine systems to get there :
PCG to fill out the world with various elements
Nanite meshes used wherever possible (keeping in mind nanite’s limitations with transparency, overdraw, etc.)
Virtual Textures and custom d-buffer decals for roads
Custom horse cart movement logic (avoided physics for reliability and predictability).
Optimized assets coming from cinema-quality 1mil polygon meshes, brought down to run in Unreal Engine 5 at acceptable frame rates.
Everything is optimized to currently run at around 100 FPS on a 3080 graphics card.
On my end, I am taking care of everything. One man band.
A few key, fun technical tidbits !
Grid-based combat, so fairly math-heavy with movement points, weapon ranges, areas of effect, abilities, etc.
To keep performance to a maximum, skeletal animations are converted to vertex animations, which allows us to have 100’s of units in combat on-screen at once without an oversized performance hit.
Turn based combat can be pretty slow, so it is “modernized” by allowing multiple units to move or attack at once, giving it a bit more of a natural and quick paced feel. A basic level of prediction is used to avoid overlapping moves and attack actions.
Navigation is cached and calculated on another thread to avoid hitting bottlenecks when requesting navigation solutions for 50+ units at once.
One of my personal hobbies is to do day trading; More specifically, trading FOREX currencies.
As a continuation of that hobby, I eventually started programming an automated trading system that could :
Trade the market automatically, independently of my inputs.
Follow a pre-programmed trading strategy. Open trades, close trades, evaluate a position every tick, and react accordingly.
Be able to run the algorithm on previous offline historical data to verify the profitability of a given strategy over previous months/years.
One of the tougher parts of trading is having to “babysit” your position constantly. Unlike stocks, the FOREX market runs 24 hours a day, 5 days a week. A position can easily run against you during the night, and you might not be there to react.
Another issue is that emotions can lead to negative decision-making. Seeing a position go against you in real time can be nerve wracking and lead to some impulsive decisions that goes against your trading strategy.
Automating the process meant that those 2 issues were getting solved.
Unfortunately, a 3rd obvious problem is that programming a profitable strategy over multiple market situations is extremely hard. That one is agnostic of manual or automated trading, however, and whoever figures that one out can line up for early retirement !
This system is coded in MQL4, a subset of the C programming language.
This one is a bit more unusual, but it allows me to “geek out” about AI. I used to play World of Warcraft a fair amount back in the day. For my own curiosity, I looked into creating an AI to automate playing a character.
I love automation and wanted a challenge, so I went ahead and gave it a go, and it worked !
The software used a pretty clever way to receive information from the game. It would 100% automate a character’s play during mostly all PvE or PvP content in the game. It reliably ranked in the 99th percentile in terms of Damage-Per-Second performance as well !
I needed a way to convey a lot of information over to the AI. Things like :
Where I am, who is around me, are they friends or foes, how many are there, and at what range are they standing.
What abilities are available now or in the near future & keeping track of what is on cool down as well as character status effects.
Knowing what is the most optimal ability to use depending on how many enemies are around me and what abilities are available.
The way to convey that much information was a challenge. This is where I geek out a little bit !
My solution was to compress all that information into a pixel’s RGB channels.
This gets into the weeds a little bit, so I apologize.
The system is an advanced version of channel packing (texture compression workflow in games).
Since a pixel is made of 3 channels, RGB, and each channel has a value between 0 and 255, this gives us 3 digits to work with to store information :
The hundreds - 0 to 2
The tenths - 0 to 9
The ones - 0 to 9
What I did was compress the game information into those color channels and display the resulting pixels on-screen. The bot program would then read those pixels and find their RGB values. From there, we evaluate that information and send the right key press back to the game after running through a decision tree of what is the best ability for the situation.
Here is an example of storing Abilities 1, 2 & 3 in the 10s digit of the Red channel :
000 = 1, 2, 3 cooldown
010 = 1 available / 2,3 cooldown
020 = 2 available / 1,3 cooldown
030 = 1,2 available / 3 cooldown
040 = 3 available/ 1,2 cooldown
050 = 1,3 available / 2 cooldown
060 = 2,3 available / 1 cooldown
070 = 1, 2, 3 available
From there, let’s say you also store the number of enemies around you within 20 yards in the 1s digit, and if you’re in combat or not in the 100s…
The red channel of the pixel would read as “165” :
165 = In combat, Abilities 2 & 3 available, 5 enemies around me.
010 = Not in combat, Ability 1 available, no enemies around me.
171 = In combat, all abilities available, 1 enemy around me.
Etc.
That’s the information 1 channel of 1 pixel can give, so with several pixels on-screen you could get a fairly high amount of information through. Ultimately, I only needed to compress the information into about half a dozen pixels to get the job done.