IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Conseils pour le développement d'un jeu


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 104
    Par défaut Conseils pour le développement d'un jeu
    Bonjour à tous,

    Je souhaite me lancer dans le développement d'un petit jeu programmé en Java (connaissant bien ce langage). Seulement, j'ai besoin de quelques conseils sur les outils à utiliser.

    Pour commencer, je vais plutôt décrire le type de jeu que j'ai en tête afin que vous le visualisiez vous aussi:

    * Il s'agit d'un petit jeu où le personnage peut évoluer dans un environnement. C'est donc un jeu style RPG, puisque le perso a des compétences par exemple, peut se déplacer sur une carte, interagir des pnj...

    * Il ne s'agit pas d'un jeu en temps réel où on déplace son personnage en appuyant sur haut/bas/gauche/droite. En fait, la partie visuelle du jeu n'est là que pour le confort et une meilleure représentation de l'espace.

    Le principe est simple: le perso se déplace sur un grand quadrillage via des boutons sur l'interface. Le joueur déplace son personnage via des flèches à l'écran. Sur chaque zone (ie. carré du quadrillage) il peut faire plein de choses (fouiller, parler à un pnj présent sur la zone, chasser, planter du mais...). Il n'y a aucune animation et toutes ces actions se font via un clic sur un boutton ou du texte. Chaque action modifie un ou plusieurs états du jeu (si l'action est 'fouiller la zone', alors un nouvel objet sera ajouté à l'inventaire; la zone pourra alors être épuisée;...)

    Bref vous comprenez bien qu'il ne s'agit pas d'un jeu de plateau dans lequel on fait avancer un personnage et tuer des monstres, mais plus un jeu textuel et interactif. J'espère que je suis clair.

    Voici une image illustrant par exemple l'interface utilisateur lorsqu'il se promène sur la carte :


    Mes différentes questions sont donc :

    1) Quel est la librairie Java la plus adaptée à ce genre d'interface? J'ai regardé pas mal Slick2d, mais je crois que c'est vraiment utilisé pour des jeux "evenementiel" (un affichage qui se rafraichit en permanence en fonction des évenements - clic, touches)

    Du peu que j'en connais, je pense que Swing serait pas mal. Mais peut-être connaitreriez vous d'autres librairies plus adaptées?

    2) De quelle manière stocker les données persistentes du jeu? Avoir une base de donnée style MySql "intégré" qui tourne en même temps? Des fichiers properties? des fichiers XML?
    Par exemple:
    • liste des objets (et leurs propriétés)
    • liste des ordres
    • listes de type de pnj,
    • compétences des personnages
    • ...



    3) Comment gérer et persister ma carte du monde? Je pensais à un tableau initialisé à la création de la partie (style 50x50), contenant des objets Case (qui définit les propriété d'une zone). Est-ce une bonne méthode? Mais comment récupérer et sauvegarder la configuration de cette carte? De plus, l'amélioration a y apporter serait de générer automatiquement cette carte. Une idée peut-être?

    Je m'excuse pour le pavé, mais je voulais exposer le plus clairement possible ma vision de ce jeu. J'espère que ça ne vous empechera pas de me conseiller.
    Je précise que je connais plutôt bien le langage, mais beaucoup plus dans sa version Enterprise Edition, et la création de jeu-vidéo m'est pratiquement inconnu.

    Merci beaucoup.

  2. #2
    Invité de passage
    Inscrit en
    Décembre 2012
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2012
    Messages : 1
    Par défaut
    Argh, personne n'a répondu !...

    Dommage car ton idée m'intéressait beaucoup, je cherche à développer un jeu moi aussi, et je suis tombé sur ton post justement en cherchant sur moteur de recherche.

    Bon ben de toute façon le message a bientot 3 ans donc ma réponse ne sert pas, mais en tout cas si ça permet de relancer, alors pqoi pas

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2003
    Messages : 69
    Par défaut
    Salut,

    Pour te répondre dans l'ordre :

    1. Swing me paraît adapté.

    2. Une base de données mysql tournant en paralèlle est une bonne option dans la mesure où ton jeu comporte un programme client et un programme serveur, c'est-à-dire s'il s'agit d'un jeu réseau. Si tel est le cas, le serveur peut traiter les informations via une base de données. Si par contre ton jeu ne comprte qu'un programme tournant en local et en standalone, c'est plus simple de sauvegarder le tout dans un fichier xml (par exemple) quand le joueur quitte le jeu.

    3. Pour la carte du monde, je te conseille de définir un format de fichier et de faire une classe de lecture/écriture pour ce type de fichier, de manière générique. Comme ça tu peux créer plusieurs mondes sans avoir besoin de modifier ton code et tu peux aussi créer un éditeur de mondes utilisant cette même classe de lecture/écriture.

    Voilà. Après ce n'est que mon avis

  4. #4
    Membre très actif
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Par défaut
    Juste une petite précision (info) sur le fait que le jeu présenté ici n'est pas un jeu textuel, c'est plus un jeu où l'on clique ci et là.
    Un jeu textuel permet les actions seulement par la saisie d'un ou plusieurs mots dans l'invite de saisie du joueur.

    Pour le monde, tu peux enregistrer la map dans un fichier (grace à un éditeur de ta conception) et la charger dans un tableau au début du jeu ou quand le joueur entre dans une nouvelle map.
    L'affichage de la map se fait alors à partir du tableau.

    Pour la liste des personnages tu peux faire la même chose, de même pour les objets visibles au sol.
    Tu aurais donc trois tableaux : Un pour les sols, un pour les objets, et un pour les personnages.

    Tu as aussi une autre solution, c'est de générer chaque case de la map au hasard, il suffit de définir une liste des sols qu'on peut trouver dans la case de map et de prendre au hasard dans cette liste pour le mettre dans la case de map, puis hop passer à la case de map suivante.

    Par contre là c'est pour la map des sols, ensuite tu peux aussi faire la meme chose pour les objets qu'on peut trouver sur une case de map, et aussi pour les personnages qu'on peut rencontrer.

    Donc à chaque déplacement l'affichage vérifie la case correspondante dans les trois tableaux avant d'afficher chaque case de map.

Discussions similaires

  1. Conseils pour le développement de plug-ins
    Par alpha_one_x86 dans le forum Qt
    Réponses: 1
    Dernier message: 10/01/2010, 12h17
  2. Réponses: 8
    Dernier message: 10/10/2007, 09h42
  3. Quelques conseils pour la reprise de mon jeu ?
    Par Franck.H dans le forum SDL
    Réponses: 16
    Dernier message: 23/09/2006, 12h55
  4. [XSL] Besoin de conseils pour un développement
    Par ben23 dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 10/07/2006, 21h31
  5. Conseils pour re-développer une application "old school"
    Par delphi5user dans le forum Delphi
    Réponses: 1
    Dernier message: 10/07/2006, 17h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo