Conception d'un "jeu", questionnement sur l'organisation générale

Fermé
Niko71 Messages postés 15 Date d'inscription dimanche 6 octobre 2019 Statut Membre Dernière intervention 10 juillet 2020 - 9 juil. 2020 à 23:39
Niko71 Messages postés 15 Date d'inscription dimanche 6 octobre 2019 Statut Membre Dernière intervention 10 juillet 2020 - 10 juil. 2020 à 15:30
Bonjour,



Configuration: Windows / Firefox 78.0


Je suis enseignant en école primaire et j’ai commencé l’apprentissage de la programmation en autodidacte depuis presque deux ans afin de mener à bien un projet perso.
Aujourd’hui mon projet avance comme je le souhaite et malgré des hauts et des bas, je sens que je continue à progresser et que mon projet finira par voir le jour. Seulement j’ai le sentiment que les bases de mon programme ont besoin d’être revues sans quoi je risque d’être embêté plus tard si je souhaite le faire évoluer.
Je me pose donc la question d’une révision complète de tout ça et il me vient quelques questions de conception générale auxquelles une personne plus expérimentée que moi saura sans doute répondre.

Quelques détails avant de commencer :
- Je programme avec Python et utilise Django. Je bricole à côté en html, css (Bootstrap) et js (jquery).
- Mon projet consiste en la création d’un petit site web sans prétention proposant des « aventures » à jouer en classe de type Escape Game ou chasse au trésor (avec énigmes, lectures, réinvestissement des compétences travaillées en classe…) avec un aspect RP supplémentaire (création d’un personnage avec des compétences).

Les questions existentielles (certaines pourront peut-être paraître stupides, veuillez pardonner mon ignorance) :

La création d’applications :
J’ai appris que les applications regroupaient tous les éléments gravitant autour de mêmes modèles. J’ai donc fait :
- une application pour la navigation générale sur le site et la gestion des utilisateurs.
- une application pour la gestion des aventures.
C’est la seconde application qui m’interroge. J’ai l’impression qu’y mettre toutes mes aventures (actuellement au nombre de 0 du coup c’est pas trop problématique en ce moment :P) risque de créer une grosse bdd et d’y compliquer ainsi mes requêtes.
Même si les modèles resteront les mêmes d’une aventure à l’autre, n’est-il pas plus simple de séparer les tables en créant à chaque fois une nouvelle application ?
Ainsi je pourrais créer une copie d’une application témoin pour chaque création d’une nouvelle aventure, dans laquelle je créerai les instances spécifiques.
Ou existe-t-il un moyen de travailler sur une même application mais en séparant clairement les aventures ?

Le lancement d’une aventure :
Une aventure comprend un mini univers avec les héros, des lieux et des interactions. Tous seront définis en tant qu’instances dans mes modèles. Les instances peuvent évoluer lors de l’aventure (bonus/malus de caractéristique, lieux qui devient accessible…), ces changements ne doivent bien sûr pas modifier la base de données initiale de l’aventure.
Mon programme actuel :
Je crée pour chaque session d’aventure une liste des effets (bonus, accès…) que j’interroge systématiquement dès que je recherche une information.
Exemple : je souhaite récupérer la valeur « logique » d’un héros
1) Je récupère la valeur initiale du héros.
2) J’interroge ma liste pour voir s’il ne dispose pas d’un bonus ou un malus.
3) J’additionne le tout.
Et cela de nombreuses fois pour chaque vue, puisque j’ai besoin de récupérer plusieurs données. Mon programme n’est certes pas optimisé du tout, mais j’atteints quand même 7-8s de chargement par moment.
Une autre idée :
Je copie l’ensemble des instances que je peux ensuite directement modifier. Je garde toujours une liste des effets à appliquer ou à annuler plus tard dans la partie, que j’interroge à chaque tour pour mettre à jour les données.
Il me semble que ça réduirait considérablement le nombre de requêtes, mais augmenterait significativement la taille de la bdd. Même si à la fin de chaque aventure, je garde les stats et peux supprimer la copie.

Les modèles :
- Vaut-il mieux un gros modèle passe-partout avec beaucoup de données vides ou inutiles la plupart du temps, ou plusieurs modèles spécifiques avec des relations ?
- Vaut-il mieux utiliser le système d’héritage quand c’est possible ou bien les relations génériques ? J’ai lu quelque part que le système d’héritage n’était pas toujours fiable.

Voilà, si je pouvais avoir quelques pistes sur ces différents points ce serait une grande aide pour moi !

Merci beaucoup à ceux qui m’ont lu.
A voir également:

3 réponses

Salut,

" d’un petit site web sans prétention proposant des « aventures » à jouer en classe de type Escape Game ou chasse au trésor (avec énigmes, lectures, réinvestissement des compétences travaillées en classe…) avec un aspect RP supplémentaire (création d’un personnage avec des compétences).
"
Moi j'appelle pas ça un petit site mais un programme complexe et évolué avec de nombreux paramètres et fonctionnalités, requiert beaucoup de compétences allant du graphisme, de l'animation et interactivité assez complexe et beaucoup de connaissance en analyse et conception logicielle/gestion de données électroniques car il y aua passablement beaucoup d'informations à traiter et utiliser.

"J’ai appris que les applications regroupaient tous les éléments gravitant autour de mêmes modèles. "
hein? de quoi parlez vous? Il n'y a pas de modèle mais une méthodologie éventuellement en conception. Ne confondriez vous pas avec l'architecture logicielle ou l'organisation des éléments du programme (comme le MVC , la POO, les pattern de programmation... et bien d'autres méthodes de construction d'un programme et des imbrications des éléments de celle ci)?
De plus si vous parlez de fonctionnalités différentes l'ensemble reste la même application,
synonyme programme ou logiciel: ce qui permet de répondre au besoin/demandes.
La première étape est donc de lister toutes les fonctionnalités, besoins et tâches que remplira l'application. Cela s'appelle un cahier des charges. Le terme application indique un but/résultat et

