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 :

Un bon vieux Pacman


Sujet :

Projets

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 16
    Points : 64
    Points
    64
    Par défaut Un bon vieux Pacman
    Salut à tous,

    Tout d'abord je me présente : développeur de 42 ans (aie déjà), je développe sur plusieurs langage depuis pas mal d'années (disons depuis que j'ai 15ans). Mon boulot est orienté programmation scientifique, et je cherche à me faire un peu plaisir en revenant aux Jeu Vidéo que je n'ai plus touché depuis longtemps.

    Je commence "petit", mais par un projet que je pense pouvoir terminer, et qui me permettra de me faire la main sur les jeux type 2D.
    Je programmerai le jeu en Java, tout simplement parcque c'est ce que maitrise le mieux aujourd'hui.

    Le jeu sera donc comme le titre l'indique un Pacman, avec quelques options (dont le but est principalement de tester des fonctions de programmation) :
    - Niveaux multi-écran (pour le scrolling)
    - Bonus divers (augmentation/diminution de la vitesse, tir de pacgomme, explosion et c'est tout).
    - Si possible : génération aléatoire de niveau


    L'idée est de programmer le jeu pour une résolution fullHD (ok, pas très intéressant pour un Pacman mais bon), pour voir si le Java bien utilisé permet par exemple les scrollings. Pour l'instant je compte faire les graphismes moi même, mais si quelqu'un est intéressé je suis preneur (débutants acceptés bien sur, ça reste un pacman )

    Si ce premier projet aboutit, je me lancerai dans un autre un peu plus gros et ainsi de suite, toujours et uniquement pour le plaisir! (Et oui, je ne souhaite pas conquérir la planète et dominer l'industrie du Jeu vidéo avec mon Pacman )

    Voilà, c'est peut être un projet un peu petit pour être présenté ici, mais c'est aussi pour me motiver à terminer maintenant que j'ai annoncé la couleur

    Merci d'avoir pris le temps de me lire.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 109
    Points : 292
    Points
    292
    Par défaut
    Un peu de sagesse dans ce monde de fou
    Là ou beaucoup se lance dans des projet pharaonique sans les compétences qu'il faut, ça fait plaisir de voir ça.

    Bon courage et attention au fuite... de mémoire. Contrairement à ce que beaucoup dise, on peu faire pratiquement tout ce qu'on veut en Java, mais on peu faire aussi n'importe quoi

    Si tu n'as pas encore abordé les problématique graphique fait bien attention au composant "natif" et double buffering sois disant accéléré matériellement.
    Y'a des fois ou il vaut mieux tout géré sois même au pixel prêt.

  3. #3
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Points : 2 347
    Points
    2 347
    Par défaut
    Cool comme projet. J'ai un peu la même démarche actuellement : faire des petits jeux et voir où cela mènera. Sauf que pour moi c'est plutôt du C et SDL.

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 16
    Points : 64
    Points
    64
    Par défaut
    Merci pour vos réponses et vos encouragements.

    Alors oui, les fuites mémoires en Java sont bien possibles et même fréquentes surtout si on code comme un sauvage. Mais c'est équivalent aux autres langages en fait.

    Pour la partie graphique, je connais déjà un peu, j'utilise les "VolatileImage" sensées être allouées en mémoire graphique. Ca semble être le cas (sous Windows en tout cas), car cela accélère bien les choses.

    J'ai hésité avec le C et une librairie genre SDL, mais je me suis dit que pour la 2D le java suffisait. J'y viendrai peut être si je me lance dans la 3D (sachant que j'en fait déjà en Java via JOGL et que ça marche bien aussi).

    Bon, j'ai déjà passé quelques heures à essayer de dessiner un Pacman et des murs dignes de ce nom, mais le résultat est franchement mauvais, je pense que je vais reprendre mes recherches pour trouver quelque chose de plus sympa sur le net.

    Bon courage à toi également CodeurPlusPlus.

  5. #5
    Expert éminent
    Avatar de Vetea
    Homme Profil pro
    Technicien Test - Maintenance - Production - BE dans une PME d'electronique
    Inscrit en
    Février 2005
    Messages
    2 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Test - Maintenance - Production - BE dans une PME d'electronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2005
    Messages : 2 061
    Points : 6 443
    Points
    6 443
    Par défaut
    Bonjour,
    Excellente initiative !
    Il n'y a pas de "petit" projet mais de grandes idées, le tout est de se donner les moyens de les mettre en oeuvre et surtout, connaitre ses limites.
    J'ai également crée un PAC Man like par le passé, Danny The Boss, que tu trouveras sur ce forum ... Un PAC man dans le milieu de l'entreprise, les salariés et le MEDEF ..
    Au plaisir de suivre vos aventures.
    Développeur - Créateur Amateur de Jeux vidéos
    Visitez ma page dédiée
    Visitez mon espace Itch.io
    Mon canal Discord

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 16
    Points : 64
    Points
    64
    Par défaut
    Merci Vetea,

    J'avais déjà jeté un œil à Papy commando et son portage sur Megadrive, mais j'ai regardé un peu tes anciens projets. Je n'ai pas pu lancer Danny The Boss (je suis sur un Windows 64, c'est peut être cela), mais au vue des copies d'écran, ça m'a l'air plutôt vachement bien fait!
    C'est clair qu'on ne joue pas dans la même catégorie niveau jeux

    Pour mon petit projet, j'ai déjà (!) recassé un peu. J'était parti sur des cases qui ont des propriétés pour indiquer si on peut les franchir, mais le "vrai" Pacman est plutôt du style 1 case est soit un mur, soit un chemin. J'ai donc modifier dans ce sens, je sais pas encore pourquoi mais je me suis dit que ça pourrais me poser des soucis plus tard.

    J'ai mis en route un affichage plein écran à 60Hz, un double buffer pour l'affichage, et j'ai un premier perso qui s'anime. quand j'aurai finit de mettre en place le premier niveau je posterai une copie d'écran.

    Prochaines étapes (semaine prochaine) :
    - Finir le dessin du niveau
    - Déplacer le perso avec les flèches en lui donnant une vitesse constante
    - Gérer les collisions avec les murs
    - "Manger" les pacgommes (donc les faire disparaitre)
    - Ajouter les fantômes

    Bon, je sais pas si je fais ça dans l'ordre, mais ça me permet d'avancer à petits pas.

  7. #7
    Membre expert

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 3 583
    Points
    3 583
    Par défaut
    Pour renouveller le concept du PacMan, voici quelques idées :

    - Un mode duo (2 joueurs collaborent sur le même tableau)
    - Un mode duel (2 joueurs se défient sur le même tableau et doivent manger toutes les pacgums avant l'autre). Possibilité d'utiliser des armes (un peu comme dans Mario Kart)
    - Un mode infinity (le tableau défile sans cesse de haut en bas). Pacman doit évoluer dans le tableau en faisant attention aux pièges et aux gloutons, tout en évitant d'être bloqué en bas de l'écran.

    Il faut aussi revoir le mode d'affichage. Le classique "vue de haut" peut être remplacé par de la 3D isométrique par exemple.

    Zecreator.
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 16
    Points : 64
    Points
    64
    Par défaut
    Merci pour les idées,

    Les mode Duo et Duel sont intéressant, j'avais pensé aussi laissé la main à un fantôme pour un autre joueur.

    Je ne suis pas un grand fan des mode infini, même si c'est à la mode en ce moment, mais pourquoi pas.

    Pour la 3D iso (style pacmania), j'ai hésité, mais comme je voulais commencer simple, j'ai préférer resté sur le 2D classique. On verra pour le jeu suivant

    Fab_The_Doc

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 398
    Points : 710
    Points
    710
    Par défaut
    vu qu'après le pacman tu comptes faire d'autres projets, tu pourrais peut-être utiliser une librairie graphique 2D du style libgdx
    y'aura peut-être un peu de temps à passer dessus au début pour appréhender la librairie, mais pour le projet suivant ça sera un vrai gain de temps

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 16
    Points : 64
    Points
    64
    Par défaut
    Oui, ça à l'air pas mal comme librairie, j'ai regardé ça à midi et ça semble plutôt complet pour la 2D.
    J'avais un regardé ce qui faisait côté moteur 3D, mais pas trop pour le 2D. Pour ce projet, je vais rester avec du code "maison" qui permet je trouve de bien comprendre comment tout fonctionne.
    Mais pour un prochain, c'est très intéressant notamment pour la portabilité, et l'utilisation type smartphone/tablette.
    Merci pour l'info en tout cas.

  11. #11
    Membre éprouvé

    Homme Profil pro
    Ingénieur logiciel embarqué
    Inscrit en
    Juillet 2002
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur logiciel embarqué
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2002
    Messages : 386
    Points : 1 164
    Points
    1 164
    Par défaut
    je vais rester avec du code "maison" qui permet je trouve de bien comprendre comment tout fonctionne.


    Bon courage pour votre projet, pour le full HD ça devrais passer en java (pour ma part j'utilise "BufferStrategy" pour mon rendu et de simples BufferedImages pour me sprites : pas de problemes sur un pc portable de 1012). Le 4k c'est une autre histoire

    Les VolatileImage sont une piste intéressante, mais j'ai des doute pour la portabilité (je suis intéressé par un retour d’expérience).

  12. #12
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 16
    Points : 64
    Points
    64
    Par défaut
    bon, j'ai un peu avancé cette semaine,

    J'ai terminé le premier niveau , et j'ai un pacman qui se déplace dedans à l'aide des flèches avec gestion (basique) des collisions avec les murs.

    Je m'en sort avec 12 briques différentes pour les niveaux, ça me parait beaucoup, mais ça marche. bon, je voulais faire des supers néons qui brillent, mais finalement j'ai fait ça "à la main" (ou plutôt au pixel) pour que ce soit pas trop moche.

    Il faut que je recentre un peu mon perso dans le chemin, et je vais pouvoir passer à l'ajout des fantômes.

    Une petite image du premier niveau :

    Nom : essai_level.png
Affichages : 3085
Taille : 51,8 Ko

  13. #13
    Expert éminent
    Avatar de Vetea
    Homme Profil pro
    Technicien Test - Maintenance - Production - BE dans une PME d'electronique
    Inscrit en
    Février 2005
    Messages
    2 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Test - Maintenance - Production - BE dans une PME d'electronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2005
    Messages : 2 061
    Points : 6 443
    Points
    6 443
    Par défaut
    Un trés bon début qui me ramène des décennies en arrière * sic * !!
    Développeur - Créateur Amateur de Jeux vidéos
    Visitez ma page dédiée
    Visitez mon espace Itch.io
    Mon canal Discord

  14. #14
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Classe !
    Pour l'effet néon, dans GIMP cela devrait pouvoir s'arranger avec un blur (c'est ce que l'on fait en temps réel sans GIMP ).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  15. #15
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Plutôt sympa

    Pour l'effet néon, comme le dis @LittleWhite, ça se fait généralement avec un blur additionné à l'image initiale, plus de détails ici.

  16. #16
    Membre éprouvé

    Homme Profil pro
    Ingénieur logiciel embarqué
    Inscrit en
    Juillet 2002
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur logiciel embarqué
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2002
    Messages : 386
    Points : 1 164
    Points
    1 164
    Par défaut
    Java te propose la classe "ConvolveOp" : la methode "filter" permet de faire une convolution (flou/néon/...) sur une BufferedImage. Si tu veux générer tes textures ca marche bien.

  17. #17
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 16
    Points : 64
    Points
    64
    Par défaut
    Oui, il faudra que j'essaie pour voir ce que ça donne. Ca peut être sympa et peut me permettre de créer des map supplémentaire à partir des mêmes images.
    Je vais d'abord m'occuper des fantômes, et je ferai les améliorations graphiques après.
    j'ai en plus cette histoire de libgdx qui me trotte dans la tête... Je pense que je vais le finir en classique et le passer sous libgdx après, je trouve l'idée de pouvoir le distribuer sous Android plutôt sympa.

  18. #18
    Membre régulier
    Homme Profil pro
    Responsable SI (Toulouse)
    Inscrit en
    Juillet 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable SI (Toulouse)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 78
    Points : 122
    Points
    122
    Par défaut
    C'est bon ligbdx mangez'en !!!

  19. #19
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 16
    Points : 64
    Points
    64
    Par défaut
    J'avance lentement en ce moment, car très peu de temps à consacrer à ce petit projet...

    J'ai attaqué le déplacement des fantômes. Après un peu de lecture, je me suis rapproché du mode original en utilisant des "cibles" à atteindre, et en modifiant la cible en fonction de l'état du fantôme (attaque, fuite, retour au coin,..). J'ai pas mal digressé sur le sujet, car je me suis dit que ce type de comportement pouvait s'implémenter dans pas mal de jeu... J'ai un peu réfléchit un jeu à la Alien Breed sur Amiga, me suis posé des questions sur comment faire bouger des ennemis dans un jeu à la Call Of Duty... Et puis je suis redescendu sur terre Passer de PacMan à Call Of Duty en qq heures, c'est pas très sérieux quand même

    Donc je suis toujours sur mes bon vieux fantômes, et j'ai quelques bugs au changement de directions. Mon problème est que les fantômes ont des positions réelles (floatantes), et que mon niveau est une grille (entiers), je ne trouve pas de solutions propre pour gérer ce problème. J'utilise la position centrale du sprite que je transforme en entier, et j'autorise les changement de direction si je suis "proche" du centre de la cellule de la grille (pour ne pas tourner tant que je n'ai pas atteint le milieu). Mais le "proche" est difficilement calculable, car en fonction de la vitesse, du nombre d'affichage par seconde, la distance entre 2 calcul peut être plus grande que la zone de changement de direction autorisée.
    J'ai aussi mis quelques "patchs" qui permettent de se sortir de la plupart des cas (pas faire demi-tour, un seul changement de direction par cellule), mais j'ai l'impression que les problèmes viennent de cette transformation réel-->entier mal gérée.
    Si quelqu'un aurait quelques astuces à me donner, je n'ai pas vu ce genre de chose dans les tutos, mais j'ai peut être loupé quelque chose.

    Ca paraissait pourtant simple au départ...

    Merci d'avance.

  20. #20
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 109
    Points : 292
    Points
    292
    Par défaut
    En ce qui concerne le changement de direction.
    J'avais tenté de faire un pac man en javascript pour me familiariser avec le langage(autrement que pour faire de l'info de gestion), je fixais la distance parcouru à chaque itération avec un nombre d'image fixe(plus ou moin) sachant qu'une machine de base à suffisamment de puissance. Du coup pas de problème

    Dans ton cas, ce que tu peux faire c'est de vérifier à chaque itération si la valeur entière(équivalent à la distance d'un bloc) est différente entre 2 positions (la précédente et l'actuel)
    Si oui : tu es sur une intersection, possibilité de changé de direction(en plus de la vérification de présence de bloc).

    En espérant avoir été clair.

Discussions similaires

  1. Ouvrir deux fenetres comme au bon vieux temps
    Par Yepazix dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 23/04/2013, 15h43
  2. List(Of T) ou bon vieux tableaux ?
    Par Norris dans le forum VB.NET
    Réponses: 4
    Dernier message: 13/06/2010, 23h01
  3. les bons vieux recordsets
    Par stdebordeau dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/05/2009, 19h27
  4. Réponses: 6
    Dernier message: 22/04/2009, 01h45
  5. Ce bon vieux "If"
    Par Kstark dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/02/2007, 09h03

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