Chemin de Thésée

a marqué ce sujet comme résolu.

Ce projet est abandonné.

Salut tout le monde !

J'ouvre ce sujet pour vous présenter Chemin de Thésée, un jeu de labyrinthe en Python que j'avais commencé en 2015, que j'avais laissé de côté et que j'ai envie de reprendre pour l'enrichir.

Genèse

Au départ, je codais juste ça pour m'amuser et me servir de Pygame : le jeu n'était pas aussi "diversifié" que maintenant. Mais au fur et à mesure sont venues se greffer d'autres idées (rajouter des éléments autres que les murs surtout : par exemple un tourbillon qui serait lié à un autre tourbillon comme un portail pour se déplacer) ce qui m'a obligé à revoir tout le code. La dernière idée en date, c'était la possibilité d'avoir une carte sur trois niveaux (actuellement il n'y a qu'un niveau qui est le sol, et je veux ajouter un niveau supérieur et un niveau inférieur) et je me suis arrêté là.

Pour le moment, il y a une partie du menu, un éditeur de carte fonctionnel et le début du jeu (cf. les screenshots). Il y a donc un mode "Campagne" et un mode "Personnalisé".

Histoire

Jusque tard dans la nuit, Dédale a lu, captivé, les aventures de Pythonus en Pygamus si bien qu'il s'est réveillé tard et a raté le départ pour la partie de chasse que ses amis et lui avaient organisées depuis longtemps. Heureusement, se doutant de son retard, ses amis ont laissé des drapeaux oranges tout le long du chemin pour qu'il puisse les rejoindre. Aidez Dédale à rejoindre ses amis !

Objectifs

Mon principal but est de me faire plaisir et de progresser avec Python et Pygame. À l'heure actuelle, j'ai pas mal d'idées, voici les étapes que j'envisage pour le moment :

  • La première étape va être de remettre le nez dans le code.
  • En rouvrant mon projet, je me rends compte que la fenêtre est vraiment petite, je pense donc augmenter la taille.
  • Comme je l'ai dit plus haut, je souhaite aussi agrandir les cartes en hauteur avec un niveau inférieur et un niveau supérieur.
  • Ajouter des éléments de jeu et implémenter les interactions. C'est surtout ces interactions qui vont enrichir le jeu.
  • Améliorer les déplacements du personnage pour un déplacement plus fluide (actuellement c'est saccadé avec le passage d'une case à une autre case).

Ensuite on verra !

Avancement

Ainsi ce qui est déjà fait va évoluer (menu, éditeur de niveau et jeu en lui-même)

Screenshot

Les spirits du jeu sont temporaires et ont été réalisées avec Paint (on voit mes talents de dessinateur à l’œuvre) hormis ceux spirits du personnage que j'ai pris sur Internet.

Menu

Choix de la carte en mode personnalisé

J'ai modifié quelques images du sol avec plus ou moins de réussite, mais en tout cas c'est plus joli alors j'en profite pour changer le screenshot du jeu :

Un exemple de carte

Voilà, au plaisir ! ;)

+2 -0

Sympa ! Pour les graphismes, vu que j'aime bien les roguelikes j'aurais pris de l'ASCII mais toujours en utilisant Pygame pour le rendu si c'est possible. Ton personnage serait représenté par une arobase par exemple. Ça peut te permettre de te concentrer sur le gameplay et forcer le joueur à faire fonctionner son imagination. Dans des jeux comme Nethack, tu peux passer ton curseur au-dessus d'un caractère et ça te le décrit par exemple. Jouer sur la couleur et le caractère choisi permet d'avoir un rendu plutôt joli:

(Cette image vient de Dungeon Crawl Stone Soup)

Sympa ! Pour les graphismes, vu que j'aime bien les roguelikes j'aurais pris de l'ASCII mais toujours en utilisant Pygame pour le rendu si c'est possible. Ton personnage serait représenté par une arobase par exemple. Ça peut te permettre de te concentrer sur le gameplay et forcer le joueur à faire fonctionner son imagination. Dans des jeux comme Nethack, tu peux passer ton curseur au-dessus d'un caractère et ça te le décrit par exemple. Jouer sur la couleur et le caractère choisi permet d'avoir un rendu plutôt joli:

(Cette image vient de Dungeon Crawl Stone Soup)

Grimur

Merci ! Pour les graphismes, ça peut être une possibilité, mais pour le moment je suis quand même plus parti sur l'ajout d'images (même si comme tu dis, je me concentre sur le gameplay). Par contre, c'est vrai que la solution que tu proposes a son charme et ses bénéfices. Après ce n'est pas vraiment un rogue-like vu que je ne compte pas rajouter de monstres, d'inventaire ou ces choses là ^^

+0 -0

Bonjour !

Voici un petit compte rendu sur mon avancée de la semaine accompagné de quelques explications par rapport au jeu à l'heure actuelle :

Avancées de la semaine

  • Refonte d'une partie des images de l'étage sol, avec plus ou moins de succès. Je suis particulièrement content de mon sol rocailleux :D, moins de mon nouveau rocher. Vu que ce n'est pas dans mon habitude et que je n'ai pas de talent en dessin, ça prend du temps d'autant plus que je m'y reprends à plusieurs fois pour avoir un résultat que je juge assez satisfaisant. En tout cas, ça ne peut être que meilleur qu'avant.
  • Agrandissement de la fenêtre en taille (on passe de 16x16 à 20x20 cases)
  • Ajout de l'étage sous-sol et de l'étage ciel (eux-mêmes étant constitués de 20x20 cases). Le contenu est défini, mais les images ne sont pas encore réalisées. On peut se promener dans les trois et passer de l'un à l'autre (sous-sol <=> sol <=> ciel).
  • Implémentation de l'effet tourbillon, cloche et en partie celui de cible.

