Production java ?

Le problème exposé dans ce sujet a été résolu.

Bonjour à tous et à toutes,

je suis en train d’apprendre le java afin de pouvoir plus tard créer un application Android. Au passage pour tous ceux qui veulent apprendre le java, je vous conseillé le livre : http://www.annetasso.fr/Java/. Je l’ai reçu aujourd’hui et j’ai déjà lu 100 pages ^^ . Je le trouve superbe, si cela peut aider certains.

Cependant j’aimerais une fois cette application réalisée savoir ce que je pourrais réaliser d’autres. Ainsi j’aimerais que vous me confirmiez s’il est possible avec le java de :

  • créer des logiciel sur pc
  • créer des jeux sur pc 2D
  • créer des jeux sur pc 3D
  • créer des jeux sur portable/tablette Android

Si vous pouvez me donner un exemple de production créé ou/et si vous connaissez un tuto pour réaliser ces production, je serais ravi de les lire. Si vous connaissez d’autres possibilité de productions, je suis aussi preneur ^^

Merci d’avance de m’éclairer sur ce sujet

JAVA fonctionne sur toutes les plateformes qui ont une JVM Java Virtual Machine
- Donc oui tu peux faire des jeux sur pc
- Oui tu peux faire de la 2D (si c’est juste une interface, il y a tout dans la lib standard, sinon tu peux utiliser des libs spécialisées pour les jeux vidéos 2D comme slick
- Oui il existe un binding openGL pour java (JOGL)
- Oui les app android sont faite en Java

Exemples: minecraft comme l’a dit @ez613 et 1’185’620 autres projets sur GitHub

+2 -0

confirmiez s’il est possible avec le java de :

  • créer des logiciel sur pc
  • créer des jeux sur pc 2D
  • créer des jeux sur pc 3D
  • créer des jeux sur portable/tablette Android

Oui, c’est possible, maintenant Java n’est pas spécialement le langage le plus adapté. ça va largement suffir pour les petits jeux mais pour les plus gros, ça risque d’être compliqué. Je vais tenter de simplifier le problème, si je te perd, je tenterais de donner plus d’explications.

Après avoir écrit plein de code Java, tu doit le transformer en bytecode (bytecode = instructions machines, ce sont les fichiers .class). Tous ces fichiers .class contenant du bytecode sont regroupé dans un exécutable qu’on distribue chez les clients. Quand le code va être exécuter, la JVM va lire le bytecode et va exécuter les différentes instructions.

Dans d’autres langages, après avoir écrit du code, les développeurs compile leurs codes et distribue un binaire aux clients (un fichier contenant des 1 et des 0). Le temps de lecture d’un fichier binaire est très rapide. Ce qui n’est pas le cas pour le bytecode exécuté par la JVM qui prendra plus de temps.

Ce qui fait que le langage Java est souvent plus lent en théorie que les langages compilé comme le c ou le c++. Comme les jeux demandent souvent beaucoup de ressources (cpu, gpu, mémoires, …), beaucoup de personne utilisent les langages compilé quand ils ont besoin de gaspiller 0 ressources.

Maintenant que tu code dans un langage compilé ou en Java, tu aura surement besoin d’un moteur de jeu ou d’un framework. Je te déconseille de t’en passer si tu dépasse le petit jeu en 2d, c’est juste du suicide en tant que débutant de créer son propre moteur de jeu. En java, tu as plusieurs alternatives, les deux principaux moteurs/framerwork sont libGDX ou jMonkeyEngine. Si tu veux un exemple, de jeu créé sur la plateforme Android avec libGDX, tu as un membre de Zeste de Savoir, qui en a créé un, Poulp Up. Il a d’ailleurs fait des très bon tuto sur Android sur le site ! Bref, tu peux aller voir, ce qu’il a fait. Il répond normalement aux questions sur le thread (même si il est souvent trés trés occupé).

Les moteurs de jeu, les plus utilisé si tu veut sortir du monde Java, c’est Unity et Unreal Engine. Pas mal de AAA sur pc, sont développé avec ces outils !

à toi de voir si Java peut suffir et répondre à tes besoins ou si tu veux partir sur des gros moteurs de jeu comme Unity ou Unreal Engine. Pas de réponse universelle, c’est selon tes besoins et envie. Juste pour te prévenir, Unity et Unreal Engine sont des outils très complexe, et prennent du temps à maîtriser :) , c’est même un métier, on créé pas un jeu de 3d de ouf, en trois secondes ! Bien sûr, utiliser Unity ou Unreal Engine pour un 1% de leurs fonctionalité, c’est du gaspillage de ressources très important.

