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

Offline Dab

  • Redaktor
    • blog

# Wrzesień 06, 2011, 15:03:35
Strona domowa projektu

Na WGK miałem okazję po raz przedstawić publicznie tworzony przeze mnie język programowania Dab i związane z nim środowisko.

Zamierzenia języka są dosyć ambitne i jeszcze nie do końca sprecyzowane, więc powiem jak to wygląda na chwilę obecną. Dab jest podobny do C z kilkoma różnicami:
  • brak plików nagłówkowych
  • kompilacja w całości w pamięci (przy czym ATM nie ma kompilacji statycznej, jest tylko JIT)
  • możliwość edycji kodu (funkcji) w czasie działania gry/programu, praktycznie bez żadnych ograniczeń

Komunikacja z bibliotekami jest obecnie realizowana poprzez importowanie funkcji z DLL. Backendem kompilatora jest LLVM.

Własności języka pozwoliły na bardzo szybkie stworzenie gry demonstracyjnej o nazwie JIT Shooter.

Język ma też własne środowisko napisane w wxWidgets z użyciem Scintilli.

Cały język i środowisko dostępne są na Githubie na licencji MIT.
« Ostatnia zmiana: Wrzesień 06, 2011, 15:44:02 wysłana przez Dab »

Offline Mr. Spam

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

Offline PsichiX (ΨΧΞ)

  • Użytkownik
    • PsichiX Website

# Wrzesień 06, 2011, 15:11:50
cholerka, a to mi ciągle przypisywano zbyt wysokie ego :D

Offline DamianDev

  • Użytkownik

# Wrzesień 06, 2011, 15:29:12
No sciagnelem. I syntax mi sie nie podoba ;) Zrob jakas dokumentacje czy cos
« Ostatnia zmiana: Wrzesień 06, 2011, 15:32:40 wysłana przez DamianDev »

Offline MDW

  • Użytkownik
    • www.encore-games.com

# Wrzesień 06, 2011, 15:32:50
- Czym się zajmujesz?

- Piszę gry komputerowe

- Ooo, ciekawe! Jakiego języka używasz?

- Piszę we własnym języku, który sam stworzyłem specjalnie w tym celu.

- What!?!? Szacun...

A tak na poważnie to faktycznie szacunek. Pojęcia nie miałbym za co się zabrać gdybym miał pisać własny język. :)

Offline Vipa

  • Redaktor

# Wrzesień 06, 2011, 15:38:13
Dla mnie język Dab to największa niespodzianka WGK. Kompilacja i przełączanie trybów debug - release w trakcie gdy program jest uruchomiony jest genialne. Do tego napisać własny język, kompilator i jeszcze na tym napisać grę i co najważniejsze - tak to przedstawić, że nawet kompletny laik to zrozumiał (piszę tu o sobie) budzi szacun.
Nawet nie mogłem się powstrzymać i na chwilę usiadłem do kodu :). Oczekiwałem nie wiadomo czego trudnego a okazało się, że wystarczy znajomość C i można działać.

Offline Kos

  • Użytkownik
    • kos.gd

# Wrzesień 06, 2011, 15:40:44
No dobra, teraz to już jestem na siebie dokumentnie zły, że mnie tam nie było. :)))

Dab, opowiesz czemu zdecydowałeś się na tak bardzo C-ową składnię? Czy masz jakieś negatywne doświadczenia z bardziej dynamicznymi językami?
« Ostatnia zmiana: Wrzesień 06, 2011, 15:45:26 wysłana przez Kos »

Offline Dab

  • Redaktor
    • blog

# Wrzesień 06, 2011, 16:01:45
Jeżeli chodzi o składnię samą w sobie to jest to raczej standard i znacznie wygładza learning curve. Nie sądzę, żeby miał szansę szerzej przyjąć się egzotyczny język z egzotyczną składnią. Natomiast jedna z rzeczy która zapewne się zmieni w stosunku do C to funkcje zwracające krotki zamiast emulacji tego na wskaźnikach (aby umożliwić łatwe tworzenie pure functions).

Offline Kos

  • Użytkownik
    • kos.gd

# Wrzesień 06, 2011, 16:07:28
A kodowałeś gry w JS? Tworzenie funkcji w locie, żonglowanie nimi i trzymanie ich w obiektach pozwala kodować w bardzo prosty i przyjemny sposób, imho świetnie dopasowany do gamedevu.

Offline Dab

  • Redaktor
    • blog

# Wrzesień 06, 2011, 16:10:54
Brak kontroli typów i żonglowanie obiektami na wszystkie strony przestaje być fajne po 5000 linijce kodu ;) Ja celuję jednak w coś bardziej niskopoziomowego co pozwoli na skrócenie iteracji, ale jednocześnie da ogarnąć większy projekt.
« Ostatnia zmiana: Wrzesień 06, 2011, 16:13:02 wysłana przez Dab »

Offline ANtY

  • With fury and fire
  • Użytkownik
    • ANtY

  • Zbanowany
# Wrzesień 06, 2011, 16:40:16
Dobra uwaga, jestem noobem jeśli chodzi o kodzenie, używałem tylko pascala i cpp, czemu miałbym się na to przesiąść z c++a? Możesz później wyjaśnienie wrzucić na swoją stronkę, bo na pewno się przyda.

Coś oprócz zmiany z release na debug podczas działania programu?

Offline qad

  • Użytkownik

# Wrzesień 06, 2011, 16:43:13
to jest świetne !! szkoda tylko że dzisiaj język i składnia to jest 5% a biblioteki to 95% ale za jakiś czas....

Offline nembutal

  • Użytkownik

# Wrzesień 06, 2011, 17:30:16
- Ooo, ciekawe! Jakiego języka używasz?
- Piszę we własnym języku, który sam stworzyłem specjalnie w tym celu.
- What!?!? Szacun...
Prawidłowy wniosek: ten pan nie kończy swoich gier :D

Offline hashedone

  • Użytkownik

# Wrzesień 06, 2011, 17:32:40
Oj Dab, zawiodłeś mnie. Run powoduje "program Dab.exe przestał działać" (Run internally działa). Podobny problem przy Fix definitions. Win7 64bit.

Offline vashpan

  • Użytkownik
    • Strona

# Wrzesień 06, 2011, 19:36:00
Hah, ekstra. To o czym duza czesc programistow sobie marzy i planuje ty wciezliles w zycie ;) Pelen szacun... Ma kilka killer featursow... Ogarne to jak bede pod Windowsem...

Tez zaluje ze nie bylem na WGK - ale troche brak czasu obecnie...

Offline MadBonsai

  • Użytkownik
    • Ifrit

# Wrzesień 06, 2011, 20:42:40
Oby tylko kiedykolwiek powstała na tym sensowna gra, która będzie podobać się ludziom nie mającym pojęcia, w jaki sposób ta gra powstała i co miał z tym wspólnego Dab! :)
Życzę powodzenia i nieustającego (samo)zaparcia ;)