Aller au contenu

Conception d'un Framework en C++


Dragohn

Messages recommandés

Bonjour,

Je dois définir et développer un framework en C++. Celui ci doit être concu pour pouvoir développer des jeux de type labyrinthe (pacman, bomberman, boulderdash...).

Je cherche quelques conseils sur les erreurs courantes à ne pas commettre dans ce genre de projet. De plus, je dois admettre que je ne sais pas trop jusqu'à quel niveau un framework doit englober les spécifications.

En gros, pour être clair, je sais définir des classes pour un jeu précis, mais j'ai du mal à délimiter le cadre d'un framework (englober/ne pas englober la partie graphique, quel niveau "d'abstraction"....). :cartonjaune:

Auriez vous quelques conseils à me prodiguer?

Merci

Lien vers le commentaire
Partager sur d’autres sites

je crois bien que à part VB .NET et C# le C++ n'a pas beaucoup changé dans C++ ne serait-ce qu'il supporte les fonctions du framework :fumer:

Je ne fais que du VB.NET ou ASp.NET sur le Framework, donc je ne saurais te conseiller plus mais je pense et beaucoup l'ont dit qu'il serait préférable d'opter pour le C# si on souhaite passer au Framework. Enfin je pense que tout dépends des applications qu'on souhaite développer :transpi:

Lien vers le commentaire
Partager sur d’autres sites

Ou je ne t'ai pas bien compris, ou je me suis mal expliqué (voir les 2! :transpi: ), mais je ne dois pas travailler avec le Framework .Net (je pense que c'est de lui dont tu parles en faisant référence à C#, Asp.Net, VB.Net).

Mon projet consiste à développer mon propre framework orienté conception de jeu de labyrinthes, puis je dois utiliser ce framework pour concevoir un pacman + un boulderdash.

Je ne cherche donc rien par rapport au Framework .Net, mais je cherche sur la modélisation/conception de framework en général.

Lien vers le commentaire
Partager sur d’autres sites

Tu devrais regarder du côté middleware.

En effet, le middleware serale coeur caché de ton framework.

A toi de voir si celui-ci sera un

- à base d' objects (tu travailles à distance sur les objets (invocation distante))

