Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Selainpeliin kieli?

Sivun loppuun

WKoA [04.12.2012 20:13:26]

#

Eli mitä ohjelmointikieltä suosittelette mikäli tavoitteena olisi tehdä simppeli selainpeli?

Peli olisi siis suoraa ylhäältäpäin kuvattu autopeli, jossa voidaan ajaa vapaasti kaupungissa. Tarkoitus olisi myös, että jos useampi ajelee omalla autollaan kaupungilla, niin muidenkin pelaajien autot näkyisi kartalla samanaikaisesti.

Ja aina plussaa jos homma toimii käyttäjälle päin suoraa selaimella, ilman minkään kilkuttimien asetamista.

Eli mitä ratkaisua suosittelisitte kieleksi ja tuoksi ratkaisuksi, että toisten pelaajien sijaiti saadaan lennosta peliin?

Ripe [04.12.2012 20:18:59]

#

Selainpelin kieleksi sopii javascript erittäin hyvin, koska se suoritetaan selaimessa ja sillä voi piirtää esim. html5:en canvas-elementtiin. Tuo ratkaisu, jolla saadaan toisten pelaajien sijainti peliin voi olla esim WebSocket. Sitä voi käyttää javascriptillä selaimen päässä, mutta hakeaksesi muiden pelaajien sijainnin tarvitset palvelimelle jonkun skriptin (esim. Pythonilla ja Tornadolla tehdyn), joka hakee esim. tietokannasta pelaajien sijainnin ja lähettää ne WebSocketin kautta selaimeen. Tosin ratkaisusta voi tulla tuolla tavalla hidas, jos pitää hakea monesti sekunnissa autojen sijainti, mutta taitaa olla helpoin tapa.

The Alchemist [04.12.2012 20:49:20]

#

Reaaliaikaista dataa ei kannata minnekään tietokantaan tallentaa, vaan aina kun pelaajan kone lähettää serverille dataa, serveri lähettää sen eteenpäin muille pelaajille. WebSocket on tarkoitettu juuri mahdollistamaan kaksisuuntainen tiedonvaihto selaimen ja palvelimen välillä, kun perinteiset ajax-tyyppiset ratkaisut sallivat palvelimen ainoastaan lähettää vastauksen (response) selaimelta tulleeseen pyyntöön (request). WebSocketia käyttäen palvelin voi lähettää spontaanisti dataa selaimelle.

Ripe [04.12.2012 21:12:51]

#

Alchemist: totta. En ole käyttänyt WebSocketia vielä niin paljoa, joten en tajunnut tuollaista. Sainpahan taas lisää tietämystä.

Metabolix [04.12.2012 21:26:30]

#

WebSocket kylläkin vaatii erillisen palvelinohjelman, jota taas ei webhotelleissa välttämättä järjesty.

The Alchemist [04.12.2012 22:24:35]

#

Ripen mainitsema Tornado on kenties yksi yleisimmistä tällaisista sovelluksista. "Palvelinohjelma" voi tosin kuulostaa hienommalta kuin mitä oikeasti tarvitaan; voihan sen koodata php:lläkin. Tosin kokemukseni mukaan WS-protokolla on aika monimutkainen juttu toteuttaa*, joten valmiin softan käyttö olisi paljon helpompaa.

* Viimeksi kun leikin WebSocketeilla, piti tukea kolmea melko erilaista versiota WS-protokollasta samaan aikaan, koska eri selaimet toteuttivat eri version standardista...

Metabolix [04.12.2012 22:32:23]

#

The Alchemist kirjoitti:

"Palvelinohjelma" voi tosin kuulostaa hienommalta kuin mitä oikeasti tarvitaan; voihan sen koodata php:lläkin.

Voihan sen koodata millä tahansa, mutta tavallinen HTTP-palvelimen kautta haettava nettisivu ei silti kelpaa, vaan koodi pitää saada käyntiin pysyvästi.

WKoA [05.12.2012 21:50:03]

#

Oma palvelin on mahdollinen, joten webhotellin rajoituksia ei tarvitse miettiä.
Olisiko tuohon websocketin käyttöön jonkinmoista hyvää tutoriaalia? Entä Tornadon?

The Alchemist [06.12.2012 10:10:47]

#

Itse ainakin olen saanut kirjoitettua pienen webchatin ihan Google-hakua hyödyntäen, suosittelen kokeilemaan sitä ensin.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta