Przeglądarki MMO (WebGL, WebSocket) [zamknięte]

29

Czy uważasz, że technicznie możliwe jest napisanie pełnoprawnego klienta 3D MMO z przeglądarką JavaScript - WebGL dla grafiki i WebSocket dla sieci?

  • Czy uważasz, że przyszłe gry MMO (i ogólnie gry) będą pisane za pomocą WebGL?
  • Czy pozwala na to dzisiejsza wydajność JavaScript?
  • Powiedzmy, że Twoim zespołem projektowym byłeś jako programista i inny twórca modeli (artysta). Czy użyłbyś do gry biblioteki takiej jak SceneJS , czy napisałby prosto WebGL? Jeśli chcesz użyć biblioteki, ale nie SceneJS, określ, która.

AKTUALIZACJA (wrzesień 2012): RuneScape, który jest bardzo popularnym MMORPG opartym na przeglądarce 3D, który do tej pory korzystał z apletów Java, ogłosił, że będzie używać HTML5 dla swojego klienta ( źródła ).

Runescape HTML5

Java (po lewej) i HTML5 (po prawej)

AKTUALIZACJA (czerwiec 2013): Napisałem prototyp MMO opartej na WebGL / WebSocket: https://github.com/alongubkin/xylose

Alon Gubkin
źródło
3
Mozilla Firefox i Opera po prostu zrezygnowały z obsługi gniazda sieciowego ze względów bezpieczeństwa: heise.de/security/meldung/... Zobacz gamedev.stackexchange.com/q/6524/450, aby uzyskać abstrakcję zawartości sieci dla różnych przeglądarek.
Hendrik Brummermann,
2
Myślę, że wszystkie trzy pytania są interesujące, ale wolę je podzielić na trzy pytania. Moim zdaniem są ledwie spokrewnione.
2
Technicznie jest to możliwe, tak. Realistycznie to inna sprawa.
Kaczka komunistyczna
Na marginesie: Google stworzyło bibliotekę JavaScript na WebGL, która jest całkiem fajna: code.google.com/p/o3d
Alex Beardsley
Zakładam, że twoje pytanie dotyczy 3D MMO. 3D nie jest wymogiem dla tego gatunku, a tak naprawdę wiele MMO istnieje w Internecie od lat jako niewiele więcej niż formularze HTML (patrz urbandead.com ) Nie wspominając już o wszystkich grach PHP Gameforge ( en.gameforge.com ) lub bardziej egzotyczne rzeczy AJAX / Javascript, takie jak Lord of Ultima ( lordofultima.com )
wkerslake

Odpowiedzi:

7

Czy uważasz, że technicznie możliwe jest napisanie pełnoprawnego klienta 3D MMO z przeglądarką JavaScript - WebGL dla grafiki i WebSocket dla sieci?

Tak, absolutnie. Nie ma żadnego powodu, dla którego technologia WebGL lub WebSocket uniemożliwiłaby Ci stworzenie klienta 3D MMOG lub dowolnego klienta gry.

Czy uważasz, że przyszłe gry MMO (i ogólnie gry) będą pisać w WebGL?

Tak. Wierzę, że w ciągu najbliższych pięciu lat większość gier przeglądarkowych 3D zostanie napisanych przy użyciu WebGL. Powód jest prosty - WebGL jest jedyną znormalizowaną technologią 3D, która będzie miała implementacje dostępne we wszystkich głównych przeglądarkach internetowych (Chrome 9, Firefox 4, Safari 6 i Internet Explorer za pośrednictwem Chrome Frame).

Czy pozwala na to dzisiejsza wydajność JavaScript?

Tak. Wydajność JavaScript we współczesnych przeglądarkach wzrosła do tego stopnia, że ​​możliwe jest tworzenie gier 3D. Na przykład zobacz projekt Three.js .

Powiedzmy, że Twoim zespołem projektowym byłeś jako programista i inny twórca modeli (artysta). Czy użyłbyś do gry biblioteki takiej jak SceneJS, czy napisałby prosto WebGL? Jeśli chcesz użyć biblioteki, ale nie SceneJS, określ, która. Dzięki!