- à base de messages (tu introduits une notion évènementielle plus forte et une collaboration inter-application: tu réagis à des messages que des applications t'envoient pour en envoyer à ton tour).

Je pense que le plus gros du travail sera de bâtir une application capable de relayer des messages structurés entre plusieurs applications. (un groupe d'instance en fait: multicast)

De ce fait, une application serveur, "quelque soit le jeu" (structure formatée des message).

Le meilleur conseil que je peux te donner, c'est d'essayer de définir un maximum de couches (niveaux) d'abstraction car on ne peut prévoir jamais tout dans ce genre de réjouissances, et plus tu as de niveaux d'abstraction, plus tu pourras t'en sortir à moindre frais.

Enfin, corrigez moi si je dis trop de *bip*

Lien vers le commentaire
Partager sur d’autres sites

Euhhh..... Tu sais qu'en c++ tu ne fais pas d'applis graphiques ? Il te faut passer par une API ad-hoc (que ce soit win32, opengll.....).

Sinon, niveau organisation, j'aurais tendance à dire que si tu fais du C++, utilise le modèle objet, va voir du côté des design pattern et de la stl pour ne pas réinventer la roue, conçois tes interface sur papier (ou par une méthode style uml) avant de les coder, et prévois un portage linux (pub inside :mdr: linux)

Lien vers le commentaire
Partager sur d’autres sites

Fafhrdius > pardonne mon ignorance, mais en quoi consiste un middleware?? Par contre, pourquoi une "application serveur"? Ce n'est pas orienté réseau ce que je dois faire... si j'ai rien compris, excuse moi.

Mais ce que tu as dit est intéressant, n'hesite pas à développer si je suis à côté de la plaque.

Galdor > Oui, oui, je sais qu'en C++ il n'y a pas d'applis graphique, et je comptais très probablement passer via SDL pour faire le graphisme (en plus ca passe sous Linux pour bien faire les choses :p). J'ai fait un premier jet de modélisation en uml (je commence toujours par là) mais c'est plus "tordu" que pour une simple appli je trouve.

En fait, si j'ai bien compris: Framework = cadre de développement fournissant des classes de travail, et le Framework est en fait le noyau de toute appli développée à partir de celui ci.

Celà veut dire que le framework doit être suffisament généraliste et flexible. C'est là que je cale, car je descends trop vers le concret pour adapter directement à des cas particuliers.... mais bon, je suppose que c'est à moi de réguler.

Par contre compte tenu que d'un côté j'ai purement les données, et que "par dessus" je fais du graphisme en SDL, est il possible de faire un framework avec les objets purement, englobé dans un framework plus large qui permet une gestion graphique.

En gros peut on imbriquer des frameworks ou bien créer une surcouche graphique au framework tout en gardant le côté framework au final? ou vaut il mieux tout mettre dans le framework: données + gestion graphique?

Voilà. J'espère ne pas avoir été lourd, et désolé pour la longueur, mais j'aimerai améliorer ma méthodologie :francais:

Lien vers le commentaire
Partager sur d’autres sites

Fafhrdius > pardonne mon ignorance, mais en quoi consiste un middleware?? Par contre, pourquoi une "application serveur"? Ce n'est pas orienté réseau ce que je dois faire... si j'ai rien compris, excuse moi.

Mais ce que tu as dit est intéressant, n'hesite pas à développer si je suis à côté de la plaque.

Galdor > Oui, oui, je sais qu'en C++ il n'y a pas d'applis graphique, et je comptais très probablement passer via SDL pour faire le graphisme (en plus ca passe sous Linux pour bien faire les choses :chinois:). J'ai fait un premier jet de modélisation en uml (je commence toujours par là) mais c'est plus "tordu" que pour une simple appli je trouve.

En fait, si j'ai bien compris: Framework = cadre de développement fournissant des classes de travail, et le Framework est en fait le noyau de toute appli développée à partir de celui ci.

Celà veut dire que le framework doit être suffisament généraliste et flexible. C'est là que je cale, car je descends trop vers le concret pour adapter directement à des cas particuliers.... mais bon, je suppose que c'est à moi de réguler.

Par contre compte tenu que d'un côté j'ai purement les données, et que "par dessus" je fais du graphisme en SDL, est il possible de faire un framework avec les objets purement, englobé dans un framework plus large qui permet une gestion graphique.

En gros peut on imbriquer des frameworks ou bien créer une surcouche graphique au framework tout en gardant le côté framework au final? ou vaut il mieux tout mettre dans le framework: données + gestion graphique?

Voilà. J'espère ne pas avoir été lourd, et désolé pour la longueur, mais j'aimerai améliorer ma méthodologie :francais:

un framework n'est pas nécessairement une structure à "plat".

Il peut y avoir une hiérarchisation importante, en fonction des couches proche sou éloignées de la logique machine, en fonction des différents niveaux logiques du type d'applicatif visé (moteur, présentation, données ...).

Si tu veux une petite idée de la façon de travailler pour ton projet, inspire toi du modèle MVC et construit un framework implémentant une segmentation basée sur :

- Model : Données

- View : Couche Graphique

- Controlleur : Moteur

Le controlleur faisant le lien entre le Model et le View (c'est par définition le rôle d'un moteur de jeu).

Ce que je propose c'est juste d'adapter le modèle MVC au domaine d'un framework orienté jeu graphique, car c'est une bonne méthode de segmentation.

Lien vers le commentaire
Partager sur d’autres sites

Merci bien, je dois admettre que je n'avais pas pensé à un modèle MVC. C'est vrai que ca correspond à un bon découpage, et en plus je cherchais à obtenir ce genre de découpage. Donc vraiment merci, ca m'a mis sur une bonne piste.

Juste pour être sur, le controlleur peut bien être utilisé pour controller (comme son nom l'indique :fou:) le déroulement du jeu basé sur le framework?

En gros (voire très gros), Modèle contiendra les données (ici mes objets à manipuler...), View sera la partie dédiée à la gestion de l'affichage graphique, et Controller se chargera de la vérification des données, et de faire "tourner l'appli".. J'ai bien tout saisi?

Une dernière question (promis après j'arrête)par la suite dans l'utilisation du Framework, il s'agira bien d'instancier mes classes de Model, de définiir les interactions/règles et ensuite de "lancer" le Controller?

Ca peut sembler bête comme questions, mais je veux bien comprendre pour ne pas être HS en faisant une sorte de boite à outils plutot qu'un Framework.

Encore vraiment merci pour tout à tous :transpi:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...