ainulindale-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Ainulindale-devel] Network Level


From: Andrea Negro
Subject: [Ainulindale-devel] Network Level
Date: Sun Apr 14 09:54:02 2002
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.9) Gecko/20020311

Dunque, visto che e' un gioco in rete, qualche sega mentale sul network layer mi sembra che ci stiano bene!! Il sistema stile mud mi sembra poco adatto e un po' obsoleto (tcp unicast, intendo). Ci sono alcune categorie di dati che devono girare in rete, e vorrei che riuscissimo a formalizzare alcune categorie, e poi stabilire il tipo di connessione adatto per ciascuna categoria. Per spararle, e fare qualche esempio di quello che intendo:

- Informazioni generate dal server sulla situazione del mondo, ad esempio lo spostamento da x a y di un certo mob (troviamo un altro termine per mob?), le vedo bene in multicast/udp (tanto per far capire).

- Ci saranno certamente alcune informazioni che devono essere scambiate tra client e server e che devono essere transazioni sicure, ad esempio se poso un oggetto, il server deve saperlo assolutamente, o se tolgo l'armatura: eventi atomici che non possono essere persi, li vedo su una unicast client/server su tcp.

- Dal momento che ci sara' molta interazione tra i client, potrebbe essere interessante sfruttare una o piu' reti peer2peer, per alleggerire il traffico verso il server. Ad esempio, se io dico 'ciao' ad una persona che sta davanti a me, non e' necessario che il server lo venga a sapere, perlomeno non immediatamente. Mi vengono in mente due cose: + Prima cosa, che tutto cio' che il server non necessita di sapere, potrebbe venirlo a sapere in un secondo momento: si puo' usare una specie di buffer nel client in cui mettere eventi secondari da mandare al server, e poi mandarli quando un monitoraggio del carico di rete comunica che c'e' banda libera per l'invio. Eventualmente, su questi pacchetti di dati si puo' operare una compressione potente: visto che non sono urgenti, il server puo' anche tenerseli compressi finche' non ha nulla da fare e scomprimerli quando non ha nulla da fare (o eventualmente archiviarli compressi, dipende dal tipo di dato). + Seconda cosa, si potrebbe pensare ad una gestione raffinata delle connessioni p2p. Del tipo: se io faccio gruppo con altre 5 persone, potremmo pensare di essere messi in un p2pG (peer-to-peer-group), e tutte le comunicazioni "gtell" vengono fatte su questo p2pG (eventualmente, il client capogruppo invia bufferizzando secondo il punto precedente il log delle conversazioni al server, in modo da evitare duplicati verso il server. Credo inoltre che un traffico del gerene sia molto piu' efficiente che se tutti i client sparassero pacchettini con dentro 'ciao', 'vado' verso il server). Un eventuale Imp che volesse 'snoopare' non fa altro che inserirsi nel p2pG: trasparente e elegante, secondo me. E' il primo esempio che mi viene in mente, ma potremmo pensare che il sistema centrale preveda un tot di situazioni in cui si puo' formare un p2pG (ad esempio, tutte le persone in una stanza, o su base geografica, o tutti i combattenti di una battaglia), e tenga traccia dei p2pG attivi, e li gestisca dinamicamente.

Che ne pensate? Che sparate voi? :)

--
Kind Regards,
Andrea Negro

IBM Linux Team
-------------------------
Mobile: +39 347 4008768
Office: +39 02 59620441
Work Email: address@hidden
Home Email: address@hidden
Icq: Nepher, 25458773




reply via email to

[Prev in Thread] Current Thread [Next in Thread]