Jeu-vidéo Fantasy

Ce projet a été réalisé en binôme et consistait à développer un jeu d’aventure en 2D en Python et SQL, mêlant progression, exploration et combats. Nous avons conçu une expérience de jeu complète et structurée en programmation orientée objet, en développant aussi bien le moteur que l’interface et les mécaniques internes.

Outils

Python | SQL | Visual Studio Code | DB browser

Date de fin

25/05/2023

Temps passé

2 mois

Concevoir un jeu jouable et complet, en développant nous-mêmes l’ensemble des mécaniques : système de combat, gestion des niveaux, sauvegardes, progression du joueur, animations et interface.

Objectif

Python | Visual Studio Code | Programmation orienté objet | SQL | Bibliothèque python (Pygame, Pytmx, Numpy, Sqlite3, Matplotlib)

Compétences

Programmation orienté objet

Chaque élément du jeu, comme le joueur, les monstres, les projectiles ont été conçus comme une classe dédiée, avec des attributs et comportements propres, facilitant l’organisation du code et l’évolutivité du projet. Les monstres, par exemple, disposent d’une intelligence rudimentaire et de statistiques personnalisables, gérées dynamiquement en fonction du niveau. L’animation est quant à elle assurée via des spritesheets et un système de rafraîchissement d’images basé sur le temps, permettant une synchronisation fluide et un rendu visuel cohérent. Le moteur du jeu utilise la librairie Pygame pour les graphismes et les contrôles, tandis que pytmx et pyscroll permettent de charger les maps et d’assurer un défilement fluide dans l’univers 2D.

UI / UX

Le jeu intègre plusieurs menus interactifs : un menu principal, un menu pause accessible à tout moment, ainsi qu'un écran de game over. Ces interfaces sont dynamiques et réactives, avec des animations visuelles, des effets sonores, et une prise en charge fluide des interactions clavier.

SQL

Pour gérer les sauvegardes du joueur, j’ai intégré une base de données SQL directement connectée au programme Python. Ce système permet d’enregistrer l’ensemble des données essentielles à la progression : statistiques du joueur, inventaire, position, niveaux atteints, etc.

Travail d'équipe

Le projet a été mené en binôme, avec une répartition claire des rôles. Ma coéquipière était en charge de toute la direction artistique du jeu : modélisation 2D, animation et design graphique, tandis que je me concentrais sur l’intégralité de la programmation. La collaboration a été fluide et agréable, soutenue par un usage rigoureux de Trello pour le suivi des tâches. Chaque fin de session donnait lieu à un compte rendu propre et structuré, dans lequel nous détaillions les avancées, les bugs éventuels et les objectifs à venir.

Jouer au jeu

Vous pouvez consulter le code source complet du jeu et le tester vous-même en lançant simplement le fichier menu.py.

CONTACT

Curieux, motivé, prêt à collaborer.

© Marouane ARNAUD EL MAGHNOUJI