SlideShare a Scribd company logo
1 of 44
How We Tackled
A Gaming Record
Rashid Mansoor (CTO) & Aidan Hobson-Sayers (VP Product)
Today’s talk
1. Who we are and the gaming record we targeted
2. How our technology enabled us to do this
3. What we learned from EVE: Aether Wars
4. Introducing EVE Aether Wars: Phase Two
Who is Hadean?
● Hadean is a deep tech start-up founded
in 2015
● We are based in London and have
raised £12.35 million in funding to date
● We won a spot at Unbound as one of
the top 50 startups in Europe
Which record were we targeting?
6,142 concurrent players
in EVE Online’s Battle of 9-4RP2
What challenges did CCP Games face?
● EVE Online uses a game mechanic called Time Dilation (TiDi) to help
manage the lag in large scale battles
● Time Dilation slows the gameplay in EVE Online down to a vast degree
● Time Dilation heavily impacted the battle when the record was set in The
Battle of 9-4R
Aether Engine:
The world’s first distributed game engine
● Runs on entire compute clusters and data centres, and dynamically scale up and down
on the cloud
● Much the same way that UE4, Unity, or CryEngine run on gaming rigs
● Aether Engine lets game developers build complex and rich experiences
without limiting their creative vision
Aether Engine: only possible With HadeanOS
1st Platform
Mainframe
2nd Platform
Client-Server
3rd Platform
Cloud
Mobile, Social, Cloud,
Big Data
Billions of users
Millions of apps
PCs, LANs, Internet
100s millions of users
10s thousands of apps
Mainframes, Minicomputers
Millions of users
Thousands of apps
To date, there have been three
generations of computing
1st Platform
Mainframe
2nd Platform
Client-Server
3rd Platform
Cloud
Cloud, Edge, 5G
Billions of users,
apps, and sensors
Mobile, Social, Cloud,
Big Data
Billions of users
Millions of apps
PCs, LANs, Internet
100s millions of users
10s thousands of apps
Mainframes, Minicomputers
Millions of users
Thousands of apps
Cloud Edge 5G ???
We are now seeing the rise
of the 4th Platform
1st Platform
Mainframe
2nd Platform
Client-Server
3rd Platform
Cloud
Cloud, Edge, 5G
Billions of users,
apps, and sensors
Mobile, Social, Cloud,
Big Data
Billions of users
Millions of apps
PCs, LANs, Internet
100s millions of users
10s thousands of apps
Mainframes, Minicomputers
Millions of users
Thousands of apps
4th Platform
Hadean Compute Model
The 4th Platform: powered by HadeanOS
Everyone gets a CPU
● Aether Engine consists of a
distributed Octree data structure
● This allows the simulation to
dynamically grow and shrink
across the cloud
Building an engine
with a familiar API
void initialise([...], cell_state &state) {
}
void initialise_cell([...], cell_state &state) {
}
void cell_tick([...], cell_state &state, float delta_time) {
}
struct physics_update_system {
typedef std::tuple<c_physics> components;
using ecs_type =
aether::constrained_ecs<cell_state, components>;
public:
void operator()([...], ecs_type &state, float delta_time) {
}
};
struct c_physics {
};
For Example - EVE: Aether Wars
void initialise(const aether_cell_state<octree_traits> &ae_state, cell_state &state) {
const auto cell = aether_state.get_cell();
build_aliens(state, cell);
build_player_manager(state, state);
build_asteroids(state, cell);
}
void initialise_cell(const aether_cell_state<octree_traits> &ae_state, cell_state &state) {
state.add_system<physics_init_system>();
state.add_system<physics_update_system>();
state.user_data = nullptr;
}
void cell_tick(const aether_cell_state<octree_traits> &ae_state, cell_state &state, float delta_time) {
state.tick(aether_state, delta_time);
}
struct physics_update_system {
// Per previous slide
};
struct c_physics {
float mass;
float size;
collision::sphere shape;
rigidbody::physics_state state;
};
Our ECS
● Data-driven design
● Achieve performance on coherent memory architectures
● Is being rapidly seen as the way for game programming
(e.g. Unity is moving in that direction and showing great
performance)
Hadean ECS: distributed by default
struct physics_update_system {
void operator()(const aether_cell_state<octree_traits> &aether_state, ecs_type &state, float delta_time) {
auto entities = state.local_entities<c_physics>();
for(auto p: entities) {
auto phys = p.get<c_physics>();
auto& state = phys->state;
state.step(delta_time);
}
check_collisions(entities, delta_time);
}
};
void physics_state::step(float delta_time) {
const float t = delta_time;
const float t_sqr = t * t;
const auto acceleration = force * inverse_mass;
linear_velocity = linear_velocity + (acceleration * t);
if (linear_velocity.norm() > max_linear_velocity) { // Cap the velocity
linear_velocity = linear_velocity.normalized() * max_linear_velocity;
}
position = position + (linear_velocity * t) + (acceleration * 0.5f * t_sqr);
// Angular velocity etc
[...]
}
Towards a Distributed Game Engine
Aether Sim
64 workers/box
M boxes
Dispatcher
E
dispatchers/box
O boxes
NA
State Muxers
S muxers/box
N boxes
NA 2500 Players
UK 2500 Players
EU 2500 Players
JP 2500 Players
1 Europe Central Azure Datacenter
R Edge Azure Datacenters
(UK, East Europe, Japan,
North America)
R Regions
(UK, East Europe, Japan,
North America)
UK
State Muxers
EU
State Muxers
JP
State Muxers
● 50MB/s compressed down per muxer box
● 9MB/s up total
● 230ms RTT worst case europe west to Japan
● 10GB/s relevanced down total
● 9MB/s up total
● 60ms RTT estimate
Home Users
Approximated/te
sted using AWS
Lambdas in the
four regions
Everything on Azure uses
- 8 NICs per box
- global peering
- accelerated networking
Constants
M (sim scale) = [4-10]
N (state scale) = ~4
O (event scale) = ~4
R (region scale) = 4
E (event load) = 8
S (state load) = ~8
Component counts
Workers = M*64 = ~256-640
Routers = E*O = ~32
Muxers = R*S*N = ~128
Forwarders = R = 4
Event forwarder
Event forwarder
Event forwarder
Event forwarder
● Netcode is crucial for networked
games, but doesn’t directly
contribute to the creative vision
● For EVE: AW 2 we began building
a ‘netcode standard library’ for the
Engine to permit configurability at
every level
● We will dogfood this to enable an
easy ‘getting started’, with ultimate
configurability down the line
Intro NetCode Slide
Communicating State: Bottleneck
● A game world distributed across several servers poses some fresh
challenges
● Game State is huge
● Bandwidth to clients is very limited
● Solution: send neighbourhoods only; vary update rates
Communicating State: Details
● We use R-trees to spatially index entities around players
● We do rapid reads to compute ‘all neighbours in radius‘ for multiple fixed radii
● We send neighbors with different update rates depending on radial (or
spherical sector) distance and entity type
● The logic is highly extensible for game type and given other factors (e.g.
bandwidth, latency, QoS)
Communicating State: Other Problems
● R-trees may not be the optimal
solution -- we needed a quick
fix that is better than naive
approach
● Trade-off between speed of
update of the index vs speed
of reads (both critical to good
performance)
● Next experiment: Voronoi
tessellation on an octree (e.g.
Drost & Ilic, 2017)
● Run on 768 CPU cores distributed across 8x client connection servers
● Players from 121 countries in a single game world
EVE Aether Wars: live playtest at GDC19
Key Learnings
For others who may venture down this path!
Our Learnings: Communication
● Communication is the biggest problem. Between cores, between servers,
between data-centres… and between people!
● Edge and cloud backbones are good but not a solve-all. We saw great
bandwidth and reliability but still had to deal with ping constraints
Our Learnings:
Netcode
● A careful balance between player
experience, bandwidth/latency,
server CPU/memory - no one size
fits all!
● We need to work on our distributed
debugging - stack traces that are
meaningful on a distributed engine
or game requires special tooling
Our Learnings: Planning
● Building tooling upfront so we can
check when and where things go
wrong
● Representative scale testing
shouldn’t wait - at scale, you need
bots that look like players so you
can get a feel for the actual
performance of your system
Our Learnings: Gameplay Constraints
● Engine performance at scale
is very much dependent on
gameplay
● You can get everything right
for a specific CPU/machine,
network and cloud but some
aspects can still be off due to
gameplay demands
Our Learnings: Logistics
● We ran the playtest during GDC -
this was suboptimal for securing
players to take part
● For Phase Two, we asked the
community what time they’d prefer
and used that to run the playtest
Our First Step
● We still have a lot to learn about
building engines and games in
general
● We also need to learn about the
demands of different game
genres… or even just different
games
Building With Our Partners
● We want to get our Aether Engine
SDK out so that we can see how the
community will break things and teach
us that we don’t know what we don’t
know
● We’ve come a long way with CCP
Games but we want to hear from you
as well!
So how did we do?
EVE: Aether Wars - Battle Report
● 3,852 human players participated
● A total of 14,274 ships in battle
● Players from 121 different countries, from Hawaii to Siberia
● A steady 50ms tick rate throughout the playtest
However...
● Gameplay was relatively simple: a
massive dog fight in space
● Despite the server holding strong,
bandwidth to the client and rendering
made the experience poor for some
Also...
● We learned that server/bandwidth usage cost would’ve been prohibitive for
real games
● Because of that we have done (and are continuing to do) massive
optimisations on the server end
● We’re already seeing some great results!
“It’s a huge milestone in the EVE: Aether
Wars project between Hadean and CCP
Games, as part of the continued drive to
explore the future of large-scale multiplayer
simulation.”
“Did EVE: Aether Wars succeed? As tech
demo, absolutely. Hadean proved right
then and there that they could have nearly
15,000 players simultaneously connected
and not crash the server.”
“Over the course of the action, some 88,988 ships
were destroyed, making other sci-fi sagas such as
Mass Effect look like a grazed knee by comparison.”
What did they say?
“We knew that Hadean’s tech held massive
potential and I’m ecstatic to see that potential
realised for the first time with EVE: Aether
Wars. I’m convinced that our partnership will
continue to break new grounds in virtual
worlds.”
Hilmar V. Petursson
CEO
EVE Aether Wars:
Phase Two
● Showcasing a compelling multiplayer
experience at enormous scale
● Building on the technological success of
Phase One and pushing the boundaries
even further
● A richer, deeper gameplay experience
...and you can join in!
● The EVE Aether Wars: Phase Two playtest will take place later today at 19:00
CEST (lasting roughly an hour)
● All participants will receive an exclusive EVE Online skin bundle and the
chance to win a trip for two to Las Vegas and a Corsair PC rig
● Follow #EVEAetherWars if you can’t take part!
● Sign up at www.hadean.com/eveaetherwars
Visit us at
Hall 2.2 B-057
hadean.com @hadeanincaetherengine
Any questions?
hadean.com @hadeanincaetherengine

