Apprendre le C++ avec un projet intéressant

développer un logiciel open source en C++ pour créer des rpg 2D

a marqué ce sujet comme résolu.

Bonjour :)

Je viens faire part d’un projet qui intéressera ceux qui ont envie d’apprendre à programmer avec du concret et la motivation qu’apporte le travail à plusieurs. Il est question de développer un logiciel open source en C++ pour créer des rpg 2d en ligne. Pour ceux qui connaissent, imaginez le logiciel rpg maker, mais version libre et avec la gestion du jeu en réseau.

Voici un extrait de la description de rpg maker :

« La plupart des versions comprennent un éditeur de carte, un langage de script simple pour coder des événements ainsi qu’un éditeur de batailles. Elles incluent toutes des graphismes par défaut qui évitent aux utilisateurs d’avoir la moindre connaissance en graphisme ou en dessin pour créer un jeu. »

Lien pour plus d’info : https://fr.wikipedia.org/wiki/RPG_Maker

Screen de RPG Maker
Screen de RPG Maker

En bref, nous souhaitons créer un logiciel qui permet facilement de lancer des petits jeux en ligne en 2d. Ceci sachant que pour avoir fréquenté la communauté, les utilisateurs de rpg maker rêvent d’une version open source du logiciel et de pouvoir créer des mmorpg avec. Le projet a donc une véritable utilité pour l’extérieur ! Mais l’objectif principal, comme mentionné dans le titre, est avant tout d’apprendre à programmer en C++ avec une petite équipe et dans une bonne ambiance (néanmoins studieuse et mature). Nous sommes quelques-uns à mieux apprendre dans le cadre du développement d’un projet concret et davantage encore au sein d’une équipe motivante.

L’équipe

Nous avons l’envie de partager, d’enseigner et d’apprendre. À commencer par un ingénieur en informatique adepte du langage C, de ses ++ et de Python. Il est génialement pédagogue, doué et motivé. Sauf tout seul. D’où cette démarche.

Me concernant je suis graphiste & webdesigner. J’aide dans la conception de l’interface et de l’expérience utilisateur. Une fois votre code vomi à l’écran, je travaillerai à le rendre comestible pour les personnes qui souhaiteront utiliser le logiciel (voir faire des games JAM).

L’objectif à court terme

Toujours à des fins d’apprentissage, l’objectif premier est de produire un résultat fini et exploitable : une première version du logiciel simple et disposant des fonctionnalités minimums.

  • un launcher et un serveur d’authentification ;
  • consolider l’infrastructure client/serveur de jeu ;
  • développer la partie cliente ;
  • développer la partie serveur.

Concrètement : permettre à des joueurs de se connecter au jeu via un launcher, de se déplacer sur la map et de voir les déplacements des autres.

État du projet

Nous pensons qu’il est plus instructif et appréciable d’intégrer de nouvelles personnes au début du projet. Sont développées seulement les bases pour :

  • gérer un « projet » ;
  • créer une arborescence de cartes ;
  • créer et dessiner une carte sur plusieurs couches ;
  • spécifier les tuiles bloquantes ;
  • spécifier la position de départ.

Voir sur Github

Aperçu du projet en l’état
Aperçu du projet en l’état

Le recrutement

Nous accueillons donc avec plaisir des personnes :

  • qui ont envie de progresser et d’apprendre à programmer en C++ ;
  • qui souhaitent profiter d’une bonne dynamique de groupe pour avancer plus plus (pardon pardon désolée j’arrête) ;
  • qui apprécient apprendre dans le cadre du développement d’un projet constructif ;
  • avec un micro et Discord.

Si tu te sens concerné, n’hésite pas à nous rejoindre sur notre serveur Discord : https://discord.gg/cXdU9Hs

(c’est un petit espace d’échange et d’entraide pluridisciplinaire pour construire des projets)

Si vous avez ne serait-ce que des suggestions ou des remarques, n’hésitez pas. Je me répète, mais c’est important : nous sommes là pour apprendre :)

+8 -0

Salut Mira !
Je trouve cette initiative très intéressante. Elle en intéressera surement plus d’un, tout en étant pédagogue, j’approuve ! :D