Il permet alors de définir plusieurs choses comme avant tout(qui seront le cœur et moteur de tout le reste du programme/application/site et sa base sur lesquelles tout le reste s'appuie):
_le système d'informations(SI)
_le diagramme fonctionnel ou autrement dit toutes les actions possibles de l'utilisateur et du système.
  • Sur le SI c'est la liste exhaustive(autant que possible) de toutes les données qui sont nécessaire au programme pour fonctionner. La première étape est de lister ces informations. On peut utiliser la méthode d'analyse Merise qui permet de trier et regrouper en entités ces différentes informations nécessaires afin d'obtenir une table des données qui sera fonctionnelle et correspondra à une utilisation pratique par le logiciel.


Exemple rudimentaire/simpliste et juste utile à titre d'illustration(car l'analyse doit s'appuyer sur une liste ou dictionnaires des données complète et prenant en compte toutes les données qui peuvent(ou pourront) exister:

1ère étape
Dictionnaire des données 'mon jeu':
nom personnage
nom utilisateur
mot de passe connexion
nom objet dans le sac
taille du sac
nom du sac
points de vie personnage
points de vie ennemi
emplacement personnage
niveau personnage
points de vie personnage
dialogue personnage
sujet dialogue
...( à compléter modèle simpliste et incomplet donc le résultat ne peut être qu'approximatif et ne pas correspondre à ce que vous voulez)

2nd étape ::
chaque information doit être unique et identifiable, ici on regroupe les doublons et ajoute les moyens d'identification si nécessaire et supprimons les doublons ou donnée qui peuvent être calculées(par exemple si les points de vie dépendent du niveau d'un personnage et de sa classe cela consiste à avoir 3 données: niveau , nom classe et ratio de points de vie correspondant à cahque classe. L'addition des 3 permet d'obtenir la valeur point de vie qui elle ne doit pas être retenue par le système car sera un doublon et peut poser des erreurs éventuelles si tel était le cas):

nom perso
login
mdp
nom objet
type objet(un chapeau peut être équipé sur la tête, un potion bue. Ici le "type" va correspondre à son rôle et DOIT être retenu pour les besoins du programme et les différencier de manière effective: chapeau aura comme type équipement tête, potion aura pour type équipement consommable)
nombre de charge objet(différent du type indique si un objet doit être consommé et combien de fois il est possible . Par exemple un objet pourra avoir une utilisation infini, pas d'utilisation(un chapeau n'est pas consommé et n'a pas de charges, une potion ou une baguette magique peut contenir des charges etc...)
personnage : lieu coordonnées X
personnage : lieu coordonnées Y(une position sur une carte X/Y)
personnage : lieu carte(une carte est un lieu de jeu ou d'exploration)
etc...(je fait pas tout c'est la démarche que je veut montrer, cela n'a aucune valeur autre que vous montrer l'intérêt de l'analyse et que c'est une démarche qui suit des étapes et fait appel à de la réflexion -appelé Univers du Discours- aussi bien qu'à l'application de la règle(celle de l'unicité et plus tard de la thématique de l'information qui doit être transmise et traitée par le système))


étapes suivantes , jusqu'à la fin(eniron une dizaine d'étapes) qui consiste à un Modèle Logique de Données(MCD regroupement de toutes les données valides et identifiables en entités) qui est l'ébauche presque terminée du Modèle Logique de Données(MLD ou les tables de données et leur rapport entre elles):
(ici toujours pour l'exemple et la démonstration je ne traite que 2 entités /tables, il est évident que selon le programme/les besoins du cahier des charges et de la gestion de ces données il y a souvent plus d'entités/tables de données. Je ne détaille pas non plus les relations entre ces tables qui doivent être prises en compte(par système de recoupement les tables et données permettent d'être reliées entre elles, on parle de base de données relationnelle et de jonction de table ou clé étrangère , pour ça il faut se renseigner sur les tables de données plus en détail: identifiant(qui peut être multiple dans le cas d'un identifiant naturel et être composé d'un élément primaire et d'éléments secondaires ou clés étrangéres))

3 Entités ou tables de données qui sont liées ensemble(jonction par clé étrangère):

Joueur:
+login
+mot de passe
+date d'inscription

Personnage:
+nom(identifiant et unique: il ne peut exister dans tout le jeu qu'un seul personnage avec le même nom, c'est la clé primaire de la table qui sert à obtenir toutes les colonnes associées)
+joueur(identifiant soit le joueur ou laissé nul pour les ennemis ou PNJs).
+classe
+niveau
+sac
+carte(nom du lieu ou se trouve le personnage)
+localisation X/Y (les informations sont regroupées car en 2D il est impossible d'avoir une position X sans avoir de coordonnée Y, c'est à titre d'exemple l'un des rare cas où plusieurs informations peuvent être regroupée en une seule donnée .. et encore c'est faux au niveau analyse au sens strict car les positions X et Y peuvent très bien être utilisées de façon indépendantes.Cela fait aussi partir du travail d'analyse et dépends donc du cahier des charges: si le jeu présente une phase vue de côté où seule la position en X va être utilisée alors il y aura une lenteur excessive du traitement du programme puisque à chaque utilisation/modification de X on devra aussi avoir à gérer une donnée Y qui n'a aucune utilité )

Objets:
+nom
+type
+charge(aucune ou un nombre entier)
+emplacement(aucun, personnage(se trouve dans un sac du personnage, si on veut gérer plusieurs sacs et l'espace limite il faudra bien sûr d'autres données comme l'identifiant du sac et l'identifiant du personnage et l’encombrement ou place utilisée par l'objet...))


Avec cet exemple incomplet vous avez une piste pour à quoi doit ressembler une analyse de système d'information(en moins rigoureux et complet que ce n'est en vrai).
1
Ma première démonstration consistait à vous parler de Merise ou de l'analyse du système d'informations menant aux tables de données nécessaire(en laissant de côté pas mal de choses importantes).
Dans cette partie je vais essayer de résumer les méthodes de conception du programme qui vont utiliser ces données. Je parle d'analyse fonctionnelle mais c'est un raccourci car d'autres aspects(comme l'organisation / algorithme et structure des éléments ) du programme sont considérés. Disons que le côté fonctionnel est le bout le plus facilement accessible et compréhensible pour un profane
  • analyse fonctionnelle

Si UNTEL pousse tel bouton alors il se passe cela.
On va penser tout les mécanismes qui correspondront au Gameplay comme à tous les aspects du programme.
Dans cette partie nous avons donc déjà lister toutes les données qui seront utiles il est donc temps de s'intéresser à cette utilisation.

Imaginons UNTEL est l'utilisateur du site. Il faudra d'abord qu'il crée un compte puis crée le personnage(c'est à dire définir ses composants comme le nom et autres valeurs pouvant changer-classe du personnage, .valeurs dans une caractéristiques données).
Cette partie de l'analyse et conception va s’attacher par différentes modélisation à créer les éléments qui vont composer le programme qui servent à utiliser/modifier et dans une large mesure à gérer les données(de leur création à leur extinction, on parle de cycle de vie d'une variable ou de valeurs) . L'informatique ne sait faire qu'une chose: traiter des données. La présentation des cas concrets d'utilisation(étude fonctionnelle) est un moyen(il y en a d'autres que je ne vais faire qu'évoquer mais qui sont essentiels pour une application un tant soit peu complexe).
Ce sont les étapes décomposées qui permettent à partir d'un concept humain ou intellectuel de former sa représentation informatique qui peut être purement mathématique ou tout autre.
exemples:
_calculer les points de vie c'est la formule => niveau*ratio points de vie par niveau de la classe ou personnage
_changer de carte: c'est se rendre sur un emplacement de porte(les coordonnées X/Y du déplacement dépassent les bords de la carte
_afficher l'inventaire: un bouton affiche le menu de tout les objets portés sur soi plus du sac
(notez qu'on peut voir que dans l'analyse de la base de données précédente était incomplète puisqu'il manque pour un lieu les dimensions de la carte, les emplacements des portes, les emplacements des objets portés qui ne sont pas dans le sac et bien d'autres choses et que ça fait un paquet de données tout ça, la partie analyse de la base de donées est bien primordiale et doit être complète)


La programmation objet et les différents modèles de traitements et d'organisation(vastes sujets que je ne détaillerais pas) seront ici omniprésent car permet de passer de l'étape du concept et des fonctionnalités à mettre en œuvre.
Ici je vais présenter un cas simple et considérer uniquement sa conception sur le côté algorithmique(voir aussi math de Boole).
Fonctionnalité étudiée:
fin d'un combat au tour par tour
Un combat se termine lorsque le joueur ou tout les ennemis présents n'ont plus de points de vie.
l’algorithme est donc le suivant:
+Valider la fin du tour et calculer les dégâts
Si les points de vie du joueur sont inférieurs à 1(0 ou moins) => aller à l'écran de Game Over
Vérifier pour chaque ennemi Si les points de vie sont inférieur à 1
=>si tout les ennemis ont des points de vie inférieur à 1 aller à l'écran de victoire du joueur.
=>sinon passer au tour suivant
0
CONSEILS:

1) créer une application élaborée et à fortiori un jeu est complexe et fait appel à de nombreuses technologies et méthodes. Il vous faudra donc beaucoup de temps et de travail.
Une bonne méthode d’apprentissage est de revoir vos objectif à la baisse afin de vous faire la main et ajouter et complexifier le résultat. Le minimum viable peut-être un bon test et une étape pour aller vers quelque chose de plus complexe.
Vous pouvez donc penser à créer un jeu où vous déplacez un carré sur une carte, ajouter à celui ci des ennemis et une attaque. Les tutoriels et cours disponibles gratuitement en lignes ne manquent pas en cherchant un peu.
Ce sont des étapes indispensables qui n'augurent en rien le résultat final mais vous permet d'arriver à un résultat concret le plus simple en vous fournissant une expérience concrète des buts et tenants d'une application. Je veut dire avant d'avoir un jeu d'aventures multijoueurs d'action et d'aventure vous pouvez simplement faire un jeu de raquettes contre l'ordinateur, un menu pour gérer des dialogues et des choix multiples, une ébauche de personnages et d'équipements...
Cela vous servira et vous fournira des bases (solides ainsi que faire les erreurs qui permettent de progresser) que vous pouvez complexifier au fur et à mesure que vous avez des compétences en développement et conception.

2)un jeu c'est pas une mince affaire. En plus de faire une application sur un thème qui sera simpliste mais que vous utiliserez vous devez clairement poser tout les éléments de votre jeu: son cahier des charges. rien que cela prends énormément de temps(sans compter le temps à penser le jeu). Vous pouvez présenter votre projet en créant un site web complet qui détaillera votre projet de jeu et en recherchant des personnes intéressées. Cela vous donnera les bases pour la création d'un site ainsi qu'un résultat concret mais et vous permet aussi de présenter le projet, de mettre vos tests et ébauches du programme en ligne et de les y tester.

