Noullez Dimitri.
Développement de Jeux·

Swing Without Falling — Game Jam ESIR

Jeu de plateforme d'escalade 2D développé en 48h lors de la Game Jam ESIR 2025 — 2ᵉ place sur 8 équipes. Grimpez, balancez-vous et esquivez les obstacles tombants.

PythonPygame

Contexte

Game Jam ESIR 2025 — 48 heures pour concevoir un jeu complet de zéro sur le thème "milieu instable". En équipe de 3 avec Timothé Godard et Victor Dessaigne, nous avons décroché la 2ᵉ place sur 8 équipes avec un platformer d'escalade verticale : grimper le plus haut possible en se balançant de prise en prise, tout en esquivant les personnages tombants.

Fonctionnalités

  • Mécanique de balancement : Physique de pendule amorti — le joueur se suspend aux prises, prend de l'élan gauche/droite, et saute avec une trajectoire calculée dynamiquement selon l'angle du balancier.
  • 5 types de plateformes : Prises mobiles, boost horizontal, boost vertical, petites prises (épuisent la poigne plus vite), catapultes (lancent le joueur avec une vélocité configurable).
  • Système de poigne : Un compteur de fatigue s'incrémente au contact. Trop longtemps accroché = le joueur glisse. Chaque type de prise affecte la vitesse d'épuisement.
  • Obstacles adaptatifs : Des personnages tombent du ciel à intervalles décroissants — plus on monte, plus c'est fréquent.
  • Support manette : Compatible manette Xbox en plus du clavier.
  • Exécutable standalone : Compilé en .exe via PyInstaller, jouable sans installation.

Architecture & Défis

Le défi principal en 48h : produire un jeu complet et polishé avec une physique de balancement convaincante.

  • Machine à états : Menu, jeu, pause, options — chaque écran est un état indépendant avec sa propre logique.
  • Physique pendulaire : Spring force, angle max 45°, atténuation naturelle. La vélocité du saut dépend de l'angle au moment du lâcher — plus l'élan est grand, plus le saut est horizontal.
  • Score : Pourcentage de progression verticale (position Y / hauteur totale de la carte).
  • Feedback visuel : Outline colorée du joueur selon le type de prise, screen shake lors des collisions, teinte rouge proportionnelle à la fatigue.