Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Preporuka za skriptni jezik ?

[es] :: GameDev - Razvoj Igara :: Preporuka za skriptni jezik ?

[ Pregleda: 3215 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

RedDrake

Član broj: 80474
Poruke: 17
195.29.92.*



Profil

icon Preporuka za skriptni jezik ?01.08.2007. u 12:41 - pre 202 meseci
Je mi moze neko preporucit skriptni jezik, koi nema dinamicne tipove variabli nego je "Strongly-typed" (neide mi domaca terminologija :D).
Trebao bi bit portabilan barem na linux/mac po defaultu, po mogucnosti da je objektno orijentiran, i da ima C stil sintakse. Probao sam AngelScript davno al cinio mi se pre nedovrsen-bugovit, ali to je bilo davno, mozda neko zna dal se promjenio sta ?
Jedino moguce rijesenje koje mi pada napamet je java, i to sto ima JIT je jako velik plus, ali koliko sam ja upoznat (to i nije bas puno doduse :D) treba imat instaliran JavaVM na korisnickom kompu, a to je ogroman problem. Jeli moguce samo uzet neke dll-ove i bacit ih uz aplikaciju, ili staticki linkat (sumnjam doduse) ?
C# ispada iz izbora jer nije portabilan (za mono doduse nisam siguran, ali ovo bi mi bilo prekomplicirano, treba mi outofthebox rijesenje :D)

Plus bi bio open source (ali ne pod GPL-om, nego zlib,mit) ali nije tolko bitno, bitno je da je free.
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.plus.com.



+4 Profil

icon Re: Preporuka za skriptni jezik ?01.08.2007. u 18:31 - pre 202 meseci
"strongly typed" nije u istoj kategoriji sa "dynamically typed", to su razlichite stvari.

Java je statically typed language i strongly typed, u isto vreme. I ne, nemoj to da koristish u game-devu.

Python i Lua su oba dynamically- i strongly-typed jezici (Lua u manjem obimu).
Jedini je problem ako ustvari mislish na statically typed jezike, mada ne vidim zashto bi uopshte trazhio to za gamedev.
 
Odgovor na temu

bkaradzic
Branimir Karadžić
ArenaNet
Seattle, WA

Član broj: 14953
Poruke: 1630
67.151.201.*

Sajt: https://github.com/bkarad..


+11 Profil

icon Re: Preporuka za skriptni jezik ?01.08.2007. u 20:58 - pre 202 meseci
Ukratko, izbegavaj korišćenje skriptnih jezika, a ako baš moraš onda koristi nešto što je opšte prihvaćeno (tipa LUA, LCC). Obično razlog zašto se koriste skriptni jezici je da se posao sa programera prebaci na dizajnere. I u početku je sve lepo dok se ne dođe do optimizacije i debagovanja, za koji dizajneri nisu kvalifikovani. Skriptni jezici uz to uglavnom nemaju debager, a optimizacija se svodi na prepisivanje skripting jezika u C/C++. I to ne prepisuješ elegantno napisan kod nego copy&paste đubre koje dizajner kreira. Što je razumljivo jer oni nisu trenirani kao programeri, tako da njihova praksa rada sa kodom nije ono što bi se od programera očekivalo.

 
Odgovor na temu

dmn
Nebojša Milić
Minhen

Član broj: 17795
Poruke: 122
...58.130.static.cablesurf.de.



+1 Profil

icon Re: Preporuka za skriptni jezik ?02.08.2007. u 10:39 - pre 202 meseci
Verovatno nisam dovoljno kompetentan za ovi diskusiju, ali ajde da probam, dakle:
Citat:
Obično razlog zašto se koriste skriptni jezici je da se posao sa programera prebaci na dizajnere

Koliko ja znam jos jedan prilicno vazan razlog jeste prebacivanje logike (AI, skript sekvence, itd...) na skripting jezik, i time nema potrebe za rekompajliranjem celog projekta u slucaju izmena u logici.
Voleo bih da cujem neki jaci argument za ovo:
Citat:

Ukratko, izbegavaj korišćenje skriptnih jezika,


Hvala
 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1342
218.1.28.*

ICQ: 14293955
Sajt: https://github.com/milost..


+48 Profil

icon Re: Preporuka za skriptni jezik ?02.08.2007. u 10:52 - pre 202 meseci
Jači argument je nastavak poruke koju si citirao.
 
Odgovor na temu

Filip Strugar
Filip Strugar
UK

Član broj: 9871
Poruke: 383
*.demon.co.uk.



+1 Profil

icon Re: Preporuka za skriptni jezik ?02.08.2007. u 12:41 - pre 202 meseci
Citat:
bkaradzic: Ukratko, izbegavaj korišćenje skriptnih jezika, a ako baš moraš onda koristi nešto što je opšte prihvaćeno (tipa LUA, LCC). Obično razlog zašto se koriste skriptni jezici je da se posao sa programera prebaci na dizajnere. I u početku je sve lepo dok se ne dođe do optimizacije i debagovanja, za koji dizajneri nisu kvalifikovani. Skriptni jezici uz to uglavnom nemaju debager, a optimizacija se svodi na prepisivanje skripting jezika u C/C++. I to ne prepisuješ elegantno napisan kod nego copy&paste đubre koje dizajner kreira. Što je razumljivo jer oni nisu trenirani kao programeri, tako da njihova praksa rada sa kodom nije ono što bi se od programera očekivalo.

Hm, ne kontam, da li kažeš da ne treba skoro uopšte koristiti skripting, ili da je samo bitno postaviti neku razumnu granicu do koje su skripte cost-effective?
 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1342
..w.sh.dynamic.163data.com.cn.

ICQ: 14293955
Sajt: https://github.com/milost..


+48 Profil

icon Re: Preporuka za skriptni jezik ?02.08.2007. u 16:24 - pre 202 meseci
"Die, script die!"
Ako nekome baš treba dinamičko učitavanje koda, i C++ je u stanju da se nosi sa time.
Može se koristiti i C++ kao skript jezik: http://www.softintegration.com/

Na projektu na kome radim, skript je skoro potpuno izbačen iz upotrebe, ima nešto malo lua-e.
Na prethodnom projektu, najviše problema dolazilo upravo iz skript koda (i do 20-25 puta sporije) itd.

Jedino za build sisteme skriptovi su prilično korisni, gde je održavanje i dalje u rukama programera.
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.demon.co.uk.



+4 Profil

icon Re: Preporuka za skriptni jezik ?02.08.2007. u 16:53 - pre 202 meseci
Da bi se nashla prava mera i nachin korishcenja dinamichkih jezika u game okruzhenju ipak treba malo vishe poznavanja teorije programskih jezika i kompajlera. Akcenat na "nachin korishcenja".
To sam shvatio relativno skoro, nakon dugih diskusija sa language geekovima. Shodno tome, scripting ftw! :)

 
Odgovor na temu