+3 -0

créer des logiciel sur pc

Un exemple ici est par exemple Zest-Writer.

tu as plusieurs alternatives, les deux principaux moteurs/framerwork sont libGDX ou jMonkeyEngine....

Je rajouterais LWJGL, c’est celui que j’utilise pour créer mes jeux. (C’est d’ailleurs le moteur de Minecraft).

D’accord merci pour toutes vos réponses, je vois l’utilité du java du coup si j’ai bien compris :

le java est bien pour créer des applications mobiles cependant pour faire des jeux il est mieux d’utiliser Unreal Engine ou Unity ou de le développer en C++, le C++ est mieux aussi pour la création sur Pc de logiciel par exemple.

Enfin avec le Java il est aussi possible de créer tout ce que j’ai dit plus haut cependant il est plus lent en théorie.

N’est ce pas ?

Merci pour toutes les bibliothèques que vous m’avez conseillées. ^^

Oui, mais avec la puissance des ordinateurs aujourd’hui, la différence se fait de moins en moins sentir. (Mais pour l’exemple, ne t’imagine pas qu’un gros jeu, du genre Watch Dogs 2, GTA5, etc. Soit fait en Java. La se sera certainement du C ou du C++ (Ou un mélange des deux)).

le C++ est mieux aussi pour la création sur Pc de logiciel par exemple.

Pour ça, je suis moins d’accord. Ou alors, comme pour les jeux, des applications demandant beaucoup de ressource et une perte minimal de puissance.

Pour le dernier point, ça dépend surtout du langage favori (Ou imposé) de l’utilisateur, que se soit du Java, Python, C#, etc.

Je tenais juste à rajouter aussi, dans mon école les informaticiens apprennent uniquement le java en profondeur (Et de ce que j’ai compris, il survole un petit peu les autres langages).

Et encore, l’avantage du Java est d’être multi-plateforme.

Tout dépend, vraiment de ton besoin :) ! Y’a pas vraiment un langage mieux qu’un autre, ils sont juste différents avec leurs qualités et leurs défauts. Quand on recommande un langage, on essaye d’imaginer ce que tu voudrais pouvoir faire et on répond de manière générale. C’est bien pour te guider et donner une idée au début, mais te baser que sur ça, c’est pas une très bonne idée.

le java est bien pour créer des applications mobiles

Pour Android, c’est ce qui est conseillé pour faire des applications native et recommandé de manière générale. Le SDK Google est prévu pour faire du Java.

Pour IOS, pour faire du natif, les langages prévu par Apple sont Swift et Objective-C.

Maintenant, tu as d’autre alternative qui peuvent te convenir comme Xamarin (C#), PhoneGap (HTML/CSS et JavaScript) ou même du react (JavaScript), … .

ça dépend de ce que tu veux faire, encore une fois !

cependant pour faire des jeux il est mieux d’utiliser Unreal Engine ou Unity ou de le développer en C++, le C++

Ça dépend de la taille du jeu, de ce que tu veux faire. Si c’est un petit jeu en 2d, Unity ou Unreal Engine, sont pas forcément utile et vont plus te compliquer la tâche qu’autre chose. Si tu veux un jeu en 3d avec des effets graphiques de kikou et un super gros jeu, Unity ou Unreal Engine sont peut-être plus adapté.

Dépend de ton besoin !

C ou C++ est mieux aussi pour la création sur Pc de logiciel par exemple.

Java se débrouille aussi bien dans le domaine, dépend si tu as besoin vraiment de grosse perf pour l’application mais si la cible est un pc de bureau, tu aura largement la puissance nécessaire.

Dépend de ton besoin, ce que tu as envie d’apprendre.

+1 -0

Et encore, l’avantage du Java est d’être multi-plateforme.

WinXaito

C’est aussi le cas des langages que tu cites avant … Le fait qu’il faille compiler un programme sur la plateforme cible ne rend pas ce langage moins multi-plateforme tant qu’il la supporte. Et pour Python et C#, ils sont aussi multi-plateforme. Donc bon.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte