Competitive eSports POC

Hristo Enchev
Hristo Enchev
Published in
5 min readAug 16, 2019

A proof of concept with a fully functional multiplayer and custom movement

The Task:

Create a functional proof of concept for a competitive multiplayer eSports game, influenced by an existing sport and utilizing variable player powers

Responsibilities:

  • Multiplayer gameplay programming
  • Custom character movement programming
  • Audio Implementation
  • Tools development
  • Playtesting and QA
  • Development Time: 7 weeks

Before I dive into the game design, I would like to point out that this project was not inter-disciplinary and consisted of 6 design & production students. A producer, level designer, UI/UX designer, general game designer, audio designer and me as the technical designer. Hence why most of the visuals are using starter or marketplace content

Game Design

It is 3 versus 3 multiplayer sports game, combining handball and Tribes-like movement. Emphasis is on teamwork, there is a single ball and 2 goal zones, The ball has a score multiplier, tied to ball passes from the same team. Winning is by reaching the score limit or time runs out. There are three character types, each with their own unique active and passive abilities.

Design Pillers

  • Fast-Paced Gameplay
  • Competitive nature
  • Team Play emphasis
  • Precise movement

Core Features

Movement

The key and most important feature is the movement. The player is able to move in a fashion that resembles skating. The speed that a player is able to obtain allows them to propel themselves in the air. The player has a lot of control over the character, both in-air and on the ground, which allows them to easily manoeuvre and position themselves throughout the map.

Week 4 movement prototype clip

Shooting

When having the ball in their control, the player should be able to shoot the ball by letting go of the catch button. An indicator will show where the ball will approximately land. Shooting the ball will take the players current movement speed into account while having a default speed (influenced by character type) in case they are standing still.

Catching

When close to the ball, the player can press and hold the catch button which will automatically give them possession of the ball. This will only work if the ball is within the players catch field, which has been made clear by a visual of a force field. In this state, the player cant uses active abilities.

Shooting and catching in action with prediction and initial hit UI marker — Week 6

Intercepting

A player is able to either push an opponent away or rob them of the ball by intercepting that player. Intercepting is done by aiming at the opponent and pressing the interception key. This will cause the player to shoot a projectile that, if it lands, forces the target to let go of the ball and get knocked back.

Interception over distance without ball possession

Scoring

The main goal is to get the ball into the opposing team’s goal. This can be done by either shooting the ball into it, or “dunking” the ball into the goal. Upon scoring, the ball and the players will reset to their original positions and the game resumes.

Scoring + multiplier at play ( for testing purposes) as it usually does not increase if you keep passing to yourself

Now that you have a brief idea of what the game is about, here is the short and chaotic gameplay trailer from our Week 6 playtests

The tech behind this prototype

The purpose of this prototype was to allow us to playtest every aspect of our game as we were designing and documenting it. After all, the most successful way to prove if a multiplayer game is fun is to build it :) The two most notable implementations are definitely the movement and the character classes system.

Class Selection Week 5

Character System

The system is fairly easy to explain, every character type is a child blueprint of the base character class, with every balancing option neatly exposed and categorized, that way Bulk edit via the Property Matrix offers designers to easily tweak and define each character. On top of the base class having already implemented abilities that can be toggled per class, it is really easy to override an ability button per character, so that a certain character can extend the existing base ability or create an entirely new one. For example, the default behaviour for the movement ability is Jump, which 2 out of 3 types utilize, but the Medium character overrides this ability key and freezes in place when pressed.

Property Matrix showing all 3 classes and some of the balancing options exposed to them

Custom Movement

Week 7 movement in solo, roaming around

This is built as a custom movement mode inside the Character Movement Component, as that way I can use the built-in network prediction. It uses physics and has over 15 variables which designers can tweak and balance. This allowed the designers to create archetypes that feel and handle differently and have their own identity. Here (image below) is the balancing guide in conjunction with a Technical Breakdown of the movement which has some extra information on how it works and the balancing guide in the form of a document instead of a one-pager

Closing words

7 weeks is a short period of time and while we had fun developing the concept and testers enjoyed the game, we were only scratching the surface of the concept. The way we approached game design and features were trough implementation and prototyping. I was building modular systems to support all kinds of experimentation, rather than specific implementations.

Ubisoft’s Roller Champions

Announced at E3 2019 along with a gameplay demo, Ubisoft's take on a sports-based eSports game, which at its core is surprisingly similar to ours (we wrapped it up 2 months before E3)

Which if nothing else, means that our proof of concept was on the right track.

--

--

Hristo Enchev
Hristo Enchev

An ambitious technical game designer, who also likes photography, graphic design and … well video games