News:

SimuTranslator
Make Simutrans speak your language.

[Sugestão] Simutrans em HTML5 + JavaScript

Started by Igor Isaias Banlian, September 19, 2012, 09:25:27 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Igor Isaias Banlian

Queria sugerir e usar este tópico para debater uma versão do Simutrans feita para rodar em navegadores de Internet, feita em HTML5 + JavaScript!

Os prós são vários, tais como:

=> Totalmente multiplataforma, rodando em PCs, Macs, Smartphones, Tablets, dentre outros dispositivos que tenham um navegador de Internet;
=> Praticidade, ao não precisar baixar nem instalar nada, apenas abrir um link e começar a jogar;
=> Multiplayer facilitado, pois com WebSockets você elabora facilmente o sistema servidor-cliente com o Node.js, por exemplo, para rodar o servidor;
=> Vasta documentação sobre como fazer qualquer coisa em HTML5 + JavaScript;
=> Várias libraries, frameworks e engines prontas, tais como a melonJS, específica para jogos, e a Socket.IO, para implementar as funções servidor-cliente;
=> Aproveitamento total dos gráficos já existentes, ou seja, dos Paksets, GUIs, Logos, etc.;
=> Possibilidade de integração com redes sociais, sites, fóruns, etc.;
=> Dentre outras coisas, como o fato do Desktop estar morrendo, do futuro serem os dispositivos portáteis, da praticidade de todos usarem várias instâncias de um mesmo cliente, ao mesmo tempo, em um único servidor, da facilidade atual em se armazenar os saves nos PCs de cada um, e da melhoria na velocidade, estabilidade e segurança atual dos motores de JavaScript dos navegadores modernos!

Exemplos de jogos que usam HTML5 + WebSockets:

-> Demo de um sistema para o desenvolvimento de RPGs, só abrir o link que ele estará rodando: http://rpgjs.com/examples/demo-fullscreen.php
-> MMORPG 2D da Mozilla (sim, aquela mesma do Firefox), só abrir o link que ele estará rodando: http://browserquest.mozilla.org/
-> Demo do port do MMORPG 2D, The Mana World, para HTML5 + JavaScript: http://manasource.org/tmwjs/
-> Demos e vídeos de vários jogos que usam a engine melonJS: http://www.melonjs.org/gallery.html
-> Vídeo de um jogo que até lembra Simutrans, por também ter cidades, pedestres, etc., e que mostra bem as possibilidades ilimitadas das engines em HTML5 + JavaScript: http://www.golem.de/1006/76039.html

Sei que reescrever todo o jogo em HTML5 + JavaScript não é trivial, rápido ou fácil, mas se ninguém nunca começar, nunca será feito, então seria realmente interessante se pelo menos uma pessoa experiente da equipe de desenvolvimento do Simutrans começasse a fazer testes no sentido de portar o Simutrans para HTML5 + JavaScript, pois com certeza isso daria bons frutos no futuro!

Abraço,
Igor Isaias Banlian



An_dz

Bom, primeiro que seria uma tarefa muito pesada, pois converter um programa C, C++ para javascript e HTML é extremamente difícil.

Debatendo os seus 'prós':
1->A velocidade com que a W3C cria novos padrões é bem diferente do desenvolvimento dos browsers. O CSS4 já está em desenvolvimento e nenhum dos 5 grandes browsers conseguiu terminar o CSS3 e quase todos tem alguma coisa do CSS2 que não bate com a especificação.
Além do jogo requerer versões específicas de browsers alguns poderiam não ter alguns dos novos padrões. E alguns teriam modificações até a implementação final.
2->Como não precisa baixar? O javascript, o HTML e as imagens vem da onde?
3->Não acredite nisso, pode parecer a coisa mais fácil do mundo. Mas tentar pegar um código pronto e só modificar sem entender a lógica dele não funciona. É mais fácil ver o código e criar o seu com uma lógica focada a seu projeto. E documentos em sites como da Microsoft também mostram como desenvolver o sistema servidor-cliente em C, C++, C# e ASP.NET.
4->C e C++ são muito mais comuns na programação, documentação delas é o que não falta.
5->Para C e C++ também tem milhares de libraries e frameworks, muito mais que para javascript.
8->O javascript já está extremamente melhor do que quando comecei a usar a internet (lá por 1997 ou 1996), mas a velocidade de execução do javascript não muda o fato de como a engine trabalha. Mesmo que a execução dure 1 milésimo do que a 15 anos atrás, o javascript ainda é uma linguagem de único thread, ou seja, você jamais vai executar dois javascripts ao mesmo tempo. Um vai atrasar o outro para terminar a execução do outro. Isso é até para que um código não quebre o outro. Outro lado é que o javascript ao dar erro deixa de executar tudo.]

O Simutrans enquanto roda executa um grande número de tarefas ao mesmo tempo e mesmo que se consiga fazer uma versão no browser o ganho benefício é praticamente negativo.

O código atual do Simutrans é multi plataforma, como de qualquer jogo. As barreiras entre SOs diferentes é o motor gráfico(SDL/DirectX/GDI+/Quartz), interface touch (toque/toque duplo/toque prolongado/1,2,3 dedos) e interface teclado/mouse->jogo.

IgorEliezer

Só para não dizer que não vi o tópico...

Bem, como eu sou especialista em arquitetura edílica e planejamento urbano, e não em programação Web, prefiro deixar os especialistas falarem. ^^'

Igor Isaias Banlian

Pessoal, vocês já viram a última novidade em simulação de cidades em HTML5? Chama-se 3d.city e é um tipo de clone do SimCity original:

=> Jogue online aqui: http://lo-th.github.io/3d.city/

=> Repositório (é Software Livre sob a GPLv3): https://github.com/lo-th/3d.city

=> Review (em Espanhol): http://bitelia.com/2014/12/3dcity-simcity

A mim parece que com esta novidade estamos bem mais perto de termos um Simutrans rodando no navegador, haja visto que tal engine faz praticamente toda a parte complexa de simular uma cidade, inclusive com uma visão do tipo 3D bem interessante! ;D

Não seria uma má ideia se os desenvolvedores de Simutrans começassem a dar uma olhada neste tipo de coisa para levarem essa ideia de Simutrans em HTML5 mais a sério, principalmente estudando esta engine, haja visto que é Software Livre, GPLv3 e está hospedada no GitHub, então não teria como ficar mais acessível! 8)

Atenciosamente,
Igor Isaias Banlian