More Related Content

What's hot

Houdini Mantra レンダリングのチューニング
Houdini Mantra レンダリングのチューニングHoudini Mantra レンダリングのチューニング
Houdini Mantra レンダリングのチューニングKen Taki
 
【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例
【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例
【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例UnityTechnologiesJapan002
 
中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~ProjectAsura
 
とあるPiXYZの備忘録
とあるPiXYZの備忘録とあるPiXYZの備忘録
とあるPiXYZの備忘録ssuserce29c6
 
Anti-Aliasing Methods in CryENGINE 3
Anti-Aliasing Methods in CryENGINE 3Anti-Aliasing Methods in CryENGINE 3
Anti-Aliasing Methods in CryENGINE 3Tiago Sousa
 
Animation production schedule
Animation production schedule Animation production schedule
Animation production schedule Casper Brazier
 
サウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解した
サウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解したサウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解した
サウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解したTakaaki Ichijo
 
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能についてUnityTechnologiesJapan002
 
Game design through the eyes of gaming history
Game design through the eyes of gaming historyGame design through the eyes of gaming history
Game design through the eyes of gaming historyDori Adar
 
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステムAndroid向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステムKLab Inc. / Tech
 
Google Sheets経由でUnity Localization Packageのデータを更新する & ADXの多言語ボイス音声切り替え機能連携
Google Sheets経由でUnity Localization Packageのデータを更新する & ADXの多言語ボイス音声切り替え機能連携Google Sheets経由でUnity Localization Packageのデータを更新する & ADXの多言語ボイス音声切り替え機能連携
Google Sheets経由でUnity Localization Packageのデータを更新する & ADXの多言語ボイス音声切り替え機能連携Takaaki Ichijo
 