bkaradzic
Branimir Karadžić
ArenaNet
Seattle, WA

Član broj: 14953
Poruke: 1630
67.151.201.*

Sajt: https://github.com/bkarad..


+11 Profil

icon Re: Preporuka za skriptni jezik ?02.08.2007. u 19:33 - pre 202 meseci
Citat:
Filip Strugar: Hm, ne kontam, da li kažeš da ne treba skoro uopšte koristiti skripting, ili da je samo bitno postaviti neku razumnu granicu do koje su skripte cost-effective?

Da postaviti razumnu granicu (čitaj: 1ms za 30Hz). ;)
1ms je sigurna granica da ne moraš da razmišljaš kako da paralelizuješ skripting... ;)
Citat:
dmn: Voleo bih da cujem neki jaci argument za ovo:

Kao što Bojan kaže, problem je način korišćenja. Ja uglavnom nemam problem kada se skript jezik koristi za neke veoma nivo specifične mogućnosti. Npr. da opišeš kako NPC reaguje na nivou X i kako reaguje na nivou Y, ili da opišeš misije, zadatke, itd. I to tako da nije potrebno menjati izvršni fajl igre da bi skript radio. Ali to je teorija, ono što sam video u praksi nije ni blizu teoriji. Video sam kada neko dozvoli pristup celom endžinu preko skripting jezika, pa onda programira celu igru u skripting jeziku. Ili kada sam kod igre zavisi od skripting jezika i npr. kada promeniš skript, moraš da promeniš i izvršni fajl igre da bi igra radila. Ili stavljanje u skript koda koji je isti za celu igru bez obzira na kom si nivou (npr. kamera, oružije, itd). Ili najnoviji primer od pre neki dan, kada vidim u profajleru da igra troši 2ms samo u kolekciji đubreta, i niko ne može da kaže zbog čega (čak ni od prilike) posle par sati rada na problemu. Ja lično preferiram da znam šta se tačno dešava u kodu i da mogu da pronađem problem u roku od odmah. ;) Mislim da najjednostavnije objašnjenje može da bude sledeće: ako ti ikada zatreba operacija nad vektorima i matricama u skripting jeziku, onda je to pokazatelj da ga pogrešno koristiš. ;)

 
Odgovor na temu

