2010-11-13 6 views
6

Jestem w trakcie rozpoczynania budowy gry strategicznej (myślę, że warcraft) dla sieci. Prowadziłem badania nad ikonami HTML5 Canvas i CSS3 i nadal nie mogę zdecydować, której technologii użyć.Czy mogę używać elementów HTML5 Canvas lub CSS3 Sprites do animowania obiektów w grze?

Gra nie zostanie ukończona przez kolejne 6 miesięcy.

Każda rada byłaby doceniona.

+0

Genialny pomysł BTW. Starcraft/Warcraft może być łatwo przeniesiony do sieci. –

+3

Tylko FYI: istnieje strona StackExchange do tworzenia gier @ http://gamedev.stackexchange.com – Extrakun

Odpowiedz

7

Jak zapewne usłyszeć tak często ... „To zależy ...” ™

Moja sugestia byłoby rozważyć dotyk stosowania jesteś po. Jeśli próbujesz zbudować bardzo bogatą graficznie aplikację z większością obrazów, użyłbym Canvas. Jednak jeśli próbujesz animować niektóre grafiki, ale strona pozostaje i zachowujesz się bardziej "jak w sieci", w połączeniu z innymi treściami HTML, spróbuję spróbować CSS3.

Dwa dodatkowe punkty:

  • Obecnie Płótno jest lepiej obsługiwane niż CSS3 animacja/sprites.
  • Jeśli używasz Canvas, będziesz implementował swoją własną pętlę renderowania i kod animacji (lub korzystając z trzeciej częściowo biblioteki). Twój kod tworzy animację poprzez komponowanie różnych warstw każdej klatki, stosowanie ruchu i powtarzanie. Nie możesz po prostu powiedzieć "przesuń ten obraz trochę w prawo". Musisz to zrobić sam.
2

Wstęgę gra EA „Lord of Ultima”, za mało, jak to jest, jest doskonałym przykładem Nadświecie WarCraft stylu (no, to bardziej budynek miasta, gdyż nie ma widocznych jednostek), animacje i wszystko, zbudowane na bazie czystego HTML i CSS. Wygląda i działa dobrze i myślę, że charakterystyka HTML w kodzie o kwadratowym polu blokowym pasuje do tego rodzaju projektów opartych na kaflach, zwłaszcza, że ​​wiele procesów przetwarzania obrazu (osadzanie z tłem w postaci <img> lub <div> zmienia położenie tła dla animacji) i obsługa myszy/kliknięć odbywa się za Ciebie w prostym html.

Jeśli pójdziesz na płótno, musisz sobie z tym poradzić, co znacznie zwiększy złożoność i czas dewelopera. Będziesz mieć większą kontrolę nad drobnymi elementami i lepszą wydajnością, ale wtedy także stracisz (o ile to w ogóle ważne), większą kompatybilność wsteczną ze starszymi przeglądarkami. To zależy od tego, jak skomplikowany jest twój projekt i jakiego rodzaju wydajności potrzebujesz.

0

Jest plusy i minusy dla obu. Obecnie Canvas jest lepiej obsługiwany niż CSS3, ale powiedziałeś, że twoja gra nie zostanie wykonana przez kolejne 6 miesięcy, wtedy wsparcie dla CSS3 może być o wiele lepsze. Jest tu także wiele innych zmiennych, takich jak: Na jakiej przeglądarce będzie wyświetlana gra? Jak zaawansowana jest grafika potrzebna do animacji? etc ... Powiedziałbym, że płótno byłoby lepsze do obsługi obecnej generacji przeglądarek i grafiki do gier, jednak CSS3 byłby szybszy, ale nie byłby nawet blisko obsługi lub obsługi grafiki. Ale nie wydaje się, żebyś był w pośpiechu, żeby to zrobić.

Zasadniczo:

Płótno: grafika, prąd wsparcie użytkowników w przeglądarce

CSS3: Szybkość rozwoju

Ether zadziała. Ale na razie użyłbym Canvas. Jednak 6 miesięcy w świecie techniki to wieczność, rzeczy mogą być wtedy dużo inne.

1

Użyj płótna. Jeśli użyjesz sprite'ów CSS do zbudowania gry, zrobisz dużo <div>, która wykonuje operacje na DOM, co może spowolnić, a także mieć dużo problemów z ustawieniem ostrości i kompatybilności.

Może się spłacić, aby wymienić czas opracowania na wydajność na <canvas>, przy założeniu "Kod zostanie zachowany na zawsze".

Myślę, że system sprite CSS3 wymaga więcej czasu, ponieważ trzeba obsługiwać zgodność przeglądarki.

Przeglądarki takie jak IE 8 (8 lub 9?) Używają GPU do przyspieszania grafiki, co pozwala uzyskać darmowy lunch z Prawa Moore'a.

Powiązane problemy