Użyj biblioteki, aby zaoszczędzić czas. Nie ma powodu, aby pisać własny kod graficzny WebGL, chyba że w istniejącej bibliotece brakuje potrzebnych funkcji. Nawet w takim przypadku rozszerzenie istniejącej biblioteki byłoby prawdopodobnie bardziej wydajne.

W moim projekcie korzystam z GLGE, ponieważ obsługuje on wiele różnych efektów graficznych i jest stale aktualizowany o nowe.

Jefir
źródło
2
Pytanie „Czy sądzisz, że przyszłe gry MMO (i ogólnie gry) będą pisać w WebGL?” i odpowiedź „Tak. Wierzę, że w ciągu najbliższych pięciu lat większość gier przeglądarkowych 3D zostanie napisanych przy użyciu WebGL”. nie pasują do siebie precyzyjnie ...
Kylotan
5

Istnieje już kilka MMO opartych na przeglądarce. Zazwyczaj jednak nie używają grafiki 3D.

Jestem trochę sceptyczny, jeśli chodzi o WebGL. Obecna liczba przeglądarek nie obsługuje WebGL w ich normalnych wersjach. Będziesz musiał uzyskać specjalne kompilacje lub bałagan z plikami konfiguracyjnymi, co jest bardziej skomplikowane dla przeciętnego użytkownika niż pobieranie wtyczki.

Mówiąc o wtyczkach: Kilka osób wspomniało o Unity, ale nie zapomnij Flasha. Nadchodzące wydanie odtwarzacza Flash (kryptonim Molehill ) będzie miało akcelerowane przez GPU 3D. Domyślam się, że Flash zapewni przyspieszanie sprzętowe grafiki 3D w przeglądarce przed startem WebGL.

grzmot
źródło
1
Problem stabilnej przeglądarki z obsługą Webgl nie powinien wystąpić po około styczniu 2010 roku. Firefox 4 i Chrome 9 mają się pojawić w tym czasie. Chrome 9 beta jest dość prosty w instalacji i nie wymaga bałaganu z niczym, aby włączyć webgl. Link do wersji beta znajduje się poniżej zwykłego linku do pobrania dla Chrome.
Nicolas K.,
@Nicolas K. - Masz na myśli styczeń 2011 ?
DMan
1
@Nicolas K - Dostępność przeglądarki i instalacja bazy przeglądarki to bardzo różne rzeczy. 13% ruchu internetowego to wciąż IE6. Źródło: marketshare.hitslink.com/browser-market-share.aspx?qprid=2
wkerslake
@DMan: Prawdopodobnie, ponieważ jest już dostępny. Nie mogę się doczekać, aż ktoś wymyśli, jak bluescreen (lub panika jądra, czy cokolwiek to robią komputery Mac),
1
@wkerslake: Te statystyki są oburzające. Prowadzę witrynę skierowaną do przeciętnego konsumenta internetowego z pół milionem unikalnych odwiedzin dziennie, a mniej niż 1% z nich korzysta z Internet Explorera 6 (około 1/3 używa Internet Explorera 7/8/9). Firefox i Chrome reprezentują 50% ruchu, a są to przeglądarki z automatyczną aktualizacją, co oznacza, że ​​większość ludzi będzie mieć obsługę WebGL w ciągu kilku miesięcy. Ponieważ tworzenie gry może zająć 6 miesięcy, nie widzę powodu, aby zniechęcać ludzi do korzystania z WebGL dzisiaj.
Blixt
3

Technicznie możliwe? Tak. Ale po co męczyć się, gdy dostępne są takie rozwiązania internetowe jak Unity?

Przyszłe MMO napisane w WebGL? Nie. Okej, ale są już takie wtyczki internetowe jak Unity.

Dzisiejsza wydajność JavaScript pozwala na to? Nie. Ok tak, jeśli gra będzie prosta.

Czy użyłbyś biblioteki takiej jak SceneJS [...] lub napisałby prosto WebGL? Ani. Korzystałbym z aplikacji innej firmy, takiej jak Unity.

