11. juli 2009 - 23:10Der er
11 kommentarer og 1 løsning
Multiplayer spil over netværk (Brætspil)
Hej
Jeg er ved at lave et multiplayer brætspil. Jeg er ved at oprette serverdelen dertil. Jeg havde tænkt mig at lave serverdelen i en jar fil for sig. Også hvis en spiller vælger at trykke opret spil, så skal denne server oprettes. Så mit første spørgsmål er:
1. Hvordan kører/loader man en jar fil inden fra et projekt?
Denne jar fil skal så bare være serverdelen og de kan begge hente info herfra, så mit andet spørgsmål er:
2. Hvordan skal jeg sætte denne server op?
Jeg har lige nu gjort sådan at der først oprettes en ServerSocket og derefter en Socket for hver spiller. Er dette den rigtige måde at gøre det på?.
Og hvordan sætter man det nemmest op / hvordan plejer man at gøre?
Jeg havde tænkt mig at lave en client.jar. Denne skal have en GUI, så brugeren kan se hvad der sker osv. Så havde jeg tænkt mig at der i denne GUI skulle stå noget med "Opret Spil" og når man trykker der skal server.jar eksekveres sådan at serveren så ligger på hans maskine. og han bliver jo autoconnected til localhost. Så er han selv forbundet til sin egen server og serveren venter nu her indtil en udefra er forbundet også. Nu er der to spillere og spillet skal begynde.
Er det nødvendigt med en ny tråd per client, når det kun er et spil for 2spillere?. Eller dvs. man kunne vel bare lave en static variabel der fortæller hvis tur det er også bruge denne til at vide hvornår man vil se på input fra en bestemt bruger så.
2)
Jeg vil gerne køre det på TCP, så er jeg sikker på alle info når frem.. Og når det alligevel er et brætspil, hvor man blot rykker tur for tur uden noget fancy live grafik, der skal streames, så er det vel ligemeget med UDP.
Jeg har fået serverdelen til at køre fint nu. Det var en god ide med at lave en ny tråd for hver client.
Men lige nu laver jeg clienten i ét projekt og serverdelen i et andet projekt. Når serverdelen er færdig vil jeg ligge den med som en jar fil hos clienten, så han har mulighed for at køre denne server på hans computer. Så har stadig brug for at vide hvordan jeg starter jar filer fra koden hos clienten. f.eks. hvis han nu trykker på knappen "Opret Spil", så kaldes metoden createGame(), der ville jeg så skrive:
createGame() { //1.Kør server.jar her //2.Connect til server med det samme (localhost) }
Forresten hvad er den der common.jar? bare en der samler client.jar og server.jar?
Jeg har nu lavet det sådan, at jeg har én tråd for hver client, der ligger de indkomne data i en statisk kø, så har jeg main tråden til at håndterer disse inputs efter first in first out princippet.
Dette fungerer ok indtil videre. :) men nu må vi se. Det er første gang jeg laver et spil over netværk, men det er lidt sjovt at rode med :D
Næh. Adder egentligt bare til en ArrayList. Her tager jeg så bare 0indexet ud og sletter det når jeg er færdig.. Kunne vel gøre det samme med en linkedlist, Men hvad er der egentligt godt ved concurrent? er køretiden hurtigere eller?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.