Ohayo #gamedev!
W ramach testu platformy #intuicio (którą robię do mojej konsoli growej na Rpi3 i inne platformy: desktop (win, linux (distra debianowe), Mac os X, Android i iOS oraz Web na WebGL), chcę stworzyć grę multiplayer o walce marines vs. kosmici, w której główną cechą mechaniki ma być czasowa zmiana drużyny przez wszystkich graczy, tj. co minutę-dwie każdy gracz zamienia się miejscami z innym graczem z drużyny przeciwnej, aby wypełniać
@PsichiX: Sam pomysł jest ciekawy, ale sposób w jaki planujesz go wykonać jest bardzo słaby. Po pierwsze to jaki sens ma w tym wypadku klimat "marines vs aliens"? Skoro są dwie tak różne strony konfliktu to gracz raczej powinien się wczuwać w daną nacje. W dodatku każdy nowy gracz się będzie mylił i po zmianie drużyny strzelał do swoich przez pierwsze kilka sekund z przyzwyczajenia - przypuszczam że o to ci
mysle nad rozwiazaniem dostepu do zasobow, tj. ogolne podejscie do URI:
zrobic manager protokolow, ktory bedzie pomostem z serwisem (polaczenie socketowe?) do obslugi zadan URIm, np:
apka A rejestruje modul, ktory obslugiwac ma protokol http, a aplikacja B protokol file. definiowane one beda w manifescie. aplikacja C moze robic zapytania:

string content = ResourcesManager.callSync("file://local-storage/test.txt");
tutaj resource manager szuka zarejestrowany pod protokol file modul i on dokonuje operacji na URI, tj. otwiera plik
Woah! Package manager działa całkowicie! ^^
Musiałem zrefaktoryzować toola do uruchamiania skryptów i4s, by sprawdzał, czy jeśli za input podamy ścieżkę do folderu (miast skryptu), oraz w tym folderze znajduje się 'module.json', to doda ścieżki do dependencies wylistowanych w tym module.
()
No to wracam robić moduł natywny do obsługi mediów (czyli wrapper SFMLa), który użyję w gierce testowej napisanej w Jaegerze :D

#nieprogramowanie #
Musiałem zrefaktoryzować toola do uruchamiania skryptów i4s, by sprawdzał, czy jeśli za input podamy ścieżkę do folderu (miast skryptu), oraz w tym folderze znajduje się 'module.json', to doda ścieżki do dependencies wylistowanych w tym module.


To nie jest refaktoryzacja. Refaktoryzacja to zmiana kodu bez zmiany funkcjonalności

Tak tylko prostuję, bo w pracy dostałbyś zjeby za niewłaściwa terminologię.
@PsichiX: npm od strony jest niemożliwy do skonfigurowania "po swojemu" nawet w wersji Enterprise kosztującej 2000$ rocznie (no wow, w końcu można hostować pakiety u siebie), a silver support to bodajże 20k dolanów ( ͡° ͜ʖ ͡°).

Ostatnio i tak zliberalizowali politykę.
@GlenPL dokladnie tak, jak @slucham-psa-jak-gra napisal - rodzina jezykow platformy intuicio wykorzystuje pod spodem wspolny assembler i ustandaryzowane ABI do komunikacji pomiedzy modulami natywnymi, wiec mozna pisac kod w kazdym jexyku, ktory korxysta ze wspolnego assemblera. Dlatego pokazuje czesto screeny z asma takze :)
@fegwegw alez owszem, jest mi to potrzebne - tworze darmowa konsole do grania, nie oparta na androidzie oraz system ma nia i jest to czesc srodowiska uruchomieniowego. Plus jest to jeden z rodziny jezykow uzywanej do mojego toolsetu do tworzenia gier. Po konsoli stworze na tym doswiadczeniu system dla smartfonow (dla mnie to szansa uniezaleznienia sie od obecnych, zamknietych, szpiegujacych systemow samsunga).
Nie wiem, czy ludzie beda tego uzywac, ale przede wszystkim
Hah! Przepisałem manager pamięci do #intuicio i teraz nie dość, że mam stronicowanie, mapowanie, to jeszcze mogę w końcu mapować zewnętrzną pamięć (user defined memory) na zakres adresów wirtualnych platformy! ^^
@FNwsk: nie ma obawy - ja to wszystko udokumentuję, tylko muszę ukończyć swoje cele by wykorzystać "ciąg" w maksimum potencjału, potem gdy siły opadną, wszystko na spokojnie opiszę, aż powróci okres wzmożonej aktywności - priorytety ustalam wedle cyklów energetycznych organizmu, ale żadna praca przy tym nie ginie - ot, zostaje spychana na potem :)
@FNwsk: god dammit, ale hejt tam leci :D
Dlaczego i do czego chcę dodać obsługę dec64: chcę, aby Jaeger mógł służyć także jako język do bardzo dokładnych obliczeń na liczbach, tak jak MatLab - jeśli znasz inne formaty liczbowe spełniające dokładne, bezstratne obliczenia na liczbach ułamkowych, będę rad uzyskać więcej informacji ^^
Dokończyłem używanie natywnych modułów oraz marshalling typów native <-> jaeger i połatałem dziury, przez co już się nie #!$%@? ()
Zanim zrobię korutyny, przypomniałem sobie, że w sumie to fajnie byłoby móc używać w programie control flow (ify i pętle).
Z pętel to while powinien wystarczyć, nie?

