Tuskailen vieläkin ikuisuusprojektini, tilepelin, kanssa. Nyt haluaisin monipuolistaa pelialuetta ja antaa pelaajalle mahdollisuuden vaikuttaa maailmaan. Jotta peli pysyisi muokattavana en halua kovakoodata efektejä ja muita itse peliin, vaan ajattelin ottaa käyttöön jotakin skriptikieltä. Tällaista en ole ennen kokeillut, joten oppiipahan samalla jotain uuttakin.
Ajattelin toteuttaa kielellä tietokoneen pelaamien hahmojen edesottamukset ja kentissä näkyvät efektit(esim. pelaaja painaa nappia, ovi aukenee). Kieli pitäisi pystyä kääntämään Javaksi lennossa, tai näin ainakin sen ajattelin olevan helpointa. Tällöin voin skriptitiedostosta vaikkapa piirtää näytölle neliön piirtämällä sen vain ohjelman Graphics-muuttujaan.
Tällainen toteutus tuli ensimmäisenä mieleen, joten jos muita tapoja löytyy, niin kertokaa toki. Lueskelen mielelläni kaikkea pelin skriptaamiseen ja skriptikielen implementointiin liittyvää.
Mikä kieli olisi sopiva ja vaatiiko sen asentaminen muuta kuin kirjaston liittämisen projektiin?
Kaikki ideat, suositukset ja neuvot jälleen kerran tervetulleita.
Java 6:ssa on skriptaus API sekä Mozillan Rhino mukana (Javascript moottori).
http://java.sun.com/developer/technicalArticles/
Sivulta https://scripting.dev.java.net/ löytyy lista skiptikielistä/moottoreista, joita voidaan käyttää APIn kautta.
Mozilla Rhinoa (luultavasti myös muita) voidaan käyttää suoraankin ilman skriptaus APIa.
http://www.mozilla.org/rhino/
https://developer.mozilla.org/en/
Käytännössä skriptikielestä pääsee käsiksi vain niihin javan olioihin, jotka ovat annettu skriptausmoottorille.
Ehkä Groovy tai BeanShell sopisi skriptikieleksi.
Kiitoksia hyvistä ehdotuksista.
Tuota BeanShelliä olenkin jo tutkaillut ennestään. Nyt kun ajattelin sen ladata ja kokeilla, ei ilmeisesti asentaminen onnistunut.
Latasin jar-paketin BeanShellin sivuilta ja laitoin sen ohjeiden mukaisesti Javan kansioon ...Java\jre6\lib\ext\, mutta en saanut kirjastoa toimimaan Eclipsessä, vaan jo import
-rivi heitti virheen.
import bsh.*;
Kokeilin myös toista ohjeissa neuvottua tapaa tuloksetta.
C:\>set classpath %classpath%;bsh-2.0b4.jar
Ympäristömuuttujaa classpath .;C:\Program Files\Java\jre6\lib\ext\QTJava.zip;bsh
-2.0b4.jar ei ole määritetty.
Asiasta toiseen. Jos siltikin käyttäisin esimerkiksi Rhinoa, pystynkö JavaScriptillä kutsumaan Javalla kirjoitettuja metodeja?
Eclipsessä pitäisi onnistua ainakin siten, että käyt lisäämässä sen paketin projektin asetuksiin.
Project -> Properties -> Java Build Path -> Libraries -> Add External JARs...
Mobel kirjoitti:
Asiasta toiseen. Jos siltikin käyttäisin esimerkiksi Rhinoa, pystynkö JavaScriptillä kutsumaan Javalla kirjoitettuja metodeja?
Pystyt, kunhan annat skriptausmoottorille olion, jonka metodia haluat kutsua.
Aihe on jo aika vanha, joten et voi enää vastata siihen.