Michal Kovařík: Multiplayer ve Factoriu

21
Multiplayer ve Factoriu

Transcript of Michal Kovařík: Multiplayer ve Factoriu

Multiplayer ve Factoriu

Multiplayer ve Factoriu

Úskalí a výhody multiplayeru založeném na deterministické lock-step simulaci.

Kdo jsem a co je to Factorio

Není potřeba být specialista.

Není potřeba být specialista.

Ale než to bylo doladěno tak nám to trvalo cca dva člověko roky.

Není potřeba být specialista.

Ale než to bylo doladěno tak nám to trvalo cca dva člověko roky.

Zejména kvůli:

Složitosti logiky hry

Učili jsme se na tom (Prozkoumávání slepých uliček)

Metody sdílení herního stavu o kterých vím

Aktualizace celého stavu serverem (Malý stav hry, FPS, mlátičky atp)

Aktualizace stavu kolem hráče (Velký stav hry, celkem statický svět, MMO, Minecraft atp.)

Deterministická lock step simulace (Velký stav, dynamický svět, RTS)

Deterministická

Pokud daný stav načteme, a spustíme na různých počítačích, výsledek po X krocích bude do posledního bytu všude stejný.

Deterministická

Pokud daný stav načteme, a spustíme na různých počítačích, výsledek po X krocích bude do posledního bytu všude stejný.

Vlastnost která není pro program zdaleka tak samozřejmá, jak by se mohlo zdát.

Deterministická

Pokud daný stav načteme, a spustíme na různých počítačích, výsledek po X krocích bude do posledního bytu všude stejný.

Vlastnost která není pro program zdaleka tak samozřejmá, jak by se mohlo zdát.

Efekt motýlích křídel.

Deterministická

Pokud daný stav načteme, a spustíme na různých počítačích, výsledek po X krocích bude do posledního bytu všude stejný.

Vlastnost která není pro program zdaleka tak samozřejmá, jak by se mohlo zdát.

Efekt motýlích křídel.

Striktní rozlišení toho co je ve stavu hry a co ne.

Lock step

Pouštíme tu samou simulaci najednou u všech hráčů.

Zařídit aby začínali ze stejného bodu (Stabilní serializace a deserializace)

Lock step

Pouštíme tu samou simulaci najednou u všech hráčů.

Zařídit aby začínali ze stejného bodu (Stabilní serializace a deserializace)

Když si prdne a uloží hru, tak to po načtení musí smrdět.

Aby na to jen tak nekoukali

Jediné co se po přenosu startovního stavu musí přenášet jsou uživatelské akce.

Aby na to jen tak nekoukali

Jediné co se po přenosu startovního stavu musí přenášet jsou uživatelské akce.

To je oproti jiným alternativám velice málo!

Aby na to jen tak nekoukali

Jediné co se po přenosu startovního stavu musí přenášet jsou uživatelské akce.

To je oproti jiným alternativám velice málo!

Akce se musí aplikovat na všech počítačích v přesně daný moment který je všude stejný.

Aby na to jen tak nekoukali

Jediné co se po přenosu startovního stavu musí přenášet jsou uživatelské akce.

To je oproti jiným alternativám velice málo!

Akce se musí aplikovat na všech počítačích v přesně daný moment který je všude stejný.

Latence

Aby na to jen tak nekoukali

Jediné co se po přenosu startovního stavu musí přenášet jsou uživatelské akce.

To je oproti jiným alternativám velice málo!

Akce se musí aplikovat na všech počítačích v přesně daný moment který je všude stejný.

Latence - Velká je stabilní při horším spojení versus Malá má rychlou odezvu.

Aby na to jen tak nekoukali

Jediné co se po přenosu startovního stavu musí přenášet jsou uživatelské akce.

To je oproti jiným alternativám velice málo!

Akce se musí aplikovat na všech počítačích v přesně daný moment který je všude stejný.

Latence - Velká je stabilní při horším spojení versus Malá má rychlou odezvu.

Skrývání latence

A tady hraje jednu hru 400 hráčů

Děkuji za pozornost. Dotazy?