Tim Holt
źródło
4
Twoja odpowiedź jest zła, sprzeczna i źle sformatowana. Przepraszam, że jestem taki surowy. Jeśli uważasz, że op powinien po prostu użyć jedności, powiedz to w komentarzu do swojego pytania.
oberhamsi
Jak na ironię oberhamsi, moja pierwotna odpowiedź brzmiała „Użyj jedności”, ale powiedziano mi, że muszę odpowiedzieć na pytanie bardziej bezpośrednio.
Tim Holt
1
Okej, w porządku. Myślę, że jedność to zupełnie inna bestia niż próba zrobienia tego w przeglądarce. Jasne, możesz zrobić wszystko za pomocą wtyczki, ale wydaje mi się pytanie: jakie są granice natywnych technologii przeglądarki.
oberhamsi
2

Obecnie nie jest to możliwe (początek 2011 r.). Nie można tworzyć 3D MMO w czasie rzeczywistym w natywnych technologiach przeglądarki (co oznacza, że ​​nie ma wtyczek).

Nie będę spekulować na temat przyszłości. Tak to teraz wygląda. Zakładając, że kierujesz reklamy tylko na nowoczesne przeglądarki (IE9, FF4 itp.). Jeśli planujesz wesprzeć IE7, to jesteś szalony. To nigdy nie zadziała.

Czego brakuje:

  • pełna kontrola nad klawiaturą i myszą (możliwość ustawienia pozycji myszy, przechwytywanie klawiszy)
  • pełny ekran
  • 3D

Obszary / rozwiązania z poważnymi problemami:

  • WebSockets wyłączono teraz w kilku przeglądarkach, które go obsługiwały
    • bez niego: teraz małe opóźnienie, dwukierunkowa komunikacja klient-serwer
  • problemy z dźwiękiem
    • bałagan kodeka, potrzebujesz ogg i mp3
    • wspólne częstotliwości nie są obsługiwane
    • współbieżność
    • opóźnienie
  • wydajność płótna (w niektórych przypadkach robienie transformacji div i css jest szybsze)
oberhamsi
źródło
1

Tak, ale z ważnymi zastrzeżeniami.

Nie będziesz mieć pełnej kontroli nad klawiaturą, a dla wielu maniaków kontroli może to być przełom. Na przykład klawisze funkcyjne prawdopodobnie pozostaną poza zasięgiem przez dłuższy czas.

Nie będziesz w stanie trafić w większość przeglądarek. WebGL nie jest jeszcze tak dobrze obsługiwany, a obsługa websocket jest obecnie hitem, ponieważ niektórzy producenci przeglądarek włączają go dla jednej wersji, a następnie wyłączają dla następnej.

Ale na pewno możesz złożyć coś prostego. Dodaj ciekawą rozgrywkę, a grafika nie będzie miała znaczenia. Runescape zaczął się dość prosto i przekształcił w złożoną, zabawną, niezwykle popularną grę MMO, kiedy wszyscy mówili, że gra MMO stworzona we wtyczce do przeglądarki była fajnym marzeniem.

MMO zbudowane z wykorzystaniem obecnych limitów dla przeglądarek, które dostosowują się wraz ze zmianami, z pewnością miałyby przełom, zanim przeglądarki będą wystarczająco daleko, aby obsługiwać MMO „AAA”.

