No i udało mi się w końcu to co planowałem od dłuższego czasu ale nigdy nie mogłem się zebrać. Od wczoraj mogę się cieszyć podpiętą lua’ą. Dzięki temu w końcu mam rozgraniczoną logikę gry od samego silnika. Udało mi się nawet przepisać cała logikę gracza na skrypty i dużą część samego silnika. Luabind spisuje się tutaj bardzo dobrze. Tylko podczas przepisywania logiki pojawił się pewien problem, który jest argumenty dla ludzi przeciwnych językom skryptowym a mianowicie debugowanie. Jeśli chodzi o pisanie skryptów w “czystym” lua to z debugowaniem większego problemu nie ma, ale znowu jak podepniemy np. nasz własny silnik wtedy problem się pojawia. Na szczęście nie jest z tym tak źle jak to wygląda. Z pomocą przychodzi nam program o nazwie Decoda (http://www.unknownworlds.com/decoda), który jest bardzo fajnym debugerem lua. Program jest w pełni aplikacją graficzną (“konsolówki” fuuuu), posiada własny dość ciekawy edytor skryptów (wcięcia, kolorowanie i podpowiadanie składni, itp), project explorer oraz to co nas najbardziej interesuje czyli debuger. Posiada on takie funkcję jak: breakpoint’y, call stack oraz output czyli to co jest najbardziej potrzebne. Zasada działanie jest bardzo prosta, tworzymy nowy projekt zaznaczamy exe’ka w którym używamy naszych skryptów, ustawiamy “working directory”, wciskamy F5 (skąd my to znamy..) i odpala się nasza aplikacja, Decoda sama wczytuje skrypty użyte w niej i zaczynamy debugować. Sama zasada działania debugera jest bardzo podoba jak ta w Visuala, więc nie ma problemu z jej obsługą.
Ogólnie program oceniam bardzo pozytywnie, jest tym czego szukałem, teraz pisanie skryptów jest o wiele łatwiejsze. Ciekawostką jest to, że aplikacja umożliwia debugowanie pod konsolami xbox360 oraz ps3. Niestety aplikacja nie jest darmowa, no ale w sumie nie ma co się temu dziwić. Pocieszeniem jest cena, która nawet w naszym kraju nie jest wygórowana. Licencja indie kosztuje 50$ natomiast licencja “pełna” jest już droższa i już nie taka niska bo 400$, ale myślę, że dla sporej części osób licencja indie (dla firm i osób których roczny dochód nie przekracza 100k$) jest wystarczająca.







Sierpień 24th, 2009 at 7:41 pm
O to mnie zaskoczyłeś
, nawet oglądałem tą dacodę, ale umknęło mi jakoś, że można debugować w ten sposób skrypty.
Sierpień 24th, 2009 at 7:47 pm
Duzo jest programow, ktore umozliwiaja kolorowanie skladni, ale debugowanie juz nie. Ten jest do tego fajny, mozna bardzo latwi wy”watch’owac” sobie zmiene, postawic breakpointy, i tak sie o wiele latwiej pisze.
Sierpień 24th, 2009 at 8:03 pm
Dobrze widzieć jak ten silnik rozwijasz, tak trzymaj!
Sierpień 24th, 2009 at 9:33 pm
O żesz, ale się ten program zmienił od kiedy ostatni raz go wizdiałem, dzięki za wzmiankę
.
Z innej beczki : ogólnie jakoś sceptycznie jestem nastawiony do pisania _całej_ logiki gry w skryptach. Napisałeś już dość kodu w skryptach, żeby powiedzieć, że takie podejście się sprawdza ( w sensie wydajności, ale także wygody kodzenia)?
Sierpień 24th, 2009 at 10:58 pm
Pod wzgledem wygodny jest super. Raz nie musisz przekompilowywac kodu za kazdy razem jak zmieniasz cos w gameplay’u (dopieranie wartosci, probowanie nowych rzecz, itp), druga sprawa mozesz dac skrypty, np. designerowi ktory bedzie sam sobie zmienial ustawienia. Kolejna rzecza jest, ze masz odseparowana czesc silnika od logiki, czyli nie ma niepotrzebnego syfu w kodzie i latwiej jest to ogarnac.
Co do wydajnosci, to lua chyba jest jednym z najszych jezykow skryptowych i najczesciej uzywanych w gamedevie (crysis, wow, stalker), wiec jesli w tych grach daje rade, to mysle ze wszedzie da rade. Pozatym to przewaznie tylko logika, za wiekszosc skomplikowanych obliczen odpowiada przeciez silnik. Ja jestem jak najbardziej za. Najwiecej czasu chyba pochalanie “zbindowanie” kody do lua.
Październik 23rd, 2009 at 4:19 pm
Хм… Читаю и понимаю, что ничего не понимаю о чем речь:)
Październik 30th, 2009 at 10:02 am
Может быть, это потому, что страницы перевода Google Translate:)