Sviluppo di giochi per dispositivi mobili HTML5 rispetto alle app di giochi native [chiuso]


12

Qual è lo stato attuale dei motori di gioco, dei framework, delle librerie e delle conversioni relative al set di tecnologie HTML5 (comprese le librerie CSS3 e JavaScript come RaphaelJS, Impact, gameQuery); e come si confronta il meglio con lo sviluppo di un'app nativa (specialmente per iOS e Android)?

Soprattutto in termini di prestazioni, immagini e ottenere quel "feeling nativo".

Sono anche apprezzati i pensieri su soluzioni come Appcelerator e Corona SDK. Per quanto riguarda Unity3D, è possibile svilupparlo e mantenere il gioco riproducibile su un browser (come le versioni correnti di Chrome o Firefox, almeno) senza dipendenze o senza che l'utente installi nulla (nessun lettore web di unità) .

Quello che sto cercando è come sviluppare gli standard web per raggiungere il numero massimo di piattaforme (anche al di fuori dei dispositivi mobili) mantenendo comunque un'esperienza nativa per i dispositivi mobili senza dover implementare nuovamente il gioco per iOS e Android.


2
Unity richiede ancora il web player. Stanno lavorando sulla distribuzione di Flash 11, ma non sarà disponibile per un po '. Non ho mai giocato a un gioco HTML5 su un browser mobile che mi è sembrato buono. E l'audio HTML5 è ancora un mucchio di risucchio.
michael.bartnett,

1
Se vuoi "sentire nativo", allora hai bisogno di un'app nativa ... altrimenti sei sempre limitato al comune denominatore delle piattaforme che vuoi supportare.
Bummzack,

Oh certo, senza lavoro extra sarei. Ma potrebbe essere raggiunto un compromesso, fintanto che non avrò bisogno di riscrivere tutte le basi di un gioco, l'aggiunta di un codice più specializzato per le interfacce touch sarebbe completamente accettabile.
Vic Goldfeld,

1
Sulla base della mia esperienza, i giochi nativi hanno prestazioni molto più
elevate

Risposte:


7

Le librerie HTML5 sono sorprendentemente buone soprattutto considerando la sua giovane età. Esistono solidi motori 2D / 3D che supportano effetti particellari, fisica e simili. Tuttavia, non c'è nulla di paragonabile ai motori di gioco consolidati e maturi come Unity o Unreal Engine.

Anche le librerie HTML5 nella mia esperienza amano essere guidate dagli eventi. Ad esempio gli sprite avranno eventi onclick e non ci sarà realmente un loop di gioco tradizionale.

Le prestazioni delle app native sono molto, molto più veloci di qualsiasi cosa abbia a che fare con il canvas HTML 5. Questa è la portata della mia esperienza, non ho idea di Appcelerator o Corona SDK.

Tuttavia, se il tuo obiettivo è più il "numero massimo di piattaforme" che la parte "standard web", suggerisco una soluzione come Unity che funziona su quasi tutto e grazie al suo editor integrato è un motore molto produttivo.


6

Tom qui da Scirra, facciamo di Construct 2 il creatore di giochi HTML5 .

Di recente abbiamo scritto un blog su questo, confrontando le prestazioni HTML5 Canvas / WebGl / C ++ DX. Puoi leggerlo qui:

http://www.scirra.com/blog/58/html5-2d-gaming-performance-analysis

Ed ecco il grafico:

inserisci qui la descrizione dell'immagine

So che non è una prestazione rispetto ai formati mobili nativi, ma è un confronto con le app native desktop che dovrebbe dare qualche indicazione sul divario prestazionale.


Adoro il grafico. Qualche possibilità per un aggiornamento 2016?
Dan Dascalescu,

4

Innanzitutto, Corona SDK è adorabile con cui lavorare. Lua è un ottimo linguaggio, Corona è un quadro molto approfondito e la documentazione è stata eccezionale finora.