Dan Hulton
źródło
1
Prawie wszystkie nowoczesne przeglądarki obsługują klawisze funkcyjne ( quirksmode.org/js/keys.html#link6 ). W rzeczywistości ta strona ma co najmniej kilka lat, a obsługa ich w nowoczesnych przeglądarkach jest prawdopodobnie jeszcze lepsza.
Ricket 25.01.11
1

Zdecydowanie tak.

WebGL jest zawarty w nocnych wersjach zarówno WebKit (Chrome / Safari), jak i Gecko (Firefox). WebSockets jest obecnie wyłączony z powodu problemów z bezpieczeństwem, ale nie ma powodu, dla którego nie należy go włączać ponownie po rozwiązaniu problemów. W międzyczasie zawsze jest HTTP.

Czy wszystkie gry będą pisane w ten sposób? Nie, ale znaczna liczba będzie. Gdy WebGL znajdzie się w ostatecznej wersji przeglądarki Chrome i Firefox, penetracja będzie już wyższa niż w przypadku wtyczek natywnych, takich jak Unity.

Obsługa JavaScript zależy wyłącznie od pisania gier. Prawdopodobnie przez jakiś czas nie zobaczysz poziomu grafiki w Crysisie, ale pamiętaj, że w przypadku WebGL przeskakiwanie liczb jest przenoszone na procesor graficzny.

W przypadku niewielkiego 2-osobowego zespołu musisz być przygotowany na dużo kodowania, niezależnie od tego, jakiego silnika używasz. Obecnie nie ma żadnych silników WebGL / JavaScript, które faktycznie pokrywają większość kodu gry. SceneJS, three.js i podobne są owijkami w warstwie graficznej, ale nie zapewniają nic do kolizji, fizyki, dźwięku, ładowania zasobów, sieci lub narzędzi, które składają się na większość produktu, takiego jak Unreal Engine lub Unity.

W tej chwili są wczesne dni. Spodziewam się, że w przyszłym roku pojawi się więcej oprogramowania pośredniego.

Dave
źródło
0

Nie sądzę, aby wiele przyszłych MMO zostało napisanych przy użyciu dowolnej technologii przeglądarki po stronie klienta, ponieważ większość programistów MMO będzie chciała używać tego samego języka na kliencie i serwerze, a większość twórców gier biegle posługuje się językami innymi niż web, takimi jak C ++. W grę wchodzi zbyt wiele kodu klienta, aby i tak był bardzo praktyczny w Javascript, z wyjątkiem dość trywialnych symulacji. Istnieją również inne ograniczenia związane z uruchamianiem w przeglądarce, które nie są zwyczajne dla typowego twórcy gier.

Jestem pewien, że będzie jakieś gry, takie jak ten, jakkolwiek. Po prostu nie będą przejmować się WoW lub podobnymi grami od dłuższego czasu. Prawdopodobnie zrobią to bardziej twórcy stron internetowych wchodzący w gry niż twórcy gier wchodzący do sieci.

Kylotan
źródło
Czy downvoter chce dodać komentarz wyjaśniający, w jaki sposób nie zgadzają się z moją odpowiedzią? Zastanawiam się. :)
Kylotan 27.01.11
0

Pytanie, które powinieneś sobie zadać, brzmi: dlaczego twórcy gier będą chcieli polegać na technologii internetowej, której nie opanowali i nie mają kontroli, obecne języki pozwalają nawet w przeglądarce internetowej tworzyć niesamowite gry?

lollancf37
źródło
0

Tak, ale technologia nadal musi się ustabilizować i prawdopodobnie nadal będą występować kompromisy między wydajnością a aplikacjami natywnymi.

Vincent Scheib
źródło
-3

Jedność jest dobra. Zobacz także Shiva i Prime Engine.

Lionel Barret
źródło
1
Unity i Prime Engine nie mają jednak nic wspólnego z wymienionymi technologiami. Są to wtyczki natywnego kodu.
Kylotan,
1
Są to odpowiedzi w tym sensie, że mówimy: „Nie, nie jest to dobry pomysł, ale tutaj są alternatywy”. Odpowiedzi, które mówią: „Nie, ale tutaj jest alternatywa” są o wiele bardziej preferowane niż tylko „Nie”
Tim Holt,
3
Czasami się zgadzam, ale rzadko. Istnieje niebezpieczeństwo, że spróbujesz odczytać czyjś umysł i odgadnąć, co „naprawdę” chce zrobić, podczas gdy w rzeczywistości pierwotne pytanie było całkowicie uzasadnione samo w sobie. Jeśli ktoś zapyta o odpowiedniość X, nie zawsze powinniśmy odpowiadać „po prostu użyj Y”. Przynajmniej powinno być porównanie przydatności tych dwóch, abyśmy odeszli, wiedząc więcej o X.
Kylotan
Przeformułuję następnie moją odpowiedź, aby odpowiedzieć na jego pytanie dotyczące używanej biblioteki. Sam bym użył „biblioteki” Unity: P
Tim Holt
najwyżej oceniana odpowiedź mówi w zasadzie to samo…
Błąd 454