dmn
Nebojša Milić
Minhen

Član broj: 17795
Poruke: 122
*.alsfinmeccanica.it.



+1 Profil

icon Re: Preporuka za skriptni jezik ?03.08.2007. u 07:40 - pre 202 meseci
Hvala na odgovoru, sada su stvari dosle na svoje mesto :)
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.demon.co.uk.



+4 Profil

icon Re: Preporuka za skriptni jezik ?03.08.2007. u 10:55 - pre 202 meseci
Teshko da cesh dobiti precizan odgovor, jer svako posmatra stvari iz lichnog iskustva.

Problemi sa skript jezicima, gore navedeni, uglavnom dolaze iz dva razloga:

1. Reshavanje pogreshnog problema pogreshnom metodom
2. Zanemarivanje chinjenice da game engine mora da bude asinhron da bi sve to funkcionisalo prihvatljivom brzinom. Da iskoristim OS-terminologiju, skript jezik koji je "in-process" sa samim game thread-om je otvoreni poziv za jahache apokalipse.

Par primera:

1. Proceduralni VM, statically- i strongly-typed, koji sam uglavnom sam napisao pre 3-4 godine, za potrebe gameplay-a i AI-a. Asinhron po prirodi, sa mogucnoshcu sinhronizovanja (tj. kada skript "cheka" da se neshto desi u igri) i safe-blockovima (kada se odredjeni blok koda mora izvrshiti bez prekida). Bez pravog gc-a i dinamichkog alociranja memorije. Skript koda ne utiche na sam engine, tj. nema rekompajliranja cele igre kada se skript promeni. U ovom sluchaju skript koristi ono shto mu engine ponudi od funkcija i nema mogucnost petljanja sa samim engine-om (ukoliko neka funkcija to ne dozvoli eksplicitno). Uz sve probleme koje sam imao sa tim (byte code je redizajniran 2 puta, jer nisam imao iskustva sa tim stvarima) na kraju nam je ushtedeo mnogo vremena u produkciji.

2. Unreal 2/3 Script - objektno orijentisan, ima odlichan delegate sistem i veoma rudimentarni state-machine. Nazhalost, "in-process", tj. tvoj game thread izvrshava ili kod u engine-u ili skript, ne oba u isto vreme. Primitive za blokiranje kod dugotrajnih funkcija postoje ali su jako traljave. Dozvoljava ekstremno petljanje sa samim tipovima u engine-u, i svako takvo petljanje uglavnom zavrshava sa ekstremno dugim rekompjliranjem cele igre. Nije eksplicitno namenjen dizajnerima. Ima GC (garbage collector) koji je ekstremno loshe implementiran.

