Battle Cars | April 2019 - 2020
Racing Battle Royale
Game Designer (AI & System) | Producer
Unity | Jira | Confluence
Themes: Racing | Explosions | Urban | Cartoony
Pitch: Battle Cars is a Battle Royale car game where 64 players are confined in tracks and arenas and ruthlessly fight to the death. Violent high speed collisions, game changing abilities, spectacular tricks... In short ; total destruction until only one remains.
Final Presentation video
Press (c) for sub-titles
Battle Cars is my master's 2 project and my most ambitious student project! Because Gun On Wheels didn't make it through the final stage for several reasons, I joined Battle Cars, the other car game of the batch as a producer and game designer (without owning the creative direction).
In order to fulfill my career goals better, while working on the project, I set myself key aspects to work on:
A very strong and effective documentation, showing how effective a game designer can be on a 9 month production
Powerful management tools, using Jira (linked to Source Tree) to succeed better in my job as a producer and apply the agile methodology. This software is widely used in the game industry, and I am also convinced it will give me a better overview of how a project must be organized to be effective, giving me hints if I want to become a lead one day.
An emphasis on AI Design, which is one of my two main specialties in Game Design. I already have made a lot of projects focusing on either the camera or the controller, but I wanted to make one more game using AIs, and Battle Cars seemed like a perfect fit. Indeed, a game welcomes up to 64 players, but if not all 64 seats in a server are encountered, they are replaced by car AIs. The goal here is to reduce the gap between the player's behavior and the AI's behavior, in order to create a more outstanding Battle Royale experience.
Proof of Concept
Made before the official game selection in 2018, and showcasing a different universe (more aimed at desert and less urban) from what the team is targeting now, this trailer, made using Unreal Engine 4, still transmits part of the project's intentions.
First prototype attempt on Unity
After grouped advice from a lot of trainers and specialists, we decided to stop the production on UE4 and switched to Unity, principally for physics replication purposes, since our Battle Royale is online.
Pre-production Key Art
by Léa Lescuyer
The way we use our intentions is inspired by the pillars method of Doom 2016. Here are our pillars:
Pedal to the Metal
Forget about manners, you just need to crush your opponents.
It's always about how hard you can hit'em. The harder the better.
No Fair Play
Forget about manners, you just need to crush your opponents.
To Show Off
Destroying feels good. Destroying with style feels amazing.
Method given during a workshop by Alexandre Mandryka
Final production folder
As a Game Designer
Documentation and JIRA
After doing 2 internships at Ubisoft, I discovered how using a wiki can be a very powerful tool, allowing quick links and constant upgrades, being both more flexible and clearer than more traditional ways of documentation (powerpoints, PDFs, or google docs). Furthermore, such a tool can easily be given to externs, since we just have to give them links to go toward the subject they are interested in.
Setting up confluence is a little bit harder than other ways of documentation, but for a 9 month project, it's definitely worth it. The idea is clear and simple. The wiki is divided into 6 main pages:
Each page has a lead which validates any document inside of it.
More details about the documentation and production pipeline here.
Documents are organized in a tree with the 6 main pages as the bases. The closer the documents are from the main pages, the more they are high-level. The farther they are, the more they are low-level.
Example: Game Design main page (high level)
Intentions, abstract diagrams, loops... All those elements are depicted on high level pages, giving a clear direction of the game's design, helping us make choices when getting to lower level features.
Example: Collision document (low level)
Much more detailed and concrete, low level documents are meant to fully guide the production of a feature, whether done by programmers, artists, level designers etc... The template depends on the type of feature, but is usually very inspired by the atomic parameters of Rational Game Design.
Behavior tree using state machines
Early AIs using the car controller
Even though our goal is to fill servers with only real players, it may happen that clients are missing to fill the needed 64 car slots. In that case, AIs automatically fill up the missing slots. For example, if there are only 40 clients, 24 AIs join the server.
As shown above, we've used using state machines. However, this has proven to be very limited if we want to challenge players. I then tuned those AI parameters to simulate player strategies.
As a Producer
The management in Battle Cars was heavily inspired by the SCRUM and Kanban frameworks I testified their effectiveness during my internships at Gameloft and Ubisoft, of course reshaped in order to better fit the team's composition and scope.
My goal was to make the production as effective as possible, avoiding any useless meetings, while making sure team members have a clear idea of the current project's state.
Milestone and sprint planning
Since the project was made at Supinfogame during the year, every month, there was either a Jury with professionals or milestone with trainers giving feedback on the game's direction and the current prototype. Sprints were made in order to get ready for those milestones.
For every milestone, features, ranged by priority, are targeted and detailed into more precise results, with team members responsible for those results. Using the OKR system, those key results were then graded from 0 to 1 during the milestone deadline, making the team able to identify the strong and weak points and better anticipate the following milestones.
SCRUM and Build pipeline
The whole production was based on making regular builds focusing on different aspects (levels, art scenes, 3C prototyping), that the whole team playtests together to give instant feedback. Other meetings, such as stand-ups, milestone planning, sprint reviews, and post-mortems, also happenned in order to boost the team's productivity and motivation.
Thanks to the Milestone OKRs, a backlog is made on Jira, creating user stories for the team members which they can manage by themselves using a customized Kanban Board. Specific options have also been withdrawn and added in order to make the story management both simple for the team members, and detailed for me, the producer.
The Jira is linked to the confluence, allowing quick document links and story creations, but it is also linked to the versioning software SourceTree. Indeed, all stories related to the prototype are linked to commits, giving the whole team a clear idea of a feature's current state.
In order to make the production rhythm more effective and fully develop the user experience of Battle Cars, we decided to spend time on the development of a homemade launcher! It helped us increasing the playtest process, as builds are now automatically made and updated. It was also a way for the team to access the backlog, our documentation website, and agile planning.
Stream on Twitch
We had the opportunity to create a giant playtest during a live thanks to a big rocket league streamer (reaching a peack of 750 of viewers during our game!). This was a very exciting period for us as we directly faced the reactions of players, and tried to support the experience with our spectator mode and by opening several servers.
Older Key Art
by Léa Galinha
Other Team Members:
Anthony Rabaux | Lead Programmer
Florian Eschalier | Technical Game & Level Designer
Louis Bayard | Level Designer & Sound Designer
Dylan Fitzpatrick | Vision Owner & Gameplay Programmer
Léa Lescuyer | Concept & Environment Artist
Léa Galinha | Art Director & Vehicle Artist
Special thanks to:
Louis Houyez | FX Artist
Marianne Fourmanoit | 2D vinyls for cars
Eliott Fonseca | Trailer montage
Thibault Coupart | Heatmap system
All our playtesters and the educational team!