MMO World Design (server side)

Pagina: 1
Acties:
  • 992 views

Acties:
  • 0 Henk 'm!

  • Ariejan
  • Registratie: Februari 2001
  • Laatst online: 20:10
Hey, zoals zo velen ben ook ik in mijn vrije tijd bezig met een MMO. Ongeacht of dat 'n goed idee is of niet, ik wil er vooral van leren. Here goes:

Aan de server-side heb ik op dit moment al het een-en-ander af. Om het kort samen te vatten: alles wat er server side gedaan wordt, wordt zo veel mogelijk parallel gedaan (en sequentieel waar nodig) in de vorm van Tasks.. Alle game data wordt centraal persistent opgeslagen. Het schalen van de server kan door meer nodes toe te voegen, die op hun beurt Tasks uitvoeren.

Waar ik mee bezig ben is het uitzoeken hoe ik het beste de 'game world' aan de server side kan ontwerpen. Normaal zie je vaak dat men met 'zones' werkt, zodat je per zone een server kan inzetten. Dit ontwerp is voor mijn server niet van toepassing, in zoverre dat het niet noodzakelijk m.b..t het schalen over meerdere servers. Echter, een MMO wereld wordt behoorlijk groot, dus misschien is het niet mogelijk te ontkomen aan zones.

Naast de vraag of ik zones zou moeten gebruiken voor de server-side implementatie van de MMO wereld vraag ik me af hoe ik de positie bepaling van characters (players, npc's, objecten etc.) moet implementeren. Is het voldoende om (in het geval van zones) een zone op te delen in b.v. tiles en dan per object een aantal tiles in te nemen?

Verder ter info: de client-side is 3D (of 2.5D), en in principe zou je vrij door de wereld moeten kunnen bewegen (in tegenstelling tot verplaatsen van tile naar tile).

Als developer hoor ik graag de gedachten van andere developers. Mocht je meer info nodig hebben, dan geef ik die graag.

Computeraar - Part-time Maker van Geluiden - https://neuroslasher.bandcamp.com


Acties:
  • 0 Henk 'm!

  • Simon Verhoeven
  • Registratie: Juni 2008
  • Laatst online: 30-08-2018

Simon Verhoeven

The trial never ends.

Tja, ik zou ineens voor zones gaan omdat je anders nogal wat werk zou kunnen hebben om het toch naar zones om te zetten.

En ben je niet beter af met x, y & z informatie qua positionering binnen de zone?

Acties:
  • 0 Henk 'm!

  • Ariejan
  • Registratie: Februari 2001
  • Laatst online: 20:10
Simon Verhoeven schreef op vrijdag 03 oktober 2008 @ 10:39:
Tja, ik zou ineens voor zones gaan omdat je anders nogal wat werk zou kunnen hebben om het toch naar zones om te zetten.

En ben je niet beter af met x, y & z informatie qua positionering binnen de zone?
Ja, vandaar dat ik de vraag ook stel: is het niet gewoon verstand om überhaupt met zones aan de slag te gaan.

Gezien het 'grote' werk van het maken van art en content kom ik w.b. de client waarschijnlijk uit op 2.5D. Maar ik wil niet dat je van tile naar tile moet hupsen.

Is het een idee om: zones te hebben, met daarin tiles. Een tile beslaat dan b.v. uit 50x50 "positie units" (0 < x,y < 50). Een positie van een character zou dan gelinkt zijn aan een tile + x,y coords. Gebouwen e.d. kunnen dan alleen aan tiles gelinkt worden.

Dit klinkt mij wel als 'n goed systeem in de oren. Wat denken jullie?

Computeraar - Part-time Maker van Geluiden - https://neuroslasher.bandcamp.com


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Kon me nog een paper herinneren hierover: Managing Missed Interactions in Distributed Virtual Environments

Als je daar op zoekt krijg je een aardig lijstje met gerelateerde papers over dit soort problemen. Het is niet simpel...

Acties:
  • 0 Henk 'm!

  • Ariejan
  • Registratie: Februari 2001
  • Laatst online: 20:10
Zoijar schreef op vrijdag 03 oktober 2008 @ 10:56:
Kon me nog een paper herinneren hierover: Managing Missed Interactions in Distributed Virtual Environments
Als je daar op zoekt krijg je een aardig lijstje met gerelateerde papers over dit soort problemen.
Okay, ik ga 'ns speuren daarop. Bedankt voor de tip.

Gevonden: link
Daarom stel ik de vraag ook hier aan mijn mede-devvers/tweakers ;)

[ Voor 7% gewijzigd door Ariejan op 03-10-2008 11:21 ]

Computeraar - Part-time Maker van Geluiden - https://neuroslasher.bandcamp.com


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Ariejan schreef op vrijdag 03 oktober 2008 @ 11:18:

Okay, ik ga 'ns speuren daarop. Bedankt voor de tip.

Gevonden: link


Daarom stel ik de vraag ook hier aan mijn mede-devvers/tweakers ;)
Niet dat dat nou "het" paper is hoor; het is er gewoon een die erover gaat. Meestal kan je dan uit de references, of van de website van de auteurs, wel een berg nieuwe informatie vinden. Ik heb geen idee wat de state-of-the-art is op dat gebied.

Acties:
  • 0 Henk 'm!

  • Ariejan
  • Registratie: Februari 2001
  • Laatst online: 20:10
Het hoeft ook niet state-of-the-art te zijn, als het maar een goede werkende oplossing is voor wat ik wil doen.

Computeraar - Part-time Maker van Geluiden - https://neuroslasher.bandcamp.com


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:27

Creepy

Tactical Espionage Splatterer

