Obiecałem sobie długi czas temu, że zrobię kiedyś grę o tym temacie - i będzie to jedna z pierwszych gier napisanych na platformę Intuicio z użyciem nowego Ptakopyska! :D


A poza tym muzyka jest fajna, a video creepy - nie dziękujcie ( ͡° ͜ʖ ͡°)


#muzyka #gamedev #intuicio #jaeger #ptakopysk
PsichiX - Obiecałem sobie długi czas temu, że zrobię kiedyś grę o tym temacie - i będ...
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Niemała zmiana:

1. Wstrzykiwanie kodu assemblera nie odbywa się już w stringu, a poprzez umieszczenie pomiędzy podwójnymi tyldami.
fajnie składnię tego wizualizuje Atom, któremu po prostu podaję iż pomiędzy tyldami ma używać składni assemblera Intuicio :D

2. dyrektywa jaegerify, która załatwia marshalling pomiędzy natywnymi modułami, a funkcjami jaegera (kompilator robi wraperową funkcję, która konwertuje typy jaeger <-> native).
PsichiX - Niemała zmiana:

1. Wstrzykiwanie kodu assemblera nie odbywa się już w st...

źródło: comment_pEeaXdY37Jkve74AtzQc2CyQExqHtw0L.jpg

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Okej, podsumowując obecny stan platformy Intuicio 4:

- architektura modułowa (tutaj to natywne i skryptowe moduły), gdzie moduły używają innych modułów;

- interpretowany (shell, skryptowanie) oraz kompilowany AOT (optymalizacja, zwiększona wydajność)[in progress];

-
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Z racji, iż prace nad kompilatorem I++ -> Iasm trwają już długo (optymalizacja drzewa wyrażeń jest koszmarem aktualnie), a ja potrzebuję mieć bardzo, ale to bardzo prosty język skryptowy na Global Game Jam do Ptakopyska, powstanie pierw bardzo prosty w kompilacji język skryptowy Kaiju.
Kaiju ma zapewnić dynamiczne typowanie, ale jednocześnie gwarancję rozlokowania pamięci. W Kaiju wszystko jest obiektem jakiejś klasy, operatory to metody jak każde inne, a biblioteka standardowa jest
PsichiX - Z racji, iż prace nad kompilatorem I++ -> Iasm trwają już długo (optymaliza...

źródło: comment_kMw90nEYmYae8jDY2gOj7my5NGlqDSGt.jpg

Pobierz
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 3
@jasiek13: ten óczuc kiedy pisanie wlasnego silnika na game Jamie jest zbyt proste I zamierzasz napisac swoj wlasny jezyk zaby napis swoj silnik :D

@PsichiX: I jeszcze nie palisz? I nie bedziesz wychidzil na fajke? to bedzie piekny Game Jamie :) a tak w ogole to SOE zarejestrowales u Siwego? :)
  • Odpowiedz
Ah, nie chwaliłem się jeszcze! przepisuję xenona (silnik, którego code base używają inne moje projekty, w tym cały Ptakopysk) na linuxy - tym samym IntuicioVM zostało rozwinięte o nowe ficzury w ramach kompatybilności z unixami, więc powolutku zbliżam się mały mi krokami do momentu, w którym za kilka miesięcy będzie można mówić o początkach konkurencji dla Node.js z językiem wspierającym współbieżność i dualizm zarządzania pamięcią ( ͡° ͜ʖ ͡°
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

O-------------e, udało się! Po długich godzinach designowania i implementowania w parserze drzewa AST, mega-w-pytke-finalna-i-nie-ruszam-jej-już składnia nowego języka programowania Intuicio++ jest w końcu gotowa! ^^ Teraz muszę wracać do implementacji w kompilatorze translatora kodu do assemblera VMki.
(Gist: https://gist.github.com/PsichiX/15b708b6f3675b86fbe4)

Teraz możecie hejcić, albo chwalić składnię, czy też rzucać propozycje (które by weszły do implementacji po opublikowaniu toolsetu) ()


#intuicio #ipp #
PsichiX - O-------------e, udało się! Po długich godzinach designowania i implementow...

źródło: comment_i0lTIisduSUmMFJOuqgz79VDpDqffU5M.jpg

Pobierz
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Nie mogłem zasnąć, więc dla zmęczenia zakodowałem finalną składnię języka Intuicio++. Aktualnie trwają prace nad kompilacją wyrażeń (staram się nie zrobić z tego kobyły, ale kompilacja wyrażeń to chyba najcięższy kawałek kompilatora ()).
Link do tekstowej wersji: https://gist.github.com/PsichiX/15b708b6f3675b86fbe4 :3

#intuicio #ipp #ptakopysk #xenoncore3 #gamedev #programowanie #gamedev #nocnazmiana
PsichiX - Nie mogłem zasnąć, więc dla zmęczenia zakodowałem finalną składnię języka I...

źródło: comment_K4I6pOmXFYlBvUNadP4CH2brDngWOszQ.jpg

Pobierz
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

A więc to już chyba oficjalne! Nowy Ptakopysk v2 będzie zintegrowany z Qt (aplikacje osadzone w QtApplication; przeportowany renderer Xenon Core 3 opierający się o Qt3D; Językiem programowania będzie Intuicio++, a kod będzie uruchamiany w VMce Intuicio lub kompilowalny do C++, miast QML + JavaScript, jak robią to inne edytory gier)! A po tym etapie zostanie dopisany export do HTML5 (kompilacja Intuicio++ do asm.js) :3
Toolset będzie miotał
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Yep, dziś podczas kodowania na #nocnazmiana, powstała finalna wersja bazowa składni I++! ^^ Jutro zaczynam implementować kompilację tego wszytkiego do assemblera Intuicio - do końca tygodnia pewnie będzie można już wrzucić toolset (kompilator, runner i jakąś podstawową dokumentację języka) do testów publicznych :333

https://gist.github.com/PsichiX/15b708b6f3675b86fbe4

#ipp - otwieram tag związany wyłącznie z nowinkami z samego Intuicio++!
#intuicio #xenoncore3 #ptakopysk #
PsichiX - Yep, dziś podczas kodowania na #nocnazmiana, powstała finalna wersja bazowa...

źródło: comment_4Hn2GBC7T2Oopzxb3CzRXLKuiOIzT8gU.jpg

Pobierz
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

TL; DR:
https://gist.github.com/PsichiX/15b708b6f3675b86fbe4

Po dłuższej zabawie w robienie parsera drzewa AST doszedłem do wniosku, że zdobyłem wystarczającą wiedzę do tego, by móc zacząć kodować właściwy kompilator Intuicio++ (a.k.a. I++) - zmodyfikowałem nieco pierwotną składnię, najwcześniej po weekendzie dojdą funkcje oraz wstawki ASMowe i od tego momentu zajmę się procesem konwertowania drzewa AST do assemblera Intuicio, tym samym testując jego bazową funkcjonalność. Gdy osiągnę ten etap, zbuduję paczkę do testów publicznych, co każdy by
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Nie rób parsera używając RegExa - mówili. Namęczysz się więcej, niżeli to osiągniesz, o ile osiągniesz - mówili. A takiego lolka! Powiedziałem, że zrobię, to zrobiłem i udało się zrobić nawet sprawnie działające rekurencje regexowe (yup, ominąłem dosyć prostym trickiem problemy wynikające z tego, że silnik RegExowy w .NET to maszyna stanu skończonego!) ^^
Tworzenie reguł składni I++ ciąg dalszy :3

Oto pliki (bo obrazek tylko 'na zachętę'): https://gist.github.com/PsichiX/b1c121444e67f685ed3b

#intuicio #xenoncore3
PsichiX - Nie rób parsera używając RegExa - mówili. Namęczysz się więcej, niżeli to o...

źródło: comment_J0QRclGy50IKwDd0VnDvRaxf17HVQtTv.jpg

Pobierz
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Powolutku (bo czasu bardzo mało i co kilka dni mogę siadać do kodu) powstaje regexowy generator drzewa AST. W obecnej postaci kod zdaje się jest już skończony, teraz pozostaje uzupełnić plik gramatyki i voila (potem na podstawie tejże gramatyki i++ powstanie już docelowy kompilator napisany w c/c++ - ten parser służyć ma głównie do testowania poprawności kompilowania nowych języków do asma Intuicio) :3
W skrócie: coraz bliżej ukończenia i wydania toolsetu mej
PsichiX - Powolutku (bo czasu bardzo mało i co kilka dni mogę siadać do kodu) powstaj...

źródło: comment_lViODTPiaaegfUtjdpO6mZPqXs3WVwch.jpg

Pobierz
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Ten uczuć, gdy piszesz parser drzewa AST w #cpp i zajmuje to 3 dni (z czego masę czasu zajmuje szukanie i kompilowanie odpowiednich bibliotek), a potem robisz to samo w #csharp i zajmuje to 3 godziny <3
Bogowie, czemu ja się jeszcze nie nauczyłem, że #csharp == szybciej i prościej? ()


#gorzkiezale #nieprogramowanie #gamedev #
  • 22
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

W przerwie od spamowania nowymi ficzurami #intuicio, pokażę Wam jeden z fajniejszych już wbudowanych w VMkę: obiekty zarządzane
{ to takie 'małe' przygotowanie do kompilacji ILasm (.NET) -> Intuicio :3 }
A tutaj łapcie Gista kodu bez kolorowania składni: https://gist.github.com/PsichiX/8cbc054472c803e17ea3

#xenoncore3 #ptakopysk #gamedev #programowanie
PsichiX - W przerwie od spamowania nowymi ficzurami #intuicio, pokażę Wam jeden z faj...

źródło: comment_43UNrRMOmVJ6gYLFYve3LG0MbgtWhD5k.jpg

Pobierz
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

YAAAAY! Udało się! ^^ co prawda napieprzyłem się z implementacją, bo musiałem przerobić sygnalizowanie zakończenia wątków współbieżnych, ale działa! :3 jeszcze tylko dodać wymuszone punkty synchronizacji, co by logi mogły się poprawnie wyświetlać i będzie perfekcyjnie <3

#gamedev (bo kiedyś trafi do #ptakopysk-a); #programowanie #xenoncore3 #intuicio
PsichiX - YAAAAY! Udało się! ^^ co prawda napieprzyłem się z implementacją, bo musiał...

źródło: comment_wYlBrNt0wTlz6Ihoqp4HcGVuSGrR55kt.jpg

Pobierz
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Ilythiiri: ten potwór to assembler mej maszyny wirtualnej. normalnie będzie się pisać w jakimś dialekcie wysokopoziomowym, kwestia napisania w końcu kompilatora jakiegoś języka do tego assemblera i będzie można używać :3
  • Odpowiedz