3)Ne vous limitez pas à un langage ou une technologie.
Comme j'ai essayé de vous montrer en détaillant vulgairement ce qu'est l'analyse et la conception logicielle c'est un métier qui demande de l'apprentissage et beaucoup de travail personnel. Cela ne veut pas dire qu'il n'existe pas des outils qui sont destinés soit aux professionnels soit aux amateurs.
Le cahier des charges c'est la base de tout projet. L'une de ses utilité est de trouver les outils adaptés aux besoins exprimés. Il existe des tas de framework et logiciels qui permettent d'aider au développement et fournissent plus ou moins d'avantages et des facilités. Non seulement les tutos et vos recherches vous aideront mais en rejoignant la communauté de tel ou tel site vous pouvez acquérir autant de la connaissance technique que de la culture dans ce domaine technique. Je veut dire rien ne sert de savoir tout par cœur mais au contraire savoir où chercher et trouver les réponses et indispensables. Pour cela la pratique aide mais aussi les recherches et connaissance générale du domaine.
Par exemple de MUGEN à RPG maker à Unity3D ou les bibliothèques logicielles dédiées au jeux(comme babylon.js ou phaser.js pour ne citer que celles ci) sont légions. Utiliser l'un ou l'autre de ces outils permet un gain de temps et une meilleure rentabilité nettement accrue. Cela vaut le coup de faire quelques recherches et d'essayer par vous même qui permet aussi du j'apprends par l'exemple et la réalisation pratique d'un résultat.



