Bonjour à tous,
Je vous présente mon projet "Curly Black Hair" qui est un A-RPG destiné à la plateforme PC que je développe en ce moment.
Je souhaite souligné le fait que ce jeu n'a pas vocation à être commercialisé ou quoi que ce soit, c'est juste un petit jeu que je code pour progresser et m'amuser.
Histoire si on peut appeler ça une histoire:
Le jeu se nomme Curly Black Hair, donc comme son nom l'indique l'univers est axé "cheveux".
L'histoire se déroule dans un monde où tout tourne autour des cheveux. Dans ce monde il existe 4 grandes familles ou types d'individu :
Les Frisés, Les Chauves, Les Calvities et Les Lisses.
Vous incarnez Curly, un homme aux cheveux noir et frisé, appartenant à la famille donc des Frisés.
Chacune des familles du monde des cheveux sont liées par un pacte, celui de protéger un ancien artefact, la Goldy Brush. Pour la protéger, elle fut brisée en 4 morceaux, un morceau pour chaque tribu.
Curly est le fils du protecteur du morceau de Goldy Brush des Frisés.
Un jour, un homme nommé Smoothy Le Peigne de la famille des Lisses, mis fin à l'équilibre qui régnait entre les grandes familles en tentant de dérober les morceaux de la Goldy Brush et de la reconstituer.
Smoothy a en horreur les cheveux frisés, la calvitie ou encore les chauves.
Il lu dans un livre des anciens que la Goldy Brush était capable d'influer sur la capillarité des gens, elle est en effet capable de changer la nature des cheveux, de quoi créer le chaos dans le monde.
Smoothy Le Peigne c'est emparé du morceau de la Goldy Brush des Lisses et s'en va récupérer les 3 autres morceaux.
Curly est chargé de se rendre chez les Calvities et Chauves afin de protéger les morceaux.
Quelques détails sur le gameplay :
-On debute au niveau 1, pour pouvoir augmenter son niveau il va falloir acquérir de l'expérience en tant que coiffeur,
utiliser vos ciseaux ou vos lotions en venant à bout des cheveux errants afin de remporter des points de croissance.
Chaque point de croissance fait pousser vos cheveux.
Types de Monstres/Ennemis:
-Les poux -> petits et rapide, ils arpentent les terres à la recherche de nouvelles têtes, mais ne sont pas très coriace.
-Les cheveux errants -> abandonnaient, ils furent séparés de la tête de leur maître après un passage chez le coiffeur,
depuis ils attaquent tout ce qui ressemble à un coiffeur, moyennement coriace, ils donnent plus de points de croissance
que les poux.
-Les mal-coiffés -> ce sont les sbires de Smoothy, il leur a promis une belle coupe de cheveux une fois la Goldy Brush entre
ses mains, ce sont des coiffures irrécupérables. Plusieurs types de mal coiffés existent:
Les colo-ratées : une coloration qui a mal tourné....
Les têtes-brulées : le temps passé sous les plaques ou bien à faire des défrisages leur a brulé les cheveux.
Les perruques : des renégats qui n'assument pas leur type de cheveux, ils veulent à tout pris changer la nature de leur
cheveux.
Types d'armes:
- Ciseaux / Tondeuse -> dégâts physiques!
- Lotions / Shampoing / Bigoudis -> dégâts magique!
Ce que l'on peut acheter/ramasser:
-On peut acheter/trouver des potions pour régénerer ses PV avec de l'argent, l'argent peut être ramassé ou obtenu
après quête.
-On peut acheter des armes ou des munitions dans le magasin spécialisé.
On peut consulter son équipement dans l'inventaire et changer d'armes/sorts.
Les différents élèments du monde:
-Les monstres et les NPC-> ils sont gérés par une IA, le joueurs peut interagir avec les NPC, ils peuvent donner des quêtes,
ou seulement discuter avec le personnage.
L'Histoire et les quêtes annexes:
L'Histoire principale sera accompagnée de plusieurs petites quêtes annexes tel qu'éliminer des monstres ou bien trouver
des objets etc...
Quelques élèments techniques :
- Le jeu est codé en C++, j'utilise la SFML.
Les graphismes ne sont pas de moi, je ne m'attarde pas sur la partie graphique, j'attends d'avancer encore un peu.
- Le jeu suit le schéma suivant :
Titre -> Menu -> Continuer/Nouveau/Quitter -> Continuer Jeu/Création Partie.
- Ce qui a été fait :
->ResourceManager : pour la gestion des textures.
->StateManager : pour la gestion des différents écran du jeu.
->DataBase : pour la gestion des données liées au perso, monstres, armes et sorts.
->TileMap : pour la gestion de la carte/levels, il existe deux couches de tiles permettant au personnage de passer derrière certaines tiles.
->Personnages/Monstres/Armes/Sorts : opérationnel, les monstres sont dotés d'une IA basique qui leur dit juste de poursuivre le personnage quand celui ci se trouve dans leur périmètre, puis d'attaquer quand ils sont à côté de lui.
->World : c'est ici que tout les éléments du jeu se retrouvent.
La gestion des collisions est faites entre:
Personnage - TileMap;
Arme - Monstres;
Sorts - Monstres;
J'ai fait un système de sauvegarde tout simple (lecture/écriture fichier), on peut donc sauvegarder sa progression.
Ce qu'il reste à faire :
Finir la gestion des collisions;
Créer des NPC;
Créer un inventaire de l'équipement;
Créer toute la logique de l'argent et de l'XP;
Créer une IA plus compliqué;
Créer le système de quêtes et dialogues;
Voilà ça fait un peut beaucoup désolé, et vu que vous aimez les screens j'en ai fait quelques un :
Titre ->
Menu ->
Nouveau Jeu (ne faites pas attention à ce qu'il y a d'écrit en fond, "Enter your name" c'est vieux ;) )->
Ecran de chargement ->
Level 1 ->
Level 2 ->
Ecran de pause ->
Voilà tout merci de d'avoir pris le temps de me lire, je viendrais mettre à jour à chaque nouvelle itération, c'est juste pour avoir des retours/conseils etc...
Bonne journée!
Ca a été fait avec quoi?
Codé en C++ à l'aide de la SFML comme indiqué plus haut
Bon boulot, et l'univers à l'air complètement tordu
Gg pour l'idée, c'est vraiment original et ça peut donner un truc fun avec des bons graphismes
Merci c'est vraiment sympa du coup ça donne encore plus envie de continuer
Barres de rire, l'histoire ! Excellent !
Bon courage pour la suite !
Je suis agréablement surpris je n'aurais jamais cru que l'histoire plaise autant merci à tous!
Cette semaine je compte recoder certaines classes qui selon moi n'exploitent pas assez la POO, du coup tout les vendredi je posterai sur les itérations apporté au projet.
Encore merci à ceux qui ont pris le temps de lire et commenter!
salut, bon courage cest original, tu peux éventuellement promouvoir ton projet sur le site indiegames.io sa pourrait t'aider
Merci Corsair25, je suis allé faire un tour sur le site, si j'ai bien compris tu y dépose ton jeu, il est automatiquement publié et peut être telechargé par n'importe qui c'est bien ça?
Après tout vos retours j'ai décidé de m'impliquer à fond pour finir ce projet, mais en fait en y regardant de plus près je me suis rendu compte que j'ai codé comme un porc
Du coup je ne me suis pas arrêté à une ou deux classe mais carrément à une refonte du projet, je reprends tout depuis (presque) le début, je prévois de finir d'ici la fin du week end.
J'en connais un qui va pas voir la lumière du jour pendant un petit moment
Ca y est je viens enfin de finir! Le code est beaucoup plus propre, je posterais ce vendredi toutes les iterations.
A vendredi
Salut à tous comme promis voici un petit récapitulatif de ce que j'ai pu faire cette semaine (pas grand chose mais bon ) :
- Donc il y a eu une refonte du projet, maintenant je profite des joies de l'encapsulation hourra super youpie!
- Le système de collision utilisé entre le personnage et la tilemap a été greffé avec succès aux monstres, ils ne peuvent plus passer à travers les tiles pour me casser les dents
- Un système de collision basique entre le personnage et les monstres qui suit le schéma suivant :
SI(Collision(Perso, Monstre))
Perso.lifePoint -= Monstre.damage
Comme je l'ai dit la refonte du projet a été un succès il n'existe plus aucun getter/setter dans mon code, la class World (où tous les élèments se rejoignent) est passé de 500 lignes de codes à...344!
Voilà c'est tout il me reste encore plein de chose à faire avant de penser à recruter un graphiste et un sound designer.
Pour la semaine prochaine :
- Je vais essayer de créer les NPCs!
- Et commencer à me pencher sur un inventaire/équipement.
Merci d'avoir pris le temps de me lire
Salut à tous aujourd'hui c'est vendredi et comme promis je fais un récapitulatif des itérations/nouveautés:
- La création des NPC's est bientôt terminé, mais est déjà bien avancée, j'estime être à 50% du résultat final un petit screen où l'on voit 2 NPC, ainsi que 2 monstres :
- La deuxième chose c'est la création d'un écran/menu pour continuer un partie sauvegardée, avec un petit screenshot du moment ou la sauvegarde a été effectué (vous remarquerez que la capture d'écran de la sauvegarde est la même que celle du dessus) :
- J'ai commencé à réfléchir à la création d'un inventaire, mais aucune implémentation n'a encore été faite.
Pour la semaine prochaine:
- Finir la création des NPC's, j'entends par là créer un "IA" + gérer les collisions avec la tilemap etc...
- Finaliser la conception d'un inventaire.
- Commencer à réfléchir à la création de dialogues/interaction.
Merci d'avoir pris le temps de me lire, à la semaine prochaine
Désolé du double post, j'ai eu un peu de temps pour coder cet aprem, alors du coup j'en ai profité pour intégrer la gestion d'un joystick et le résultat est assez sympa.
A vendredi prochain
Oublie pas le A* pour les mobs (Pathfinding)
Ouais j'avais pensé à un déplacement aléatoire des mobs, c'est ce que je suis entrain d'implémenter, qu'en penses tu?
J'ai décidé de commencer à recruter un graphiste et un sound designer, même si je n'ai pas encore assez avancé je préfère mis prendre maintenant plutôt que d'avoir fini le développement sans avoir mes propres graphismes et musiques.
Tout ce passe ici :
http://fr.openclassrooms.com/forum/sujet/jeu-video-curly-black-hair
Pour ce qui est GUI t'as codé un système toi même ou tu utilises une des bibliothèques basées sur la SFML ? Bonne chanc en tout cas
Pour ce qui est GUI je me suis basé sur celui présent dans le livre "SFML Game Development" qui propose un système assez performant que j'ai retouché afin de pouvoir facilement l'utiliser.
Je te remercie pour tes encouragements ça fais plaisir