Difference between revisions of "LU-LSP-b11:projekts"
(New page: {{TocRight}} 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...) |
|||
Line 1: | Line 1: | ||
{{TocRight}} |
{{TocRight}} |
||
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". |
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 = |
= Serveris = |
||
Line 39: | Line 40: | ||
* ? |
* ? |
||
= Datu apmaiņas protokols = |
|||
= 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. |
|||
* Binārs vai ASCII? |
|||
* Kāds paketes formāts? |
|||
* Kādas komandas jāatbalsta? |
|||
* Spēle notiek reālā laikā - kādas prasības uzliek tas? |
|||
* Jāatbalsta autentikācija? |
|||
* Jāatbalsta privātums? |
|||
* Jāatbalsta datu integritāte? |
|||
* Jābūt viegli paplašināmam? |
Revision as of 16:30, 20 December 2011
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.