Jeu Vidéo Médiéval

Jeu tour par tour

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.

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.

Schéma de conception du gameplay et des mécaniques de combat du jeu

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

Code source et structure du développement du jeu en langage C

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

🎮 Conception de gameplay

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.

🧮 Algorithmes et logique

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.

💾 Optimisation mémoire

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.

🧪 Tests et itération

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.