Autor Wątek: Dab -- język programowania na potrzeby gier  (Przeczytany 25239 razy)

Offline Dab

  • Redaktor
    • blog

# Wrzesień 08, 2011, 21:33:22
Cytuj
Also, co konkretnie zyskujemy przez zautomatyzowane testy wbudowane w język? Nie twierdzę, że nic, ale wszędzie poza D  widziałem biblioteki do testów jako, duh, biblioteki, i działało zacnie.

Nie chodzi o testowanie biblioteki samej w sobie, tylko sposobu jej użycia. Np. w OpenGL w podstawowym wymiarze: sprawdzanie argumentów i glGetErrorów przez kompilator.

Cytuj
Takie coś wbudowane w język (podobnie jak funkcje lokalne i domknięcia - pokrewny temat) robi czary przy programowaniu opartym o eventy, a fajnie się składa, że w ten sposób się b.fajnie pisze gry.

Pewnie, dlatego chcę, żeby w "skryptowej" części języka były dostępne closures. Tak jak pisałem -- ObjC skrzyżowane z Lua :)

Cytuj
BTW, ten sam pomysł był w D (preconditions, postconditions i dodatkowo inwarianty dla klas sprawdzane bodaj po każdej metodzie publicznej), inspirowałeś się?

Nie, to akurat mi zapadło w pamięć z prezentacji Sweeneya. Ale dzięki za propozycję składni :)
« Ostatnia zmiana: Wrzesień 08, 2011, 21:36:23 wysłana przez Dab »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline baca130

  • Użytkownik

# Wrzesień 08, 2011, 22:11:09
Witam!
Wykpnałem taką małą gierkę w tym języku:).

Offline Avaj

  • Użytkownik

# Wrzesień 08, 2011, 22:14:26
Ogólnie to design-by-contract chyba jako pierwszy wprowadził Eiffel http://en.wikipedia.org/wiki/Eiffel_(programming_language)

Offline FoToN

  • Użytkownik

# Wrzesień 08, 2011, 22:17:05
Witam!
Wykpnałem taką małą gierkę w tym języku:).
Kurde, to chyba u mnie jest coś zrypane, bo w tej gierce też przy interakcji mam access violation :/ System W7 32bit, ATI Radeon MHD 4650, C2D 2.1ghz, 3gb RAM.

Offline Joker

  • Użytkownik

# Wrzesień 08, 2011, 22:27:55
A mam pytanie, czy w tym IDE ( Dablang IDE ) działa opcja Open File ?, bo u mnie jego klikanie nie wnosi nic ciekawego ( kompletnie nic się nie dzieje )

Offline baca130

  • Użytkownik

# Wrzesień 08, 2011, 22:30:06
@FoToN
Nie wiem ja robiłem na lapt.:
AMD Althron(tm) II P320 Dual-Core Processor 2.2 Ghz
2 GB RAM
AMD M880G with ATI Mobility Radeon HD 4250
Win 7(x64)

Offline Dab

  • Redaktor
    • blog

# Wrzesień 08, 2011, 22:31:21
Witam!
Wykpnałem taką małą gierkę w tym języku:).

Wow! Jestem pod ogromnym wrażeniem że udało się coś stworzyć mimo wszystkich niedostatków języka i środowiska :) Postaram się poprawić wymienione w readme bugi ASAP.

Jakby co to u mnie bez problemu się odpala na publicznych binarkach.

Cytuj
-czemu 'if((x>(game_width-100))' to zwraca błąd a to jest dobre 'if((x>(-100+game_width))' ?

Bo wnętrze nawiasu w pierwszej formie jest parsowane do <game_width><-100> zamiast <game_width><-><100>. To faktycznie wkurza, trzeba będzie poczarować w gramatyce.

A mam pytanie, czy w tym IDE ( Dablang IDE ) działa opcja Open File ?, bo u mnie jego klikanie nie wnosi nic ciekawego ( kompletnie nic się nie dzieje )

To tylko placeholder, sorry :) Zasadniczo zarządzanie projektem to temat na wersję 0.2.
« Ostatnia zmiana: Wrzesień 08, 2011, 22:36:46 wysłana przez Dab »

Offline FoToN

  • Użytkownik

# Wrzesień 08, 2011, 22:39:07
Btw. da się jakoś wyciągnąć na której linijce jest access violation?

Offline Dab

  • Redaktor
    • blog

# Wrzesień 08, 2011, 22:48:53
Generalnie da się, jeżeli użyjesz zewnętrznego debugera ;) Ja podpinałem po prostu Visuala pod Dab.exe (ech, a sam się śmiałem z debugowania debugera w DevC++).

Offline Netrix

  • Redaktor
    • Netrix’s devBlog

# Wrzesień 08, 2011, 23:33:36
Nice, teraz zamiast pisać silniki wszyscy będą chcieli tworzyć własne języki :)

Btw. próbowałem odpalić tę gierkę i niestety po naciśnięciu zielonej strzałki okienko, któe się pojawia zaraz znika. Brak błędów.

Offline Oti

  • Użytkownik

# Wrzesień 08, 2011, 23:40:47
Ciekaw jestem jak duży będzie spadek wydajności przy używaniu Dablang w stosunku do C++. I czy faktycznie takie narzędzie jest komuś potrzebne? (chyba, że piszesz to dla własnej satysfakcji, mniejwięcej tak samo jak ja pisałem swój język skryptowy)

Offline Kos

  • Użytkownik
    • kos.gd

# Wrzesień 08, 2011, 23:43:22
Czemu od razu spadek wydajności? Przecież kompilator korzysta z tego samego backendu, co kompilator C++ na LLVM, przez co ma te dokładnie same optymalizacje na poziomie asma.

Offline Dab

  • Redaktor
    • blog

# Wrzesień 08, 2011, 23:44:59
Oti: ja oczekuję raczej wzrostu wydajności (a już na pewno wzrostu stosunku wydajność/wysiłek kodera). Backend backendem, ale dzięki eliminacji niektórych konstrukcji C++ można zdziałać cuda. :)

Offline counterClockWise

  • Użytkownik

# Wrzesień 09, 2011, 00:02:37
Oti: ja oczekuję raczej wzrostu wydajności (a już na pewno wzrostu stosunku wydajność/wysiłek kodera). Backend backendem, ale dzięki eliminacji niektórych konstrukcji C++ można zdziałać cuda. :)

Na przykład? Co jest kluczowe?
Hehe, w pierwszej chwili zamiast cuda przeczytałem CUDA :-)

Offline Dab

  • Redaktor
    • blog

# Wrzesień 09, 2011, 00:13:43
Chociażby eliminacja zarządzanych automatycznie obiektów. Przy bitwise copy nie ma efektów ubocznych = bardziej agresywny inlining (profit). Do tego jeszcze pure functions i pewne konstrukcje da się znacznie przyspieszyć (również w czasie kompilacji). Przykładem jest hashowanie stringów w czasie kompilacji, co daje sporego kopa hashmapom. Czasem w grze fajnie jest wrzucić sobie trochę danych do worka, ale zwłaszcza w Debug tego typu struktury dają w kość.