LU-LSP-b11:projekts

From DiLab
Revision as of 17:52, 20 December 2011 by Atis (talk | contribs)
Jump to: navigation, search

Uzdevums: izstrādāt koncepciju un arhitektūru klienta-servera sistēmai, kas realizē daudzlietotāju vidi reālā laika stratēģiskai datorspēlei "Tanciņi".


Serveris

Serverim jābūt savietojamam ar kopējo komunikācijas protokolu - tā, lai visu grupu klienti varētu pie tā slēgties!

Serveris spēj saņemt šādas komandas:

  •  ?

Serveris var nosūtīt šādas komandas:

  •  ?

Ir pasaules karte ar NxM šūnām. Katrā šūnā var būt:

  •  ?

Servera programmā ir "galvenais cikls" (while (1) vai for (;;)), tajā notiek:

  •  ?

Serveris uztur informāciju par klientiem:

  •  ?

Klients

Klientam jābūt savietojamam ar kopējo komunikācijas protokolu - tā, lai tas spētu slēgties pie visu grupu serveriem!

Klients spēj saņemt šādas komandas:

  •  ?

Klients var nosūtīt šādas komandas:

  •  ?

Klienta programmā ir "galvenais cikls", tajā notiek:

  •  ?

Direktorijas serveris

Uztur informāciju par aktīvajiem serveriem:

  •  ?

Datu apmaiņas protokols

Izmanto TCP protokola soketus, ports 1337.

ASCII formāts datiem.

Komandas sākumu apzīmē ar '^'.

Komandas beigas apzīmē ar '$'.

Komandas piemērs:

^G_U$

Nozīme: "go up" - virzīties uz augšu.

Komandu parameterus vienu no otra atdala ar kādu no whitespace simboliem: tukšumu, tab ('\t'), newline ('\n') vai carriage return ('\r') simboliem. Ja ir vairāki whitespace simboli pēc kārtas, tie jāuztver analoģiski vienam.

Komandas

Klients -> serverim

  • S - start game Parametri: nav
  • E - disconnect (end game) Parametri: nav
  • G - go Parametri: virziens (U, B, L, vai R burti)
  • F - shoot (fire) Parametri: nav
  • T - stobra kustība (turret movement) (opcionāls) Parametri: virziens (U, B, L, vai R burti)

Serveris -> klientam

  • M - map info

Map info parametri

Kartes lauciņi var būt:

  • šķērslis (necaurejams tankiem, obstacle) - O
  • masīvs šķērslis (necauršaujaums & necaurejams tankiem) - X
  • ceļš (road) - R
  • zāle (grass, kustība notiek 2x lēnāk, nekā pa ceļu) (opcionāls) - G
  • purvs (swamp, kustība notiek 5x lēnāk, nekā pa ceļu) (opcionāls) - S

Map info komandas parametri:

  • Kartes dimensijas: divi skaitļi N (platums) un M (augstums).
  • NxM burtus gara karte ar terrain type. piemēram: "R R R R X R ...". Karti sūta, sākot no augšējās rindas, no kreisās puses uz labo.
  • Nenoteikta garuma saraksts ar objektiem. Objekts tiek aprakstīts šādi:

"O-burts Tips X-koordināta Y-koordināta [citi paramteri]"

Tips:

  • T - tanks
  • S - shot (šāviņš)

"Citus parametrus" norāda tikai tankam. Tie ir:

  • Tanka īpašnieka IP adrese un ports
  • Tanka virziens (U, B, L, R)
  • Tanka stobra virziens (U, B, L, R)
  • Health-status (0-100%)

Objekta piemērs: "O T 1 2 10.0.0.1 33780 L L 100" - tanks lauciņā (1,2), piederošs klientam ar adresi 10.0.0.1 un portu 33780, pavērsts pa kreisi, ar stobru pavērstu pa kreisi, ar 100% veselību.

Koordināta 0 0 atbilst augšējam kreisajam stūrim.