#jaeger #programowanie #intuicio #gamedev
Pobierz PsichiX - Dokończyłem używanie natywnych modułów oraz marshalling typów native <-> ja...
źródło: comment_pyN5cshJOOWcQcqUev423KlY50YXkRfQ.jpg
@insystem:
marshalling - jest to proces konwersji typów. na upartego możesz porównać to do serializacji z formatu A do pośredniego formatu B i deserializacji z pośredniego formatu B do innego formatu C.
Używa się go przede wszystkim do komunikacji pomiędzy różnymi ABI - np. .NET używa marshallingu pomiędzy typami natywnymi (int32/float32 itp.) a typami zarządzanymi maszyny wirtualnej .NETa.

native <-> jaeger - tu chodzi konkretnie o konwersję wartości
dostaniesz protipa na dzieńdobry za free :P

nigdy #!$%@? nie nazywaj niczego a,b,c,d,e

Tylko wal pełną whatIsThisInEnglish nazwę.

Wyjątki to tymczasowe śmieci w pętlach itp.

Podziękujesz kiedyś za to, i rób to nawet przy najgłupszych programikach tego typu żeby Ci w krew weszło od razu.


@Ulvarin: dostaniesz protipa na dowidzenia za free :P
nigdy #!$%@? nie powtarzaj bezmyślnie regułek i mądrości wyczytanych w książkach i internecie.
@Swiatek7 ja tu ciagle jestem, ot koduje non stop ;p
poza edukacja? Tworze platforme uruchomieniowa w ideologii natywnych modulow z rodzina jezykow wysokopoziomowych opartych o wspolny assembler - mysl o tym jak o romansie .neta z npm :D
celem jest zwiekszenie liczby targetow i optymalizacji czasu produkcji gier w ptakopysku + robie wlasna konsole na rpi3 oparta o to
()
Nie wiem, czy kogoś to zdziwi, ale designuję przenośną konsolę grową opartą na raspberry pi - customowy system z lekką powłoką graficzną i środowiskiem uruchomieniowym aplikacji opartym na tworzonej aktualnie platformie Intuicio.
Tak, żodyn android, tylko natywne aplikacje, aby śmigało - rpi3 ma możliwości chyba generację starszych samsungów, a te mogą pociągnąć więcej, jeśli aplikacje będą natywne, niżeli odpalane w VMce.

Co jakiś czas będę wrzucał informacje o postępach designu i może
@KubusiowyKubus: mirko dziś szaleje i ucięło mi komentarz:

"tylko dla zaawansowanych" oznacza tych, któzy będą umieć posługiwać się assemblerem Intuicio, a normalny user ma nie musieć nawet go dotykać - marshaling to wyłącznie opcja dla zaawansowanych w znajomości platformy.

Oto kontekst, o którym mówię.
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).

#programowanie #jaeger #intuicio (trochę #gamedev bo to do #ptakopysk robię)
Pobierz PsichiX - Niemała zmiana:

1. Wstrzykiwanie kodu assemblera nie odbywa się już w st...
źródło: comment_pEeaXdY37Jkve74AtzQc2CyQExqHtw0L.jpg
@frogi16: do tego trojakość wykonywania kodu:
- uruchamianie w shellu (zastępstwo basha np. do procesu budowania projektów)
- uruchamianie w grze jako język skryptowy
- kompilacja do binarek jako natywne moduły uruchamiane przez inne moduły i aplikacje hosta

tak więc tego, assembler Intuicio ma to co wyżej, teraz potrzebne mi języki wyższego poziomu :D