LU-LSP-b11:projekts
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:
- E - disconnect (end game) Parametri:
- G - go Parametri: virziens (U, B, L, vai R burti)
- F - shoot (fire) Parametri:
- T - stobra kustiiba (turret movement) (opcionāls) Parametri:
Serveris -> klientam
- M - map info
Map info parametri
Kartes lauciņi var būt:
- šķērslis (necaurejams tankiem) - O
- masīvs šķērslis (necauršaujaums & necaurejams tankiem) - X
- ceļš - R
- zāle (kustība notiek 2x lēnāk, nekā pa ceļu) (opcionāls) - G
- purvs (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 Health-status"
Tips:
- T - tanks
- S - shot (šāviņš)
Objekta piemērs: "O T 1 2 100" - tanks lauciņā (1,2) ar 100% veselību.
Koordināta 0 0 atbilst augšējam kreisajam stūrim.