Secondo me lo sviluppo del gioco HTML5 non ne vale ancora la pena. Sia su browser desktop che mobili. Se il tuo obiettivo è creare un gioco fantastico da eseguire su desktop e dispositivi mobili, non preoccuparti. Se il tuo obiettivo è creare un gioco HTML5, allora crealo e utilizza uno dei framework citati dalla gente (guarda anche Crafty o Gee per un'interfaccia più simile a un disegno).

Il motivo principale è che quando faccio un gioco, voglio fare un gioco completo e raffinato. Parte della creazione di un gioco completo e raffinato è un buon audio. Sebbene il <audio>tag sia supportato sui principali browser (supponendo che tu fornisca abbastanza formati diversi), gestire la tua colonna sonora a livello di codice createElementè una specie di seccatura. SoundManager 2 è un cerotto, non una soluzione. In molti casi tornerà indietro usando un oggetto Flash per desktop. A quel punto chiedo, perché non semplicemente fare la maledetta cosa in Flash?

Su iOS, a meno che non utilizzi un hack come nella libreria Jukebox di Zynga , in realtà sei limitato a riprodurre solo suoni in risposta all'input dell'utente. È ridicolo.

Inoltre, a meno che tu non stia confezionando il tuo gioco HTML5 come un'app, le persone hanno bisogno di una connessione per giocare. Il tempo che trascorro a giocare con i giochi mobili è in metropolitana, nessun segnale. E se impacchetti il ​​tuo gioco, non sarebbe strano non avere audio? Se sto scaricando un gioco, mi aspetto un certo livello di reattività e raffinatezza. Leggi: un'app nativa.

Fino a quando i browser HTML5 ulteriormente sviluppati e mobili non saranno più veloci e l'audio HTML5 smetterà di succhiare, mi divertirò a giocare con Javascript <canvas>e tutto il resto, ma non andrò al punto di produrre un gioco raffinato con esso. Si riduce a quali sono i tuoi obiettivi. Pochissimi so chi gioca e non sono sviluppatori che hanno anche giochi HTML5 mobili sul loro radar. Ancora una volta, se vuoi creare fantastici giochi HTML5, crea giochi HTML5. Se vuoi creare e vendere giochi fantastici, dai priorità alla qualità dell'esperienza dei tuoi giocatori.


Richiesta di un aggiornamento a metà 2012 - lo sviluppo del gioco HTML5 è migliorato? Esistono ancora problemi di prestazioni e problemi audio?
Flash

3

Controlla http://cocos2d-javascript.org/

Non è ancora completamente implementato. Ma una volta fatto, potrebbe essere il migliore :)

Ci sono alcune demo in quel sito, sono abbastanza buone ...

Modifica: appena verificato, le demo non sono compatibili con i dispositivi mobili ...


3

Come hanno dimostrato altre risposte, la differenza di prestazioni è piuttosto grande. Tuttavia, esistono nuovi modi per ottenere prestazioni Web native sul Web (utilizzando Chrome).

MonoGame è un'implementazione open source del framework XNA progettato per funzionare su quante più piattaforme possibile. Quando questo è combinato con Google Chromes NaCl (Native Client) i risultati sono piuttosto sorprendenti (richiede Chrome).

Il mio consiglio sarebbe di creare un'app nativa in XNA o MonoGame e prendere in considerazione NaCl e / o ExEn per portare il tuo gioco su altre piattaforme. La stragrande maggioranza della tua base di codice sarà la stessa per tutte le piattaforme, ma la dimensione ridotta sta rilasciando il tuo gioco non avrà la semplicità di un gioco HTML5.

HTML5, a mio avviso, non esiste ancora per quanto riguarda le prestazioni utilizzabili, ma esistono altre opzioni che sono quasi in grado di competere con l'accessibilità degli HTML5, anche se aggiungono un po 'più di complessità (e costi in alcune situazioni) al rilascio del tuo gioco.


Oh mio Dio, pensavo che NaCl fosse solo per il codice C ++ nativo, ma funziona anche con Mono ?!
David Gouveia,


1

Potresti provare PlayN . Al momento non è molto maturo o ben documentato e richiede un certo sforzo per farlo funzionare, ma ti consente di programmare in Java ed esportare il tuo gioco su un numero di piattaforme diverse (al momento, Java, HTML5, Flash, Android e iOS e, in futuro, Windows Phone 7).

Il vantaggio che ha su Corona, Phonegap, ecc è che compila il tuo gioco per ciascuna delle piattaforme piuttosto che semplicemente eseguendolo usando una macchina virtuale; questo ti assicura prestazioni quasi native su ogni piattaforma.


0

Risposta e link fantastici - grazie!

Sto facendo un mio benchmarking (HTML5 / JS e PhoneGap) e trovo la stessa risposta. HTML5 non è ancora lì. Non ho giocato con nessuna delle risposte più "esotiche" come l'app * mobi, che afferma di avere un browser ridotto ottimizzato per i giochi, ma il piano generale "Scrivi il tuo gioco in HTML5 e giocalo su un telefono" è non praticabile a questo punto. Potrebbe arrivarci, ma non ne sono sicuro. Il browser non è pensato solo per essere un motore di rendering e stiamo saltando attraverso molti cerchi per arrivarci. Penso invece che vedremo qualcuno trovare un'alternativa che ottiene massa critica e che decollerà. Il tempo lo dirà.

Mi piacerebbe qualsiasi feedback e critica costruttiva del mio lavoro, che è su GitHub ed è gratuito per tutti.

https://github.com/GameMaker/PhoneGap-Performance-Test--PGPT-

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.