Pour le projet en lui-même, malgré le coté "déjà vu" (il faut le dire, ça passe très souvent sur les forums) j’aime l’idée derrière celui ci : Créer un logiciel et répondre au besoin d’une communauté. Et non créer un énième Rpg2D…

Du coup, j’avoue que je me laisserai bien tenter par l’aventure. Et je vais en profiter pour te poser quelques questions ici et non directement sur le Discord pour que tout le monde puisse profiter. ;)

  • Tout le monde est le bienvenue ? Dev confirmé et pro compris, ou l’aspect pédagogique est votre facteur de motivation principale. (Je pose la question car au delà des débutants, le projet pourrait intéresser d’autres types de profils)
  • Le projet sera t-il sur une plateforme en ligne comme GitHub ou Gitlab ? (je pense que oui mais on ne sait jamais)
  • Si oui, n’importe qui pourra y contribuer de manière occasionnelle ? (via des PullRequest par exemple)
  • Pourrais tu nous parler un peu plus des technos utilisés (par exemple Qt ou GTK pour l’éditeur, SFML ou un moteur de jeu 2D pour la partie jeu exporté)

Bon courage pour la suite, vous avez mon soutien ! :)

+2 -0

Salut, merci beaucoup pour ton retour ! :D

Pour répondre à tes questions :

  • Oui tout le monde peut participer, même les dev confirmés et pro. On peut en apprendre à tous les niveaux. Noter cependant que nous ne sommes pas issues du milieu du jeu vidéo.
  • Oui le projet est sur GitHub, j’ajoute le lien dans le premier message (ici).
  • Oui n’importe qui peut contribuer et faire des PullRequest.

Au sujet des technos utilisées, je cite le dev :

Qt/C++ pour la partie éditeur de cartes. On ne sait pas encore pour la partie client et on hésite beaucoup pour la partie serveur entre C++ et Python.

Merci pour ton soutien et ton intérêt, tu es le bienvenu sur le serveur pour en discuter :)

+2 -0

J’aimerais bien intégrer la team . Je me rends sur Discord en mm temps.

+0 -0

Hello,

Juste un message pour dire que je constate que ce topic commence à attirer des gens sur notre serveur discord. Ça fait plaisir à voir. :)

Je ne suis pas très communiquant mais je tiens à souligner que le projet est très actif, et que s’il est présentement difficile d’intégrer des développeurs débutants sur la codebase actuelle, on est en constante recherche de gens qui souhaitent développer leurs compétences ou simplement faire profiter des acquis.

Au hasard, voici la liste des domaines sur lesquelles on a éventuellement besoin de « bras » (sinon je le ferai moi-même, mais ça sera dans longtemps) :

  • le site web associé au jeu
  • le gameplay (équilibrage de classes, inventaire, équipement…)
  • le bestiaire (en lien avec le gameplay)
  • la communication autour du projet : Mira est indisponible et je ne me considère pas bon communicant à ce niveau.

Encore une fois : merci à vous qui montrez de l’intérêt. On lâche pas.

+2 -0

Salut à tous !

Pour ceux qui seraient intéressés par quelques updates, sachez que le projet ne stagne pas et que je suis passé par de grosse périodes de refactoring dernièrement.

On a abouti à une équipe de trois personnes pour essayer de mettre sur pied un jeu qui exploite le début du moteur dummy :

  • Grindewald, qui a été à l’origine de l’éditeur de cartes, continue d’exprimer des besoins en terme de fonctionnalités au niveau du moteur de jeu, afin de pouvoir en développer le contenu le plus facilement possible ;
  • Iluka nous a rejoints il y a quelques semaines déjà (un mois ?). Elle s’occupe de la partie contenu (pas de rapport direct avec Dummy, donc. Mais ses choix et ses besoins peuvent influencer la marche du moteur) ;
  • moi-même, travaillant d’arrache-pied sur le moteur en lui-même.

Au final, je parle de moteur, mais c’est peut-être un peu trop osé d’employer ce terme pour qualifier une suite d’outils nécessaires à la création d’un jeu en ligne.

Nous avions une première milestone il y a plus d’un mois. Celle-ci consistait à aboutir au résultat suivant :

Distribuer une carte en réseau sur laquelle les joueurs peuvent se déplacer, et voir les autres se déplacer.

