2014-04-25 41 views
5

Rozwijam grę w HTML5 za pomocą obszaru roboczego. Do tej pory wszystko idzie dobrze, ale mam pewne rzeczy, które mnie trochę zaintrygowały, głównie związane z wykonywaniem takiej gry. Więc zamiast zgłębiać problem w głębi procesu rozwoju, byłbym wdzięczny, gdyby się teraz dowiedział.Wydajność w grach na płótnie HTML5 a alternatywy

Wcześniej pracowałem w językach takich jak OpenGL i dowiedziałem się, jak ważne jest renderowanie elementów w sprawnej kolejności, jest to coś, co może dać setki lepszych wyników niż tylko losowe rysowanie na ekranie przełączania i naprzód pomiędzy teksturami/shaderów itd. Czy jest to coś, o czym powinienem pamiętać podczas gry na płótnie, czy rzeczy automatycznie będą umieszczane w kolejce i renderowane w sprawnej kolejności?

Będzie to gra 2D, ale z kilkoma obiektami na ekranie, a większość z nich jest dynamicznie desaturowana i zmieniana w jasność (filtry). Czy wydajność będzie poważnym problemem?

Jakie są alternatywy, każdy silnik gry javascript, który może pomóc w osiągnięciu wydajności? Czy dostanę poprawę wydajności, przechodząc na WebGL, mimo że standardowe płótno ma przyspieszenie sprzętowe?

Odpowiedz

6

Tak, otrzymasz duży wzrost wydajności dzięki WebGL. Rozważ skorzystanie z doskonałego systemu renderowania 2D o nazwie Pixi. Powoduje renderowanie spritesów do WebGL z powrotem do Canvas.

Można też utworzyć własny system renderowania sprite WebGL na niskim poziomie, używając game-shell i gl-modules. gl-now to dobry punkt wejścia do tych modułów. Możesz ich użyć do zbudowania własnego silnika gry.

Phaser, jest kompletnym silnikiem gry HTML5, który ma obecnie dużą przyczepność i wykorzystuje Pixi pod maską do renderowania. Lepszym miejscem niż Stackoverflow w poszukiwaniu pomocy w tych wszystkich sprawach jest http://www.html5gamedevs.com.

+0

Daję Phaserowi próbę, wydaje się, że do tej pory radzi sobie całkiem nieźle. Używanie Phasera Mam funkcjonalność i wydajność, na którą liczyłem. Dziękuję Ci. –