Come si può fare un gioco usando solo Java?
Si può usare Java?
Non c'è certo motivo per cui non si possa fare un gioco. Java non ha il miglior supporto industriale (sarebbe il C++), ma Minecraft, uno dei videogiochi di maggior successo della storia, era ed è ancora mantenuto in Java. Il problema sta principalmente in ciò che si sta cercando di costruire.
Si dovrebbe usare Java?
In generale, Java non è molto adatto allo sviluppo di videogiochi di fascia alta o e-sport a causa di alcune limitazioni della JVM. Certo, la garbage collection è super conveniente quando si ha a che fare con strutture dati molto complesse, ma la sua presenza può causare intoppi nelle prestazioni che potrebbero essere inaccettabili, per esempio, in League of Legends o Counter Strike: Global Offensive. Ci sono molte caratteristiche di convenienza in Java (inclusa una notevole mancanza di puntatori) che possono imporre limiti di prestazioni in alcuni altri progetti di videogiochi, come quelli con massicce richieste di richiamo (giochi open-world) o manipolazione programmatica e in tempo reale di modelli 3D (giochi di fisica).
Come usate Java?
Se questi svantaggi specifici di performance non sono una preoccupazione (non lo sono per i piccoli progetti), Java può essere usato in due scenari generali:
- costruire un gioco da zero, usando una libreria come LWJGL per il 3D o anche JavaFX per il 2D, un po' come è stato fatto Minecraft
- utilizzando motori di videogiochi disponibili come JMonkeyEngine o il più simile al framework LibGDX, attualmente gli unici motori "grandi" e "maturi" disponibili per Java
Conclusione:
La scelta del linguaggio è in definitiva piuttosto arbitraria se non state facendo videogiochi di classe AAA con una grafica di alto livello o mondi grandi ed estesi. Se Java è quello che volete usare, ci sono strumenti disponibili.
Alternative:
Tuttavia, se avete davvero bisogno di un motore di gioco completo e ben supportato, sia Unreal Engine che Unity forniscono interfacce di scripting che sono abbastanza semplici. Unity usa C#, che deliberatamente non si discosta molto da Java e può essere imparato velocemente. Unreal Engine usa un'interfaccia di scripting visuale chiamata Blueprints che assomiglia un po' ai diagrammi logici. I Blueprints, ad un certo punto, hanno avuto prestazioni piuttosto scadenti, ma con i recenti miglioramenti al compilatore Blueprint, è ora probabilmente simile in velocità o più veloce dei tipici linguaggi di scripting.
Articoli simili
- Fare un editor di testo in Java è un buon progetto per imparare Java?
- Se conosco Java, e come creare applicazioni Android utilizzando Java, quali sono i passi per pubblicare una mia applicazione?
- What is the difference between Java 1.8 and Java 1.7?
- Cosa devo installare, Java 10 o Java 8? C'è una differenza?