1. sayfa
Sanirim bu is icin en iyisi Scala veya JavaScript. Burada cok guzel bir tutorial var JavaScipt'i Java da kullanmak ile ilgili:http://www.java2s.com/Tutorials/Java/Scripting_in_Java/0200__Java_in_Scripting_Languages.htm |
Up |
Sunucu tarafında uygulama için Java ve başka bir dil ikisi aynı runtime içinde calışmak zorunda değil.Java kendi java prosesi içinde, Python kendi derleyicisi ile çalışıp ikisi arasında veri alışverişi yapmak daha mantıklı. Inkscape masaüstü old için, kurulduğu bilgisayarda tek proses içinde çalışmak zorunda olduğu için öyle ayarlamışlar. Ha aynı seyi sunucu tarafında da ayarlayabilirsin ama bence gerek yok. Örneğin Amazon.com sunucu tarafında C++ ve Perl kullanıyor ve tahminen 2 ayrı proses olarak kullanıyordur. |
Hocam oyun yapiminda script dilleri cok onemli deil mi ? bu sebepten dolayi ayni process icinde calisan bir script dili eklemek istiyorum oyuna (programa) sizce hangi script dilini eklsem iyi olur ? Python'i eledim geriye JavaScript ve Scala kaliyor sanirim en iyi secenek JavaScript aa birde Lua var sanirim Lua tam aradigim sey. |
Tek bir sorum var neden? Belki soru için daha farklı bir çözüm öneririz. |
script engine içerecek bir oyun yazmak kolay değil. Lua oyun yapımcıları tarafından sıklıkla kullanılıyor, ben hiç kullanmadım. Scala script dili değil bu arada. |
Netden baktigimda "How to use scala as a scripting language" ve benzeri basliklar goruyorum. sanirsam script dili deil ama script dili olarakta kullanabiliyoruz. Scala hakkinda fazla bilgim yok ama Java ile yazdigimiz class'lari kullanabiliyor olmamiz hosuma gitti. |
Aslinda bende tam olarak bilmiyorum ama oyun yapiminda illaki ihtiyac duyacakmisim gibi. Yani mesela Java'yi ogrendikten sonra birde Lua'yi ogrensem ve gunun birinde Lua'yi oyunuma entegre etmeye ihtiyac duyarsam birdaha Lua'yi ogrenmekle ugrasmam diye dusunuyorum. |
Önce basit şeylerle başla. harley davidsons bile hayatına bisiklet üreterek başladı. |
Yapman gereken 2 is var. 1 ini Java yapiyor, digerini Python. Dil farketmez birini X yapsin digerini Y. Bunlari nasil calistirman gerekiyorsa, isin dogasina gore degisir, yeni bir script yazarsin, once java programini calistirir gerekli data manipulasyonunu yapar sonra Python scriptini cagirirsin. Yine herhangi bir programlama dili uzerinden isletim sisteminin system cagrisiyla baska bir executable i cagirmak mumkun olsa da, neden boyle yapmak isteyesin ki. Bunun yerine her program parcacigi kendi isini yapsin, bir digeri onun kaldigi yerden data ya da API uzerinden mesajlassin. Ornegin linux teki pipe mantigi gibi, pipeline pattern ile aktarirsin, programlar birbirlerinden bagimsiz calisabilir hale gelir, birini degistirince digerinde degisiklik yapmak zorunda kalmazsin. |
Evet onu da dusundum ama dediginiz sey yetersiz sanki. Evet haklisiniz cesitli ver manipulasyonlari icin dosya vs vs islemleri icin direct subprocess olarak ihtiyac duydugum scriptleri calistirabilirim. Aslinda beni bu konuyu acmaya iten dusunce suydu: "Yazdigim bir AI scripti oyun icinde kontrol saglamasi icin benim oyun icinda olusturdugum karakter objelerine ve cesitli objelere erismesi lazim bunun icinde Java'nin objectlerini kullanabilmesi lazim." Mesela diyelimki bir bolum yukleniyor ve o bolum icin yazdigim AI scriptini calistiriyorum ve bu script o bolumde yapilmasi gerekenleri yapiyor. Bunun icinde Java'daki olusturdugum objelere erismesi lazim. Bunu sadece AI icin demiyorum bircok bunun gibi cesitli islemler icin. Evet bunlari script dili olmadan sadece Java ile de yapabilirim fakat script dili ile yapmak cok daha pratik ve kolay olur gibi. Yani bir ornek vermek gerekirse Java ile yaptiklarim Bir Ev olsun evdeki cesitli geti gotur islerinide Script dili yapsin istiyorum. Sizce mantikli mi ? Edit: Pipe konusunu bi arastiryayim tesekkurler. |
Eger seni yanlis anlamiyorsam , ki pek mumkun bu saatte, inter process communication gibi bir seyden bahsediyorsun. Bu konuyu arastirabilirsin. Bir baska verebilecegim bilgi de, oyun konusunda; ornegin world of warcraft oyun motoru sundugu API sayesinde farkli addonlari destekliyor ve bu addonlar LUA scriptleriyle yaziliyor. Ancak burada senin bahsettiginden farkli olarak memory de ayni segmenti manipule etmiyor lua scripti oyun motoruyla beraber , sadece motorun sundugu api yi kullaniyor. Eger kafandaki yapi, master slave gibi birinin digerine "yap koçum" dedigi bir yapiysa basitce bir program parcacigindan digerini cagirirsin. Eger paralel ve korele sekilde calismasi gereken iki ayri processten bahsediyorsak, o zaman da cevap ipc, onu inceleyebilirsin. Ama ben bu durumun cok saglikli oldugunu dusunmuyorum oyun icin. Cunku shared memory hack riskini de beraberinde getiren bir konsept. |
python içinden java class larına erişmek için Jython var. Hiç kullanmadım, python 2.7den sonrasını desteklemiyor. Jre üzerinde çalışıyor. |
Jython'i arastirmistim. Boyutu devasa (88 mb) Bir mobil oyun icin oyunun boyutunun cok fazla olmasina sebep olur. Ama belki boyut sorunu icin birseyler ayarlamislardir. Bilmiyorum. |
1. sayfa
Tesekkurler.