Motori grafici 2D multipiattaforma [chiuso]


57

Sto cercando un motore grafico 2D che mi consenta di rilasciare su Windows, Mac e iPhone, proprio come fa Unity per il 3D.

Esiste un buon motore che lo fa ed è specifico del 2D?


Se ti senti avventuroso, puoi sempre dare un'occhiata a uno dei giochi 2D open source, come Aquaria, Gish e il resto del pacchetto Humble Indie.
MarkovCh1,

6
Hai dimenticato Linux, nessun amore per quei ragazzi?
Derek,

Risposte:


37

C'è sempre il vecchio standby, SDL . È abbastanza basso livello, ma quella semplicità è ciò che gli permette di essere portato su bajillions di piattaforme (inclusi windows, linux, mac, nintendo DS, wii, ecc ecc). C'è una porta per iPhone , che non ho usato, ma sembra abbastanza matura.


Non sembra che abbiano una versione 1.3 "stabile", ma che è la versione che desideri per il supporto di iPhone. Probabilmente dovrai prendere la versione 1.3 dal loro repository HG e costruirla da solo.
Casey,

22

Non c'è davvero alcun motivo per cui non puoi usare Unity3D per creare giochi "2D". Puoi usare quads testurizzati e una fotocamera ortografica e hai un gioco 2D. Esistono anche alcune soluzioni uniche come l'uso di un sistema di animazione scheletrica e la collocazione di folletti su diverse articolazioni o l'utilizzo di una videocamera prospettica molto stretta per ottenere una parallasse economica.

Esistono persino fornitori di middleware per Unity per fornire migliori soluzioni di gestione degli sprite. Come lo sprite manager 2 .


2
In effetti l'ho fatto. Trovo che l'aspetto 3D dell'unità, sebbene tende a interferire per quanto riguarda l'interfaccia utente. Inoltre finisco sempre per creare una scena fittizia che non ha nient'altro che una videocamera con il mio script di root allegato. Controllerò il link che hai citato però!
Kevin Laity,

20

