MMOs baseados em navegador (WebGL, WebSocket) [fechado]

29

Você acha que é tecnicamente possível gravar um cliente MMO 3D completo com JavaScript do navegador - WebGL para gráficos e WebSocket para redes?

  • Você acha que futuros MMOs (e jogos em geral) serão escritos com WebGL?
  • O desempenho atual do JavaScript permite isso?
  • Digamos que sua equipe de desenvolvimento era você como desenvolvedor e outro criador de modelos (artista). Você usaria uma biblioteca como o SceneJS para o jogo ou escreveria WebGL direto? Se você usaria uma biblioteca, mas não o SceneJS, especifique qual.

ATUALIZAÇÃO (setembro de 2012): O RuneScape, um MMORPG 3D baseado em navegador muito popular que utilizava Java Applets até agora, anunciou que usará HTML5 para seu cliente ( fonte ).

Runescape HTML5

Java (esquerda) e HTML5 (direita)

UPDATE (junho de 2013): Escrevi um protótipo de um MMO baseado em WebGL / WebSocket: https://github.com/alongubkin/xylose

Alon Gubkin
fonte
3
O Mozilla Firefox e o Opera simplesmente abandonaram o suporte ao websocket por motivos de segurança: heise.de/security/meldung/… Consulte gamedev.stackexchange.com/q/6524/450 para obter abstração entre navegadores das coisas da rede.
Hendrik Brummermann
2
Acho que todas essas três perguntas são interessantes, mas prefiro dividi-las em três. Na minha opinião, eles são pouco relacionados.
2
Tecnicamente é possível, sim. Realisticamente é outra questão.
O pato comunista
Como uma nota lateral: o Google fez uma biblioteca JavaScript em WebGL que é muito legal: code.google.com/p/o3d
Alex Beardsley
Minha suposição é que sua pergunta implica um MMO 3D. 3D não é um requisito para o gênero e, de fato, muitos MMOs existem na Web há anos pouco mais que formulários HTML (consulte urbandead.com ). Sem mencionar todos os jogos PHP da Gameforge ( pt.gameforge.com ) ou as coisas mais exóticas de AJAX / Javascript como Lord of Ultima ( lordofultima.com )
wkerslake

Respostas:

7

Você acha que é tecnicamente possível gravar um cliente MMO 3D completo com JavaScript do navegador - WebGL para gráficos e WebSocket para redes?

Sim absolutamente. Não há razão para que a tecnologia WebGL ou WebSocket o impeça de criar um cliente 3D MMOG ou qualquer cliente de jogo.

Você acha que futuros MMOs (e jogos em geral) serão gravados com o WebGL?

Sim. Acredito que nos próximos cinco anos, a maioria dos jogos de navegadores 3D será escrita usando WebGL. O motivo é simples: o WebGL é a única tecnologia 3D padronizada que terá implementações disponíveis em todos os principais navegadores da web (Chrome 9, Firefox 4, Safari 6 e Internet Explorer via Chrome Frame).

O desempenho atual do JavaScript permite isso?

Sim. O desempenho do JavaScript em navegadores modernos aumentou ao ponto em que o desenvolvimento de jogos em 3D é viável. Por exemplo, consulte o projeto Three.js .

Digamos que sua equipe de desenvolvimento era você como desenvolvedor e outro criador de modelos (artista). Você usaria uma biblioteca como o SceneJS para o jogo ou escreveria WebGL direto? Se você usaria uma biblioteca, mas não o SceneJS, especifique qual. Obrigado!

Use uma biblioteca para economizar tempo. Não há razão para escrever seu próprio código gráfico WebGL, a menos que uma biblioteca existente esteja com os recursos necessários. Mesmo nesse caso, provavelmente seria mais eficiente em termos de tempo estender a biblioteca existente.

Para o meu projeto, estou usando o GLGE , pois suporta muitos efeitos gráficos diferentes e é constantemente atualizado com os novos.

Jefir
fonte
2
A pergunta "Você acha que futuros MMOs (e jogos em geral) serão gravados com o WebGL?" e a resposta "Sim. Acredito que nos próximos cinco anos, a maioria dos jogos de navegadores 3D será escrita usando WebGL". não são uma correspondência exacta para o outro ...
Kylotan
5

Já existem vários MMOs baseados em navegador por aí. Eles geralmente não usam gráficos 3D.

Eu sou um pouco cético quando se trata de WebGL. O corte atual de navegadores não suporta WebGL em suas compilações de versão normais. Você precisará criar versões especiais ou mexer nos arquivos de configuração, o que é mais complicado para o usuário comum do que baixar um plug-in.

Falando em plugins: Várias pessoas mencionaram o Unity, mas não se esqueça do Flash. Uma próxima versão do Flash player (codinome molehill ) terá 3D acelerado por GPU. Meu palpite é que o flash fornecerá gráficos 3D acelerados por hardware no navegador antes que o WebGL decole.

bummzack
fonte
1
A questão do navegador estável com suporte a webgl não deve ocorrer após janeiro de 2010. O Firefox 4 e o Chrome 9 devem sair nessa época. O Chrome 9 beta é bastante simples de instalar e não requer mexer em nada para ativar o webgl. O link para a edição beta está abaixo do link de download regular para o chrome.
Nicolas K.
@Nicolas K. - Você quer dizer janeiro de 2011 ?
dman
1
@Nicolas K - A disponibilidade de um navegador e a base de instalação de um navegador são coisas muito diferentes. 13% do tráfego da Internet ainda é o IE6. Fonte: marketshare.hitslink.com/browser-market-share.aspx?qprid=2
wkerslake
@DMan: Provavelmente, já que saiu agora. Eu não posso esperar até que alguém descobre como tela azul (ou Kernel panic, ou seja o que for Macs fazer) um driver OpenGL porcaria usando WebGL ...
1
@wkerslake: Essas estatísticas são ultrajantes. Eu mantenho um site voltado para o consumidor médio da Internet com meio milhão de visitas únicas por dia, e menos de 1% delas usam o Internet Explorer 6 (cerca de 1/3 usa o Internet Explorer 7/8/9). Firefox e Chrome representam 50% do tráfego e são navegadores com atualização automática, o que significa que a maioria das pessoas terá suporte ao WebGL instalado dentro de alguns meses. Como o desenvolvimento de um jogo pode facilmente levar 6 meses, não vejo razão para desencorajar as pessoas a usarem o WebGL hoje.
Blixt
3

Tecnicamente possível? Sim. Mas por que se preocupar quando soluções da Web como o Unity estão disponíveis?

MMOs futuros escritos em WebGL? Não. Ok, talvez, mas existem plugins baseados na Web como o Unity que funcionam bem agora.

O desempenho do JavaScript de hoje permite isso? Não. Ok, sim, se você mantiver seu jogo simples.

Você usaria uma biblioteca como o SceneJS [...] ou escreveria WebGL direto? Nem. Eu usaria um aplicativo de terceiros como o Unity.

Tim Holt
fonte
4
Sua resposta está errada, contraditória e mal formatada. Desculpe por ser tão duro. Se você acha que o op deveria usar a unidade, diga isso em um comentário à pergunta dele.
oberhamsi
Ironicamente oberhamsi, minha resposta original acabou de dizer "Use Unity", mas me disseram que eu precisava responder à pergunta mais diretamente.
Tim Holt
1
Ok, é justo. Eu acho que a unidade é uma fera muito diferente do que tentar fazê-lo nativamente no navegador. Claro, você pode fazer qualquer coisa com um plug-in, mas a pergunta me parece: quais são os limites das tecnologias nativas de navegador.
oberhamsi
2

Isso não é viável no momento (início de 2011). Você não pode criar um MMO 3D em tempo real em tecnologias nativas de navegador (ou seja, sem plug-ins).

Não vou especular sobre o futuro. É assim que parece agora. Supondo que você segmente apenas navegadores modernos (IE9, FF4, etc). Se você planeja apoiar o IE7, está louco. Isso nunca vai funcionar.

Faltam coisas:

  • controle total sobre o teclado e o mouse (capacidade de definir a posição do mouse, interceptação de teclas)
  • tela cheia
  • 3D

Áreas / soluções com problemas sérios:

  • WebSockets agora desativados nos poucos navegadores que o suportam
    • sem ele: agora comunicação bidirecional cliente-servidor de baixa latência
  • problemas de áudio
    • bagunça codec, você precisa de ogg e mp3
    • frequências comuns não suportadas
    • concordância
    • demora
  • desempenho da tela (em alguns casos, a transformação de divs e css é mais rápida)
oberhamsi
fonte
1

Sim, mas com grandes ressalvas.

Você não terá controle total do teclado e, para muitos malucos de controle, isso pode ser um fator decisivo. As teclas F, por exemplo, provavelmente permanecerão fora de alcance por algum tempo.

Você também não poderá acessar a maioria dos navegadores. O WebGL ainda não é muito bem-suportado, e o suporte ao websocket é hoje em dia, com alguns fornecedores de navegadores ativando-o para uma versão e desativando-o para a próxima.