En attendant un minimum de spécifications sur l’aspect gameplay, voici la seconde milestone :

Distribuer une carte en réseau sur laquelle les joueurs peuvent se déplacer, voir les autres se déplacer et discuter par messages.

Vous l’aurez compris : je vais me pencher sur l’envoi et la réception de messages textes au moyen d’une chatbox dans les temps à venir.

Après avoir atteind cette seconde milestone, une démo sera à prévoir, bien évidemment.

Côté programmation, sachez que même si le projet manque cruellement de documentation, les sources sont toujours disponibles ici : https://github.com/dummymeuporg/ et vous êtes toujours les bienvenus si, comme moi :

  • vous n’avez pas peur de la difficulté ;
  • vous souhaitez progresser.

Et sachez qu’il y a beaucoup à faire sur la partie programmation :

  • corriger des bugs (pas le plus sexy, certes, mais idéal pour rentrer dans un projet) ;
  • réfléchir à des fonctionnalités ;
  • réfléchir à l’aspect du futur site web du jeu (ou du moteur ? Rien n’est encore gravé dans le marbre) ;
  • réfléchir à une HUD (Head-Up Display) qui claque ;
  • réfléchir au gameplay ;
  • communiquer sur les réseaux sociaux ;
  • développer des assets graphiques ;
  • gérer la guilde discord ;
  • etc. etc. etc.

Il faudrait peut-être que je fasse une liste exhaustive de ce qu’il y a à faire. En attendant, peut-être que vous avez de quoi être servi ?

Pour la suite c’est par là que ça se passe : https://discord.gg/cXdU9Hs

Quelques captures d’écran pour vous mettre l’eau à la bouche :

Éditeur de cartes
Éditeur de cartes
Écran d’accueil du client, avec choix des personnages
Écran d’accueil du client, avec choix des personnages
Écran de création de personnage
Écran de création de personnage
Le personnage créé peut se balader sur la carte
Le personnage créé peut se balader sur la carte

Salut Geo je t’ai écrit récemment sur Discord mais malheureusement tu n’as pas répondu

+0 -0

Bien le bonsoir !

Après presque deux mois sans nouvelles, votre humble serviteur se devait de vous tenir informé que, malgré les aléas de la vie quotidienne, il n’avait pas abandonné son projet !

Comme on veut vite avancer sur les fonctionnalités importantes, j’ai commencé à plancher sur la gestion des évènements de cartes. Et il est désormais possible de se téléporter d’une carte à l’autre comme le témoigne la vidéo suivante :

Aussi, autre grande nouvelle : j’ai commencé à faire des diffusions sur twitch ! Je marche sur les pas de @Lynix qui m’a gentiment aidé à m’outiller (encore merci) et de @Eskimon qui a commencé à diffuser pour parler de sa passion sur les chèvres pour Arduino et l’électronique ! :)

En ce qui me concerne, attendez-vous majoritairement à du développement sur Dummy. Avec mon anglais du Texas.

C’est par ici : https://www.twitch.tv/ge0ontwitch

À bientôt pour de prochaines updates !

Bonjour, Je suis à la recherche d’un projet entrainant pour me motiver a apprendre C++ ou autre language utile professionellement et trouver une passion. Je vois que vous etes à la recherche d’un correcteur de bug et je suis justement software testeur black/white box depuis plus de 3 ans. Si vous etes interressés, Puis-je faire un essai dans votre equipe? (seul hic, je vis à Montreal donc 6h de décallage horaire)

Salut Nanook,

Tu peux passer sur le discord et étudier le code source de l’ensemble des outils de dummy quand bon te semble.

Il n’y a pas d’équipe à proprement parler (excepté pour mettre sur pied le jeu qu’on prévoit de faire à l’aide du moteur), donc sens-toi libre de participer ou non !

J’ai vu passer beaucoup de gens motivés de prime abord, mais entrer sur le projet est difficile pour tout un tas de raisons (beaucoup d’outils à installer, beaucoup de code à étudier, travail réalisé sur notre temps libre) sachant que je n’arrive pas forcément à trouver le temps d’accompagner les nouveaux. Donc il faut être très motivé pour « rester dans la course ». Tout dépend de ta volonté en fait !

À toi de voir.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte