Tworzenie gier w JavaScript – Object Pooling. Praktyka.

Ostatnim razem przedstawiłem teorię stojącą za ideą Object Poolingu. Omówiłem czym jest i dlaczego warto go używać. Dziś nadszedł czas na praktykę. W tym wpisie pokażę bardzo prosty przykład implementacji Object Poolingu.

Będzie to symulator cząsteczek spadających z jednego punktu na obszarze gry. Cząsteczki te mają krótki okres życia ale za to będą bardzo często się spawnować. Mój program będzie musiał poradzić sobie ze sporą ilością obiektów. Object Pooling sprawdzi się tu świetnie.

JavaScript Object Pooling w grach Czytaj dalej Tworzenie gier w JavaScript – Object Pooling. Praktyka.

Tworzenie gier w JavaScript – Object Pooling. Teoria.

W dzisiejszych czasach w gry webowe zagrać można na różnych urządzeniach, nie tylko na mocnych komputerach stacjonarnych ale też na znacznie skromniejszych urządzeniach mobilnych. Jako developerzy chcemy aby gra dotarła do jak największej grupy odbiorców, dlatego wydajność jest bardzo ważna.

W tym wpisie przedstawię prostą mechanikę, która pozwoli na znaczne polepszenie wydajności każdej gry. Object Pooling, bo o nim mowa to wręcz podstawa, bez której nie można mówić o wydajnie działającej grze. Wiem bo moje własne (też przedstawiane na blogu) gry cierpiały z powodu brak tego mechanizmu.

javascript tajniki programowania gier Czytaj dalej Tworzenie gier w JavaScript – Object Pooling. Teoria.

Tworzenie gier w JavaScript – Zaawansowany Game Loop

Prawie rok temu wrzuciłem tu posta o tworzeniu game loop’ów w grach JSowych. Bardzo dużo zmieniło się od tego czasu. Przede wszystkim nabrałem doświadczenia i nauczyłem się tego i owego. Innymi słowy, nie jestem już aż takim noobem jak kiedyś 🙂 .

Właśnie dlatego dziś wracam do tematu. Teraz, kiedy stworzyłem już kilka prostych gier, mogę powiedzieć co nieco w temacie 🙂 . W tym poście przedstawię bardziej zaawansowaną implementację pętli gry. Przyda się ona nie tylko w grach ale i we wszelkich animacjach i symulacjach.

Tworzenie gier w Javascript Game Loop Czytaj dalej Tworzenie gier w JavaScript – Zaawansowany Game Loop

GCM – Październik: Necropolis – Phaser + TypeScript. Pierwszy prototyp.

W ostatnim poście przedstawiłem podstawowy setup mojej październikowej gry. Tym razem gracz wcieli się w rolę brawurowego awanturnika, który w poszukiwaniu potęgi i chwały zapuścił się w odmęty przeklętych podziemi leżących na granicy świata żywych i umarłych. Niestety miejsce to okazało się niebezpieczną pułapką. Jeżeli nie uda mu się uciec na czas, zostanie w nim uwięziony na zawsze 🙂 .

Całkiem nieźle znam już Phasera, jednak ponieważ używam TypeScriptu zamiast zwykłego JSa, pewne konstrukcje w grze będą wyglądać trochę inaczej. Na szczęście różnic jest niewiele, i są one raczej na plus. W dzisiejszym poście przedstawię implementację podstawowych elementów gry w nowym środowisku, dzięki temu przejście na TSa powinno być bezbolesne.

Jak programowac Phaser TypeScript Czytaj dalej GCM – Październik: Necropolis – Phaser + TypeScript. Pierwszy prototyp.

GCM – Październik: Necropolis – Phaser + TypeScript. Podstawowy setup projektu.

Do stworzenia wrześniowej gry eksperymentalnie wykorzystałem język TypeScript. Bardzo podoba mi się konwencja typowanego JavaScriptu na sterydach. Jednak brakowało mi frameworka Phaser, który lubię i dobrze znam.

Dlatego w tym miesiącu, do stworzenia prostej gry, postanowiłem wykorzystać obie te technologie. Październikowa gra powstanie we frameworku Phaser i napisana zostanie w TypeScript. Zdradzę wam od razu, że to połączenie spisuje się doskonale.