Explications

Sol

Pour la version 1.0, voici les éléments qui composeront le sol :

  • Normaux (sur lesquels on peut se promener librement): case départ, pavé, herbe, panneau
  • Obstacles (qui bloquent le passage) : arbre, barrière, fontaine, rocher
  • Interactions (qui peuvent avoir un effet si celui a été décidé et si on appuie sur "Espace", donc une case interaction n'a pas forcément d'action) : tourbillon, cloche, cible
  • Autres (qui ont un effet sans appuyer sur "Espace") : case arrivée, case crevasse (ramène à la case départ), haut échelle (fait descendre à l'étage sous-sol), trampoline (fait monter à l'étage ciel)

Tourbillon/Fontaine/Cloche

L'ensemble Tourbillon/Fontaine/Cloche fonctionne avec un identifiant, c'est-à-dire que l'on regarde dans un dictionnaire d'objets qui ont une interaction d'indiquée et on cherche ceux avec la même valeur d'identifiant.

  • Un tourbillon peut être relié à un autre. Quand le joueur est dessus et appuie sur "Espace", il est alors téléporté sur l'autre tourbillon. Deux tourbillons liés entre eux ne se sont pas forcément liés à une cloche.
  • Une fontaine peut se transformer en tourbillon et vice versa. Cela est lié à la cloche.
  • Une cloche peut être associée à deux tourbillons et à une fontaine. Actionnée, un des deux tourbillons est aléatoirement transformé en fontaine et la fontaine devient un tourbillon.

La première image montre le début d'une carte avec ces objets. La seconde montre comment ils sont reliés et comment on arrive à la fin après l'utilisation.

Tourbillon/Fontaine/Cloche : Avant

Tourbillon/Fontaine/Cloche : Après

Cible

La cible permet à l'heure actuelle de transformer des cases choisies en d'autres que l'on choisies également, à condition qu'il n'y ait pas d'action associée. Pour la version 1.0, je souhaite ajouter cette possibilité. Par exemple, une case herbe pourra être transformée en une case tourbillon qui sera reliée avec un autre tourbillon.

Dans l'exemple, si j'appuie sur "Espace", les cases entourées de rouge seront remplacées par de l'herbe et si je rappuie elles redeviendront des arbres, mais j'aurais très bien pu associer une nouvelle valeur différente à chaque case (une herbe, un panneau, une arrivée, etc…)

Cible

Objectifs de la semaine prochaine

  • Faire les interactions du sous-sol et du ciel
  • Avancer sur les images
  • Refactoriser le code

Voilà ! Si vous avez des questions ou des remarques n'hésitez pas !

+2 -0

Hello,

Voici un petit up pour faire le point sur ce projet qui avance tout doucement. :D

Depuis la dernière fois, j'ai commencé à réfléchir pour rendre tout cela plus propre :

  • Création d'une bibliothèque pour afficher aisément les menus (en cours)
  • Sauvegarde des cartes non plus dans des fichiers textes mais dans un fichier json. Il faut avant cela que j'étudie les cases des cartes de manière à faire quelque chose de modulable et pouvoir modifier/ajouter des cases aisément si besoin, mais ça sera la prochaine étape.

Aussi :

  • La gestion du joystick a été intégrée (quelques ajustements seront à faire)
  • Le déplacement du personnage est désormais fluide (non plus de case en case)
  • Les images du personnage ont été regroupées dans un tileset (et non plus des images séparées)
  • Les types de cases pour la première version sont définis

Enfin, j'ai décidé de ne pas continuer à faire les graphismes par manque de temps et pour me concentrer sur la programmation en elle-même. Pour commencer, je vais voir ce que je peux trouver de libre sur internet et si le jeu avance bien, il se peut que je cherche un graphiste, mais on verra. Pour les musiques, je m'essaie à LMMS avec plus de succès que pour les graphismes, mais ce n'est pas la priorité pour le moment.

À bientôt !

Salut!

Si j'ai bien compris, on ne peut toujours pas essayer le jeu c'est bien ça ? En tous cas, amuses toi bien à le réaliser. Peut être qu'à terme, tu aras l'idée de la mort qui tue qui fera jouer tout le monde à ce jeu, ou peut être même une idée débile mais addictive (comme Flappybird ? je ne l'ai pas joué). Je trouve que ce type de jeu est plutôt destiné à être fait pour téléphone qu'ordinateur: je ne me vois pas jouer un tel type de jeu sur ordinateur plus de 5minutes :P

Le principe c'est de faire un casse-tête multidimensionnel pour partir d'un point A à un point B?

Hello AKS,

Tu as tout compris et tout résumé !

En effet, le principe est bien de faire un casse-tête multidimensionnel pour partir d'un point A à un point B (c'est un labyrinthe sur trois étages, avec des interactions possibles).

De plus, on ne peut pas essayer le jeu pour le moment, car toutes les interactions ne sont pas implémentées et le cœur est encore en train d'évoluer.

Concernant la plateforme, je me suis fait la même réflexion en voyant le jeu évoluer, car celui-ci n'est pas assez "dynamique/complexe" (il manque un zeste de folie) pour attirer du monde sur PC et serait bien pour téléphone/tablette car "réflexion/casual", même s'il manque encore l'idée addictive comme tu le dis. Toutefois, l'étude d'un portage sur une autre plateforme est loin d'être à l'ordre du jour, mais c'est une possibilité.

Merci pour ton message ! :)

+0 -0

Il faudrait voir pour le portage python+Pygame sur Android, mais je suis sûr que des personnes se sont plongés sur la question, ça peut être à portée de main. Mais je ne m'y connais pas du tout là-dessus… Peut être que quelqu'un d'autre apportera des informations sur ça quand il passe par ici.

Bonne continuation :)

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