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

Projets Discussion :

MineDeeper, un jeu de creusage


Sujet :

Projets

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de Sytten
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 72
    Par défaut MineDeeper, un jeu de creusage
    Bonjour,

    Voici mon tout premier jeu!

    Dans MineDeeper vous contrôlez un petit robot foreur qui doit creuser une planète inconnue afin de trouver 3 artéfacts qui pourraient prouver qu'il y a eu présence de vie extraterrestre sur cette planète. En creusant vous devez aussi récolter des minerais que vous pouvez(devez) vendre afin de pouvoir acheter du carburant pour votre robot et des améliorations (du genre un plus grand réservoir de carburant). Lorsque vous n'avez plus de carburant ou que vous n'avez plus de vie, vous explosez et devez recommencer.

    Pourquoi faire ce jeu?
    C'est un projet pour l'école (je suis en 5e secondaire au Québec pour ceux que ça intéresse): on doit faire un projet de minimum 40h et j'ai décidé de faire un jeu afin d'améliorer mes connaissances, car je dois dire que je suis débutant...

    Bibliothèques et outils
    Le jeu sera codé en c++ à l'aide de la SFML, peut-être que je modifierai le jeu afin de pouvoir utiliser également la SDL, mais ça restera à voir en fonction du temps que j'aurai. Je développe avec CodeBlocks et je ne sais pas encore si je ferai une documentation puisque le projet est relativement petit.

    Autres informations
    Le code est ouvert complètement, sous licence GPL et sera disponible sur Github.

    Premières Idées
    Je suis pas mal perdu faut dire, donc je suis pleinement ouvert aux idées
    En me basant sur certains autres jeux (Merci LittleWhite) je crois que j'aurai les classes suivantes:
    -Window (ouvrir ma fenêtre)
    -Caméra (puisque le monde sera plus grand que ce la taille de la plupart des écrans on doit donc déplacer la vue)
    -Sprite (pour gérer mon robot)

    -Map (pour d'abord charger une map et plus tard générer une map aléatoire, gèrera aussi les collisions avec le décors)
    -Tile (classe qui défini les caractéristiques des tuiles, une instance sera crée pour chaque tuile différente et elles seront conservées dans la classe Map)

    -ImageManager (pour charger les images en mémoire)
    -SoundManager (pour charger les sons en mémoire)

    Donc voilà, comme je l'ai dit plus tôt, je vous encourage à me donner vos suggestions dont j'ai grandement besoin (j'ai aussi besoin de ressources sur le tiles mapping, le scrolling, etc. si vous souhaitez m'aider encore plus )

    Cordialement,
    Sytten

    P.S.: J'aimerais savoir si je devrais suivre ce tutoriel...

    EDIT 1: Ajout des classes Collisions et Artifacts, suppression des classes ImageManager et SoundManager (conseil de Emmanuel Deloget).

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 184
    Par défaut
    Beau projet.

    Les 40h tu va les dépasser largement selon moi.

    Mes conseils si jamais ça peut aider :

    - Tu peux séparer ta Map en deux parties. Une partie graphique et une partie physique (pour les collisions). Ça t'éviteras de tout confondre quand tu devra gérer la caméra et les collisions.
    - Il va te manquer une classe pour la gestion de tes artefacts. Savoir par exemple combien tu en possèdes à l'instant x.
    - Il te manque aussi une classe pour l'interface utilisateur pour te permettre de savoir sur quelle touche appui le joueur.


    Sinon le principe est sympa. Je vais suivre le cours de ce périple.

  3. #3
    Membre actif Avatar de Sytten
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 72
    Par défaut
    Citation Envoyé par Fax37 Voir le message
    Beau projet.

    Les 40h tu va les dépasser largement selon moi.
    Merci, oui ça je commençais à le savoir

    Citation Envoyé par Fax37 Voir le message
    Mes conseils si jamais ça peut aider :

    - Tu peux séparer ta Map en deux parties. Une partie graphique et une partie physique (pour les collisions). Ça t'éviteras de tout confondre quand tu devra gérer la caméra et les collisions.
    - Il va te manquer une classe pour la gestion de tes artefacts. Savoir par exemple combien tu en possèdes à l'instant x.
    - Il te manque aussi une classe pour l'interface utilisateur pour te permettre de savoir sur quelle touche appui le joueur.

    Pour les deux première classes je suis entièrement d'accord et je prend tout ça en note, pour l'autre j'ai le choix de faire ma boucle de jeu dans le main et d'utiliser les fonctions des objets direct à l'intérieur ou de passé par un objet... selon toi le mieux serait sûrement de passer par un objet non? pourtant je n'arrive pas saisir ce que ça m'apporte de plus sinon que je crée une seule instance qui contiendra tout mes autres instances...

    Merci de ton intérêt, je vais faire de mon mieux pour poster mes updates de façon régulière.

    EDIT: Voir message plus bas, il faut que je choisisse le type que je vais utiliser, à voir...

    Cordialement,
    Sytten

  4. #4
    Membre Expert

    Avatar de germinolegrand
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Octobre 2010
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2010
    Messages : 738
    Par défaut
    [germinolegrand]: y'a 3 façons de faire un draw : window.draw(object); draw(window, object); object.drawTo(window);

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 184
    Par défaut
    Le fait de diviser ton code en classes te permet de mieux séparer tes fonctions et de rendre ton code plus lisible.
    Tu pourrais tout à fait tout mettre directement dans ton Main...mais c'est déconseillé car peu lisible.
    Créer une classe pour les interactions avec clavier/souris te permettra de les gérer "séparément" de ta classe Main.

    Ce n'est que mon avis perso.

  6. #6
    Membre actif Avatar de Sytten
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 72
    Par défaut
    Oui certainement, je vais y réfléchir, parce que si j'enlève cette partie du main, il me reste une fonction dans mon main

    J'ai fais la toute première version qui ne fait qu'afficher une map fixe, je m'attaque maintenant aux déplacements basiques d'un sprite...
    J'utilise des carrés de couleur, car mon ami n'a pas encore fini de faire les vrais sprites...

    Je commence aussi à penser à une bande sonore pour le jeu, mais comme l'ambiance n'est pas encore bien cernée je préfère attendre un peu...

    EDIT : J'ai pas mal remanié mon début de code avec germinolegrand, c'est bien meilleur niveau structure. Demain je m'attaque aux mouvements avec CharacterMover...

  7. #7
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Bonjour,
    Citation Envoyé par Fax37 Voir le message
    Créer une classe pour les interactions avec clavier/souris te permettra de les gérer "séparément" de ta classe Main.
    Son projet est en C++ pas en Java (?), il n'a pas de classe Main mais une fonction main.

    @Sytten : pense aussi à documenter ton code (au moins doxygen et si possible diagrammes de classes ) si tu souhaites que des personnes externes à ton projet puisse apporter leur contribution (remarques sur le code, corrections de bugs, ajout de fonctionnalité) ou si tu souhaiteras recruter par la suite (je suppose qu'une fois le devoir rendu/présenté, tu continueras ?).

Discussions similaires

  1. Quel style de DirectX pour un jeu 2D ?
    Par delire8 dans le forum DirectX
    Réponses: 34
    Dernier message: 31/07/2003, 00h47
  2. Réponses: 7
    Dernier message: 18/06/2003, 15h20
  3. [socket][tcp] jeu en reseau
    Par souris_sonic dans le forum Développement
    Réponses: 2
    Dernier message: 30/05/2003, 07h31
  4. [C réseau débutant] jeu
    Par Heimdall dans le forum Développement
    Réponses: 6
    Dernier message: 22/05/2003, 13h58
  5. Une déclaration pour la survie du jeu vidéo en France
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 30/10/2002, 14h31

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