Posty

Wyświetlanie postów z czerwiec, 2022

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