Olen tässä aloitellut omaa tilepeliä. Siitä nyt kuitenkin on paisunut melkoinen projekti, joten ajattelin kysäistä täältä jos jotakuta kiinnostaisi lähteä mukaan. Olen kyllä laskenut sen varaan, että itse tämän tulen tekemään jos ei halukkaita löydy, mutta ainahan tuo nopeuttaisi koodaamista ja olisi jopa mielekkäämpää. Kielenä Java ja toteutus applettina.
Itse pelin aloitin viime hiihtolomalla(olisikohan nyt ollut joku helmi- maaliskuun vaihde), joten tämä nyt on ollut viereillä jo hetken. Projekti on edistynyt hitaasti, sillä tämä on ensimmäinen pelini enkä tuolloin tiennyt käytännössä mitään pelien teosta(löysimpä aiheenkin jossa tätä kyselin). Tuolloin olin vielä melko tietämätön kielestäkin(lukion peruskurssi Javasta takana -> selittää koodin mössöyden ^^).
Tarkoituksena olisi tehdä iki-ihanasta Pokémon-pelistä oma(ikuisuusprojektina online-) versio. Pelistä on valmiina jo perus tilemoottori, joka tosin vaatii hieman pientä säätöä, chat-clientti ja -serveri(ei vielä liitetty itse peliin), tunnissa toteutettu alkeellinen karttaeditori, fonttimoottori ja taistelu- sekä skriptimoottorin alku.
Pelille on myös omat sivut, joita tosin en itse ole tehnyt. Näistä sivuista tekijälle kiitokset ja kommentteja niistäkin on toivottavaa antaa. Appletti sijaitsee vielä täällä. Valitettavasti se ei välttämättä toimi Linuxilla ja muillakin saattaa esiintyä bugeja(yleensä uudelleen lataus auttaa). Vielä ei ylimenoa kartalata tarkisteta, joten jos kävelet liian kauas peli jää jökkiin. Peli lataa käynnistymättömänä jonkin aikaa ladatessaan kuvia taulukkoon, joten siinä vie hetki. Sama koskee karttaeditoria.
Ne joilla peli ei jostain syystä toimi joutuvat tyytymään näihin kuvakaappauksiin.
Kaikki palaute pelistä ja sivuista on tervetullutta ja jos joku projektista kiinnostui postatkoon tänne tai lähettäköön sähköpostia!
Ainakin hyvältä näyttää tähän mennessä, mutta ooh, saaks sä varmasti käyttää noita Pokémon(tm)(C)(mitälie)-hahmoja pelissäs?
Luultavasti en saa käyttää, mutta tästä tuskin tulee maailmanlaajuista hittiä, joten ketään tuskin kiinnostaa käyttääkö joku harrastepelissään tuotemerkkejä. Varmasti laittomampiakin/ikävämpiäkin asioita tapahtuu. ;)
Ja jos joskus tuntuu siltä, että tätä pitää väkisin maailmalle tuputtaa voi aina grafiikat vaihtaa uusiin ja unohtaa Pokemon-merkit.
[muoks]
Menimpäs nyt laittamaan aiheen väärään osioon. Tuonne yleiseen keskusteluun tämä oli tarkoitettu. Jos modet katsovat asialliseksi siirtää, niin sen tehkööt.
Eiköhän se oo niin että ne Pokemonin keksijät vaan on iloissaan ku saa lisää _ilmaista_ mainosta peleilleen/sarjalleen.
Ja ihan hyvältä peliprojektis vaikuttaa, tsemppiä sen tekemiseen :D
Edit: Vielä sivuista sanon sen että on kauhean hitaat ladata kun on netti vaan puolenmegan. Noita kuvia vois pakata vähän. Siellä näytti olevan ainakin 100px verran turhaa tyhjää tilaa otsikkokuvassa ja muuallakin
Mielenkiintoista, legendaarinen Pokemon elää yhä. Tuo tämänhetkinen appletti oli kyllä ankaran buginen, välkkyy, vilkkuu ja tilttaa parin askeleen kuluttua. Millä piirrät grafiikat? Voisin ehkä harkita osallistumista, mutta en todellakaan tiedä riittääkö minulla aikaa enempää kuin muutama tunti viikossa. On nimittäin oma online-manageriprojekti kesken, tarkoitus oli opetella Javaa siinä taustalla mutta se jäi vähän unohduksiin kun ei ollut mitään mielekästä koodattavaa. Osaan siis Javan perusasiat, luokat yms, mutta kokemus Javan erikoiskirjastojen käytöstä on vähäinen. Ota yhteyttä jos haluat... Email/meseosoite löytyy profiilista.
Tuo tilttaus johtuu siitä, että olet kävelemässä kartan reunan yli(eli ruudun reunan jälkeen ei olekaan enää karttaa jäljellä). Vilkkuminen johtuu lähinnä kehityksen alla olevasta piirto-metodista, jota pyrin nopeuttamaan ja parantelemaan. Ja mitään guruahan en olekaan hakemassa, vaan ihan perustaidot riittävät.
Oisko mahollista saada tuon pelin koodi?
vois olla apuu kun en oo vielä kovin pitkään javalla koodaillu...
Argh vilkkumista, just tota oon täynnä kaikis java sovelluksis >_> e oo eläissäny nähny hyvin toimivaa java ohjelmaa.
tgunner kirjoitti:
Ainakin hyvältä näyttää tähän mennessä, mutta ooh, saaks sä varmasti käyttää noita Pokémon(tm)(C)(mitälie)-hahmoja pelissäs?
Kyllä se taitaa olla sillä tavalla, että vaikka pokemon onkin kaupallinen tuote, niin jos tuosta ei rahallista hyötyä saa, ja kun se ei periaatteessa kilpaile nintendon omien pelien kanssa, niin sallittua on.
Java on kyllä aika kökkäre, mutta on noita ihan toimiviakin softia. Hyviä esimerkkejä Eclipse ja Netbeans.
Jep. Nyt on koodia taas vähän optimoitu. Enää ei tehdä turhaa looppia(~9000 kertaa) vaan annetaan tiedot parametreinä. Vilkkuminen väheni kummasti ja taulukon ylivuotokin on jo suurimmilta osilta kunnossa. Enää ei tilttaa jos menee laidan yli. Pitänee päivitellä tuota linkkiä kunhan kerkeän.
Ja kyllähän Java taipuu vaikka mihin, kunhan sitä osaa käyttää(en väitä, että osaan). Tosin onhan ikävää, ettei esimerkiksi kaksoispuskurointia ja muuta rautaa lähellä olevaa toimintaa voi toteuttaa yhtä helposti kuin vaika C++:ssa.
Koodi on vielä tälläkin hetkellä huonoa, joten siitä ei välttämättä opi kuin huonoja tapoja. Kaikki, esimerkiksi piirtohommat ja muut rutiinit on itse tehtyä(ehkä ei sillä parhaimmalla tavalla), joten parempiakin sorsia opetteluun löytyy.
Muutama hyödyllinen linkki ihan yleisesti:
http://www.gamedev.net/reference/articles/
Jos joudut tekemään jotain pikselipohjaista laskentaa tuossa apletissa niin suosittelen, että tutustut MemoryImageSource luokkaan. Sillä saa aika nopeeta ja välkkymätöntä animaatiota aikaiseksi. Varmaan sen päälle saa aika nopean tilesysteeminkin.
pieni vanha esimerkki:
http://www.niksula.hut.fi/~jasainio/java/noise.
Nuo kuvat on sen näköösiä että olis voitu jostain emulaattorista ottaa. Voisin kyllä tulla jotain tekemään mutta ku en osaa javaa :(.
Dude kirjoitti:
Nuo kuvat on sen näköösiä että olis voitu jostain emulaattorista ottaa. Voisin kyllä tulla jotain tekemään mutta ku en osaa javaa :(.
Kyllä on varmasti emulaattorista varmasti otettu, itse olen joskus pelannut pokémon-pelejä, ja tismalleen tuontyyppiset grafiikat. Huomasin olevan grafiikat pokémonista jo aikaisemmin kun ilmeisesti samasta projektista jotain kyseli.
Nyt olen onnistunut saamaan taulukon ylivuodot kuriin, joten nyt pelin ei pitäisi tiltata ollenkaan. Nyt pääseekin sitten perehtymään tähän piirron hitauteen. Kaikki vinkit otetaan kyllä mielellään vastaan asiaa koskien. Tässä vielä suora linkki Applettiin: http://user.personal.fi/atk/Kaakeliuuni/
Kuvat lataan aluksi taulukkoon ja niitä sieltä sitten piirtelen, joten tuossa ei kai pitäisi olla mitään kummempaa. Kokeilin myös eri formaatissa olevia kuvia, mutta eivät nekään tuntuneet vaikuttavan asiaan.
Jos jotain vielä kiinnostaa saa projektiin lähteä mukaan. Olisi kuitenkin hyvä jos Java edes jotenkin taipuisi. Ja jos vinkkejä piirron nopeuttamiseksi keksitte ilmoitelkaa toki.
FooBat kirjoitti:
Jos joudut tekemään jotain pikselipohjaista laskentaa tuossa apletissa niin suosittelen, että tutustut MemoryImageSource luokkaan. Sillä saa aika nopeeta ja välkkymätöntä animaatiota aikaiseksi. Varmaan sen päälle saa aika nopean tilesysteeminkin.
Tuo on lähinnä kait pikselipohjaista piirtoa varten(ellen aivan väärässä ole). Tuo oma moottorini kun piirtää tilet kuvina, joten tuo ei kai oikein sovellu tähän. Luokka oli kyllä hyödyllinen ihan yleisesti.
Vaikuttaa oikeen mukavalta peliltä. Toivottavasti tulemme vielä joskus näkemään pelistä täysin valmiin version. Tsemppiä kehitykseen!
Ei nayta toimivan. nakyy vaan valkoonen ruutu.
Valkoinen ruutu näkyy yleensä n. 30-50s kun peli lataa kuvia taulukkoon. Jos peli ei kuitenkaan lataudu, niin millä käyttiksellä sitä koitat avata. Jostain syystä se ei Linuxilla toimi.
Nyt yritän tähän jonkinmoista skriptikieltä vääntää, jolla pitäisi pystyä luomaan uusi NPC haluttuihin koordinaattteihin, määritellä NPC:n puheet, pystyä pysäyttämään puhe haluttuun kohtaan(eli kun tekstilaatikko on täynnä odotetaan käyttäjän heräämistä) ja mielellään vielä vastata YES/NO -kysymyksiin. Jos jollain on kokemusta touhusta olisi kiva jos laittaisit vaikka linkkiä hyvistä artikkeleista. Lähinnä tuo tekstin seulonta ja avainsanojen etsintä kiinnostaa.
Mobel kirjoitti:
Valkoinen ruutu näkyy yleensä n. 30-50s kun peli lataa kuvia taulukkoon. Jos peli ei kuitenkaan lataudu, niin millä käyttiksellä sitä koitat avata. Jostain syystä se ei Linuxilla toimi.
Paa sorsat jakoon, niin selvitellään.
Mobel kirjoitti:
Nyt yritän tähän jonkinmoista skriptikieltä vääntää
En tiedä, onko siitä sulle mitään hyötyä, mut mulla on jotain noista featureista omassa, tosin C:llä tehdyssä, moottorissani: http://blaze.kapsi.fi/stella/
Sorsat ovat tässä:
http://user.personal.fi/atk/Kaakeliuuni/
http://user.personal.fi/atk/Kaakeliuuni/
Tiedostoja tosiaan on vain kaksi, joista toinen tuskin mitään virhettä Linuxin puolella aiheuttaa. Tarkoitus on nyt saada grafiikan piirto kuntoon ja sitten jakaa koodi paremmin luokkiin.
Kommentointi on kohtalaista, mutta joitakin purkkaviritelmiä löytyy. Jos koodia tosissaan aikoo syvällisemmin tarkastella suosittelen vilkaisemaan myös näitä selventäviä tiedostoja:
http://user.personal.fi/atk/Kaakeliuuni/
http://user.personal.fi/atk/Kaakeliuuni/
Eipä tuossa sen kummempaa ongelmaa näytä olevan kuin tiedostonimien ääkköset. Nimesin maps/kenttä* > maps/kentta* ja tein global search&replacen kenttä > kentta Peli.javassa, niin tuohan toimi heti.
Tarinan opetus: English is the language of computing, like it or not.
Blaze kirjoitti:
Tarinan opetus: English is the language of computing, like it or not.
Tästä olen toki samaa mieltä. ATK-kurssi oli ensimmäinen kosketus Javaan ja sieltä asti on jäänyt paha tapa laittaa muuttujat ja kommentit suomeksi. Korjaampa nuo tiedostonimet mahdollisimman pian ja laitan sitten palvelimelle.
Kiitoksia tuosta!
Muoks
Nyt ne muutin, joten tuon pitäisi nyt toimia Linuxillakin.
Tai suomenkielisiä nimiä voi kyllä käyttää, kunhan niissä ei ole ääkkösiä. Tarvittaessa ä:n voi muuttaa a:ksi ja ö:n voi muuttaa o:ksi.
Juuri näin nuo tiedostonimet muutinkin. Eli ä:stä a:ksi. Tosin Java antaa käyttää esim. muuttujissa ja metodeissa skandeja, joten tästä johtui tämä kämmi. Oletin Linuxin ymmärtävän ä:t samoin kuin wintoosan puolella.
Nyt sitten tuon skriptikielen ja piirron nopeuttamisen pariin.
Jos käytät Javasta versiota 6, voit helposti sisällyttää peliisi esimerkiksi javascript moottorin käyttämällä Java Scripting APIa.
http://java.sun.com/javase/6/docs/technotes/
Lista käytettävissä olevista moottoreista löytyy sivulta:
https://scripting.dev.java.net/
Tuota olenkin pohdiskellut vaihtoehtona, mutta mielestäni se on turhan laaja. Tarkoituksena olisi vain poimia tekstitiedostosta avainsanoja ja niille parametreja. Kieli tulisi näyttämään jotakuinkin tältä(kommentointia ei aniakaan heti tarvita se on tässä vain selventämässä. Syntaksikin on vain esimerkki):
//tiedostonimi on NPC1.txt eli kun ladataan uusi kenttä ladataan npc-tiedostokin newNPC 10 18 //luodaan uusi NPC. koordinaatit tileinä kartassa(10,18) puhe Terve olen professori Hemmo //yhden rivin jälkeen odotetaan pelaajan painallusta puhe Haluatko auttaa tutkimuksessa? kysyYN //kysytään YES/NO kysymys. ei pakollinen ensimmäisessä versiossa y: puhe Kiva kun autat! //jos vastaus oli kyllä n: puhe No ei väkisin... //jos vastaus oli ei newNPC 20 5 //samassa tiedostossa pitäisi pystyä luomaan useampia NPCtä puhe Tervetuloa kyläämme!
Käytännössä enempää ominaisuuksia en tarvitse, joten JavaScriptin käyttö tuntuu turhalta. Toteutus vain nyt takkuaa, kun en oikein keksi miten avainsanoja hakisin. Olen yrittänyt avata ensin koko tekstin taulukkoon ja siltä tarkistella sana kerrallaan mitä tulisi tehdä, mutta sekään ei nyt oikein onnistu.
Yritän nyt kuitenkin vääntää jotain!
Jospa latausvaiheessa käsittelisit tiedoston rivi kerrallaan.
Jos rivi alkaa "newNPC", luot uuden instanssin NPC-luokasta ja asetat sille koordinaatit.
Jos rivi alkaa "puhe", luot uuden instanssin Puhe-luokasta ja lisäät sen NPC-instanssin puheet-listaan.
Jos rivi alkaa "kysyYN", luot uuden instanssin KysymysYN-luokasta ja lisäät sen NPC-instanssin puheet-listaan (kyllä sama lista missä Puhe-instanssit ovat, jotta haluttu esitysjärjestys säilyy). Luet myös neljä seuraavaa riviä tiedostosta ja lisäät vastausvaihtoehdot Kysymys-instanssiin.
Kun NPC rupeaa puhumaan, käyt NPC-instanssin puheet-listan läpi alkio kerrallaan ja esität puheen tai kysymyksen riippuen siitä onko alkio Puhe vai KysymysYN.
Kannattaa tutustua StreamTokenizer-, StringTokenizer-luokkiin tai sitten ihan vain String-luokan trim-, split- ja startWith-metodeihin, jos tekstin parsiminen tuottaa ongelmia.
Tuo onkin varsin hyvä idea. Yritämpä toteuttaa tuota.
Kiitokset tästäkin!
Yks mikä pisti silmään tuossa Peli.java koodissa oli et käynnistät ton peli thread:in ennen kuin olet edes ladannut sisältöä. Äkkiseltään tulisi mieleen että ensin ladataan kaikki kilkkeet muistiin ja vasta sitten käynnistetään itse peli looppi.
eli siirtäisin tuon:
if(mainLoop!=null)mainLoop.start();
rivin init():in loppuun.
Miten on npc:eiden ohjelmointi sujunut?
millon päivität peliä?
Skriptikieleen on nyt lisätty em. ominaisuudet: NPCiden luonti haluttuihin koordinaatteihin, puheiden lisäys skriptistä ja YES/NO kysymykset sekä if-lauseiden käsittelyyn tarkoitettu säätö(melko alkeellinen vielä).
Kaikkia ominaisuuksia en vielä ole lisännyt itse peliin, vaan niistä tulostetaan vain ilmoitus konsoliin("Jos vastaus on YES NPC(ID:123456) sanoo: Vastasit kyllä"). Päivittelen applettia heti kun olen jonkun merkittävän uudistuksen saanut aikaan - todennäköisesti juurikin tuon skriptimoottorin lisäyksen. Kuitenkin keskiviikkoon asti jatkuva koeviikko ja projektityöt hidastavat ikävästi kehitystä. Ilmoittelen kyllä täällä kun päivityksiä tulee.
Jos projektiin pääsee vielä tulisin mieluusti.Javan perusjutut on hallussa mutta en ihan vielä osaa kunnolla tuota graafista käyttöliittymää mutta ajattelin lukaista luvun joka käsittelee kyseistä aihetta uudestaan Java kirjastani.
Nyt sain vihdoin ärsyttävän vilkkumisen pois, kun korvasin väliaikaisena animointina toimineet gif-kuvat itsekirjoitetulla animaatiomoottorilla. Nyt kävelyanimaatio on vielä vähän nopea, mutta hidastan sen normaaliin kunhan ehdin. Hyvänä puolena koodatussa animoinnissa on myös askelten täsmääminen. Enää ei liu'uta pientä matkaa jos gif-kuva on pysähtynyt väärään kohtaan viime käytön jälkeen.
Pientä aaltoilua ja välkyntääkin saattaa vielä esiintyä, mutta pyrin optimoimaan touhua. Vielä kokeileminen kehitysympäristön ulkopuolella ei onnistu, koska NPCiden luonnin kanssa on pieniä ongelmia, jotka tilttaavat appletin(ja midi-renkutus jää päälle).
Nyt kun suurin bugi on korjattu voin kirjoittaa koodin uudelleen hyödyntäen oliopohjaisuutta enemmän.
kossupullo: Lähetin sähköpostia.
Nyt peliä voi kokeillakin osoitteessa http://user.personal.fi/atk/Kaakeliuuni/
Peli lataa kuvia taulukkoon alussa ilman latausruutua(eli näkyy pelkkää valkoista). Tässä kestää yhteydestä riippuen n. 30-60s.
Ilmoitelkaa toki jos ei jollain järjestelmällä toimi ja etenkin haluaisin tietää miten appletti pyörii vähänkään vanhemmilla koneilla - eli kuinka paljon piirtoa tarvitsee vielä optimoida.
NPCitä en vielä valitettavasti tähän versioon saanut mukaan.
ei löydy. tulee vaan punanen ruksi appletin yläkulmaan
^Kyllä mulla vaan löytyy.
Jep pitäis kyllä toimia. Ihmettelen kyllä jos et saa peliä toimimaan, sillä ainakin kaikilla omilla koneilla toimi. Kaipa sinulla Javasta on uusin versio asennettuna ja muuten kaikki kohdallaan? Millä selaimella/käyttiksellä kokeilit?
Joskus käy myös niin(itsellä kävi kun kokeilin peliä palvelimelta), että selain lataa vanhan version jostain temp-filuista.
Jos jotain virheitä löytyy, niin niitä on aina "mukava" lueskella ja koittaa korjata samalla kun muuten laajentelen peliä.
Vilkkumista näkyi kyllä ainakin minulla. Ja ikkunamanageri hukkasi ikkunoiden reunat kun peli käynnistyi, mutta se tuskin on pelin vika.
Kubuntu linux, 1024 MB keskusmuisti, 1.6 GHz tuplaydinprossu.
Firefoxilla koettaessani tuota applettia en päässy kävelemään ollenkaan, Firefox varasti nuolinapit itelleen ja yritti skrollata sivua.
Tällä Operalla en kokeile, kun tämä Alpha kaatuu--tai no, ainakin viimeks kaatu ku koitin--applettien kanssa.
Appletviewerillä toimii, mut vilkkuu tosiaan ikävästi. Kone on Athlon XP 2400+, 1Gt RAM, Radeon 9500 Pro (fglrx 7.11), Sun JDK 1.6.0.03, Gentoo Linux
Appletviewer muuten tulostaa terminaaliin "VIRHE: access denied (java.io.FilePermission script/kentta1.bgs read)". Liekö tuo sitten miten vakavaa, kun muuten tuntui toimivan.
Opera 9.25:sella ei näytä liikkuminen toimivan. IE:n 6- versiolla liike oli suht ok lukuun ottamatta pientä välkkymistä silloin tällöin. Koneena 2.5 giganen pena 4. Appletin latauduttua kone rupeaa huudattamaan tuuletinta aikalailla, mikä kertonee tehojen olevan aika napissaan.
Kiitoksia tiedoista!
Pitänee siis vielä keksiä jotain jippoja piirron nopeuttamiseksi. Koitan myös keksiä jotain, mikä auttaisi näppiksen toimintaan yleisimmillä selaimilla(joku requestFocus tj. voisi ehkä auttaa).
Omalla läppärillä(AMD Turion 64 x2 1,6 GHz(tuplaydin), RAM 1Gb, näyttis NVIDIA GeForce Go 7300(omaa muistia 128Mb)) välkyntää ei juurikan esiinny. Johtuisiko tuplaydinprossusta? Kaikilla selaimilla, millä olen kokeillut(en tosin Operalla) olen myös saanut pelin toimimaan.
Blaze kirjoitti:
Appletviewer muuten tulostaa terminaaliin "VIRHE: access denied (java.io.FilePermission script/kentta1.bgs read)".
Virhe tulee skriptin lataamisesta(, jolla ei vielä tehdä mitään eli on periaatteessa turha), koska se käyttää metodia readLine(), jolla ei ole oikeuksia lukea tiedostoa selaimessa. Homma pitäisi toteuttaa scanner()-metodilla, mutta en ole vielä saanut sitä täysin toimimaan, sillä tiedoston loppuessa tulostuu virhe.
Tämä pitäisi korvata scannerilla:
while ((rivi = puskuLukija.readLine()) != null){ //niin kauan kun vielä on jotain luettavaa... tulkki(rivi); //...lähetetään luettu rivi tulkille }
Tällaista olen kokeillut:
while ((rivi = lukija.nextLine()) == false){ rivi = lukija.nextLine(); tulkki(rivi); }
Mutta eiköhän tuo onnistu kun vähän yrittää.
Vähän päivittelen aihetta. Eli nyt olen saanut aikaan NPC-systeemin, joka toimii kehittämälläni skriptikielellä ja paljon muutakin uudistusta:
-NPC:t, joita voi koodata skriptikielellä(Niille voi määrittää x, y, id ja puheet sekä skinin, mutta luokka laajenee vilä)
-Kuvien pinkit taustat muutetaan läpinäkyväksi ja vihreä osa muutetaan varjoksi
-GIF-kuvista päästiin eroon omalla animaatiomoottorilla
-Piirtoa on optimoitu
Projektiin tuli myös mukaan putkalainen, Retropikzel, joka koodaa tällä hetkellä serveriä. NPC:t eivät vielä toimi Appletissa, koska tiedoston lukemiseen käytetään BufferedReaderia. Pyrin saamaan tämän kuntoon mahdollisimman pian(muutaman päivän sisällä, jos kaikki menee hyvin). Ohjelmaa suoritettaessa pisin aika(~puolet) kuluu näppäimistön käsittelyyn, joten siinä on vielä optimoinnin varaa.
Versio, jossa NPC:t eivät toimi eikä myöskään latauspalkkia alussa ole: http://user.personal.fi/atk/Kaakeliuuni/
Eli projekti on vielä elossa!
Coolness. Kuinka nopeasti appletin pitäisi latautua? Luulen että työpaikan palomuurilla tai proxyllä on jotain tuota vastaan ;)
Omalla yhteydellä(8Mb) latautuu ~30s, mutta lataus voi kestää minuutinkin. Proxyt tietysti hidastavat latausta ja ainakin joissain yleisessä käytössä olevissa koneissa Appletit on blokittu kokonaan tai ne ovat sallittuja vain IE:llä(tietysti riippuu asetuksista).
Näissä kehityksen alla olevissa versioissa ei vielä latauspalkkia ole, mutta koitan sen siihen jossain välissä saada selventämään latausta.
Tuo linkki ainakin minulle laittaa: Object Not Found!
Nyt ainakin sain itse toimimaan. Oli joku class-filu jäänyt uppimatta. Nyt myös NPC:t toimivat selaimen kautta.
Viikonloppuna lisäsin peliin myös fontEnginen, joten nyt NPC:ille puhuminen on vähän mielekkäämpää.
Tässä vielä linkki: http://user.personal.fi/atk/Kaakeliuuni/Tile-engine/Peli1.html
Näppäimet:
Nuolista liikkuu ja Ctrl pohjassa vain kääntyy paikallaan. X-napista puhuu NPC:ille.
Kaikki palaute ja bugiraportit ovat tervetulleita.
ihan hyvältä vaikuttaa.
en ole varma, että onko kyseessä bugi vai mikä, mutta aina kun npc:lle puhuu, niin ellet käy jossain muualla(esim. jos npc oli talossa, nii muualla olisi vaikka ulkona), niin npc:t jää toistamaan viimeistä lausettaan..
se oikeessa alakulmassa oleva heebo on hauska :D
edit: ja tälleen viel, et se appletin ikkuna ei mahdu pystysuunnassa kokonaan mun laajakuvanäyttöön =/
Tuo NPC:n viimeisen lauseen jauhaminen on olevinaan ominaisuus. Olisihan vähän hassua jos esim. tehtävän antamisen jälkeen NPC aloittaisi taas juttelun tervehtimällä, mutta nyt se voi vaikka hoputtaa tehtävän tekemisessä. Looppaamaan jäävä lause määritellään skriptitiedostossa, eikä skriptikieli vielä ymmärrä useamman defSay-rivin päälle, joten nyt loopataan vain viimeistä riviä. Myöhemmin voi NPC:n kaikki puheet muuttaa defSay:llä määritellyiksi, jolloin NPC looppaa kaikkia tekstejä.
Periaatteessa bugi on se, että NPC puhuu samat jutut uudelleen kun kartta on ladattu uudelleen. Eli pitäisi asettaa jonkinlainen flagi, että tälle NPC:lle on jo puhuttu, näytetään vain defSay-rivin määrittämät tiedot.
Ja tosiaan tuohon kokoon tulee luultavasti muutos. Esimerkiksi valikko, jolla peli skaalataan uudelleen.
Kiitokset huomioista!
En ole saanut toimimaan Firefoxilla, konsoli ilmoittaa:
java.lang.UnsupportedClassVersionError: Peli (Unsupported major.minor version 49.0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at sun.applet.AppletClassLoader.findClass(Unknown Source) at sun.plugin.security.PluginClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadCode(Unknown Source) at sun.applet.AppletPanel.createApplet(Unknown Source) at sun.plugin.AppletViewer.createApplet(Unknown Source) at sun.applet.AppletPanel.runLoader(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
Edit: Onko liian vanha versio javasta?
En kyllä muutakaan keksi, joten veikkaisin myös vanhaa versiota Javasta. Etenkin tuo ensimmäinen rivi viittaisi siihen: "java.lang.UnsupportedClassVersionError: Peli (Unsupported major.minor version 49.0)"
Höh. Latasin uusimman version Javasta ja ei toiminut.
Sain pelin toimimaan, kun älysin hetken odottaa latausta. Kerran peli juuttui eikä vastannut nuolinäppäinten paineluun mitenkään, vaikka kuinka yritin hiirelläkin kliksutella applet-aluetta. Kuitenkaan en saanut vikaa toistettua, joten ei tule bugiraporttia. Syy saattoi olla ihan hyvin omassa selaimessakin (pidin useita täbejä auki ja tein muuta ohessa).
Onko maailman tai kylän laitojen ulkopuolella tarkoitus olla tyhjää valkoista vielä tässä vaiheessa?
Kopeekka kirjoitti:
Kerran peli juuttui eikä vastannut nuolinäppäinten paineluun mitenkään, vaikka kuinka yritin hiirelläkin kliksutella applet-aluetta.
Juuri näin on käynyt minullakin.
Kone menee jotenkin aina aivan tukkoon, kun tuota applettia pyörittää. Esimerkiksi ladatessa Firefox menee "ei vastaa"-tilaan, ja pelin aikana hiiri liikkuu pätkien.
Hm, miten tuossa pelissä on hoidettu toimintojen ajastaminen? Tulee vain mieleen että jos asioita pyöritetään jatkuvasti, se vie tehoja ja muistia aikalailla. Parempi on ajastaa moiset menemään jonkin sopivan kellon mukaan. Mainitsit tosin näppäimistöhandlerin olevan raskas, mutta siihen löytyy ratkaisu. Melko simppeli. Handleri ajetaan vain jos jotain näppäintä on painettu, jollainka ei tehdä turhia tarkistuksia. Pseudona kutakuinkin näin siis:
A = GetAKey If A <> 0 Then CheckKeys
Helppoa :-P
-Grey-
Legun kommentin pohjalta voisin tarkentaa, että minulla ei itse selain tai kone tukkiintunut, vaikka se ukko jämähti sen yhden kerran. Musiikkikin soi koko ajan. En todellakaan saanut ilmiötä toistettua, joten eipä siitä auta sen enempää kertoa.
Reunoilla tosiaan on valkoista, koska kenttä on pelkästään testejä varten. Lopullisessa versiossa laidat ympäröidään "seinillä" niin, että valkoista ei pääse näkemään.
Linuxilla kun kokeilin huomasin myös jökkimistä, jolloin prosessorin käyttö hyppäsi 100%:iin. Koneen prosessori kylläkin oli 1.2 GHz. Muistia peli ei suuremmin kuluta Javan virtuaalikoneen lisäksi.
Pelin pääsilmukka näyttää tältä:
public void run(){ while(true){ näppäinTarkistus(); //tutkii listan sisällön repaint(); } }
Sleep-käsky kutsutaan siis vasta animaatiomoottorissa. Toisaalta voisi olla fiksumpaa kutsua sitä silmukassa, jolloin prosessoritehoja todennäköisesti säästettäisiin. Eipä tullutkaan mieleen.
Kiitokset jälleen vinkeistä ja virheraporteista. Yritän näitä sitten korjailla.
Aihe on jo aika vanha, joten et voi enää vastata siihen.