Bonjour,
Je suis actuellement sur le projet d'un jeu (on est plusieurs en fait). Cela doit faire bientôt 2 ans que l'idée à été lancée et le concept du jeu est maintenant bien avancé (On a été tranquilement).
On a commencé à transcoder depuis quelques temps les dizaines de pages de blabla en une structure plus axée vers la programmation pour mieux visualiser et, bientôt, un jour, programmer (ou du moins déjà commencer).
Initialement le projet avait été prévu en PHP, un petit jeu jouable sur un navigateur comme on en voit beaucoup de nos jours. Mais le projet ayant vite pris de l'ampleur, il me paraît difficile de le faire. Non pas au niveau des possibilités du language mais le problème vient que tout est executé niveau serveur et notre jeu, massivement multi-joueur, est devenu complexe. il y aurait trop de calculs et de requêtes à faire pour le pauvre serveur.
On a eu un aperçu après avoir tenté un début d'algo un tantinet complexe.
De plus l'impossibilité d'interaction réelle avec le joueur est une limite qui freine beaucoup de fonctionnalités, sans parler du graphisme qui est en html...
Bref, il nous faut donc utiliser un language plus evolué qui s'execute côté client. Un moteur 3D (ou 2D isométrique) sera donc présent. Le jeu est un mélange entre un jeu de rôle multijoueur et jeu de stratégie (ça serait trop long de tout expliquer ici).
Le joueur incarne un personnage avec vue à la troisième personne. Une carte standard style jeu de rôle multijoueur banale (de simples décors, comme des maisons, des arbres etc.). Pas d'interactions en 3D (comme des sauts ou autre) le plateau de jeu est en 2D. Le jeu n'est pas axé sur la première personne comme un jeu de combat et ne nécessite pas d'effets graphiques exceptionnels.
En fonction du moteur graphique, eventuellement des visions plus axées sur la 3D lorsqu'un personnage entre dans un bâtiment par exemple, un décor différent, plus interactif (mais plus des effets de caméra qu'autre chose).
Nous voulons développer un jeu multi-plateformes. A savoir Windows (Xp), Linux et Mac Os X, d'où l'interêt du Java.
Comme je l'ai dit avant, le moteur graphique ne sera pas le fer de lance du jeu mais devra tout de même être potable.
Un module serveur devra donc être également mis en place (sous Linux) pour coordonner le tout, étant donné que le jeu est multijoueurs uniquement.
Donc, ma question enfin, pensez-vous qu'un tel projet puisse être réalisé en Java. Beaucoup parlent de la lenteur de Java étant donné qu'il y la JVM entre le code et la machine. A quel point est-ce gênant ? J'ai entendu que beaucoup de progrès avait été fait. Qu'en est-il avec la dernier version (1.5).
Nous ne sommes pas des spécialistes en infographie, loin de là. Existe t'il des moteurs 3D open source bien documenté (comme je l'ai dit, pas besoin d'un truc haurissant) qui tourne convenablement sans besoin d'un ordinateur surpuissant.
Pour résumer, le jeu aura 2 parties distinctes:
- Le module client, que le joueur installe sur sa machine (multi plateformes). Il contiendra un moteur 3D ainsi que le jeu qui va avec :o
- Le module serveur qui coordinera le tout. Son boulot sera de recevoir et d'envoyer les informations aux modules clients pour permettre le jeu en multi-joueur. Il y aura quand même quelques calculs à faire, mais on va essayer de faire le max côté client.
Les informations concernant les joueurs seront surement stockés dans une base de donnée type SQL. Est-ce un bon choix ?
J'attends vos avis, experiences. Si vous connaissez un moteur 3D pour Java, faites-le moi savoir. J'ai déjà fait quelques recherches et j'en ai trouvé 2:
Simplicity: https://simplicity.dev.java.net/
Xith3D: http://xith.org/tiki-index.php
Quelqu'un les connait, a déjà utilisé ? (que ce soit en tant qu'utilisateur ou programmeur)
De même, au niveau du module serveur, si vous avez des experiences, ou même des liens vers des articles qui expliquent la mise en place d'un tel programme. Nous n'avons jamais réalisé un application qui devra gérer autant de requêtes en même temps. Il y a surement des méthodes à mettre en place pour optimiser ce genre de programme.
Une autre question en passant. Qu'en est-il de la licence avec Java etant donné qu'il appartient à Sun ? Y a t'il des restrictions quand à la distribution commerciale ou non de produits écrits en Java (droits, licence à payer en cas de commerce...?)
Java ou java pas ?
Merci pour vos conseils, idées, avis... (et pour avoir lu ce long discours).
Partager