Mas você pode montar algo simples, com certeza. Jogue uma jogabilidade atraente e não importa que os gráficos sejam um pouco discretos. O Runescape começou bastante simples e se tornou um MMO complexo, divertido e incrivelmente popular, quando todos diziam que um MMO criado em um plug-in de navegador era um sonho.

Um MMO criado dentro dos limites atuais para navegadores que se adaptam à medida que as coisas mudam certamente teria uma vantagem quando os navegadores estiverem longe o suficiente para oferecer suporte a um MMO "AAA".

Dan Hulton
fonte
1
Quase todos os navegadores modernos suportam as teclas de função ( quirksmode.org/js/keys.html#link6 ). De fato, essa página tem pelo menos vários anos e o suporte a eles em navegadores modernos provavelmente é ainda melhor.
Ricket
1

Absolutamente sim.

O WebGL está incluído nas versões noturnas do WebKit (Chrome / Safari) e Gecko (Firefox). No momento, o WebSockets está desativado devido a problemas de segurança, mas não há motivo para não ser reativado depois que os problemas forem resolvidos. Enquanto isso, sempre há HTTP.

Todos os jogos serão escritos dessa maneira? Não, mas um número significativo será. Quando o WebGL estiver nas versões finais do Chrome e Firefox, a penetração já será maior que a dos plug-ins nativos como o Unity.

O desempenho do JavaScript depende totalmente da criação de jogos. Você provavelmente não verá um nível de gráficos Crysis por um tempo, mas lembre-se, com o WebGL, o processamento de números é transferido para a GPU.

Para uma equipe pequena de dois homens, você precisará estar preparado para fazer muita codificação em qualquer mecanismo que você usar. Atualmente, não existem mecanismos WebGL / JavaScript que abranjam grande parte do código do jogo. SceneJS, three.js e similares são invólucros sobre a camada de gráficos, mas não fornecem nada para colisão, física, áudio, carregamento de recursos, rede ou ferramentas que compõem a maior parte de um produto como Unreal Engine ou Unity.

Nos primeiros dias do momento, eu esperaria ver mais middleware surgindo no próximo ano.

Dave
fonte
0

Eu não acho que muitos MMOs futuros serão escritos com qualquer tecnologia de navegador do lado do cliente, pois a maioria dos desenvolvedores de MMO desejará usar o mesmo idioma no cliente e no servidor, e a maioria dos desenvolvedores de jogos é fluente em linguagens não da Web como C ++. Há muito código de cliente envolvido para torná-lo muito prático em Javascript, exceto para simulações bastante triviais. Também existem outras limitações impostas pela execução no navegador que são desagradáveis ​​para um desenvolvedor de jogos típico.

Tenho certeza de que haverá alguns jogos como este, no entanto. Eles não vão substituir o WoW ou jogos similares por um bom tempo. Eles provavelmente serão feitos mais pelos desenvolvedores da web que estão entrando em jogos do que pelos desenvolvedores de jogos que estão entrando na web.

Kylotan
fonte
O downvoter deseja adicionar um comentário explicando como eles discordam da minha resposta? Apenas me perguntando. :)
Kylotan
0

A pergunta que você deve fazer é: por que os desenvolvedores de jogos querem depender da tecnologia da Web que eles não dominam e não têm controle? Os idiomas atuais permitem que você, mesmo em um navegador da Web, crie jogos incríveis?

lollancf37
fonte
0

Sim, mas a tecnologia ainda precisa se estabilizar e provavelmente haverá trocas de desempenho versus aplicativos nativos.

Vincent Scheib
fonte
-3

A união é boa. Veja também Shiva e o Prime Engine.

Lionel Barret
fonte
1
A Unity e o Prime Engine não têm nada a ver com as tecnologias mencionadas. Eles são plugins de código nativo.
Kylotan
1
São respostas no sentido em que estamos dizendo: "Não, não é uma boa ideia fazer isso, mas aqui estão alternativas". Respostas que dizem: "Não, mas aqui é uma alternativa" são muito mais preferível do que apenas "não"
Tim Holt
3
Às vezes eu concordo, mas raramente. Existe o risco de tentar ler a mente de alguém e adivinhar o que "realmente" deseja fazer, quando, na verdade, a pergunta original era perfeitamente legítima. Se alguém perguntar sobre a adequação do X, nem sempre devemos responder com "apenas use Y". No mínimo, deve haver uma comparação da adequação dos dois, para que
saibamos
Vou reformular minha resposta para responder à pergunta dele sobre qual biblioteca usar. Eu mesmo usaria a "biblioteca" do Unity: P
Tim Holt
resposta mais votada diz basicamente a mesma coisa ..
Erro 454