3. Lua, "the best of both worlds". Mnogi ga koriste (World of Warcraft izmedju ostalih). Jako jednostavan za proshirivanje, mali VM footprint, ima hook-ove za kontrolu internih funkcija, jako dobar GC i coroutines (mini-multitasking). Najveci problem - ljudi se jednostavno zanesu i "registruju" celi engine u Lui, ili omoguce kreiranje tipova u samom skriptu koje onda mora i engine da podrzhava kroz bukvalno dupliciranje koda koji je vec u skriptu. Na kraju zavrshe sa neodrzhivom gomilom koda koja nije nikom ushtedela ni vreme ni zhivce.

Anyway, poenta je da o one dve tachke date gore treba xx puta razmisliti pre nego se odluchish za implementaciju ili integraciju skriptinga u sopstveni engine.

 
Odgovor na temu

RedDrake

Član broj: 80474
Poruke: 17
195.29.92.*



Profil

icon Re: Preporuka za skriptni jezik ?03.08.2007. u 12:02 - pre 202 meseci
Hvala na savjetima, ali vecinu "pitfallowa" od skriptnih jezika sam vec davno upozno.
Java ili neki strong/static typed jezik htio sam koristit za implementaciju GUI-a ne za igru, gui je logicnije implementirat u OOP-u a LUA ovo ne podrzava, ali resit cu GUI sa XML/LUA.
U igri skriptni jezik cu koristit za racunanje stete, magija i implementaciju jedinica, cisto da se te stvari mogu dodavat i kad igra bude gotova - i za ovo cu koristit XML/LUA.

e sad nakon malo goolganja doso sam do - http://luajit.org/ - je ko ima iskustva sa ovim, izgleda mi zanimljivo, a vidio sam u stalkeru da ga koriste, ali preformanse stalkera me navode da se zapitam od kud ono nelogicno stekanje :D ...
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.demon.co.uk.



+4 Profil

icon Re: Preporuka za skriptni jezik ?03.08.2007. u 12:10 - pre 202 meseci
Citat:
gui je logicnije implementirat u OOP-u a LUA ovo ne podrzava


heh, greshish. LUA je savrshen jezik za GUI i slichne namene, i podrzhava OOP "just fine".
Recimo, Adobe Lightroom, profi softver za fotografe - SVE je implementirano kroz Lua skriptove (osim low-level rutina koje se u C++u)

Inache, ne vidim potrebu za XML-om. Lua tables su savrshene za bilo koju data-definition namenu.

LuaJIT izgleda zanimljivo. btw.
 
Odgovor na temu

RedDrake

Član broj: 80474
Poruke: 17
195.29.92.*



Profil

icon Re: Preporuka za skriptni jezik ?03.08.2007. u 12:25 - pre 202 meseci
Citat:
NastyBoy: heh, greshish. LUA je savrshen jezik za GUI i slichne namene, i podrzhava OOP "just fine".
Recimo, Adobe Lightroom, profi softver za fotografe - SVE je implementirano kroz Lua skriptove (osim low-level rutina koje se u C++u)

Inache, ne vidim potrebu za XML-om. Lua tables su savrshene za bilo koju data-definition namenu.

LuaJIT izgleda zanimljivo. btw.

OOP u lui mi lici vise na hakiranje jezika nego za nesto sto je jezik namijenjen, ali slazem se da se moze. Zar nije cisce definirat podatke putem XML ? Nemam prakticnog iskustva ali cini mi se da hrpa linija koda :

Code:

dwarf["attack"]["value"] = 2
dwarf["attack"]["anim_begin"] = 1
dwarf["attack"]["anim_end"] = 13
....


moj dojam je da je ovo citljivije i lakse za radit u XML-u (ovo gore je bukvalan primjer, ali valjda vidis na sta ciljam)
 
Odgovor na temu

[es] :: GameDev - Razvoj Igara :: Preporuka za skriptni jezik ?

[ Pregleda: 3215 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.