Posty

Wyświetlanie postów z 2022

Droga do Kubernetes (1)

Od jakiegoś czasu wchodzę głębiej w Kubernetes. Co to takiego? Otóż to taki program do zarządzania kontenerami. Teraz spytacie, co to są kontenery? Otóż kontenery to metoda na izolowanie programów od siebie. Technicznie, zakładając, że są to kontenery linuksowe, to polega to na wykorzystaniu mechanizmów linuksa takich jak przestrzenie nazw czy inne. No i układa się te kontenery na tzw. podach. I pody są w Kubernetes taką podstawową jednostką podziału. Mają własne IP nawet. Z kolei pody są położone na węzłach (nodes), które reprezentują jakby jeden komputer (fizyczny bądź wirtualny. Bo to nie musi być komputer prawdziwy). I te węzły też mają swoje IP. Dalej, różne węzły tworzą jakby taki klaster(cluster), czyli taki zbiór różnych węzłów. I są one połączone w sieć. I mogą się komunikować. Żeby ułatwić komunikacje między różnymi podami, można tworzyć różne serwisy, które będą w stanie przemapować nazwę serwisu na IP. Dobra a teraz podstawowe pytanie - na co to wszystko? Pewnie

Jak napisać silnik do gier (1)

Robię kolejny silnik do gier. Ale robię go w sposób inny niż zwykle. No bo zwykle, jak robię takie rzeczy (bo ja to już nie jeden silnik zrobiłem, nawet jeśli były to małe silniki), zajmuję się najpierw technicznymi aspektami takimi jak wydajne wyświetlanie grafiki w WebGL choćby. A teraz? No teraz właśnie uznałem, że techniczne aspekty mam już obcykane, bo nauczyłem się ich w poprzednich projektach. Teraz co robię? Ano zdbam o samą architekturę tego silnika. Żeby to dało się utrzymywać potem. Ogólnie zanim zacząłem pisać, to sobie rozpisałem to na kartce, jak to ma wyglądać, cały przepływ danych. I wygląda to mniej więcej tak: INPUT -> EVENT HANDLERS -> ACTION DISPATCHER -> STATE -> STATE DELTAS -> RENDERER Czyli najpierw jest input, jakieś zewnętrzne zdarzenie, które powoduje odpalenie kodu. Np. użytkownik wcisnął jakiś klawisz. Albo po prostu odpalił się czas na apdejt kolejnej klatki. Event handlery coś tam robią i następnie rozsyłają odpowiednie akcje (jak w

Moja przygoda z TypeScriptem

Zacząłem swój pierwszy projekt pisany w TypeScript. Będzie to silnik do gier. Dlaczego teraz? Dlaczego TS? Czyż nie byłem do TypeScripta negatywnie nastawiony? Cofnijmy się wstecz. Od kilku lat stykam się z TypeScriptem w różnych projektach i niestety nie były to przyjemne spotkania. Ciągle odnosiłem wrażenie, że w TypeScript piszą ludzie, którzy nie mają pojęcia o JS. Przychodzą tacy z ce-krzyżyka czy innej dżawy i chcą pisać w JS tak, jak pisali w swoich językach. I niestety to była prawda. TypeScript ma pewne zalety, ale jednak ludzie tego nadużywają (typowania, klas itp.). Sprawiają, że kod staje się nieczytelny i mało elastyczny. Często miałem wrażenie, że TypeScript mnie ogranicza. Znam statyczne typowanie z C++ czy Pascala/Delphi, więc powrót do niego wydawał mi się krokiem wstecz. Co się jednak zmieniło? Po pierwsze - TypeScriptu nie da się lekceważyć, bo jest mega popularny. Więc mając z nim styczność w różnych projektach, sięgałem też po dokumentację, robiłem Hell

W co idę?

Minęły dwa tygodnie od początku nowego roku. Co więc robiłem? W co chcę iść? Otóż proszę państwa ostatnio zainteresowałem się robieniem apek mobilnych. A przynajmniej eksperymentuję sobie z React Native. Mam już konkretny pomysł na aplikację, ale to będzie wymagało researchu (chcę zrobić apkę, która będzie korzystała z OCR). Myślę, że w ciągu kilku tygodni coś będę w stanie pokazać. Innym projektem, który chcę zacząć, to będzie zrobienie remake'u mojego edytora Looptile . Napiszę go całkowicie od nowa i na początku będzie w 2D. I to będzie taki jakby framework/silnik trochę, który potem będzie można użyć do robienia innych projektów. Żeby nie zaczynać wszystkiego od nowa. Tylko to już będzie projekt bardziej na miesiące. Chcę zrobić najpierw infrastrukturę. Będę korzystał ze wzorca event sourcing, żeby móc łatwo zapamiętywać różne zdarzenia w edytorze (np. zbudowanie czegoś) i potem łatwo będę mógł robić undo/redo. Skorzystam też z moich własnych bibliotek Taska i Mordux (T