Aperçu du projet
Ce projet est un jeu vidéo médiéval en tour par tour basé sur le principe du pierre-feuille-ciseaux. Le joueur affronte l'ordinateur dans differentes situations où chaque choix d'arme peut faire la différence entre victoire et défaite.
Fonctionnalités principales
Système de combat
Mécaniques inspirées de pierre-feuille-ciseaux .
Adversaire aléatoire
Choix des armes par l'ordinateur aléatoire.
Galerie
Processus de développement
1. Conception du gameplay
J'ai commencé par conceptualiser les mécaniques de jeu, en créant un système équilibré de forces et faiblesses entre les différentes armes.
2. Développement en C
J'ai implémenté le jeu en langage C, en mettant l'accent sur la fluidité des mécaniques et l'utilisation optiamale des différentes structures de données
Défis rencontrés et solutions
⚔️ Équilibrage du système de combat
Défi : Créer un système équilibré où chaque arme a ses forces et faiblesses. Solution : J'ai testé différentes configurations, créé des matrices de forces/faiblesses, et itéré jusqu'à obtenir un gameplay équilibré et amusant.
🎲 Gestion de l'aléatoire
Défi : Implémenter un système d'IA aléatoire mais cohérent pour l'adversaire. Solution : Utilisation de fonctions de génération de nombres aléatoires avec seed, permettant un comportement prévisible pour les tests tout en restant aléatoire en jeu.
🔄 Gestion des états du jeu
Défi : Gérer les différents états (menu, combat, fin de partie) de manière claire. Solution : Implémentation d'une machine à états simple mais efficace, avec des fonctions dédiées pour chaque état.
Ce que j'ai appris
J'ai appris à penser comme un game designer : équilibrer les mécaniques, tester les interactions, et itérer pour améliorer l'expérience de jeu.
Ce projet m'a permis d'approfondir mes compétences en algorithmie, notamment pour la logique de combat et la gestion des interactions entre éléments.
J'ai appris à optimiser l'utilisation de la mémoire, en réutilisant des structures et en évitant les allocations inutiles, crucial pour les performances.
J'ai découvert l'importance des tests répétés et de l'itération. Changer une petite valeur peut complètement transformer l'expérience de jeu.
Conclusion
Ce projet de jeu vidéo médiéval en C a été une excellente opportunité pour approfondir mes connaissances en programmation et en conception de jeux. Il m'a permis de développer mes compétences en algorithmie, en gestion de la mémoire et en manipulation de structures de données.