Voilà:
  • Posez votre concept, écrivez le cahier des charges complet et tout ce qui mérite d'être inclus dans l'application, qui concerne le temps, budget ou autres contraintes qui peuvent exister. A partir de là vous aurez autre chose qu'une vague idée mais ce qui permet de commencer le travail.
  • revoyez vos objectifs à la baisse pour faire et vous confronter à du concret. Rome ne s'est pas fait en un jour. Avant de courir et d'avoir le jeu ultime qui vous correspond ayez déjà des mini-jeux que vous pouvez faire en quelques jours/heures et vous donneront quelques ficelles et expériences ainsi qu'un résultat concret.
  • entourez vous et parcourez les communautés dédiées au développement et à la création de jeux. Il y a tellement d'aspects et de choses à prendre en compte du graphisme à la conception avant d'avoir un produit finit ou même un début qui peut fonctionner que tout cela va vous prendre énormément de temps(plus le jeu sera complexe et aura d'aspects, plus vous recherchez la qualité, moins vos compétences en analyse, conception et développement logiciel seront confirmées, plus de temps il faudra) donc trouver des personnes qui peuvent travailler avec vous sur quelque chose d'ampleur pourra être motivant et mener à un résultat.
0
Niko71 Messages postés 15 Date d'inscription dimanche 6 octobre 2019 Statut Membre Dernière intervention 10 juillet 2020
Modifié le 10 juil. 2020 à 15:34
Bonjour,

Alors pour commencer un très grand merci pour cette réponse détaillée, c'est très sympa de prendre le temps de m'aider et de partager votre expérience.

Moi j'appelle pas ça un petit site mais un programme complexe et évolué avec de nombreux paramètres et fonctionnalités, requiert beaucoup de compétences allant du graphisme, de l'animation et interactivité assez complexe et beaucoup de connaissance en analyse et conception logicielle/gestion de données électroniques car il y aua passablement beaucoup d'informations à traiter et utiliser.


-->Effectivement, je qualifie ce projet de petit et sans prétention par rapport à ce qu'on peut trouver sur le web, mais à mon niveau, c'est un très gros projet, j'en suis conscient et y passe l'essentiel de mon temps libre depuis 1 an et demi. Cependant, je m'affranchis complétement du coté graphique et animations, le jeu s'appuiera sur la lecture, le choix d'actions, la résolution d'énigmes (sur le programme même ou en manipulation en classe)...Les quelques images seront purement décoratives.

hein? de quoi parlez vous?

--> Mes excuses si le vocabulaire que j'utilise n'est pas adapté, j'ai progressé dans mon projet en me formant en fonction de ce qui se trouvait sur mon chemin, du coup dès que j'en sors, j'ai de grosses lacunes.
De ce que j'ai appris sur Django, un projet est divisé en applications qui contiennent un fichier models.py où on va y inscrire nos différents modèles.

La première étape est donc de lister toutes les fonctionnalités, besoins et tâches que remplira l'application. Cela s'appelle un cahier des charges.
On peut utiliser la méthode d'analyse Merise qui permet de trier et regrouper en entités ces différentes informations nécessaires afin d'obtenir une table des données qui sera fonctionnelle et correspondra à une utilisation pratique par le logiciel.

--> C'est fait, mais j'éprouve le besoin d'y remettre de l'ordre pour avoir une table de données moins brouillon.

chaque information doit être unique et identifiable, ici on regroupe les doublons et ajoute les moyens d'identification si nécessaire et supprimons les doublons ou donnée qui peuvent être calculées

--> Là, je pense pouvoir faire mieux, effectivement à force de modifier mon programme et le faire évoluer, j'ai des infos en trop ou en double.
Par contre, j'ai une def qui à l'appel de save() sur la class Heros, calcule les points de vie et entre la valeur dans l'attribut "point de vie" de ma classe.
Ça me semblait plus simple d'aller récupérer ensuite cette valeur plutôt que de recalculer à chaque fois?

c'est une démarche qui suit des étapes et fait appel à de la réflexion -appelé Univers du Discours- aussi bien qu'à l'application de la règle(celle de l'unicité et plus tard de la thématique de l'information qui doit être transmise et traitée par le système)

--> Je pense comprendre le principe... Ça s'est fait assez intuitivement au fur et à mesure que j'ai étoffé mon projet, je me suis rendu compte que j'avais besoin d'ajouter tel ou tel élément à telle classe.

Modèle Logique de Données(MLD ou les tables de données et leur rapport entre elles)

--> Je parle de ça quand je parle de modèle :)
Une fois de plus j'ai mis la charrue avant les boeufs puisque je suis parti de pas grand chose pour l'étoffer au fur et à mesure. Je ne l'ai donc pas construit à partir d'une vision globale, mais d'ajout ponctuels parfois tirés par les cheveux.
Aujourd'hui j'ai davantage cette vision globales (même s'il faut encore que je la mette correctement à l'écrit comme vous me l'indiquez), je pense donc pouvoir reprendre mon MLD et construire quelque chose de plus efficace. D'où les questions que je me pose sur les bonnes pratiques, par exemple:

Une action, est liée à une compétence qui est liée à un attribut.
Dans mon système actuel, j'ai 3 classes:
- Action (nom, description, ForeignKey vers Compétence, et d'autres ... )
- Competence (nom, description, ForeignKey vers Attribut)
- Attribut (nom, description)
Ce système me semblait bien pensé, mais je me demande s'il n'aurait pas été plus simple d'enlever la liaison entre compétence et attribut et lier directement attribut à action:
Action (nom, description, ForeignKey vers Compétence, ForeignKey vers Attribut...)
Ainsi ma requête me semble plus simple, je récupère juste action.competence et action.attribut.

De la même façon:
J'ai une classe Interaction qui a une relation générique avec les classes: Héros, PNJ, obstacle, fermeture, piège, objet...
Ne serait-il pas plus simple d'avoir simplement une classe Interaction qui comprend tous les attributs nécessaires et d'y remplir uniquement ceux qui sont concernés par le genre d'interaction que je veux créer (Héros, Piège...).
Je me simplifie la vie en arrêtant les va-et-vient entre le modèle parent et les enfants, mais j'ai à la place un seul modèle avec des instances contenant des attributs la plupart du temps inutiles.

J'espère être assez clair...


Disons que le côté fonctionnel est le bout le plus facilement accessible et compréhensible pour un profane

--> C'est effectivement ce qui m'a posé le moins de difficulté et ce que je fais le plus volontiers.

Une bonne méthode d’apprentissage est de revoir vos objectif à la baisse afin de vous faire la main et ajouter et complexifier le résultat. Le minimum viable peut-être un bon test et une étape pour aller vers quelque chose de plus complexe.

--> J'ai étoffé au fur et à mesure mon projet pour en arriver ou j'en suis. Cependant effectivement, si les choses progressent dans le bon sens, le projet grossit en même temps que j'avance, et je n'ai donc toujours pas de produit fini. Il faudrait sans doute que je me concentre uniquement sur un point précis de mon projet pour le mener à bien.

vous devez clairement poser tout les éléments de votre jeu: son cahier des charges. rien que cela prends énormément de temps(sans compter le temps à penser le jeu).

--> Effectivement, c'est la partie qui m'attire le moins, mais s'il faut s'y mettre sérieusement...

Vous pouvez présenter votre projet en créant un site web complet qui détaillera votre projet de jeu


--> Bonne idée merci.

Par exemple de MUGEN à RPG maker à Unity3D ou les bibliothèques logicielles dédiées au jeux(comme babylon.js ou phaser.js pour ne citer que celles ci) sont légions.

--> J'ai énormément appris du moment que j'ai commencé Django, j'ai cependant du mal à me représenter ce que ces frameworks m'apporteraient. Sont-ils utilisables dans le cadre d'un projet web et non d'une application téléchargeable?
Auriez-vous une recommandation? J'irai me renseigner sur le sujet.

J'ai fait le tour, encore merci pour ces infos précieuses (même celles non citées).

Même si la liste est longue, je suis patient et sais que mon projet s'inscrit dans la durée, je suis même assez rassuré de voir qu'une bonne partie des points que vous avez abordés me parle.
Mon projet est déjà assez avancée et même si je n'ai pas encore tout de posé à l'écrit, je sais où je veux aller.
Aujourd'hui j'arrive à faire à peu près ce que je veux, ce qui me manque surtout ce sont les bonnes pratiques comme je n'ai pas la chance d'avoir quelqu'un d'expérimenté derrière mon dos pour me remettre dans le droit chemin quand je fais n'importe quoi.
D'où les questions de mon premier poste, si je reprends tout, j'aimerai que ce soit sur des bases solides.
0