ゲーム企画書の書き方? ~大久保磨編~ ver.1.4.0
ゲーム企画書の書き方? ~大久保磨編~ ver.1.4.0ゲーム企画書の書き方? ~大久保磨編~ ver.1.4.0
ゲーム企画書の書き方? ~大久保磨編~ ver.1.4.0Osamu Ohkubo
 
本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門
本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門
本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門jyouryuusui
 
ゲーム技術の研究所 テーマ「Narrative(ナラティブ)」
ゲーム技術の研究所 テーマ「Narrative(ナラティブ)」ゲーム技術の研究所 テーマ「Narrative(ナラティブ)」
ゲーム技術の研究所 テーマ「Narrative(ナラティブ)」Kouji Ohno
 
【Unite Tokyo 2019】2DアーティストのためのGPU入門
【Unite Tokyo 2019】2DアーティストのためのGPU入門【Unite Tokyo 2019】2DアーティストのためのGPU入門
【Unite Tokyo 2019】2DアーティストのためのGPU入門UnityTechnologiesJapan002
 
Cracking into Doom (1993) WAD Files
Cracking into Doom (1993) WAD FilesCracking into Doom (1993) WAD Files
Cracking into Doom (1993) WAD Files💻 Anton Gerdelan
 

What's hot (20)

Machinationの紹介
Machinationの紹介Machinationの紹介
Machinationの紹介
 
Houdini Mantra レンダリングのチューニング
Houdini Mantra レンダリングのチューニングHoudini Mantra レンダリングのチューニング
Houdini Mantra レンダリングのチューニング
 
【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例
【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例
【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例
 
中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~
 
とあるPiXYZの備忘録
とあるPiXYZの備忘録とあるPiXYZの備忘録
とあるPiXYZの備忘録
 
Anti-Aliasing Methods in CryENGINE 3
Anti-Aliasing Methods in CryENGINE 3Anti-Aliasing Methods in CryENGINE 3
Anti-Aliasing Methods in CryENGINE 3
 
Animation production schedule
Animation production schedule Animation production schedule
Animation production schedule
 
Fortniteを支える技術
Fortniteを支える技術Fortniteを支える技術
Fortniteを支える技術
 
サウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解した
サウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解したサウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解した
サウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解した
 
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
 
Game design through the eyes of gaming history
Game design through the eyes of gaming historyGame design through the eyes of gaming history
Game design through the eyes of gaming history
 
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステムAndroid向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
 
Google Sheets経由でUnity Localization Packageのデータを更新する & ADXの多言語ボイス音声切り替え機能連携
Google Sheets経由でUnity Localization Packageのデータを更新する & ADXの多言語ボイス音声切り替え機能連携Google Sheets経由でUnity Localization Packageのデータを更新する & ADXの多言語ボイス音声切り替え機能連携
Google Sheets経由でUnity Localization Packageのデータを更新する & ADXの多言語ボイス音声切り替え機能連携
 
ゲーム企画書の書き方? ~大久保磨編~ ver.1.4.0
ゲーム企画書の書き方? ~大久保磨編~ ver.1.4.0ゲーム企画書の書き方? ~大久保磨編~ ver.1.4.0
ゲーム企画書の書き方? ~大久保磨編~ ver.1.4.0
 
本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門
本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門
本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門
 
ゲーム技術の研究所 テーマ「Narrative(ナラティブ)」
ゲーム技術の研究所 テーマ「Narrative(ナラティブ)」ゲーム技術の研究所 テーマ「Narrative(ナラティブ)」
ゲーム技術の研究所 テーマ「Narrative(ナラティブ)」
 
Module 4 assignment answers
Module 4 assignment answersModule 4 assignment answers
Module 4 assignment answers
 
【Unite Tokyo 2019】2DアーティストのためのGPU入門
【Unite Tokyo 2019】2DアーティストのためのGPU入門【Unite Tokyo 2019】2DアーティストのためのGPU入門
【Unite Tokyo 2019】2DアーティストのためのGPU入門
 
Cracking into Doom (1993) WAD Files
Cracking into Doom (1993) WAD FilesCracking into Doom (1993) WAD Files
Cracking into Doom (1993) WAD Files
 
Automatic Audio in Frostbite
Automatic Audio in FrostbiteAutomatic Audio in Frostbite
Automatic Audio in Frostbite
 

Similar to Hadean: How We Tackled A Gaming World Record

How to Plan for Performance and Scale for Multiplayer Games
How to Plan for Performance and Scale for Multiplayer GamesHow to Plan for Performance and Scale for Multiplayer Games
How to Plan for Performance and Scale for Multiplayer GamesCloudflare
 
Shinra's Vision for Gaming / Presented at GigHacks 2015
Shinra's Vision for Gaming / Presented at GigHacks 2015Shinra's Vision for Gaming / Presented at GigHacks 2015
Shinra's Vision for Gaming / Presented at GigHacks 2015KC Digital Drive
 
Intro to GPGPU Programming with Cuda
Intro to GPGPU Programming with CudaIntro to GPGPU Programming with Cuda
Intro to GPGPU Programming with CudaRob Gillen
 
Building fast,scalable game server in node.js
Building fast,scalable game server in node.jsBuilding fast,scalable game server in node.js
Building fast,scalable game server in node.jsXie ChengChao
 
