Suche Fakty
Tytuł: HTML5. Tworzenie gierAutor: Jacob Seidelin
Wydanie: I
Wydawnictwo Helion
Książka na helion.pl: Klik
Spis treści: Klik
Przykładowy rozdział: Klik
Kilka słów wstępu
JS od dość dawna jest moim ulubionym językiem Sieci. Dlatego też z zaciekawieniem sięgnąłem po pozycję dotyczącą tworzenia gier w tym języku przy wykorzystaniu najnowszych API, wprowadzonych wraz z nową wersją języka HTML.O książce
Całą książkę podzielono na 5 części. Pierwsza część poświęcona jest ogólnemu rysowi na temat języka HTML5 i tworzeniu podstawowego szablonu gry. Druga część powinna już natomiast zainteresować każdego programistę JS, gdyż opisuje dokładnie sposób implementacji całej mechaniki gry w JS. Trzecia część to upiększanie gry - dodawanie dźwięku oraz przygotowanie grafiki 3D. Natomiast 4. część to krótki opis możliwości WebSockets i mechanizmu Storage w przeglądarce. 5. część to encyklopedyczny spis funkcji canvas i WebGL. Osobiście dla mnie część ta jest niepotrzebna - takie same informacje (podane w przystępniejszej formie) znaleźć można w Internecie.Podczas czytania najbardziej przeszkadzało mi... zbyt polskie tłumaczenie. Frazy typu "pracownik sieciowy" zamiast "web worker" czy też "wypełnienie" zamiast "polyfill" (ale już "fonty sieciowe" - trochę konsekwencji!) osobiście mnie drażnią. Być może spowodowane jest to moim zatopieniem w zagranicznej części webmasterskiego Internetu (nie oszukujmy się - polska praktycznie nie istnieje). Drugim dość poważnym mankamentem był brak kolorowych ilustracji. Wydaje mi się, że w przypadku książki, której większa część poświęcona jest tworzeniu wizualnych efektów dla gry, powinna takowe zawierać.
Na szczęście książka merytorycznie jest dobrze przygotowana. Autor opisuje najważniejsze elementy tworzenia gry w HTML5, skupiając się zarówno na modularności kodu, jak i na jego wydajności. Dużą uwagę (nie wiem czy nie aż za dużą) skupia również na kwestii przystosowania gry dla urządzeń mobilnych. Zetkniemy się tutaj zatem zarówno z nurtem responsive webdesign, tuż obok takich zagadnień jak renderowanie grafiki 3D czy obsługa elementu <canvas>. Pojawia się nawet rozdział o zastosowaniu node.js jako serwera dla gier multiplayer (niestety, wątek ten nie został moim zdaniem dostatecznie omówiony).
W pewnych miejscach opisy kodu są zbyt zawiłe - zwłaszcza jeśli chodzi o grafikę 3D oraz rysowanie figur geometrycznych. Autor moim zdaniem niepotrzebnie wchodzi w matematyczne szczegóły (transponowanie macierzy, normalizacja wektorów, algebra liniowa...). Nie było to dla mnie szczególnie interesujące i w tych fragmentach książki więcej mówiły do mnie zamieszczone fragmenty kodu niźli zawiłe tłumaczenia.
Cały rozdział na temat WebGL wydaje mi się zbyt "low levelowy" - nie sądzę, żeby dużo programistów było zainteresowanych tworzeniem grafiki 3D od podstaw. Mnie osobiście nie chciałoby klupać się kilkudziesięciu linijek kodu tylko po to, by stworzyć kulę. Raczej interesowałby mnie opis wykorzystania konkretnego frameworka, jak np Three.js. Owszem, autor o nim wspomina, lecz - jak już to napisałem - tylko wspomnienie.
W niektórych fragmentach widać także, że - mimo niedawnej daty powstania - książka już jest do tyłu w stosunku do obecnej sytuacji na rynku przeglądarek i standardów sieciowych. W rozdziale na temat efektów dźwiękowych, autor opisuje API dźwiękowe przygotowane przez Mozillę. Projekt ten jednak został już porzucony a sama Mozilla postanowiła zaimplementować konkurencyjne rozwiązanie, przygotowane przez ekipę Webkita.
Osobiście brakuje mi także bardziej zaawansowanych zagadnień dotyczących programowania w JS, jak choćby pominiętego aspektu zarządzania pamięcią (niesławny Garbage Collector i sposoby jego omijania, jak np object pooling).
Podsumowanie
Książka merytorycznie jest bardzo dobrze przygotowana. Porusza wiele aspektów tworzenia gier w JS i pokazuje rozwiązania najczęstszych problemów. Jeśli chcesz stworzyć swoją grę w HTML5, sięgnij po tę książkę, gdyż na pewno ułatwi Ci pracę. Jeśli jednak już stworzyłeś swoją grę w HTML5 i chcesz ją jak najbardziej udoskonalić lub natknąłeś się na problemy z wydajnością - ta książka niestety nie jest dla Ciebie. Raczej jest to pozycja dla początkujących JS-ninja. Starym wyjadaczom zostaje niezawodny SO