SFML è un bel motore grafico moderno, orientato agli oggetti e multipiattaforma. È accelerato dall'hardware (basato su OpenGL) e ha collegamenti per

  • C ++
  • C
  • .Net (C #, VB.Net, C ++ / CLI, ...)
  • Pitone
  • D
  • Rubino
  • ocaml

4
+1 per SFML. È fantastico, ma l'unico problema è la mancanza di una porta per iPhone.
Il comunista Duck il

12

SDL, Allegro, OpenGL
SDL e Allegro non sono solo librerie grafiche, ma librerie di sviluppo di giochi interi.
Un aspetto negativo di SDL è che prende il controllo di main () e lo ridefinisce, rendendo difficile combinarlo con altre librerie. (QT nella mia esperienza)
Un'altra cosa negativa è che SDL consente solo una finestra (questa è la versione stabile 1.2, la versione di sviluppo 1.3 fa, ma non è ancora completamente supportata o documentata)
Posso nominare i punti deboli di SDL perché la conosco meglio e ha funzionato con esso, ma nonostante ciò, è molto potente, molti emulatori, tra cui un port di Mame e ScummVM, così come i giochi lo usano.
OpenGL, nonostante il suo popolare uso 3D, è una libreria grafica e, come tale, consente anche la grafica 2D attraverso la manipolazione a livello di pixel delle superfici e fa ampio uso dell'accelerazione hardware sia in 3D che in 2D.


Uso sempre i giochi in Allegro. Lo amo.
Tono,

Qt non assume il controllo principale, anche con un loop di eventi in QCoreApplication. Puoi chiamare qApp-> processEvents in qualsiasi loop tu voglia e Qt sarà felice.
Mircea Chirea,

1
Tuttavia, SDL deve assumere il controllo del ciclo principale? Pensavo che potessi evitarlo escludendo SDLmain.h e facendo attenzione a fare le cose da solo ...
Ricket,

2
SDL non assume il controllo del ciclo di gioco principale. Generalmente crei il tuo, e all'interno di quella chiamata SDL_PollEvent per ottenere qualsiasi evento di cui SDL sia a conoscenza (input da tastiera, movimento del mouse, ecc.).
dcarrigg,

6

Puoi guardare Troll2D

Box2D è utilizzato per molte piattaforme. Compreso l'iPhone. Ma dovresti trovare un modo per visualizzare quegli oggetti. Poiché Box2D gestisce solo la simulazione fisica 2D.


Olafur - Direi che Troll2D è stata la tua risposta, quindi dovresti iniziare con quello. Box2d dovrebbe essere il ripensamento.
Iain,

5

LÖVE è un motore 2D che consente lo sviluppo facile e veloce di giochi in lingua Lua .

Funziona su Mac (PPC e Intel), Windows e Linux (32 e 64 bit) e i giochi sono facilmente distribuiti come file ".love" a file singolo.

Sono fondamentalmente una versione zippata del tuo gioco con l' estensione zip rinominata per amore .

Sfortunatamente, non esiste una porta per iPhone (finora).


5

Cocos2D è nato su Mac / Windows in Python ed è disponibile in versione Objective-C sotto iPhone . È popolare nello sviluppo di giochi 2D per iPhone. Ray Wenderlich ha alcuni fantastici tutorial di Cocos2D per iPhone .

Poiché si sono spostati da Python a Objective-C, sospetto che non sarai più in grado di eseguire la compilazione incrociata tra tutte le piattaforme dalla stessa base di codice.


Esatto, ci sono molte porte cocos2d ma tutte usano la propria lingua. Objective-C per iPhone, Java per Android, Javascript per Web, Python per la versione originale del PC e C ++ per la nuova porta di Windows che potrebbe o meno supportare Windows Mobile (non è chiaro). A parte il nome e la filosofia del design, non sono intercambiabili in alcun modo.
LearnCocos2D

Penso che Cocos2d-x ora sia piuttosto stabile e multipiattaforma, con un unico linguaggio di implementazione: C ++ (include anche iPhone).
legends2k

4

Se non sei preoccupato per iPhone, c'è sempre Flash impacchettato come AIR: perdi iPhone ma ottieni Linux e distribuzione web. Puoi quindi scegliere i motori di gioco / fisica / rendering adatti al tuo progetto, ad es. FlashPunk, Flixel, Box2d.


Ottieni anche il supporto del telefono Android (almeno quelli più recenti) e probabilmente anche il supporto Palm / Blackberry / Windows Mobile in futuro.
dav

iOS è ora supportato mentre Linux no.
Danik,

4

Potresti provare l' Angel Engine . È basato su C ++, OpenGL, Box2D e utilizza Python per gli script. È principalmente per la prototipazione, ma le versioni recenti sembrano concentrarsi sulla realizzazione di giochi completi.



2

PlayN supporta HTML5, Android, iOS, Flash e Java desktop.

Scrivi il tuo codice in Java e gestisce la conversione del codice Java in JavaScript (tramite GWT) per HTML, in assembly ARM (tramite IKVM per passare da bytecode Java a bytecode CLR, quindi MonoTouch per compilare bytecode CLR in un'app iOS nativa), ad ActionScript tramite un back-end GWT personalizzato che genera ActionScript anziché JavaScript e ad Android e Java desktop senza conversioni.


2

Moai SDK è un framework che può essere eseguito * su queste piattaforme. È open source, quindi dai un'occhiata al loro repository github .

Moai può anche essere pubblicato su Google Chrome e Android.

* Non credo che la pubblicazione sia su Mac o Windows (cioè su un .app o .exe) è attualmente disponibile ma può essere aggiunta.


1

Haxe + NME supporta HTML5, Flash, Android, iOS, Blackberry, Windows, Mac, Linux, WebOS. Supporta grafica 2D (sprite bitmap, disegno vettoriale, oltre a effetti come ombreggiatura e sfocatura).


0

Ultimamente ho sentito molto parlare di MonoTouch per le persone che stanno sviluppando iPhone e iPod touch. Il Framework è in cima a Mono, che è già compatibile con più piattaforme.


Peccato che questo viola l'accordo del negozio iTunes, poiché stai scrivendo in qualcosa che non è C / C ++ / ObjC e stai usando un livello di traduzione. Potresti ottenere ancora l'approvazione, ma potrebbero tirarti in futuro. Personalmente non lo rischierei.
davr

@davr monotouch non viola i termini dell'accordo a partire da> 1 anno fa.
dodgy_coder il

@dodgy_coder Sì, ricordo quando Apple alla fine ha eliminato quelle regole ritardate (che miravano esclusivamente a danneggiare Adobe, credo). Il mio commento originale era vero al momento in cui l'ho pubblicato però :)
davr

-1

Unity3d è il miglior strumento e motore di sviluppo di giochi 2D. in alternativa monogame. html5 e flash non sono appropriati per questo argomento. il flash è già morto.

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.