Multiplayer programozás

Ha egy program többfelhasználós (főleg számítógépes játékok esetén), akkor multiplayer programról/játékról beszélünk. A következőkben leírom egy egyszerű multiplayer játékmotor működését. Nem a nagykönyvből vettem, de szerintem működni fog.

A szerver

Ebben a koncepcióban a szervernek csupán közvetítő szerepe van. Törekszik arra, hogy csak minimális adatforgalmat bonyolítson le, és ne terhelje túl a hálózatot.

A kliens

A sikeres működés feltétele, hogy a kliensprogramok egytől egyig ugyanolyanok legyenek, és ugyanúgy működjenek, e nélkül nem fog jól működni a rendszer.

Működés

Először elindul a szerver és várja a klienseket, hogy csatlakozzanak. Amikor csatlakozik egy kliens, akkor a szerver azonnal elküldi nekik a szükséges információkat (pl.: pálya nevét, magát pályát, ha véletlen események is vannak, akkor a véletlenszám-generátor alapszámát is, stb.)

A szerver indítja el a játékot úgy, hogy kiküld egy jelet, hogy lehet kezdeni. Innentől kezdve megvárja, hogy mindenkitől visszajöjjön az input, még akkor is, ha a játékos nem csinált semmi, akkor a kliens küld mondjuk egy nullát. Ezt a szerver szétküldi, majd küld egy jelet, hogy léphetnek a kliensek egy frame-t. Újra megvárja az inputokat, stb.

Ha a kliensek válaszideje nagy, akkor a szerver kiadhatja azt is még, hogy mennyi frame-t kell előre lépniük a klienseknek. Esetleg a kliensek is megküldhetik, hogy mennyit kellett várniuk a tovább jelre, így a szerver fokozatosan szinkronba hozza majd a játékot vagy programot, ha úgy tetszik.

Lényegében ilyen egyszerű az egész.