Domanda [AIUTO] Scelta Motore Grafico per Java

Stato
Discussione chiusa ad ulteriori risposte.

carbos

Utente Emerald
14 Agosto 2010
957
132
122
477
Parto dal fatto che io preferisco usare Java a C++ sebbene li conosca entrambi (a livello superficiale) , ma comunque sto pensando di continuare con Java perchè mi sembra molto più chiaro e da quanto vedo è anche quello più usato a livelli più alti, quindi vi chiedo un Motore Grafico buono per fare giochi platform stile Indie game che accetti anche Java, e se potete consigliarmi anche qualcun'altro che fa in C++ e magari esporre se è meglio usare Java o C++
 
Ci sono LibGDX e jMonkeyEngine che sono molto validi. Se vuoi fare roba 2D meglio il primo, se vuoi fare roba 3D meglio il secondo, entrambi sono multipiattaforma e supportano anche android e ios (in jMonkey solo nella pre-relase, ma non penso che sia un gran problema). Da quel che ricordo jMonkey è più facile da utilizzare.
È meglio usare il linguaggio che conosci meglio, a maggior ragione se li conosci a livello superficiale (quel qualcosa in più che conosci in un linguaggio e non nell'altro potrebbe fare la differenza).
 
  • Mi piace
Reazioni: carbos
Le prestazioni di java non sono granchè....c è un motivo se nessuna software house lo usa.

Inviato dal mio M-PPxG501 utilizzando Tapatalk
 
Non nei videogiochi, credo. Minecraft è era in java ma la microsoft l'ha riscritto in c++, l'unreal engine usa il c++, e unity il c# shaft(non so com è fatto il source peró eh). Per fare giochi pensanti java non ha delle buone prestazioni.

Inviato dal mio M-PPxG501 utilizzando Tapatalk
 
Non nei videogiochi, credo. Minecraft è era in java ma la microsoft l'ha riscritto in c++, l'unreal engine usa il c++, e unity il c# shaft(non so com è fatto il source peró eh). Per fare giochi pensanti java non ha delle buone prestazioni.

Inviato dal mio M-PPxG501 utilizzando Tapatalk
Ci sono tanti giochi in Java, e comunque c'è da dire che tutte le più grandi case di video games utilizzano loro Motori grafici con loro linguaggi... ma comunque in Java ci sono varie librerie per videogiochi
 
Ci sono tanti giochi in Java, e comunque c'è da dire che tutte le più grandi case di video games utilizzano loro Motori grafici con loro linguaggi... ma comunque in Java ci sono varie librerie per videogiochi
Esatto, poche sh utilizzano java. Puoi anche usare le librerie java, è vero, ma utilizzando un engine avrai risultati migliori, visivamente e prestazionalmente, e molto piû immediati, sia per 2d che 3d.
Che progetto vuoi realizzare?
 
Esatto, poche sh utilizzano java. Puoi anche usare le librerie java, è vero, ma utilizzando un engine avrai risultati migliori, visivamente e prestazionalmente, e molto piû immediati, sia per 2d che 3d.
Che progetto vuoi realizzare?
Vorrei fare un gioco in 2D pixellato o lì vicino... Con un Engine si lo so che saranno migliori, appunto per questo sto cercando un Motore grafico per Java, LWJGL mi dicono sia buono che utilizza OpenGL
 
Unity lo conosco, love2D utilizza LUA ed io non lo conosco per niente... Comunque vedo se utilizzare o LWJGL o Unity, Unity in 2D mai visto come funziona
 
Non nei videogiochi, credo. Minecraft è era in java ma la microsoft l'ha riscritto in c++, l'unreal engine usa il c++, e unity il c# shaft(non so com è fatto il source peró eh). Per fare giochi pensanti java non ha delle buone prestazioni.

Inviato dal mio M-PPxG501 utilizzando Tapatalk
Uhm Microsoft non ha riscritto minecraft in c++ per ora ... , almeno non per pc ( non ho idea dei linguaggi con cui sia scritto per console e telefono , quest'ultimo penso anch'esso in java ) alla versione attuale minecraft è ancora in java.

Parto dal fatto che io preferisco usare Java a C++ sebbene li conosca entrambi (a livello superficiale) , ma comunque sto pensando di continuare con Java perchè mi sembra molto più chiaro e da quanto vedo è anche quello più usato a livelli più alti, quindi vi chiedo un Motore Grafico buono per fare giochi platform stile Indie game che accetti anche Java, e se potete consigliarmi anche qualcun'altro che fa in C++ e magari esporre se è meglio usare Java o C++
Io ti consiglio di utilizzare LWJGL, l'ho utilizzato personalmente ed è veramente potente.

In ogni caso lascio anche una mia considerazione , è vero si che c++ è più performante di java su diversi fronti , ma è molto più facile sviluppare un gioco cross platform in java che in c++.... non mi sono mai dedicato troppo al game development però credo che tutti i grandi titoli rilasciati solo per windows hanno troppi riferimenti al sistema ed era impensabile sviluppare tre versioni diverse ( potrebbe non essere cosi , come ho detto non sono esperto nel settore del game development , ma ho programmato in c e molte volte si è costretti a rifarsi a librerie di sistema e li c'è la necessità di scrivere un codice diverso per ogni os ) , detto questo se il gioco che bisogna creare non è troppo impegnativo a livello grafico io preferirei java al c++.
 
  • Mi piace
Reazioni: Scanetatore
Minecraft poket edition è stato riscritto totalmente in c++, tant'è che la nuova versione per pc(win 10) di minecraft è quella della poket edition, per il resto xboxone, ps4 e ps3 è c/c++, la versione xbox360 invece è c++/c#

In ogni caso puntare a java ora come ora non ha alcun senso dato che Microsoft con c# sta puntando al cross Platform, riguardo la storia del "eh il c++ è più performante" sì, peccato che quelli che lo sappiano usare allocando e deallocando per bene la memoria sono ben pochi, in ogni caso è inutile consigliare un linguaggio o un altro, se volete farlo per lavoro prima o poi dovrete conoscerli tutti(almeno quelli più usati chiaramente) se il vostro obiettivo è fare soldi vendendo un videogioco vi consiglio di andare a giocare al lotto, le probabilità non sono diverse, se volete sviluppare un game per hobby allora buttatevi sugli engine.
 
Le prestazioni di java non sono granchè....c è un motivo se nessuna software house lo usa.
Le prestazioni di Java non sono al pari dei linguaggi compilati, ma resta comunque abbastanza (molto?) vicino alle prestazioni di C# e nettamente più veloce di qualsiasi linguaggio interpretato. Le software house di videogames non usano né Java e né C++, usano degli engine dove la logica solitamente è in qualche linguaggio di scripting (vedi C#, Javascript e Boo di unity, tutti di pari "potenza") o fatta un po' alla drag & drop (vedi i blueprints di unreal engine). È principalmente un motivo di efficienza, se vuoi sfornare più di un gioco all'anno vale la pena investire tempo e soldi per scrivere un tool che ti permetta di non ripartire ogni volta da zero.
Senza contare che per il pinco pallino a caso che vuole fare un gioco le prestazioni dovrebbero essere l'ultimo problema, se non scrivi il codice con i piedi i 60 fps li raggiungi tranquillamente (si presume che la complessità di questo gioco sia molto bassa se paragonata a un qualsiasi gioco AAA recente).

Alla Mojang hanno scelto di sviluppare Minecraft in Java, non è che sia una scelta fuori dal mondo per dei giochi indie.


(ndr. java e c#) Sono simili come sintassi ( entrambi c like ) e basta, per il resto sono abbastanza diversi.
Sono abbastanza simili in tutto, prestazioni incluse: stessi paradigmi di programmazione supportati, semi-interpretati, garbage collection, type safety, etc...


In ogni caso puntare a java ora come ora non ha alcun senso dato che Microsoft con c# sta puntando al cross Platform
C# gira su Mac, Windows e Linux, Java facciamo prima a dire dove non gira. Comunque non è che un linguaggio improvvisamente perde di senso quando apparentemente c'è un linguaggio che alcuni ritengono migliore.
 
Le prestazioni di Java non sono al pari dei linguaggi compilati, ma resta comunque abbastanza (molto?) vicino alle prestazioni di C# e nettamente più veloce di qualsiasi linguaggio interpretato. Le software house di videogames non usano né Java e né C++, usano degli engine dove la logica solitamente è in qualche linguaggio di scripting (vedi C#, Javascript e Boo di unity, tutti di pari "potenza") o fatta un po' alla drag & drop (vedi i blueprints di unreal engine). È principalmente un motivo di efficienza, se vuoi sfornare più di un gioco all'anno vale la pena investire tempo e soldi per scrivere un tool che ti permetta di non ripartire ogni volta da zero.
Senza contare che per il pinco pallino a caso che vuole fare un gioco le prestazioni dovrebbero essere l'ultimo problema, se non scrivi il codice con i piedi i 60 fps li raggiungi tranquillamente (si presume che la complessità di questo gioco sia molto bassa se paragonata a un qualsiasi gioco AAA recente).

Alla Mojang hanno scelto di sviluppare Minecraft in Java, non è che sia una scelta fuori dal mondo per dei giochi indie.



Sono abbastanza simili in tutto, prestazioni incluse: stessi paradigmi di programmazione supportati, semi-interpretati, garbage collection, type safety, etc...



C# gira su Mac, Windows e Linux, Java facciamo prima a dire dove non gira. Comunque non è che un linguaggio improvvisamente perde di senso quando apparentemente c'è un linguaggio che alcuni ritengono migliore.
Tenendo presente che c# e appunto java sono simili quasi in tutto è inutile continuare ad usare la pecora nera B)
 
Comunque è inutile stare a discutere su qualche linguaggio è meglio utilizzare poichè ogni linguaggio ha i suoi pro e i suoi contro e sta al programmatore scegliere quale secondo lui è più opportuno in quella situazione.

Minecraft poket edition è stato riscritto totalmente in c++, tant'è che la nuova versione per pc(win 10) di minecraft è quella della poket edition, per il resto xboxone, ps4 e ps3 è c/c++, la versione xbox360 invece è c++/c#

In ogni caso puntare a java ora come ora non ha alcun senso dato che Microsoft con c# sta puntando al cross Platform, riguardo la storia del "eh il c++ è più performante" sì, peccato che quelli che lo sappiano usare allocando e deallocando per bene la memoria sono ben pochi, in ogni caso è inutile consigliare un linguaggio o un altro, se volete farlo per lavoro prima o poi dovrete conoscerli tutti(almeno quelli più usati chiaramente) se il vostro obiettivo è fare soldi vendendo un videogioco vi consiglio di andare a giocare al lotto, le probabilità non sono diverse, se volete sviluppare un game per hobby allora buttatevi sugli engine.

Quello che hai detto è parzialmente inesatto , E' vero la minecraf packet edition è scritto in c++ ma avevo infatti puntualizzato di essere sicuro che minecraft per pc alla versione attuale è scritto in java ( e no la versione che esce su windows 10 , quella che attualmente chiunque possiede e scarica dal sito ufficiale ) e di non aver idea in cosa fossero scritti il resto delle applicazioni sono per cellulare avevo solo supposto fosse fatte in java . "Quindi evitiamo Puntare a java non ha senso ? " Qui credo ci stia una buona porzione di WTF (guarda le statistiche dei linguaggio più utilizzati , bho ti cito un azienda qualsiasi che ha molti dei suoi servizi in java , google ? vagli a dire di riscriverli in c#... , ho programmato in java in diversi ambienti e lo ritengo tutt'oggi un linguaggio valido e molto potente , e nota personale ha un eleganza nel codice che pochi linguaggi permettono di conferire e non fa mai male.
 
Le software house di videogames non usano né Java e né C++, usano degli engine dove la logica solitamente è in qualche linguaggio di scripting (vedi C#, Javascript e Boo di unity, tutti di pari "potenza") o fatta un po' alla drag & drop (vedi i blueprints di unreal engine).

Chissá su cosa è scritto l'unreal engine...

La Epic Games ha usato il c++ per scrivere l'unreal engine 4, se non mi credi vai sul sito e controlla tu stesso. I blueprints sono dell funzioni che richiamano il c++, utilizzate per semplicare lo scripting di un videogioco di altre software house. Inutile dire che solo gli indie utilizzano i blueprints nel progetto finito, le grandi software house che usano l'unreal per sviluppare videogiochi, usano il codice, scritto in c++ (cosa credevi che usassero?) per svilupparlo, modificando anche il source stesso se serve.

Inviato dal mio M-PPxG501 utilizzando Tapatalk
 
Pure la jvm alla fine esegue codice compilato in nativo, il fatto che dietro ai blueprints ci sia il C++ è irrilevante. Unreal engine tempo fa usava unreal script per il gameplay, quello che voglio dire è che ci sono cose che richiedono alte performance e cose che non le richiedono. Il gameplay di un videogioco è tra le cose che non richiedono alte performance, fisica e grafica sì.
Tempo fa avevo visto un benchmark dove si faceva vedere che un progetto SFML (C++) girava tipo 4 volte più lento dello stesso progetto scritto in Libgdx (java), non è che se si usa Java qualsiasi cosa è lenta e se si usa C++ qualsiasi cosa è veloce. In questo caso sotto a SFML e Libgdx ci sono sotto le opengl, se una libreria sfrutta un qualcosa in più di un'altra libreria possono esserci cambiamenti significativi in performance. In molti casi il linguaggio frontend diventa poco rilevante in termini di performance, gli engine solitamente mettono a disposizione dei linguaggi di scripting proprio perché il vantaggio in performance ottenibile da un linguaggio compilato è molto meno incisivo rispetto al tempo guadagnato ad usare un linguaggio di scripting.
In Unity non importa se usi C#, Javascript o Boo, la performance è identica.

Chissà in cosa è scritto LOVE (per lua), chissà in cosa è scritto Libgdx (per java) e chissà con cosa è scritto cocos2d (per swift, obj-c, python, etc...)
Tutti scritti in C++, ma questo non vuol dire che tu possa usarli in un progetto C++.


Inutile dire che solo gli indie utilizzano i blueprints nel progetto finito, le grandi software house che usano l'unreal per sviluppare videogiochi, usano il codice, scritto in c++
citation needed

I blueprints sono un tool messo a disposizione per chi poteva permettersi di prendere l'unreal engine, il fatto che ora sia alla portata di chiunque non vuol dire che Epic l'abbia sviluppato pensando agli indie, l'ha sviluppato pensando a rimpiazzare unrealscript. Certo che non si fa un gioco dalla A alla Z usando solo i blueprints, ma questo non cambia ciò che ho detto.
 
Comunque è inutile stare a discutere su qualche linguaggio è meglio utilizzare poichè ogni linguaggio ha i suoi pro e i suoi contro e sta al programmatore scegliere quale secondo lui è più opportuno in quella situazione.



Quello che hai detto è parzialmente inesatto , E' vero la minecraf packet edition è scritto in c++ ma avevo infatti puntualizzato di essere sicuro che minecraft per pc alla versione attuale è scritto in java ( e no la versione che esce su windows 10 , quella che attualmente chiunque possiede e scarica dal sito ufficiale ) e di non aver idea in cosa fossero scritti il resto delle applicazioni sono per cellulare avevo solo supposto fosse fatte in java . "Quindi evitiamo Puntare a java non ha senso ? " Qui credo ci stia una buona porzione di WTF (guarda le statistiche dei linguaggio più utilizzati , bho ti cito un azienda qualsiasi che ha molti dei suoi servizi in java , google ? vagli a dire di riscriverli in c#... , ho programmato in java in diversi ambienti e lo ritengo tutt'oggi un linguaggio valido e molto potente , e nota personale ha un eleganza nel codice che pochi linguaggi permettono di conferire e non fa mai male.
La versione attuale di minecraft verrà sostituita da quella per Windows 10, che è appunto la poket edition fatta interamente in c++, non basta per dirti "evitate java per i giochi" come se fosse un cartello lampeggiante? inoltre Google non fa videogame, in più è da pochissimo che c# è diventato cross Platform, di certo non basta uno schiocco di dita per riscrivere alcuni dei suo servizi(tra cui molti sono ancora scritti in delphi, non sono proprio aggiornatissimi in Google(e vorrei vedere)) per applicazioni cross platoform aveva molto senso sì, ma basta aspettare che c# prenda piede come cross Platform e non c'è motivo per non far scomparire totalmente java, inoltre come dicevo prima "in ogni caso è inutile consigliare un linguaggio o un altro, se volete farlo per lavoro prima o poi dovrete conoscerli tutti(almeno quelli più usati chiaramente) se il vostro obiettivo è fare soldi vendendo un videogioco vi consiglio di andare a giocare al lotto, le probabilità non sono diverse, se volete sviluppare un game per hobby allora buttatevi sugli engine."
 
La versione attuale di minecraft verrà sostituita da quella per Windows 10, che è appunto la poket edition fatta interamente in c++, non basta per dirti "evitate java per i giochi" come se fosse un cartello lampeggiante? inoltre Google non fa videogame, in più è da pochissimo che c# è diventato cross Platform, di certo non basta uno schiocco di dita per riscrivere alcuni dei suo servizi(tra cui molti sono ancora scritti in delphi, non sono proprio aggiornatissimi in Google(e vorrei vedere)) per applicazioni cross platoform aveva molto senso sì, ma basta aspettare che c# prenda piede come cross Platform e non c'è motivo per non far scomparire totalmente java, inoltre come dicevo prima "in ogni caso è inutile consigliare un linguaggio o un altro, se volete farlo per lavoro prima o poi dovrete conoscerli tutti(almeno quelli più usati chiaramente) se il vostro obiettivo è fare soldi vendendo un videogioco vi consiglio di andare a giocare al lotto, le probabilità non sono diverse, se volete sviluppare un game per hobby allora buttatevi sugli engine."

Hai delle fonti per dire ciò riguardante minecraft ? o le tue sono mere supposizioni ? inoltre quello che dici sul C# è molto da relativo... ed è inutile cercare di prevedere il futuro del gaming development e darlo per certo ognuno ha le sue idee e i propri pareri , "evitate java per i giochi" ripeto che è un affermazione forte e senza fondamenta , ribadisco il mio pensiero ogni linguaggio ha i suoi pro e i suoi contro e ogni programmatore è libero di scegliere quale secondo lui è più opportuno alla situazione , sarà il pubblico a decidere la qualità del prodotto finale e questo giudizio non si baserà certo sul linguaggio utilizzato ma bensì sulle prestazione , sulla compatibilità e la qualità del prodotto.
 
Hai delle fonti per dire ciò riguardante minecraft ? o le tue sono mere supposizioni ? inoltre quello che dici sul C# è molto da relativo... ed è inutile cercare di prevedere il futuro del gaming development e darlo per certo ognuno ha le sue idee e i propri pareri , "evitate java per i giochi" ripeto che è un affermazione forte e senza fondamenta , ribadisco il mio pensiero ogni linguaggio ha i suoi pro e i suoi contro e ogni programmatore è libero di scegliere quale secondo lui è più opportuno alla situazione , sarà il pubblico a decidere la qualità del prodotto finale e questo giudizio non si baserà certo sul linguaggio utilizzato ma bensì sulle prestazione , sulla compatibilità e la qualità del prodotto.
La versione win 10 di minecraft è disponibile per chi ha già il gioco, è come se fosse un aggiornamento della vecchia. Come hai detto tu ogni linguaggio ha i suoi pro e contro, java di certo non ha il pro di delle performance decenti, e quelle sono fondamentali in un videogame, avrà il pro della portabilità ma dall'altro lato abbiamo c# che come pro ha prestazioni decenti(rispetto a java) e portabilità, dunque effettivamente sì, mi sento sicuro nell'eliminare java tra la lista dei linguaggi per un buon videogame.
In ogni caso come ho già detto bisogna molto vedere cosa vuole fare LUI, se vuole farlo per lavoro allora non può rifiutarne nemmeno uno di linguaggio, se invece vuole farlo per hobby può rifiutare quello che gli pare.
 
La versione win 10 di minecraft è disponibile per chi ha già il gioco, è come se fosse un aggiornamento della vecchia. Come hai detto tu ogni linguaggio ha i suoi pro e contro, java di certo non ha il pro di delle performance decenti, e quelle sono fondamentali in un videogame, avrà il pro della portabilità ma dall'altro lato abbiamo c# che come pro ha prestazioni decenti(rispetto a java) e portabilità, dunque effettivamente sì, mi sento sicuro nell'eliminare java tra la lista dei linguaggi per un buon videogame.
In ogni caso come ho già detto bisogna molto vedere cosa vuole fare LUI, se vuole farlo per lavoro allora non può rifiutarne nemmeno uno di linguaggio, se invece vuole farlo per hobby può rifiutare quello che gli pare.

MINECRAFT: WINDOWS 10 EDITION , ho detto tutto questo non fa intendere che sia un aggiornamento , per il resto non condivido la maggior parte delle tue affermazioni riguardanti java , ci sarebbero troppe questioni da affrontare per confrontare questi due linguaggi quindi ognuno rimane delle proprie opinioni , è il pubblico alla fine a decidere la qualità di un prodotto non sta a vedere in che linguaggio è scritto.
 
L'hai letto l'articolo? :asd: in ogni caso non c'è nulla da discutere, vuoi programmare per lavoro? studiati java, c#, c, c++, py, assembly, lua e via discorrendo, non ti interessa lavorare nel campo? fai quel che ti pare, ma se vuoi la vita più facile(e se non ti importa lavorare nel campo la vita più facile la vuoi) vattene sugli engine.
 
La versione win 10 di minecraft è disponibile per chi ha già il gioco, è come se fosse un aggiornamento della vecchia. Come hai detto tu ogni linguaggio ha i suoi pro e contro, java di certo non ha il pro di delle performance decenti, e quelle sono fondamentali in un videogame, avrà il pro della portabilità ma dall'altro lato abbiamo c# che come pro ha prestazioni decenti(rispetto a java) e portabilità, dunque effettivamente sì, mi sento sicuro nell'eliminare java tra la lista dei linguaggi per un buon videogame.
In ogni caso come ho già detto bisogna molto vedere cosa vuole fare LUI, se vuole farlo per lavoro allora non può rifiutarne nemmeno uno di linguaggio, se invece vuole farlo per hobby può rifiutare quello che gli pare.
la w10 edition non lo sostituirà mai, e poi pensa, anni di mod buttati nel cesso, e tutti dovrebbero studiarsi un linguaggio complicato come il c++.... La maggior parte resterà sul minecraft in Java , e poi sarà solo per w10(leggi il nome) quindi non credo propio....
 
Stato
Discussione chiusa ad ulteriori risposte.