2010-10-08 12 views
10

Mam zamiar napisać grę 3D FPS, opartą na WebGL.WebGL Framework

  • Czy powinienem używać jakiejś architektury WebGL?
  • Jaka jest obecnie najbardziej aktywna i popularna biblioteka WebGL? Czy obsługuje systemy LOD, Heightmaps, COLLADA i niektórych materiałów?

Dzięki.

+0

[Pytania z prośbą o zalecenie lub znalezienie książki, narzędzia, biblioteki oprogramowania, samouczka lub innych zasobów poza siedzibą są wyłączone z tematu dotyczącego przepełnienia stosu] (http://stackoverflow.com/help/on-topic) – gman

Odpowiedz

14

Zaskoczony, nikt nie wspomniał o Three.js. Ma za sobą silną społeczność, która regularnie dodaje nowe funkcje. Można go wypróbować i bawić się z nim na WebGL zabaw:

http://webglplayground.net/

Jest szablon Three.js dla nowych projektów.

4

Tak, zdecydowanie powinieneś używać struktury WebGL, to pozwoli Ci zaoszczędzić sporo pracy.

Ekosystem WebGL jest w tak szybkim stanie zmian w chwili, gdy trudno jest wybrać konkretną bibliotekę. Jednak ze wszystkich bibliotek, które widziałem, sugerowałbym Copperlicht, ponieważ wydaje się, że jest skierowany w szczególności do gier FPS. W chwili obecnej opublikowano tak niewiele w pełni opracowanych gier WebGL, że trudno jest określić, która biblioteka jest popularna.

3

Możesz również rzucić okiem na GLGE i SceneJS. Jak mówi Liam, nie ma jeszcze ustalonych liderów, ale z tego, co widziałem tych dwóch i Copperlicht są najczęściej omawiane. W szczególności SceneJS ma bardzo aktywną listę mailingową.

3

Ostatnio oglądałem różne biblioteki WebGL.

SceneJS jest tym, z którym eksperymentowałem najwięcej. Jest lekki i skupiony wyłącznie na tworzeniu i manipulowaniu grafem sceny. Obiekty i dane z wykresu sceny są zdefiniowane w JSON, z którym okazałem się przyjemny w pracy. Węzły grafu są później odnajdywane przez identyfikator i można nimi manipulować.

Dostarczana jest obszerna dokumentacja - chociaż istnieją pewne rażące dziury. Dobra pomoc społeczności poprzez grupę Google.

W porównaniu do GLGE i Copperlicht, jest to bardzo mało funkcjonalny element. Bez animacji szkieletu, bez wykrywania kolizji, bez układu cząstek, bez światła otoczenia!

W przyszłości będę patrzył na GLGE, C3DL i port WebGL programu CubicVR.

+0

Światło otoczenia pojawi się w kolejnej wersji SceneJS, ale animacja szkieletowa, detekcja kolizji i cząstki są poza zakresem ramy, która jest ukierunkowana na aplikacje do wysokiej jakości wizualizacji (inżynieria, medycyna itp.). – xeolabs

2

Minął około rok, odkąd zapytałeś, a WebGL jest teraz wysyłany w Firefoksie i chrome i Firefox na Androida.

Gdybym uznają to teraz, myślę, że pójdę z GLGE dla nowicjuszy OpenGL SpiderGL jeśli wiesz już OpenGL, a może spojrzeć na PhiloGL jeśli jesteś programistą ExtJS/Sencha i jak tym stylu robiąc rzeczy. Sencha touch będzie bardziej sensowny dla aplikacji 3d, gdy wbudowany webkit w telefonach komórkowych będzie dostarczany z WebGL.

0

Pojawiło się kilka nowych opcji, od kiedy zadano to pierwsze pytanie.

W grach, Turbulenz jest bardzo dobrym biblioteka: http://biz.turbulenz.com/developers

Playcanvas wydaje się być dobre: ​​ https://playcanvas.com/

W zależności od potrzeb w zakresie wielkości pobierania, Unity może być dobrym wyborem zbyt. Dzięki niemu możesz wyeksportować swoją grę do niemal każdej platformy. Jedynym minusem może być stosunkowo duże pliki, które produkuje. http://docs.unity3d.com/Manual/webgl-gettingstarted.html

0

Istnieje biblioteka WebGL koncentrująca się na projektowaniu i implementacji gier internetowych o nazwie Babylon.js. http://www.babylonjs.com

Jej silny zaletą jest to, że zawiera wiele efektów renderowania w bibliotece i można po prostu zadzwonić do tych funkcji.

Oczywiście Three.js jest podstawową biblioteką dla WebGL i wszystkie rzeczy mogą być przez nią zaimplementowane, po prostu może to być czasochłonne dla projektowania gier. Proponuję jednak zacząć od Three.js, aby zapoznać się z WebGL, a następnie użyć Babylon.js do swojej gry.

0

W zależności od platformy, jeśli twoja gra FPS działa na przeglądarce PC z wydajną kartą graficzną i procesorem, najlepszą opcją jest unity3D.

Jeśli Twoja gra jest skierowana na telefon komórkowy, może możesz spróbować THREE.js lub SceneJS.

A jeśli Twój czas jest ograniczony, a twoja gra jest nieco wyrafinowana, polecam ci LAYABOX, ze względu na pełen ekosystem i mnóstwo narzędzi, które mogą zaoszczędzić sporo pracy. Mam nadzieję, że to pomoże.