Gra napisana w Phaser TypeScript Czytaj dalej GCM – Październik: Necropolis – Phaser + TypeScript. Podstawowy setup projektu.

Podstawowe przekształcenia w elemencie Canvas

Element canvas nadaje się świetnie do tworzenia gier (oraz różnego rodzaju animacji) w środowisku przeglądarki. Nie jest bez wad ale zdecydowanie to najlepszy wybór z dostępnych opcji. API obsługujące canvas jest bardzo proste w użyciu, wystarczy wyznaczyć współrzędne x oraz y obiektu i wyrysować go stosując odpowiednie metody. Takie podejście jest idealne, jednak nie kompletne.

Manipulując tylko tymi współrzędnymi szybko natrafimy na pewne ograniczenia. Na przykład gdy chcemy obrócić element lub go przeskalować. Obliczanie nowych współrzędnych i wielkości może stać się bardzo mozolne. Na szczęście mamy przekształcenia.

JavaScript Noob Canvas Przeksztalcenia Czytaj dalej Podstawowe przekształcenia w elemencie Canvas

GCM – Wrzesień: Gra w TypeScript. Skończona Gra.

Dziś przedstawiam ostateczną wersję mojej pierwszej napisanej w TypeScripcie gry. Szczerze mówiąc ani nie jest to moja najlepsza gra, ani nie jest to wybitny program TypeScriptowy. No ale tak zazwyczaj wyglądają początki, nic na to nie poradzę 🙂 .

Kolejne programy będą na pewno coraz lepsze. Póki co jestem zadowolony, że udało mi się napisać działającą grę bez pomocy żadnych frameworków, nawet jeżeli z założenia jest bardzo prosta.

TypeScript Komplena Gra Czytaj dalej GCM – Wrzesień: Gra w TypeScript. Skończona Gra.

GCM – Wrzesień: Gra w TypeScript. Gra nabiera kształtów

Już wiem, jak wyglądać będzie moja TypeScriptowa gra. Stworzę bardzo prostą wersję klasycznej łamigłówki sokoban. Aby ukończyć grę gracz musi przesunąć skrzynie na wyznaczone pola. Musi robić to umiejętnie, bo inaczej się zablokuje.

W mojej implementacji mam już obiekt gracza, ściany o które się obija, oraz skrzynki, które może przesuwać. Czyli gra już prawie gotowa 🙂

JavaScript Noob TypeScript Czytaj dalej GCM – Wrzesień: Gra w TypeScript. Gra nabiera kształtów

GCM – Wrzesień: Gra w TypeScript. Game Loop i prosty mechanizm obsługi stanów.

Jeszcze zostało kilka dni września, może zdążę dostarczyć grę miesiąca na czas 🙂 . Będzie to na pewno wyzwanie, ponieważ postanowiłem tym razem odejść od Phasera, którego znam już prawie na wylot.

Postanowiłem wykorzystać projekt Gra Co miesiąć, aby podciągnąć swoje umiejętności programowania w TypeScript. A właściwie, to żeby w ogóle jakieś umiejętności zdobyć. Póki co moje doświadczenia z TSem były czysto teoretyczne. Czas na trochę praktyki! 🙂

programowanie gier w typescript Czytaj dalej GCM – Wrzesień: Gra w TypeScript. Game Loop i prosty mechanizm obsługi stanów.

GCM – Sierpień: Space Shooter. Wersja finalna.

Trochę czasu to zajęło, ale w końcu doprowadziłem sierpniową grę do stanu finalnego. Muszę przyznać, jestem bardzo zadowolony z tego jak wyszło. Myślę, że można traktować ją jako naprawdę udany prototyp 🙂 .

Tak naprawdę, oprócz grafiki, nie doszło nic szczególnego. Każdy kto śledził serię sierpniowej gry, powinien być w stanie na podstawie prezentowanego kodu, stworzyć własną grę w podobnym klimacie.

JavaScript programowanie gier Czytaj dalej GCM – Sierpień: Space Shooter. Wersja finalna.