Introduction to parallel computing using CUDA
Introduction to parallel computing using CUDAIntroduction to parallel computing using CUDA
Introduction to parallel computing using CUDAMartin Peniak
 
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightInternet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightAndy Gelme
 
Cse 318 Project Report on Goethe Institut Bangladesh Network Design
Cse 318  Project Report on Goethe Institut Bangladesh Network DesignCse 318  Project Report on Goethe Institut Bangladesh Network Design
Cse 318 Project Report on Goethe Institut Bangladesh Network DesignMaksudujjaman
 
Cloud Gaming Onward: Research Opportunities and Outlook
Cloud Gaming Onward: Research Opportunities and OutlookCloud Gaming Onward: Research Opportunities and Outlook
Cloud Gaming Onward: Research Opportunities and OutlookAcademia Sinica
 
Glimworm 21-11-2013
Glimworm 21-11-2013Glimworm 21-11-2013
Glimworm 21-11-2013relayr
 
GamingAnywhere: An Open Cloud Gaming System
GamingAnywhere: An Open Cloud Gaming SystemGamingAnywhere: An Open Cloud Gaming System
GamingAnywhere: An Open Cloud Gaming SystemAcademia Sinica
 
Cloud Gaming - A Green Solution to Massive Multiplayer Online Games
Cloud Gaming - A Green Solution to Massive Multiplayer Online Games Cloud Gaming - A Green Solution to Massive Multiplayer Online Games
Cloud Gaming - A Green Solution to Massive Multiplayer Online Games Suhas Urs
 
Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Docker, Inc.
 
Refactoring Applications for the XK7 and Future Hybrid Architectures
Refactoring Applications for the XK7 and Future Hybrid ArchitecturesRefactoring Applications for the XK7 and Future Hybrid Architectures
Refactoring Applications for the XK7 and Future Hybrid ArchitecturesJeff Larkin
 
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthUSENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthNicolas Brousse
 
Polyglot persistence @ netflix (CDE Meetup)
Polyglot persistence @ netflix (CDE Meetup) Polyglot persistence @ netflix (CDE Meetup)
Polyglot persistence @ netflix (CDE Meetup) Roopa Tangirala
 
Glimworm 21 11-13 (1)
Glimworm 21 11-13 (1)Glimworm 21 11-13 (1)
Glimworm 21 11-13 (1)Paul Hopton
 
Online games: a real-time problem for the network
Online games: a real-time problem for the networkOnline games: a real-time problem for the network
Online games: a real-time problem for the networkJose Saldana
 
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese..."Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...Edge AI and Vision Alliance
 

Similar to Hadean: How We Tackled A Gaming World Record (20)

ARISE
ARISEARISE
ARISE
 
How to Plan for Performance and Scale for Multiplayer Games
How to Plan for Performance and Scale for Multiplayer GamesHow to Plan for Performance and Scale for Multiplayer Games
How to Plan for Performance and Scale for Multiplayer Games
 
Shinra's Vision for Gaming / Presented at GigHacks 2015
Shinra's Vision for Gaming / Presented at GigHacks 2015Shinra's Vision for Gaming / Presented at GigHacks 2015
Shinra's Vision for Gaming / Presented at GigHacks 2015
 
Intro to GPGPU Programming with Cuda
Intro to GPGPU Programming with CudaIntro to GPGPU Programming with Cuda
Intro to GPGPU Programming with Cuda
 
Building fast,scalable game server in node.js
Building fast,scalable game server in node.jsBuilding fast,scalable game server in node.js
Building fast,scalable game server in node.js
 
Introduction to parallel computing using CUDA
Introduction to parallel computing using CUDAIntroduction to parallel computing using CUDA
Introduction to parallel computing using CUDA
 
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightInternet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
 
Cse 318 Project Report on Goethe Institut Bangladesh Network Design
Cse 318  Project Report on Goethe Institut Bangladesh Network DesignCse 318  Project Report on Goethe Institut Bangladesh Network Design
Cse 318 Project Report on Goethe Institut Bangladesh Network Design
 
Cloud Gaming Onward: Research Opportunities and Outlook
Cloud Gaming Onward: Research Opportunities and OutlookCloud Gaming Onward: Research Opportunities and Outlook
Cloud Gaming Onward: Research Opportunities and Outlook
 
Rendering in the Cloud
Rendering in the CloudRendering in the Cloud
Rendering in the Cloud
 
Glimworm 21-11-2013
Glimworm 21-11-2013Glimworm 21-11-2013
Glimworm 21-11-2013
 
GamingAnywhere: An Open Cloud Gaming System
GamingAnywhere: An Open Cloud Gaming SystemGamingAnywhere: An Open Cloud Gaming System
GamingAnywhere: An Open Cloud Gaming System
 
Cloud Gaming - A Green Solution to Massive Multiplayer Online Games
Cloud Gaming - A Green Solution to Massive Multiplayer Online Games Cloud Gaming - A Green Solution to Massive Multiplayer Online Games
Cloud Gaming - A Green Solution to Massive Multiplayer Online Games
 
Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience
 
Refactoring Applications for the XK7 and Future Hybrid Architectures
Refactoring Applications for the XK7 and Future Hybrid ArchitecturesRefactoring Applications for the XK7 and Future Hybrid Architectures
Refactoring Applications for the XK7 and Future Hybrid Architectures
 
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthUSENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
 
Polyglot persistence @ netflix (CDE Meetup)
Polyglot persistence @ netflix (CDE Meetup) Polyglot persistence @ netflix (CDE Meetup)
Polyglot persistence @ netflix (CDE Meetup)
 
Glimworm 21 11-13 (1)
Glimworm 21 11-13 (1)Glimworm 21 11-13 (1)
Glimworm 21 11-13 (1)
 
Online games: a real-time problem for the network
Online games: a real-time problem for the networkOnline games: a real-time problem for the network
Online games: a real-time problem for the network
 
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese..."Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
 

Recently uploaded

buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 

Recently uploaded (20)

buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 