Even een tikje door naar SEA

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Ariejan
  • Registratie: Februari 2001
  • Laatst online: 20:10
Ik denk dat het idee van zones er toch in komt. Al is het alleen maar omdat je d.m.v. zones ook de Area of Interest kunt vast leggen. In een MMO wereld kunnen misschien wel duizenden characters rondlopen. D.m.v. zones beperk je de hoeveelheid aan update data die je naar clients moet sturen.

Prachtig!

Computeraar - Part-time Maker van Geluiden - https://neuroslasher.bandcamp.com


Acties:
  • 0 Henk 'm!

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Ariejan schreef op vrijdag 03 oktober 2008 @ 12:08:
Ik denk dat het idee van zones er toch in komt. Al is het alleen maar omdat je d.m.v. zones ook de Area of Interest kunt vast leggen. In een MMO wereld kunnen misschien wel duizenden characters rondlopen. D.m.v. zones beperk je de hoeveelheid aan update data die je naar clients moet sturen.
Dat niet alleen maar het maakt het ook schaalbaar. Je zou op deze manier zones over verschillende servers kunnen verdelen.

Nu met Land Rover Series 3 en Defender 90


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
Waar je ook rekening mee moet houden is dat sommige zones drukker zijn dan andere, je kunt dat op 2 manier oplossen.

-Zones die waarschijnlijk druk zijn kleiner maken (imho slechte oplossing)
-Ervoor zorgen dat een zonde op meerdere servers tegelijk kan draaien. (Stel 2 clans gaan elkaar te leven op een rustig plekje, zodra de main server merkt dat er in zone A > 50 personen zijn (of de load van de server die zone A draait te hoog wordt) er voor zorgen dat server2 ook zone A gaat draaien (beide voeden zichzelf vanaf dezelfde tasklist en zorgen er voor dat de data persistent blijft.) Immers als je een max aantal spelers hebt dan moet het ergens anders rustiger worden.

Het aller mooiste is natuurlijk om er voor te zorgen dat een server meerdere zones kan draaien tegelijkertijd, en dat een zone nooit gelijk verdeeld hoeft te worden. (Server1 is bezig met Zone A,B,C maar zone C wordt te druk, dus Server2 die nog 15% capaciteit overheeft neemt een deel van zone C bij zijn werk).

Hoe dit allemaal precies te managen is, is erg ingewikkeld, kijk maar naar WoW bijvoorbeeld waar toch nog regelmatig servers crashen op het moment dat het echt te druk wordt in een zone.

Eve online gebruikt trouwens ongeveer boven beschreven systeem om in 1 wereld 250.000 spelers tegelijkertijd te laten spelen (erg cool, super grote wereld en zoveel spelers tegelijkertijd) elke computer daarachter heet een shard, en die shards zorgen ervoor dat elke zone verwerkt wordt, druk in een zone (mega space battles tussen 2 grote factions) dan gaan meerdere shards aan die zone werken.

[ Voor 14% gewijzigd door roy-t op 05-10-2008 13:50 ]

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
@TS: ik zou proberen gewoon een implementatie te maken van een single-zone kleine wereld met support voor 100 ofzo spelers die daar rondlopen en interactie plegen. Dit aangezien je waarschijnlijk je interesse verliest voor je project voordat je uberhaupt aan schalen naar duizenden spelers moet denken.
roy-t schreef op zondag 05 oktober 2008 @ 13:48:
Eve online gebruikt trouwens ongeveer boven beschreven systeem om in 1 wereld 250.000 spelers tegelijkertijd te laten spelen (erg cool, super grote wereld en zoveel spelers tegelijkertijd) elke computer daarachter heet een shard, en die shards zorgen ervoor dat elke zone verwerkt wordt, druk in een zone (mega space battles tussen 2 grote factions) dan gaan meerdere shards aan die zone werken.
Kleine opmerking hierover; shards stammen uit de Ultima Online tijd, en worden vooral gebruikt om gescheiden servers met eigen werelden aan te duiden. Zoals de WoW 'realms'. Eve is juist 1 grote 'shard'. Ultime Online voerde het verhaal dat de 'realiteit' als een crystal uit elkaar gespat was in verschillende shards. Een 'in character' verklaring voor een technische beperking. Dat is dus waar de naam shard vandaan komt. Ik speel zelf Eve-Online en heb de devs nog nooit over de machines als verschillende shards gehoord.

[ Voor 12% gewijzigd door Hydra op 07-10-2008 17:54 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • R.G
  • Registratie: Januari 2009
  • Laatst online: 03:08

R.G

Hallo Allemaal

even offtopic:
ik ben heel erg nieuwsgierig naar jouw idee en uitwerking.
waarmee maak je de game?
kun je wat programma's opnoemen.
zelf ben ik een beginnend programmeur.
ooit ben ik ook zoiets als dit van plan :)

ontopic:
heb helaas nog niet genoeg info en ervaring op dit gebied, dus zal je helaas niet kunnen helpen.

maar zou het super vinden als je me dit zou kunnen zeggen

alvast bedankt _/-\o_

mvg R.G

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:27

Creepy

Tactical Espionage Splatterer

Je hebt door dat je topic uit 2008 omhoog kickt?

De vragen die je nu stelt zou je in eerste instantie zelf kunnen opzoeken. Over hoe je een game maakt, met welke tools, welke tools je zelf zou kunnen maken etc. is stiekum best een hoop informatie te vinden. Ga gewoon zelf opzoek en aan de slag. Niet nodig om daar een oud topic voor te kicken ;) Mocht je dan wat specifiekere vragen hebben dan kan je natuurlijk altijd nog een topic openen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.