Avatar billede imnewb Nybegynder
31. august 2005 - 15:25 Der er 5 kommentarer

Java: At lave et spil.

Hej. Har længe tænkt over at begynde RIGTIGT på Java, da deres sprog kan få mange brugere online til et fx. spil. Fremfor Javascript hvor serveren kommer til at blive belastet når 20 spillere er online.

Så nu har jeg tænkt på at begynde for alvor med Java.

Så har nogle konkrete spørgsmål:
1. Hvordan får man lavet et spil?
2. Hvordan får man vist brugere som er online, hvis man ikke kører med MySQL eller XML?

- Det jeg mest vil spørge om er HVORDAN man får vist andre brugere som er online  i spillet på deres x-y kordinat-system, hvor man nu placere spillerne på.

Fx. Runescape.com er lavet i Java, og kan holde op til 40.000 spillere online + uden en overbelastning, hvordan gøres dette?

Tja, har mange spørgsmål.
Avatar billede sondergard Nybegynder
31. august 2005 - 16:48 #1
1. Hvad for et spil havde du tænkt dig???
2. Man vil lade webhosten køre en Java server med en form for "registrering" så brugerne registrerer sig når de logger på. Serveren kan så fordele denne information til klienterne.
Avatar billede arne_v Ekspert
31. august 2005 - 20:35 #2
re 1)

Får nogle års Java erfaring og går igang.

:-)

re 2)

Du kan sagtens gemme brugerne i en in memory struktur

----

Jeg kender ikke spillet, men hvis du skal have 40000 spillere på en Java server,
så bruger de formentligt clustering d.v.s. flere servere

UDP eller TCP sockets med NIO er normalt betydeligt mere effektive end
HTTP requests
Avatar billede jakoba Nybegynder
31. august 2005 - 20:37 #3
"40.000 spillere online" Det gør du ikke på en billighosting fra clishe. Det vil sandsynligvis kræve en serverpark på 10 til 100 servere der lader somom de er een.

Men start med det basale:
brugeren er  KLIENT  og serveren er  SERVER . der er nogen meget faste regler for hvordan de skal opføre sig overfor hinanden.

KLIENT giver kommandoer og modtager respons fra SERVER
SERVER svarer. Den må aldrig selv tage initiativet, kun svare når der bliver spurgt.

Det hedder client/server modellen og den bør du holde dig til.

Så for at holde rede i andre spilleres position må klienten spørge igen og igen "er der ændret noget siden sidst?" som oftest svarer serveren nej, men hvis een har flyttet sig sender den ID og nye koordinater, hvad vej han vender, om han står, går eller læber, osv. Den info tager så klienten (javakoden i din Applet) og tegner den nye situation. Når spilleren selv foretager sig noget bliver det straks fortalt til serveren så den kan sige det videre til de andre spillere når deres applet spørger.

Man kan speede det op med fintede tricks såsom at lave en lille server i klientmaskinerne som serveren så kan få lov at være klient til, men det er avanceret programmering, ikke noget du skal starte med.

mvh JakobA
Avatar billede imnewb Nybegynder
31. august 2005 - 21:25 #4
Okay. Kan i give nogle danske links - til en guide til et eller andet spil som et slags "multiplayer" sådan jeg kan få et overblik over hvordan det hænger sammen og ser ud når der er flere brugere på "spillet" ?

På forhånd tak!
Avatar billede stephanryer Nybegynder
07. november 2005 - 22:36 #5
Hvis du slet ikke har lavet spil før vil det være en dum ide at begynde med at multiplayer spil
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I dag 06:10 Excel åbner fil i kæmpe format Af Aske i Excel
I går 22:00 Datafordeler Af Lsk i PHP
I går 12:37 Summere beløb pr. dato Af TTA i Excel
31/1022:44 Tilslutte chassic fans Af viking69 i PC
31/1020:28 LED lysstofrør Af ErikHg i Fri debat