Miten tehdään verkkopeli?

Facebook ym. Javapelit on suosittuja, ja kysymys siis kuuluu miten niitä tehdään? Ok, Ok, javalla javapelit,
flashilla flash-pelit, mutta kun haluaisin tietää miten tehdään SELAIMESSA pelattava YHTEISÖLLINEN peli, jossa
siis pelaaja on selaimellaan yhteyksissä pelipalvelimeen ja päinvastoin, siis semmoinen Farmi tms. peli jota voi pelata tuhannetkin ihmiset samaan aikaan.

Mikä paras ohjelmointikieli /alusta/editori tällaisen tekemiseen, entä millainen salaustekniikka pelikommunikaatiioon selaimen ja palvelimen välillä, varmaan tarvitaan myös mySQL osaamista? Löytyykö yleensäkään aiheesta mitään hyvää infosivua?

T. kiinnostunut
3687
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

Kysymys on lähinnä siitä, että mitä kaikkea ominaisuuksia siinä pelissä pitää olla.

Kyllä flashillä äkkiä tekee pelin jossa voi olla tuhansia pelaajia ja flash viestii keskuspalvelimen kanssa siitä missä kukin pelaaja on jne.

Jos pelin pitää pyöriä selaimessa ja sen pitää olla luokkaa world of warcraft niin ainakin NeoAxis-framework osaa pyörittää peliä myäs selaimen pluginin kautta.

http://neoaxisgroup.com/

Paras ohjelmointikieli on se, jolla saat aikaiseksi ne pelisi vaatimukset. Jos sen pitää pyöriä selaimessa, niin tutkisin ensin mitä mahdollisuuksia siihen on.

Googleen kun heittää flash mmo game nin tlee satoja osumia.

http://www.panebianco3d.com/flash-game-metalwarriors.htm
http://www.battleon.com/

Salaustekniikkana voi käyttää vaikka https/TLS/SSL

Itse palvelin voi olla tehtynä millä vaan tekniikalla, kunhan se osaa hoitaa ne hommat jotka sille kuuluu. Selaimessa yleensä pyörii vaan joku käyttöliittymä peliin ja kaikki muu tapahtuu palvelimella. Tämä sen takia, että muuten joku olisi kohta koodaamassa hackiä väliin, jolla sinun ukkosi osaisi aina ampua kaikkia suoraan päähän tai juoksisi 3x nopeammin.

Jos palvelimen täytyy myös osata fysiikkalaskenta eli esimerkiksi miten pelaaja putoaa painovoiman toimesta, niin huono sitä palvelinta on sitten koodata PHPlla. Pitää tehdä se vaikka C ja käyttää vaikka PhysX-kirjastoa hoitamaan se fyysikka.

Kannattaa ottaa joku ilmainen paketti, jossa kakki tarpeellinen tulee mukana.

Esimerkiksi juri tuossa NeoAxiksessa Ogre 3D-grafiikkamoottori. Sen päälle on liimattu C#-framework, jossa PhysX hoitaa fysiikan ja DirectX hoitaa äänet.

Paketin mukana tulee demo server/client ratkaisusta. Panssarivaunupeli, jossa voit pistää kavereita turpaan.

Se täytyy sanoa varoituksen sanana, että jos sulla ei ole 20-hengen tiimiä apuna, niin simppelin pelin tekoon voi mennä äkkiä se 6kk ja "yhteisöllisen" pelin tekemiseen muutama vuosi

Äänestä

Itse laittaisin palvelimelle MySQL tai PostgreSQL tietokannan ja sitten php-koodilla tekisin palvelinpään ohjelmiston. Tällainen palvelinratkaisu siksi että noita tekniikoita tuetaan yleisesti ja ne ovat ilmaiseksi saatavilla. Jos palvelinkoodin tekisi esimerkiksi Javalla saattaisi olla vaikea löytää edullista palvelintilaa.

Selaimessa pyörivä koodi riippuu, aivan kuin toinen vastaaja jo painottikin, hyvin vahvasti siitä minkälaisesta pelistä on tarkalleen ottaen kysymys. Selainkoodi voisi olla vaikka vain perus-html:ää, missä olisi se hyvä puoli että peli toimisi lähes millä laitteella vain kunhan näytön resoluutio otettaisiin huomioon. html:ää voisi värittää sitten vaikka javascriptillä jolloin siitä tulisi ajaxia (vai mikä hel***ti sen tekniikkakombinaation nimi tänä päivänä nyt sitten sattuu taas olemaankaan, ei voi muistaa, vaihtuu niin usein.)

Jos peliin halutaan enemmän vilkkuvia valoja ja halutaan että se reagoi nopeasti käyttäjän toimintaan, täytyy ottaa käyttöön raskaammat keinot, mitkä tarkoittavat tänä päivänä lähinnä flashia ja javaa. Toki muitakin ratkaisuja on mutta ne usein vaativat käyttäjiltä ylimääräistä asentelua ja säätöä, joten suosittelen pitäytymään javassa ja flashissa.

Näistä ehkä flash on nykyään aavistuksen verran laajemmin käytössä kuin java. Tosin kommunikointi palvelimen (tai jopa suoraan muiden pelaajien) kanssa on imho helpompaa java-appletista kuin flashkikkareesta.

Ehdotan että mietit tarkemmin että minkälaista peliä itse asiassa haluaisit tehdä, ja hahmottelet paitsi mieleesi myös paperille selkeitä suunnitelmia mitä peli tulee sisältämään. Asioita selkeyttää kummasti jos vaikka piirrät pelistäsi screenshotteja paperille. Näin näet sellaisia asioita mitä pitää ottaa huomioon ja mitä et ehkä muuten tulisi ajatelleeksikaan. Sitten kun sinulla on selkeä kuva siitä mitä peli tulisi olemaan on paljon helpompi arvioida että mikä tekniikka soveltuu parhaiten pelin toteuttamiseen.

Äänestä
  • opettele socket ohjelmointia, sen avulla voit muodostaa helposti yhteyden clientin ja serverin välillä.

    Äänestä

Kommentoi aloitusta


lisää verkkoon kirjoitti:

Facebook ym. Javapelit on suosittuja, ja kysymys siis kuuluu miten niitä tehdään? Ok, Ok, javalla javapelit,
flashilla flash-pelit, mutta kun haluaisin tietää miten tehdään SELAIMESSA pelattava YHTEISÖLLINEN peli, jossa
siis pelaaja on selaimellaan yhteyksissä pelipalvelimeen ja päinvastoin, siis semmoinen Farmi tms. peli jota voi pelata tuhannetkin ihmiset samaan aikaan.

Mikä paras ohjelmointikieli /alusta/editori tällaisen tekemiseen, entä millainen salaustekniikka pelikommunikaatiioon selaimen ja palvelimen välillä, varmaan tarvitaan myös mySQL osaamista? Löytyykö yleensäkään aiheesta mitään hyvää infosivua?

T. kiinnostunut

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu