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:

  1. A very strong and effective documentation, showing how effective a game designer can be on a 9 month production

  2. 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.

  3. 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

keyartfinal.png

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.

Explosive Brutality

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

Pre-production folder

Mid-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:

  1. Game Design

  2. Art Direction

  3. Audio

  4. Engine

  5. Presentations

  6. Producing

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)

BC_Doc_GameDesign.PNG

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)

BC_Doc_Collisions_03.PNG
BC_Doc_Collisions_02.PNG
BC_Doc_Collisions_01.PNG

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.

Artificial intelligence

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

Management

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

BC_Planning.PNG

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.

Milestone OKRs

BC_OKR.PNG

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

BC_Pipeline.PNG

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.

JIRA

BC_Jira.PNG

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.

BC_Jira_SourceTree.PNG

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.

Extra features

Launcher

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

KeyArt02_Old.png

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!

Trailer