Programowanie gier w JavaScript

Training_teaser_1

Tagi JavaScript, HTML 5, CSS 3, Performance tuning

Relacja ze szkolenia

8-9 stycznia, Wrocław

Jesteśmy po pierwszym DevMeetingu! Z punktu widzenia prowadzącego i organizatorów było naprawdę dobrze, chociaż lista rzeczy do ulepszenia ma kilka ciekawych punktów.

Cieszą nas pierwsze pozytywne opinie oraz przede wszyskim konkretny feedback, że przydała wam się chociaż część wiedzy, ktorą próbowaliśmy wam sprzedać podczas szkolenia. Czekamy na propozycje, co możemy zrobić jeszcze lepiej!

Dzień 1

Animacja i performance w JavaScript

Podczas pierwszego dnia poruszaliśmy dwa tematy, które z punktu widzenia JS game developera są szczególnie interesujące: animacje i kwestie związane z wydajnością.

“Jak efektownie i efektywnie implementować animacje w przeglądarce” – za pomocą technik będących częścią specyfikacji CSS3 oraz z delikatną pomocą JS. Wart podkreślenia jest fakt, że używając animacji czysto css’owych uzyskujemy wydajne animacje również na urządzeniach mobilnych, na których WebView zbudowane jest na bazie webkit’a (uczestnicy dysponowali różnymi „urządzeniami mobilnymi“ i mogliśmy przetestować rozwiązania na żywych runtime’ach, nie tylko w emulatorze).

W cześci poświęconej performance pracowaliśmy nad kilkoma przypadkami ważnymi z perspektywy developera gier, takimi jak efektywna zmiana styli (reflow, repaint i flush) czy efektywne dodawanie / modyfikacja struktur DOM. Tej części towarzyszyło kilka ciekawych dyskusji, szczególnie podczas porównywania podejść (innerHTML vs documentFragment vs standard DOM manipulation). Poruszyliśmy również problem memoizacji – uczestnicy realizując zadanie mogli wykazać się swoimi umięjetnościami developerskimi z zakresu programowania dynamicznego w JS’ie.

Dzień 1

Komunikacja i architektura aplikacji JS

Głownymi tematami drugiego dnia były komunikacja w środowisku webowym oraz architektura aplikacji JavaScript’owej.

Skupiliśmy się na kilku interesujących rozwiązaniach, m.in. wysyłaniu komponentów składających się z html, css, js oraz obrazków za pomocą jednego multipartowego requesta xhr. Dyskutowaliśmy również o komunikacji dwukierunkowej na bazie biblioteki Socket.io i implementacji po stronie klienta oraz serwera (node.js).

Burzę na sali wywołała dyskusja na temat realizacji architektury MVC w JS’ie w środowisku webowym. Problem dotyczył miejsca dodawania listenerów do modelu: czy listenery powinny być osadzone w warstwie kontrolera czy też bezpośrednio w widoku? Zaprezentowana implementacja bazowała na drugim rozwiązaniu (listenery były dodawane w konstruktorze widoku, co wydawało się być przyjaznym rozwiązaniem ze wzgledu na czytelność). Aczkolwiek po dłuższej dyskusji i zastanowieniu się nad tematem, listenery zostały przeniesione do kontrolera…
Szczegóły, kontekst tych dylematów omówiony zostanie na następnych DevMeeting’ach.

Równie interesująca dyskusja nawiazała się pod sam koniec szkolenia na temat testowania aplikacji. Czy budować testy? Przed czy po implementacji właściwego kodu? Jakich narzędzi używać? Standardowo pojawiła się dyskusja na temat przekonania sponsora projektu / project managera / szefa o sensowności inwestycji w przygotowanie zestawu testów przed implementacją. Zdania były podzielone, ale wszyscy zgodzili się z jednym: nie ma co zabierać się do refaktoringu bez sensownego pokrycia testami. A w game developmencie zmiany / refaktoring jest jedyną stałą rzeczą!

Podsumowując: 16 godzin w dwa dni z JavaScriptem nie zmęczyły uczestników. Grupa była naprawdę mocna, dlatego podczas treningu mieliśmy okazję nie tylko omówić slajdy i kod, ale również uczestnicy między sobą aktywnie wymieniali doświadczenia, pomysły i rozwiązania.

Czekamy teraz na edycję szkolenia w Warszawie, która jest w następnej kolejności (22-23 stycznia). Przygotowujemy małą niespodziankę. Możemy zdradzić, że będzie to „guest performance“ jednego z bardziej aktywnych polskich twórców gier JS’owych. Stay tuned!

Dziękujemy uczestnikom i czekamy na Wasze komentarze!

Marek Pawłowski – prowadzący
Piotr Zwolinski – założyciel devmeetings.pl

Opinie uczestników

Zrzut%20ekranu%202011-04-05%20(godz.%2014.07.23)

Szkolenia służą też wzajemnym poznaniu osób z branży, posiadających solidny warsztat developerski i doświadczenie w projektach programistycznych. Inicjatywa jest naprawdę godna uwagi, ponieważ do tej pory nie spotkałem się z tak profesjonalnie zorganizowanym szkoleniem, a w dodatku całkowicie bezpłatnym. (...) Spotkania tego typu to na pewno świetny trend w branży szkoleniowej i żaden pasjonat tematyki omawianej na szkoleniach na pewno nie może przejść obok nich obojętnie.

Warsztaty, które się odbyły

Wrocław, 8-9 stycznia relacja

  • 1_1_t
  • 1_2_t
  • 1_3_t
  • 1_4_t

Warszawa, 22-23 stycznia relacja

  • 2_1_t
  • 2_2_t
  • 2_3_t
  • 2_4_t

Poznań, 5-6 lutego relacja

  • 3_1_t
  • 3_2_t
  • 3_3_t
  • 3_4_t

Kraków, 19-20 lutego relacja

  • Img_0069
  • Img_0092
  • Img_0120
  • Img_2421

Gdańsk, 5-6 marca relacja

  • Img_2784
  • Img_2730
  • Img_2629
  • Img_2628

Devmeetings @ facebook

Prowadzący

1

Frontend developer, współautor jednej z pierwszych polskich gier przeglądarkowych – Tanadu. Zafascynowany JavaScriptem, szczególnie w kontekście przeglądarek: od optymalizacji wydajności animacji, przez czystą architekturę dużych aplikacji webowych, po integrację z backendem (np. opartym o Node.js). Kiedy akurat nie pisze testów w QUnit, uczestniczy w budowie frameworka Unify (cross-platformowy JS).