QNA > Q > Qual È Il Miglior Motore Js Da Usare Se Voglio Costruire Un Gioco Di Strategia A Turni?

Qual è il miglior motore js da usare se voglio costruire un gioco di strategia a turni?

Ottima domanda!

Peter J. ha menzionato Phaser, che è un framework eccellente, ed è particolarmente adatto alla costruzione di platform. Vale la pena controllare.

Se si va in quella direzione, spendere un po' di tempo per imparare pixi-js, che è la libreria di rendering usata sotto Phaser. Pixi fornisce a Phaser una buona parte della sua meraviglia, grazie ad una mappatura davvero pulita di JS su un contesto OpenGL nel browser. (cioè - Pixi nasconde tutto questo e lo rende davvero facile)

Pixi.js - 2D webGL renderer con canvas fallback

L'API per costruire front-end appariscenti è molto simile alla vecchia scuola di programmazione Flash .. credo? (non posso dirlo con certezza, perché ho tipo bypassato tutta la faccenda di Flash, anche quando era popolare)

Qui ci sono alcuni esempi interessanti...

Pixi.js Esempi

Pixi.js Esempi

Pixi.js Esempi

Pixi.js Esempi

Come puoi vedere, le prestazioni sono al top!

A seconda del tipo di gioco a cui stai puntando, potresti scoprire che scrivere direttamente su pixi è una scelta migliore? Dipende - se la vostra applicazione si adatta bene con un ciclo di animazione stretto, allora Phaser è la strada da percorrere, ma se i turni a turni sono molto lunghi e richiedono un sacco di pensiero da parte del giocatore - allora forse no.

Questa cosa sarà multi-player?

Se è così, allora vi aspetta una bella sorpresa nello scrivere il backend. Ho scoperto che, per una serie di ragioni, Go (come in Golang) spacca assolutamente per scrivere backend di giochi, specialmente con i websockets. Gli aspetti di concorrenza di Go si adattano molto bene ai backend multigiocatore, e i websockets vi danno due vie di comunicazione in tempo reale con tutti i front end.

Lo dico semplicemente perché potete anche usare lo stesso linguaggio Go per scrivere il front end alimentato da Pixi, e questo può essere compilato in Javascript, caricato su una pagina web, e poi eseguito nel browser.

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

  1. package main 
  2. import ( 
  3. "ajhager/raf"  
  4. "pixi.v20 - gopkg.in/ajhager/pixi.v20"  
  5. "http://github.com/gopherjs/gopherjs/js"  
  6. var ( 
  7. stage = pixi.NewStage(0x66FF99) 
  8. renderer = pixi.AutoDetectRenderer(400, 300) 
  9. texture = pixi.TextureFromImage("bunny.png", true, pixi.ScaleModes.Default) 
  10. bunny = pixi.NewSprite(texture) 
  11. func animate(t float32) { 
  12. raf.RequestAnimationFrame(animate) 
  13. bunny.Rotation += 0.1 
  14. renderer.Render(stage) 
  15. func main() { 
  16. js.Global.Get("document").Get("body").Call("appendChild", renderer.View) 
  17. bunny.Anchor.SetTo(0.5) 
  18. bunny.Position.Set(200, 150) 
  19. stage.AddChild(bunny) 
  20. 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/

Di Fry

Cosa la entusiasma di più nella tecnologia? :: Come deciderete se acquistare la PS5 o la Xbox Serie X quando uscirà nel 2020 e quali sono le caratteristiche che aspettate di più?
Link utili