Qual é o melhor motor js para usar se eu quiser construir um jogo de estratégia baseado em turnos?
Pergunta de excelência !
Peter J. mencionou o Phaser, que é um excelente framework, e é particularmente adequado para construir platformers. Vale a pena conferir.
Se você for por aí, passe algum tempo aprendendo pixi-js, que é a renderização lib usada por baixo do Phaser. Pixi fornece ao Phaser uma boa parte de suas impressionantes imagens, graças a um mapeamento realmente limpo do JS em um contexto OpenGL no navegador. (ou seja - Pixi esconde tudo isso e torna tudo muito fácil)
Pixi.js - renderizador webGL 2D com fallback canvas
A API para construção de front-ends chamativos é muito similar à programação Flash da velha escola... Eu acho que ? (não posso dizer com certeza, porque eu meio que ignorei a coisa toda do Flash, mesmo quando ele era popular)
Aqui estão alguns exemplos legais ...
Pixi.js Exemplos
Pixi.js Exemplos
Pixi.Exemplos js
Pixi.js Exemplos
Como você pode ver, a performance é o máximo !
Dependente do tipo de jogo que você está visando, você pode descobrir que apenas escrever direto para pixi é uma escolha melhor ? Depende - se a sua aplicação se encaixa bem com um loop de animação apertado, então o Phaser é o caminho a seguir, mas se os turnos baseados em turnos são muito puxados e requerem muita reflexão do jogador - então talvez não.
Esta coisa vai ser multi-jogador ?
Se assim for, então você está dentro para um deleite escrevendo o backend. Descobri que por uma série de razões, Go (como em Golang) o esmaga absolutamente por escrever backends de jogos, especialmente com websockets. Os aspectos concorrenciais do Go se encaixam muito bem com backends multiplayer, e os websockets lhe dão 2 formas de comms em tempo real com todos os front ends.
I menciono isso, simplesmente porque você também pode usar a mesma linguagem Go para escrever o front end com Pixi, e isso pode ser compilado para Javascript, carregado em uma página web, e depois executado no navegador.
Here is an example from the library that does that .. this is a complete program, that compiles to a blob of JS that renders an animated bunny in OpenGL
- package main
- import (
- "ajhager/raf"
- "pixi.v20 - gopkg.in/ajhager/pixi.v20"
- "http://github.com/gopherjs/gopherjs/js"
- )
- var (
- stage = pixi.NewStage(0x66FF99)
- renderer = pixi.AutoDetectRenderer(400, 300)
- texture = pixi.TextureFromImage("bunny.png", true, pixi.ScaleModes.Default)
- bunny = pixi.NewSprite(texture)
- )
- func animate(t float32) {
- raf.RequestAnimationFrame(animate)
- bunny.Rotation += 0.1
- renderer.Render(stage)
- }
- func main() {
- js.Global.Get("document").Get("body").Call("appendChild", renderer.View)
- bunny.Anchor.SetTo(0.5)
- bunny.Position.Set(200, 150)
- stage.AddChild(bunny)
- raf.RequestAnimationFrame(animate)
- }
More to see here : ajhager/pixi
And while you are at it, check this demo out too : (compiled Go -> that writes straight to the DOM)
http://tidwall.github.io/digitalrain/
Artigos semelhantes
- Qual é a melhor maneira de implementar um jogo baseado em servidor baseado em turnos no Android?
- Quais são os elementos-chave para desenhar um grande jogo de estratégia baseado em turnos?
- O que é um bom jogo de estratégia baseado em turnos para celular?
- Existem alguns tutoriais para construir um jogo como o Temple Run usando o motor de jogo Unity3D, ou qualquer outro motor de jogo?