[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Klientuavhengig protokoll
- To: pvvmud@pvv.ntnu.no
- Subject: Klientuavhengig protokoll
- From: Aarnes Andre <8aa13@qlink.queensu.ca>
- Date: Mon, 23 Nov 1998 01:25:55 -0500 (EST)
- Delivered-To: home/andersr+pvvmud@homepvva.pvv.ntnu.no
- Delivered-To: andersr+pvvmud@pvv.ntnu.no
- Delivered-To: pvvmud@pvv.ntnu.no
Jeg folger opp noen av ideene pa denne epost-lista, og foreslar at vi
implementerer en "klientuavhengig protokoll" for kommunikasjon mellom
tjener (Global Server) og klient.
[KLIENTUAVHENGIG]
Med klientuavhengig mener jeg en protokoll som ikke tar hensyn til hvilket
brukergrensesnitt klienten bruker. Dette vil tillate en rekke forskjellige
kontrollmekanismer og flere forskjellige grafikkmodeller. En slik
protokoll vil ogsa gjore det enkelt a implementere en kunstig intelligens
som en klient. I tillegg vil losningen gi storre mulighet for spillere med
darligere maskinvare/ nettverksforbindelse til a delta i spillet.
Protokollen vil inneholde numerisk informasjon som objekt-ID, hastighet,
posisjon ol. etter behov. Protokollen vil ikke inneholde grafiske
objekter, objektbeskrivelser el.
[EKSEMPEL]
Et simpelt eksempel pa operasjon med denne protokollen:
[server] Klient har posisjon (x,y), retning vest, hastighet 0. Klient
ser: Objekt 237 (brunt, lite hus) posisjon (x-10,y). Objekt 179 (Gammel
bestemor) posisjon (x-9,y), fart 1 mot ost.
[klient]
(1. person 3D modell viser 3D-objekter fra grafisk objekt DB)
(3. person 2D modell viser 2D-objekter fra grafisk objekt DB)
(tekstversjon bruker beskrivelse fra objekt DB)
(AI-versjon trenger ikke objekt-DB, og benytter kun tallene fra
protokollen)
Klient sender deretter informasjon om spillerens handlinger.
[OBJEKTER]
Siden vi onsker muligheten til a benytte objekter som ikke befinner seg i
klientens objekt DB ma vi implementere en ekstra protokoll der klienten
kan be om a fa et objekt som ikke finnes i objekt-DB.
fra eksempelet over:
Objekt 179 (gammel bestemor) finnes ikke i objekt-DB, sa de respektive
klientene ber om a fa tilsent objektet fra grafisk objekt server:
3D-klient: Request(3D, object179)
2D-klient: Request(2D, object179)
txt-klient:Request(txt,object179)
Det er nodvendig at Global Server forteller klienten pa forhand hva som er
sannsynlig a mote innenfor et omrade slik at objektet er hentet ned til
klientens objek-DB. Eks.:
Server to klient: Prepare(object179) ->
Klient til Grafisk Objekt server: Request(x, object179)
[KLIENT-JUKS]
Dersom klientens instans (informasjon om egenskaper etc.) er lagret pa
server, og kun kontrollinformasjon hentes fra klienten vil ikke den
enkelte klient kunne jukse. For a unnga juks i kontrollmekanismen kan
f.eks. folgende sjekk utfores:
-Kan Tor flytte seg 100m. pr. sekund?
Det er en risiko for at en klient modifiseres til a opplyse brukeren hver
gang kommandoen "Prepare" kommer fra server.
Andre'