Hadean: How We Tackled A Gaming World Record

  • 1. How We Tackled A Gaming Record Rashid Mansoor (CTO) & Aidan Hobson-Sayers (VP Product)
  • 2. Today’s talk 1. Who we are and the gaming record we targeted 2. How our technology enabled us to do this 3. What we learned from EVE: Aether Wars 4. Introducing EVE Aether Wars: Phase Two
  • 3. Who is Hadean? ● Hadean is a deep tech start-up founded in 2015 ● We are based in London and have raised £12.35 million in funding to date ● We won a spot at Unbound as one of the top 50 startups in Europe
  • 4. Which record were we targeting? 6,142 concurrent players in EVE Online’s Battle of 9-4RP2
  • 5. What challenges did CCP Games face? ● EVE Online uses a game mechanic called Time Dilation (TiDi) to help manage the lag in large scale battles ● Time Dilation slows the gameplay in EVE Online down to a vast degree ● Time Dilation heavily impacted the battle when the record was set in The Battle of 9-4R
  • 6. Aether Engine: The world’s first distributed game engine ● Runs on entire compute clusters and data centres, and dynamically scale up and down on the cloud ● Much the same way that UE4, Unity, or CryEngine run on gaming rigs ● Aether Engine lets game developers build complex and rich experiences without limiting their creative vision
  • 7. Aether Engine: only possible With HadeanOS
  • 8. 1st Platform Mainframe 2nd Platform Client-Server 3rd Platform Cloud Mobile, Social, Cloud, Big Data Billions of users Millions of apps PCs, LANs, Internet 100s millions of users 10s thousands of apps Mainframes, Minicomputers Millions of users Thousands of apps To date, there have been three generations of computing
  • 9. 1st Platform Mainframe 2nd Platform Client-Server 3rd Platform Cloud Cloud, Edge, 5G Billions of users, apps, and sensors Mobile, Social, Cloud, Big Data Billions of users Millions of apps PCs, LANs, Internet 100s millions of users 10s thousands of apps Mainframes, Minicomputers Millions of users Thousands of apps Cloud Edge 5G ??? We are now seeing the rise of the 4th Platform
  • 10. 1st Platform Mainframe 2nd Platform Client-Server 3rd Platform Cloud Cloud, Edge, 5G Billions of users, apps, and sensors Mobile, Social, Cloud, Big Data Billions of users Millions of apps PCs, LANs, Internet 100s millions of users 10s thousands of apps Mainframes, Minicomputers Millions of users Thousands of apps 4th Platform Hadean Compute Model The 4th Platform: powered by HadeanOS
  • 11. Everyone gets a CPU ● Aether Engine consists of a distributed Octree data structure ● This allows the simulation to dynamically grow and shrink across the cloud
  • 12.
  • 13. Building an engine with a familiar API void initialise([...], cell_state &state) { } void initialise_cell([...], cell_state &state) { } void cell_tick([...], cell_state &state, float delta_time) { } struct physics_update_system { typedef std::tuple<c_physics> components; using ecs_type = aether::constrained_ecs<cell_state, components>; public: void operator()([...], ecs_type &state, float delta_time) { } }; struct c_physics { };
  • 14. For Example - EVE: Aether Wars void initialise(const aether_cell_state<octree_traits> &ae_state, cell_state &state) { const auto cell = aether_state.get_cell(); build_aliens(state, cell); build_player_manager(state, state); build_asteroids(state, cell); } void initialise_cell(const aether_cell_state<octree_traits> &ae_state, cell_state &state) { state.add_system<physics_init_system>(); state.add_system<physics_update_system>(); state.user_data = nullptr; } void cell_tick(const aether_cell_state<octree_traits> &ae_state, cell_state &state, float delta_time) { state.tick(aether_state, delta_time); } struct physics_update_system { // Per previous slide }; struct c_physics { float mass; float size; collision::sphere shape; rigidbody::physics_state state; };
  • 15. Our ECS ● Data-driven design ● Achieve performance on coherent memory architectures ● Is being rapidly seen as the way for game programming (e.g. Unity is moving in that direction and showing great performance)
  • 16. Hadean ECS: distributed by default struct physics_update_system { void operator()(const aether_cell_state<octree_traits> &aether_state, ecs_type &state, float delta_time) { auto entities = state.local_entities<c_physics>(); for(auto p: entities) { auto phys = p.get<c_physics>(); auto& state = phys->state; state.step(delta_time); } check_collisions(entities, delta_time); } }; void physics_state::step(float delta_time) { const float t = delta_time; const float t_sqr = t * t; const auto acceleration = force * inverse_mass; linear_velocity = linear_velocity + (acceleration * t); if (linear_velocity.norm() > max_linear_velocity) { // Cap the velocity linear_velocity = linear_velocity.normalized() * max_linear_velocity; } position = position + (linear_velocity * t) + (acceleration * 0.5f * t_sqr); // Angular velocity etc [...] }
  • 17. Towards a Distributed Game Engine Aether Sim 64 workers/box M boxes Dispatcher E dispatchers/box O boxes NA State Muxers S muxers/box N boxes NA 2500 Players UK 2500 Players EU 2500 Players JP 2500 Players 1 Europe Central Azure Datacenter R Edge Azure Datacenters (UK, East Europe, Japan, North America) R Regions (UK, East Europe, Japan, North America) UK State Muxers EU State Muxers JP State Muxers ● 50MB/s compressed down per muxer box ● 9MB/s up total ● 230ms RTT worst case europe west to Japan ● 10GB/s relevanced down total ● 9MB/s up total ● 60ms RTT estimate Home Users Approximated/te sted using AWS Lambdas in the four regions Everything on Azure uses - 8 NICs per box - global peering - accelerated networking Constants M (sim scale) = [4-10] N (state scale) = ~4 O (event scale) = ~4 R (region scale) = 4 E (event load) = 8 S (state load) = ~8 Component counts Workers = M*64 = ~256-640 Routers = E*O = ~32 Muxers = R*S*N = ~128 Forwarders = R = 4 Event forwarder Event forwarder Event forwarder Event forwarder
  • 18. ● Netcode is crucial for networked games, but doesn’t directly contribute to the creative vision ● For EVE: AW 2 we began building a ‘netcode standard library’ for the Engine to permit configurability at every level ● We will dogfood this to enable an easy ‘getting started’, with ultimate configurability down the line Intro NetCode Slide
  • 19. Communicating State: Bottleneck ● A game world distributed across several servers poses some fresh challenges ● Game State is huge ● Bandwidth to clients is very limited ● Solution: send neighbourhoods only; vary update rates
  • 20. Communicating State: Details ● We use R-trees to spatially index entities around players ● We do rapid reads to compute ‘all neighbours in radius‘ for multiple fixed radii ● We send neighbors with different update rates depending on radial (or spherical sector) distance and entity type ● The logic is highly extensible for game type and given other factors (e.g. bandwidth, latency, QoS)
  • 21. Communicating State: Other Problems ● R-trees may not be the optimal solution -- we needed a quick fix that is better than naive approach ● Trade-off between speed of update of the index vs speed of reads (both critical to good performance) ● Next experiment: Voronoi tessellation on an octree (e.g. Drost & Ilic, 2017)
  • 22.
  • 23.
  • 24. ● Run on 768 CPU cores distributed across 8x client connection servers ● Players from 121 countries in a single game world EVE Aether Wars: live playtest at GDC19
  • 25. Key Learnings For others who may venture down this path!
  • 26. Our Learnings: Communication ● Communication is the biggest problem. Between cores, between servers, between data-centres… and between people! ● Edge and cloud backbones are good but not a solve-all. We saw great bandwidth and reliability but still had to deal with ping constraints
  • 27. Our Learnings: Netcode ● A careful balance between player experience, bandwidth/latency, server CPU/memory - no one size fits all! ● We need to work on our distributed debugging - stack traces that are meaningful on a distributed engine or game requires special tooling
  • 28. Our Learnings: Planning ● Building tooling upfront so we can check when and where things go wrong ● Representative scale testing shouldn’t wait - at scale, you need bots that look like players so you can get a feel for the actual performance of your system
  • 29. Our Learnings: Gameplay Constraints ● Engine performance at scale is very much dependent on gameplay ● You can get everything right for a specific CPU/machine, network and cloud but some aspects can still be off due to gameplay demands
  • 30. Our Learnings: Logistics ● We ran the playtest during GDC - this was suboptimal for securing players to take part ● For Phase Two, we asked the community what time they’d prefer and used that to run the playtest
  • 31. Our First Step ● We still have a lot to learn about building engines and games in general ● We also need to learn about the demands of different game genres… or even just different games
  • 32. Building With Our Partners ● We want to get our Aether Engine SDK out so that we can see how the community will break things and teach us that we don’t know what we don’t know ● We’ve come a long way with CCP Games but we want to hear from you as well!
  • 33. So how did we do?
  • 34. EVE: Aether Wars - Battle Report ● 3,852 human players participated ● A total of 14,274 ships in battle ● Players from 121 different countries, from Hawaii to Siberia ● A steady 50ms tick rate throughout the playtest
  • 35. However... ● Gameplay was relatively simple: a massive dog fight in space ● Despite the server holding strong, bandwidth to the client and rendering made the experience poor for some
  • 36. Also... ● We learned that server/bandwidth usage cost would’ve been prohibitive for real games ● Because of that we have done (and are continuing to do) massive optimisations on the server end ● We’re already seeing some great results!
  • 37. “It’s a huge milestone in the EVE: Aether Wars project between Hadean and CCP Games, as part of the continued drive to explore the future of large-scale multiplayer simulation.” “Did EVE: Aether Wars succeed? As tech demo, absolutely. Hadean proved right then and there that they could have nearly 15,000 players simultaneously connected and not crash the server.” “Over the course of the action, some 88,988 ships were destroyed, making other sci-fi sagas such as Mass Effect look like a grazed knee by comparison.” What did they say?
  • 38. “We knew that Hadean’s tech held massive potential and I’m ecstatic to see that potential realised for the first time with EVE: Aether Wars. I’m convinced that our partnership will continue to break new grounds in virtual worlds.” Hilmar V. Petursson CEO
  • 39.
  • 40.
  • 41. EVE Aether Wars: Phase Two ● Showcasing a compelling multiplayer experience at enormous scale ● Building on the technological success of Phase One and pushing the boundaries even further ● A richer, deeper gameplay experience
  • 42. ...and you can join in! ● The EVE Aether Wars: Phase Two playtest will take place later today at 19:00 CEST (lasting roughly an hour) ● All participants will receive an exclusive EVE Online skin bundle and the chance to win a trip for two to Las Vegas and a Corsair PC rig ● Follow #EVEAetherWars if you can’t take part! ● Sign up at www.hadean.com/eveaetherwars
  • 43. Visit us at Hall 2.2 B-057 hadean.com @hadeanincaetherengine

Editor's Notes

  1. Hi everyone and thanks for joining us for today’s talk. My name’s Rashid Mansoor. I’m the CTO of Hadean and I’m joined here by Aidan Hobson Sayers, our Head of Product. Today, we’d like to talk to you about how we targeted a multiplayer gaming record in March earlier this year with our EVE: Aether Wars project, which took place live at Game Developers Conference in San Francisco. It was an incredibly ambitious project that hadn’t ever really been done before, so we hope that those of you with an interest in large-scale multiplayer games development will find this talk interesting and also useful, as we go over some of the challenges involved and how our technology helped solve those challenges.
  2. There are four areas we’re going to cover in this talk. First of all, we’re going to tell you who we are and the gaming record we targeted at Game Developers Conference earlier this year. Then we’ll talk about the technology we’ve built and how it enabled us to tackle this record. We’ll cover Aether Engine, our distributed game engine, and we’ll also tell you about our Hadean OS tech and the 4th platform. Then we’ll talk about what we learned from building and running EVE: Aether Wars. Those of you in this room who are involved with multiplayer development will recognise some of the challenges we’ll be talking about in this section. Finally, we’ll end by talking a little about EVE Aether Wars: Phase Two, which is the next iteration of the project. This playtest will actually take place later this evening at 7pm and we hope that this talk will inspire some of you to take part. The end of the talk is also where we will share details on how you can take part in EVE Aether Wars: Phase Two.
  3. We are Hadean, a deep tech start-up founded in 2015. We’re based in Shoreditch and we currently have a headcount of around 50 staff and we’re continuing to expand quickly. If there are any engine developers or full stack developers in the room, have a look at our careers page on our website, as we’re currently hiring for those positions. We’ve raised £12.35 million in funding to date. We’ve featured in the likes of Business Insider and CityAM while we’ve been covered in big specialist gaming outlets such as PC Gamer and Rock Paper Shotgun. We’ve been named by Silicon Republic as one of the top 10 superb start-ups to watch in London and in July this year, we won a spot at Unbound London as one of the top 50 start-ups in Europe selected for their start-up showcase, which is something we’re particularly proud of.
  4. So let’s talk about the record. The gaming record we wanted to break was for the most concurrent players involved in a single online multiplayer battle. The record for this is 6,142 players. This record was set in EVE Online in January 2018. So you’ll note how, at this point, CCP Games were the holder of this record and yet were also helping us to break this record. After all, who better to help us break the record than the current holders? It’s hard to convey that sense of scale but here’s an action-packed screenshot showing you what the biggest multiplayer battle in history looks like -- EVE Online’s Battle of 9-4RP2
  5. However, setting this record came with a few problems, as you might expect with a battle involving over 6,000 players at the same time. To help manage server load in enormous large-scale conflicts, CCP Games introduced a mechanic to EVE Online called Time Dilation back in 2011. It’s a mechanic that’s still being used in EVE Online today. Time Dilation slows gameplay down. With the enormous amount of players involved in The Siege of 9-4, Time Dilation kicked in and slowed the gameplay to a crawl, so much so that players had to completely change their tactics to compensate for the heavy delay. As a result, this landmark battle wasn’t truly representative of EVE Online’s famous strategic multiplayer combat.
  6. So let’s talk about the technology we’ve created as Hadean and how it helped us target that record. We’ve created Aether Engine, which is the world’s first and only distributed game engine. The gaming record that we’re talking about today is the most concurrent players in a single online battle and our record attempt was only possible because of our Aether Engine tech. Aether Engine is built to run on the cloud, in a private data centre, or your homegrown cluster. Existing game engines such as Unity and Unreal Engine are designed to be modular, high-performance, close-to-the-metal software frameworks that maximise the potential of powerful gaming PCs, consoles and mobile devices. Aether Engine takes this one step further and is designed to breakdown this final barrier. It runs on entire compute clusters, data centres or even dynamically scales up and down on the cloud. What this means for game developers is that because Aether Engine automatically handles scaling, load balancing, networking, and persistence, you can focus on game design and programming. Aether Engine lets you build complex worlds and rich experiences without limiting your creative vision. Game engines and the way multiplayer games have been historically designed centre around the constraints of the limited hardware availability but with Aether Engine, you can create new types of multiplayer games and experiences. Again, it’s because of Aether Engine that we were able to target the gaming record for most concurrent players in a single online multiplayer battle.
  7. Aether Engine is an application library that we’ve built on top of Hadean OS. Hadean OS is our Operating System we’ve created that is designed for building scale-invariant programs. A few tens of lines of code could run on a single core on a laptop or be deployed and scale seamlessly across hundreds or thousands of cloud VMs and bare metal server nodes alike. Our goal is that if we can make it possible for people to write programs without worrying what scale they run at, then that removes a tremendous barrier to the ability to process data, to analyse things, to compute things in nature and so on.
  8. To date, we have seen three generations of computing. We’ve seen FIRST PLATFORM, which is Unix on mainframes and mini-computers. There’s SECOND PLATFORM, which is Windows and Linux on Micro-computers and there’s THIRD PLATFORM, which is iOS and Android on mobile devices supported by first-gen cloud.
  9. We’re now witnessing the rapid convergence of the 4th generation of computing platforms, which is the 4th platform. The Cloud, Edge data centres and high-speed networking (such as 5G and infiniband) have formed a pervasive, invisible, ambient computing infrastructure that is ever-present and always available. Yet we’re still building for the 4th platform using the operating systems and compute models of the 2nd platform: Windows and Linux.
  10. At Hadean we’ve spent the last several years thinking about what computing needs to look like in this massively-distributed, geographically-dispersed, high-performance, hyperscale world. The end result is the Hadean Compute Model (HCM) which is exposed by our Operating System: Hadean OS. To maintain the ecosystems built up over the years, Hadean OS also preserves Linux’s binary format and library compatibility.
  11. Aether Engine is an application that sits on top of our Hadean OS technology. The Aether Engine core consists of a distributed Octree data structure that allows the simulation to dynamically grow and shrink across the cloud, running at higher fidelity when needed.
  12. TEXT TO BE ADDED
  13. https://github.com/ccpgames/gamescom-simulation/blob/master/Simulation/simulate.cc#L393-L414 Initialise and tick and how that maps to unreal initialise and tick [Snippet showing Initialise/Tick()] Talk more about tick function Talk about ECS and performance considerations
  14. Distributed engine architecture and how it is deployed across data centers [Get Tech Deck or Case Study from Mike] How we ran a global test with 10k+ connected clients
  15. We use R-trees to spatially index entities around players We do rapid reads to compute ‘all neighbours in radius’ for multiple fixed radii We send neighbors with different update rates depending on radial (or spherical sector) distance and entity type The logic is highly extensible for game type and given other factors (e.g. bandwidth, latency, QoS)
  16. R-trees perhaps not the optimal solution. We needed a quick fix that is better than naive approach There is a trade-off between speed of update of the index vs speed of reads. Both are critical to good performance Next experiment: Voronoi tesselation on an octree (Drost & Ilic)
  17. So to demonstrate the power of Aether Engine to the world we built EVE Aether Wars, a multiplayer deathmatch experience designed to support thousands of players in the same single-shard battle. We created EVE: Aether Wars as a tech demo to showcase the unique edge of Aether Engine EVE Aether Wars was a project we built with assistance from legendary MMO studio CCP Games. We assume all of you here are familiar with CCP Games but for those of you who aren’t, CCP Games are the creators of EVE Online, the space-faring MMO that launched back in 2003 and continues to push boundaries of technology and gameplay today.
  18. ...
  19. We ran EVE Aether Wars on 768 CPU cores distributed across 8x client connection servers and 121 geographies in a single seamless world. We wanted to do this live at Game Developers Conference in San Francisco, to show the confidence we have in our tech. We had a lot of feedback from peers in the games industry telling us we were mad for wanting to do this live at Game Developers Conference as there was no margin for error. But that’s exactly why we wanted to do it this way - as a statement to the world of what Aether Engine can help game developers achieve.
  20. So what did we learn from EVE: Aether Wars?
  21. Communication was the biggest problem. What we found was communication between cores, between servers and between data-centres was the most troublesome obstacle. Beyond that, communication between people was something that we could have improved as well. We quickly learned how important is was to keep the lines of communication open and frequent between everyone working on this project. We also realised that edge and cloud backbones are good but not a solve-all. We saw great bandwidth and reliability but we had to deal with ping constraints.
  22. Getting netcode right is a careful balance between player experience, bandwidth and latency and server CPU and memory. There is no one-size-fits-all solution. Distributed debugging is something we need to get better at and something we have a vision for. Stack traces that are meaningful on a distributed engine or game require some special tooling.
  23. We could have improved our planning around the project. A key takeaway for us was realising that if we build tooling upfront, then we can check when and where things go wrong. We also realised that representative scale testing shouldn’t wait. When building projects like this at large scale, you need bots that look like players, so you can get a feel for the actual performance of your system.
  24. Engine performance at scale is very much dependent on gameplay. You can also get everything right for a specific CPU or machine, network and cloud, and even then, some aspects can still be off due to gameplay demands. This is why we kept gameplay simple for EVE Aether Wars and it’s one of the main areas of improvement we focused on for the next iteration.
  25. Finally, there were some logistical challenges outside of our tech. We ran the EVE Aether Wars playtest during GDC because we wanted to run the tech demo live at a conference to show how confident we were in our tech performing on a big stage. However, we didn’t consider the playerbase when doing this. GDC runs from 10am to 6pm during several weekdays, which meant a lot of our community couldn’t make it because they were at work or at college and so on. So for Phase Two, we asked the community what time they’d like the playtest to run at and we made a decision based on that
  26. We realised we still have a lot to learn about building engines and also building games in general. Working with CCP Games has been enlightening in this regard but there’s still much more for us to learn. We also need to learn about the demands of different game genres… or even just different games.
  27. We’re excited to release our Aether Engine SDK so that we can see how our community will break things. We don’t know what we don’t know. Ultimately, it’ll be your input and feedback that will help shape what Aether Engine becomes, and we’d love for you to push our technology as you see fit.
  28. So after all that, how did we do on the day?
  29. We had a total of 3,852 real players and a total of 14,274 ships all doing battle in EVE Aether Wars. Players joined from 121 different countries around the world, stretching from Siberia to Hawaii. We also noticed there were interesting clusters of players joining from certain regions. For example, alongside the expected UK and US regions, we also had a large influx of players from Russia and Japan, which we found quite surprising. Most importantly, even with all of those different regions across the globe connecting, we maintained a steady 50ms tick rate throughout the playtest.
  30. But there are some considerations that we need to weigh up against this success. The first one is that the actual gameplay for EVE: Aether Wars was relatively simple - it was a massive dogfight in space. It was a simple gameplay experience but that gave us an easy goal to target for Phase Two, as we built more game features and physical interactions, thanks to our continued relationship working alongside CCP Games. We should also mention that despite the server holding strong, bandwidth to the client and rendering made the experience poor for some. Again, this gave us something that we could build on, so improving this aspect became a major focus for us for EVE Aether Wars Phase Two.
  31. Another learning from us following EVE: Aether Wars is that server and bandwidth usage cost would have been prohibitive for real games. As a result, we focused on massive optimisations on the server end, and we’re already seeing great results because of this.
  32. This is just a handful of quotes across specialist media and our playtest also saw coverage in the likes of PC Gamer, Rock Paper Shotgun, Screen rant and many more too.
  33. ...and here’s what Hilmar Petursson, CEO of CCP Games, had to say about the test
  34. This brings us onto EVE Aether Wars: Phase Two, the next iteration of our EVE Aether Wars project.
  35. This is what EVE Aether Wars Phase Two looks like. It’s set in Abyssal Deadspace from EVE Online and visually, as you can see from the screenshots, it now has far more atmosphere.
  36. So EVE Aether Wars Phase Two will show the world what exciting and compelling mutiplayer gameplay looks and feels like at enormous scale. With Phase One, we showed that our technology can support thousands of players in the same multiplayer battle. The purpose of Phase Two is to show what sort of compelling gameplay experiences can exist at that scale, while also sparking the imaginations of industry professionals and gamers who take part. Ultimately, we want to see what the games industry can create using our Aether Engine technology to push the boundaries of what’s possible and we see EVE Aether Wars Phase Two as an important step towards that.
  37. EVE Aether Wars Phase Two will take place at 7pm this evening, so after a full day of Devcom talks, you can relax in the evening by helping take part in gaming history. There are also some cool prizes for getting involved. We have an exclusive EVE Online skin for all participants and there will be a prize draw with a trip for two to Las Vegas on offer, along with a Corsair PC gaming right up for grabs. If you can’t take part, we encourage you to follow the EVE Aether Wars hashtag on the screen. Given there will be thousands and thousands of players battling each other in the same online battle, it’ll be just as exciting to watch the mayhem as it will be to take part, so make sure you check out the action as it happens.
  38. Thanks for your time today. We hope you found our talk interesting and informative. We have a stand in the Business Area at Gamescom this year if you’d like to ask us more questions in person or see the technology for yourself. We’re in Hall 2.2 and at booth 57. Thank you for listening.
  39. Does anyone have any questions?