Journal Webcrise: ébauche d'architecture

Post√©¬†par¬† (site web personnel) . Licence CC¬†By‚ÄĎSA.
18
17
ao√Ľt
2012

Bonjour Nal,

Je continue mon travail de préparation d'un futur projet de jeu libre, Webcrise, que je décrivais il y a peu dans le journal suivant: https://linuxfr.org/users/devnewton/journaux/webcrise-appel-a-contribution

Au lieu de me lancer, comme trop souvent, dans le code tout de suite, j'ai décider de faire un peu de modélisation. J'envisage aussi de faire une maquette de la gui, mais chaque chose en son temps.

J'ai réalisé deux diagrammes, un de classe et un autre de séquence, pour avoir une vue d'ensemble du système.

J'ai essayé d'avoir une architecture flexible afin de pouvoir gérer des cas peu évidents dans un jeu de stratégie temps réel:

  • les unit√©s qui peuvent changer de r√īle: un pompier br√Ľl√© devient une victime √† sauver.
  • l'√©tat du terrain peut √©voluer, une zone peut √™tre br√Ľl√©e ou inond√©e, un pont peut √™tre construit pour traverser une rivi√®re…
  • certaines unit√©s ne sont pas pr√©sentes physiquement sur le terrain: un t√©moin qui signale une √©meute par exemple.
  • chaque joueur doit avoir une repr√©sentation diff√©rente de la situation: si la police d√©couvre une victime, les pompiers ne sont pas automatiquement au courant.

Cet exercice de modélisation m'a aussi permis de déterminer deux choses importantes:

  • le jeu sera en temps long, cad sur une journ√©e ou une semaine. Le joueur pourra suivre l'√©volution de la crise r√©guli√®rement, mais comme un pr√©fet ou un grad√© dans un poste de commandement, cad recevoir des alertes et faire des points r√©guliers, puis prendre des d√©cisions de haut niveau.
  • le terrain sera un ensemble de case (tiling) pour simplifier. Une seule unit√© pourra occuper une case.

J'ai √©galement rep√©r√© deux frameworks int√©ressants, m√™me si je n'ai fait aucun choix d√©finitifs: vert.x c√īt√© serveur et melonjs c√īt√© client.

Comme éditeur de niveau, je pense utiliser Tiled, auquel je contribue déjà dans le cadre de la refonte graphique de Newton Adventure.

Diagramme de classe

Diagramme de séquence

Plus de news, dès que possible!

  • # Oubli

    Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†1.

    J'ai oublié la traditionnelle nimage. J'espère qu'elle contentera tout le monde.

    Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

    • [^] # Re: Oubli

      Post√©¬†par¬† . √Čvalu√©¬†√†¬†8.

      Je préfère celle-ci

      • [^] # Re: Oubli

        Post√©¬†par¬† . √Čvalu√©¬†√†¬†2.

        Ça, c'est une nimage qui lui colle à la peau!

        => []

  • # D√©tail linguistique

    Post√©¬†par¬† . √Čvalu√©¬†√†¬†3.

    En lieu et place d'Ambulance, préfère le terme EMT pour Emergency medical technician: c'est ce qui désigne notre équivalent français des équipes de secours d'urgences.

  • # quelque id√©e gratuite et libre ?

    Post√©¬†par¬† . √Čvalu√©¬†√†¬†0.

    les unit√©s qui peuvent changer de r√īle: un pompier br√Ľl√© devient une victime √† sauver.

    a sauver en priorité, pour que l équipe puis réutiliser sont matérielle ;)

    un pont peut √™tre construit pour traverser une rivi√®re…

    les militaires on bien ce qu il faut pour réaliser ca ne les oublie pas ;)

    un témoin qui signale une émeute par exemple.

    une grand mère ca peut être cocasse ;)

    Merci aux personnes qui mon aidé a trouvé des solutions pour essayer d’écrire sans faute d’orthographe.

  • # Temps long

    Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†1.

    Quand tu dis que

    le jeu sera en temps long, cad sur une journée ou une semaine.

    Tu fais référence au temps IRL ou dans le jeu ?

    • [^] # Re: Temps long

      Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†3.

      Les deux!

      Par défaut temps IRL = temps dans le jeu, mais on pourra accélérer ou mettre en pause un scénario, voire planifier son déroulement (tous les soirs de 20 à 22h par exemple).

      Ce temps long réponds à plusieurs impératifs:

      • une strat√©gie de haut niveau, par opposition au micro-management.
      • la volont√© de trouver un compromis entre les RTS classiques o√Ļ tout va trop vite et les jeux au tour par tour o√Ļ on s'endort pendant que les autres joueurs r√©fl√©chissent.
      • l'autoh√©bergement d'une instance sur mon petit serveur :-)

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

      • [^] # Re: Temps long

        Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

        on pourra accélérer ou mettre en pause un scénario, voire planifier son déroulement (tous les soirs de 20 à 22h par exemple).

        D'accord, donc pas de contrainte en terme d'horaires de connexion (comme c'est malheureusement souvent le cas dans les jeux par navigateur) pour les joueurs. Je ne peux qu'approuver joyeusement cette approche.

      • [^] # Re: Temps long

        Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†3.

        Dans un RTS classique, il manque en général des ordres de très haut niveau pour gérer ses unités. En général, cela se limite à va ici et attaque cette unité. "total anniliation" proposait des ordres plus sympa comme des défenses de zones avec poursuites ou non des unités adverses.

        "La première sécurité est la liberté"

        • [^] # Re: Temps long

          Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

          Ca me fait penser qu'il me faudra trouver une techno d'IA pour impl√©menter des missions complexes…

          Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

          • [^] # Re: Temps long

            Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

            Tu devrais surtout penser à des actions types du joueur pour définir ce qui est réellement intéressant et pas seulement le coté simulation. Dans le temps vrai, il y a des actions tellement longue que cela peut être chiant (cf les simulateurs d'avion) ou trop courte pour gérer la masse de chose à faire.

            Pour un RTS, j'aurais aimer avoir une notion de "plan d'attaque" o√Ļ tu d√©finis des point clefs √† chaque unit√©s qui doivent aller √† ces points ayant le m√™me num√©ro avant de passer au suivant, c'est plus facile de coordonner les attaques. Ensuite, il suffit de "d√©clencher les plans" pour que les unit√©s l’ex√©cutent.

            "La première sécurité est la liberté"

            • [^] # Re: Temps long

              Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

              Dans certains sc√©narios que j'envisage, la crise ne se d√©clenche pas tout de suite et fait l'objet de pr√©visions: zones sismiques, quartiers avec des maisons non ignifug√©s…

              Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

        • [^] # Re: Temps long

          Post√©¬†par¬† . √Čvalu√©¬†√†¬†3.

          "total anniliation" proposait des ordres plus sympa comme des défenses de zones avec poursuites ou non des unités adverses.

          J'ai jou√© √† un jeu qui proposait √ßa (Age of Empire II, iirc), au final, c'√©tait plut√īt inutile parce que l'ennemi attaquait en plus grand nombre et que les unit√©s autour ne rappliquaient par d√©fendre l'unit√© attaqu√©e tant que ce n'√©tait pas dans leur p√©rim√®tre, m√™me si elles √©taient juste √† c√īt√©.

          ¬ę Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. ¬Ľ Coluche

          • [^] # Re: Temps long

            Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

            Il fallait définir une zone plus grande. C'est vrai que dans TA j'utilisais surtout le mode "tir à vue" sans déplacement. Car en cas de déplacement, l'unité se mettait à porter de tir de beaucoup d'unité adverse et était rapidement détruite.

            "La première sécurité est la liberté"

            • [^] # Re: Temps long

              Post√©¬†par¬† . √Čvalu√©¬†√†¬†3.

              On ne pouvait pas définir de zone dans le jeu dont je parle. Mais je pense qu'un système avec une garnison et des guetteurs aurait été beaucoup plus utile.

              ¬ę Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. ¬Ľ Coluche

              • [^] # Re: Temps long

                Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

                Pour avoir un jeu militaire o√Ļ la tactique et la planification prime, il faut aussi qu'il prenne en compte un grand nombre de facteur (surprise, moral, angle de tir, approvisionnement…). Sinon autant bourriner!

                Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

                • [^] # Re: Temps long

                  Post√©¬†par¬† . √Čvalu√©¬†√†¬†3.

                  Oui, mais c'est tout de suite plus compliqué, je parle d'un jeu qui tournait sur un Pentium 150Mhz.

                  ¬ę Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. ¬Ľ Coluche

        • [^] # Re: Temps long

          Post√©¬†par¬† . √Čvalu√©¬†√†¬†2.

          Ce qu'il me manque souvent c'est des macro-commandes. Il y en avait un peu dans TA et un peu dans SupCom mais √† mon avis on est loin du potentiel que √ßa pourrait avoir. On peut d√©finir des ¬ę¬†escouades¬†¬Ľ avec n infanteries et m fantassins, mais pas de possibilit√© de d√©finir leur ordre de marche ni de jouer sur les priorit√©s de cibles pour chacune. Certains jeux permettaient de choisir entre plusieurs formes de d√©placement (en ligne, en carr√©, etc), c'est d√©j√† bien.

          Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

          • [^] # Re: Temps long

            Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

            Le pire étant la formation genre gros char devant, lance-missile derrière qui tire loin mais sont fragiles. En formation, il roule au moins à la même vitesse, sinon les chars se font dépassé et les camions sont détruit. Au premier obstacle ou rétrécissement(pont), les chars s'engagent et le superbe algo A* (à la con) décide de faire faire le tour aux camions de derrière. Et paf, le camion.

            Le joueur qui gagne est donc celui qui clic le plus vite.

            "La première sécurité est la liberté"

            • [^] # Re: Temps long

              Post√©¬†par¬† . √Čvalu√©¬†√†¬†2.

              Le joueur qui gagne est donc celui qui clic le plus vite.

              Je ne sais pas si tu le dis en connaissance de cause mais les joueurs qui font de la compétition parle d'Action par minute et oui avoir des macro sophistiquées ça contrecarre cela :)

              Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

              • [^] # Re: Temps long

                Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†3.

                oui, je le sais bien et cela me gonfle :)

                J'imagine un rts style pierre/papier/ciseau (hélicoptère/char/infanterie) avec juste une notion d'amélioration de chacun des éléments quand il s'affronte entre eux et une grosse pris en compte de la map : ralentissement dans la terre pour garder le coté stratégique des routes, augmentation de la porté et de la vision sur les points haut, effet de la météo sur la vitesse de déplacement, difficulté pour déterminer le coté ami/ennemi des troupes (tir fratricide qui est un vrai problème irl), changer aussi la vision avec la nuit (genre alternance toutes les 5 minutes pendant le jeu). On pourrait ainsi réellement tirer parti du terrain. Il manque aussi la gestion des lignes de ravitaillement.

                J'imagine bien le th√®me comme l'affrontement de compagnie p√©troli√®re pour le contr√īle de champ p√©trolier, avec des objectifs de livraison √† la maison m√®re qui engendre des hausses de budget et donc des livraisons de mat√©riels militaires. Cela permet de remplacer les Fremen par des vrais civiles :)

                "La première sécurité est la liberté"

                • [^] # Re: Temps long

                  Post√©¬†par¬† . √Čvalu√©¬†√†¬†3.

                  J'ai joué à un jeu comme ça (conquest earth) ou pendant un combat, on pouvait miner des ressource pour avoir des crédits pour le prochain combats.

                  ¬ę Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. ¬Ľ Coluche

                • [^] # Re: Temps long

                  Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

                  Tu peux trouver des jeux aussi détaillés, mais au tour par tour.

                  En temps réel, je pense qu'il faut se le coder :-)

                  Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

          • [^] # Re: Temps long

            Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

            C'est un aspect qui est encore flou dans ma t√™te: quel sera exactement le r√īle des joueurs et les interactions possibles?

            Si c'est trop haut niveau, l'IA jouera toute seule, si c'est trop bas, le joueur va √™tre perdu…

            Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

            • [^] # Re: Temps long

              Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†1.

              "C'est un aspect qui est encore flou dans ma t√™te: quel sera exactement le r√īle des joueurs et les interactions possibles?"

              C'est pourtant le plus important, le gameplay.

              "La première sécurité est la liberté"

              • [^] # Re: Temps long

                Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

                J'ai eu le même problème avec Newton Adventure: pour savoir ce que donnerait mes idées, il a fallu écrire un prototype avec 90% du code final.

                Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

            • [^] # Re: Temps long

              Post√©¬†par¬† . √Čvalu√©¬†√†¬†4.

              Un truc que j'avais bien aim√© dans un dont je ne me souviens plus, c'√©tait qu'il √©tait possible de faire les deux en m√™me temps: tu peux soit tout pr√©voir, soit tout contr√īler soit tu pr√©vois pour une partie (ou pour la totalit√©) et tu peux reprendre la main sur les unit√©s que tu veux soit parce que tu le veux, soit parce que ton plan ne se d√©roule pas sans accroc.

              ¬ę Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. ¬Ľ Coluche

  • # [HS] Diagramme de s√©quence

    Post√©¬†par¬† . √Čvalu√©¬†√†¬†4.

    J'aimerais savoir si ce diagramme est utile pour certaines personnes. Personnellement, il me semble assez √©vident et je ne vois pas bien l'int√©r√™t de ce diagramme. Je ne cherche pas √† d√©nigrer, uniquement √† comprendre s'il n'y a que moi qui trouve ce diagramme inutile dans la plupart des cas o√Ļ je le vois utilis√©.

    ¬ę Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. ¬Ľ Coluche

    • [^] # Re: [HS] Diagramme de s√©quence

      Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†8.

      Pour moi, c'est la construction du diagramme qui est utile plus que sa consultation, car elle oblige à mettre ses idées en forme.

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

    • [^] # Re: [HS] Diagramme de s√©quence

      Post√©¬†par¬† . √Čvalu√©¬†√†¬†1.

      Hum, ta question est-elle "est-ce que tout le monde trouve que UML c'est de la merde", ou est-elle vraiment innocente ? Ca vaudrait le coup d'un autre journal pour répondre à ça. Ca sent la digression (et le troll) à plein nez.

      Bon, un élément quand même : moi, du texte ou un diagramme UML, ça me donne exactement la même info. Mais parfois, la vision graphique donne une vision d'ensemble en plus.

      Après, ça n'empêche pas UML d'être de la merde.

      • [^] # Re: [HS] Diagramme de s√©quence

        Post√©¬†par¬† . √Čvalu√©¬†√†¬†3.

        Non, je parle spécifiquement du diagramme de séquence. Je trouve un diagramme des classes ou des cas d'utilisation relativement utile par exemple.

        ¬ę Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. ¬Ľ Coluche

        • [^] # Re: [HS] Diagramme de s√©quence

          Post√©¬†par¬† . √Čvalu√©¬†√†¬†2.

          Ah. Dommage, j'aurais bien aimé troller là dessus.

          Ben en l'occurrence, je trouve que là on a une illustration d'un bon usage. Ca aide bien à comprendre comment est initiée une partie, on voit les intervenants, la séquence, les méthodes, etc.

          Dans ce cas, je dirais que je trouve √ßa plut√īt utile, et vraiment enrichissant par rapport √† un texte qui aurait √©t√© lourd et long - et donc chiant.

        • [^] # Re: [HS] Diagramme de s√©quence

          Post√©¬†par¬† . √Čvalu√©¬†√†¬†2. Derni√®re modification le 17 ao√Ľt 2012 √† 15:34.

          Au contraire, moi je trouve qu'un diagramme de s√©quence est bien plus utile qu'un diagramme de classe, puisque sur un diagramme de s√©quence, on ne pr√©juge pas forcement la mani√®re dont les messages/√©v√©nements sont √©chang√©s, ni quelle est la nature des acteurs. √áa peut √™tre des classes, des nŇďuds sur un r√©seau, des services sur une m√™me machine … donc on peut repr√©senter plein de choses avec.

          Alors qu'un diagramme de classe pr√©suppose que l'on utilise principalement de l'orient√© objet, du coup si tu en fait pas ou que √ßa y ressemble de loin (du genre C avec vtable √† la main, policy based design ou collection de petit composants), cela fait un diagramme de classe peu-compr√©hensible ou peu repr√©sentatif… du coup l'utilit√© d'un diagramme de classe est plus restreinte.

          Il y a certes d'autres diagrammes plus adaptés, mais ils sont beaucoup moins connus, et donc moins compris.

          • [^] # Re: [HS] Diagramme de s√©quence

            Post√©¬†par¬† . √Čvalu√©¬†√†¬†3.

            Alors qu'un diagramme de classe présuppose que l'on utilise principalement de l'orienté objet, du coup si tu en fait pas ou que ça y ressemble de loin

            Et si tu fais de la danse classique, ça n'aide pas du tout. Je parle évidemment de l'utiliser dans le cadre du développement objet.

            Ce que je reproche au diagramme de séquence (sauf cas particulier) , c'est qu'il est soit trop général et donc peu utile soit trop détaillé et il faudra diverger pendant l'implémentation ou il est bien fait et on aurait pu coder pendant ce temps et le programme serait déjà fini (je ne dis pas qu'il ne faut pas réfléchir avant de coder mais on peut faire un brouillon vite fait sans formaliser ça en diagramme de séquence).

            ¬ę Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. ¬Ľ Coluche

            • [^] # Re: [HS] Diagramme de s√©quence

              Post√©¬†par¬† . √Čvalu√©¬†√†¬†2.

              Ce que je reproche au diagramme de séquence (sauf cas particulier) , c'est qu'il est soit trop général et donc peu utile soit trop détaillé et il faudra diverger pendant l'implémentation ou il est bien fait et on aurait pu coder pendant ce temps et le programme serait déjà fini.

              Ça c'est un reproche que l'on peut faire à UML en général, ce n'est pas spécifique à un diagramme particulier. Surtout pour le diagramme de classe : on pourrai l'écrire en code avec des classes presque vides que l'on serait aussi rapide (sauf en Java, mais bien fait pour sa gueule).

              Alors qu'un diagramme de s√©quence pour repr√©senter des messages qui circulent sur un r√©seau entre des h√ītes, cela va prendre bien plus de temps √† impl√©menter qu'a dessiner des diagrammes d√©taill√©s complets, et √ßa va aider √† d√©terminer √† d√©finir quels type de messages doivent √™tre utilis√©s.

              • [^] # Re: [HS] Diagramme de s√©quence

                Post√©¬†par¬† . √Čvalu√©¬†√†¬†3.

                a c'est un reproche que l'on peut faire à UML en général, ce n'est pas spécifique à un diagramme particulier.

                Bien s√Ľr et surtout, √ßa d√©pend des gens. C'est pour √ßa que je demandais aux utilisateurs ici pr√©sent leur avis.

                Surtout pour le diagramme de classe : on pourrai l'écrire en code avec des classes presque vides que l'on serait aussi rapide

                Mais on voit moins bien les liens entre les classes (c'est surtout pour ça que j'aime avoir un diagramme des classes), ce qui est toujours utile même en cours de développement.

                (sauf en Java, mais bien fait pour sa gueule).

                Justement, c'est très facile et rapide à faire en Java.

                Alors qu'un diagramme de s√©quence pour repr√©senter des messages qui circulent sur un r√©seau entre des h√ītes, cela va prendre bien plus de temps √† impl√©menter qu'a dessiner des diagrammes d√©taill√©s complets, et √ßa va aider √† d√©terminer √† d√©finir quels type de messages doivent √™tre utilis√©s.

                Tu décris un détournement du diagramme de séquence qui ne se fait normalement qu'entre des objets.

                ¬ę Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. ¬Ľ Coluche

                • [^] # Re: [HS] Diagramme de s√©quence

                  Post√©¬†par¬† . √Čvalu√©¬†√†¬†2.

                  Mais on voit moins bien les liens entre les classes (c'est surtout pour ça que j'aime avoir un diagramme des classes), ce qui est toujours utile même en cours de développement.

                  Ça peut se générer à partir du code source, tout les bons outils de documentations te génèrent des diagrammes de classes.

                  Tu décris un détournement du diagramme de séquence qui ne se fait normalement qu'entre des objets.

                  J'ai du mal √† voir en quoi c'est un d√©tournement, surtout quand on consid√®re qu'UML d√©finit des messages asynchrones, des messages avec accus√© de r√©ception de dur√©e limit√©e ou pouvant √™tre mis dans une file d'attente … le genre de chose qu'on fait pas simplement entre des objets.

                  Et puis bon, il suffit juste de remplacer l'h√īte par l'objet qui tourne sur l'h√īte et on en parle plus.

                  • [^] # Re: [HS] Diagramme de s√©quence

                    Post√©¬†par¬† . √Čvalu√©¬†√†¬†3.

                    Ça peut se générer à partir du code source, tout les bons outils de documentations te génèrent des diagrammes de classes.

                    Je ne vois pas ce que je dis qui laissait penser le contraire.

                    J'ai du mal à voir en quoi c'est un détournement

                    Je n'ai pas dit que c'était un grand détournement.

                    surtout quand on consid√®re qu'UML d√©finit des messages asynchrones, des messages avec accus√© de r√©ception de dur√©e limit√©e ou pouvant √™tre mis dans une file d'attente … le genre de chose qu'on fait pas simplement entre des objets.

                    Je ne vois pas ce qu'il y a de compliquer à le faire entre des objets. Ce n'est pas trivial mais pas bien compliqué non plus et il y a beaucoup d'outils pour faire ça.

                    ¬ę Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. ¬Ľ Coluche

            • [^] # Re: [HS] Diagramme de s√©quence

              Post√©¬†par¬† . √Čvalu√©¬†√†¬†1.

              Le danger avec cette approche c'est que tu te retrouves vite à ne plus faire de documentation.

              La doc, les specs, ce n'est pas uniquement pour préparer l'étape développement, c'est aussi pour communiquer. Avec les utilisateurs, et valider ce que tu vas faire. Avec tes pairs, pour discuter/valider tes choix. Avec les autres développeurs, qui feront le support/la maintenance. Etc.

              Alors évidemment, il y a l'approche "j'ai mis plein de commentaires, les variables et noms des méthodes sont explicites, pas besoin de doc", mais sur des projets complexes impliquant plein de règles "métier", ça ne marche pratiquement jamais.

              D'ailleurs, c'est pour ça que j'aime pas UML, qui était pensé au début pour pouvoir communiquer avec les utilisateurs, mais qui est illisible pour qui n'est pas dans l'informatique et déjà un peu versé en UML.

              • [^] # Re: [HS] Diagramme de s√©quence

                Post√©¬†par¬† . √Čvalu√©¬†√†¬†3.

                Je trouve qu'un diagramme de séquence complexe est illisible (dès qu'il y a quelques boucles ou option), je préfère un schéma différent accompagné de beaucoup de texte et s'il n'est pas complexe, c'est qu'une documentation textuelle est aussi utile.

                ¬ę Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. ¬Ľ Coluche

                • [^] # Re: [HS] Diagramme de s√©quence

                  Post√©¬†par¬† . √Čvalu√©¬†√†¬†1.

                  Alors je te rejoins totalement ; on néglige souvent la valeur d'une explication textuelle "classique".

  • # img.linuxfr.org

    Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†1.

    Si vous acc√©dez √† linuxfr en https, les diagrammes ne seront visibles que si vous acceptez le certificat de img.linuxfr.org…

    Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

    • [^] # Re: img.linuxfr.org

      Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†1.

      Et si comme Adona√Įe vous ne savez pas comment afficher une image √† sa taille originale, utilisez un clic droit puis "Afficher l'image" dans Firefox ou la commande √©quivalente dans votre navigateur web.

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

    • [^] # Re: img.linuxfr.org

      Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

      Ou si vous faites confiance au certificat de l'autorité CAcert.

  • # Ne pas se compliquer la vie!

    Post√©¬†par¬† . √Čvalu√©¬†√†¬†5.

    Bonjour,

    Tout d'abord, le thème de ce jeu me semble très intéressant, et je vais suivre son développement avec intérêt.

    Mais cela me fait réagir :
    * les unit√©s qui peuvent changer de r√īle: un pompier br√Ľl√© devient une victime √† sauver.

    Il me semble que c'est un peu se compliquer d'emblée la réalisation pour pas grand-chose. En effet, c'est pousser vraiment loin la modélisation, et il me semble que cela ne vaut pas le coup par rapport à ce qu'en tirera le joueur (à mon avis, pas grand-chose), et aux difficultés de réalisations que cela va ajouter. Il me semble de plus qu'il y a bien assez de boulot, sans cette fonctionnalité.

    Pour appuyer mes propos, des exemples ;
    dans Theme Hospital, les médecins ne tombent pas malades (et pourtant c'est un problème dans la vraie vie)
    dans Settlers, les personnages ne changent pas d'affectation
    Et pourtant, ces jeux de simulation sont très amusants, et déjà bien complexes.
    (Bon, ma culture de jeux vidéos est très faible, et je joue peu ces dernières années, donc ce sont des exemples de vieux jeux propriétaires)

    A contrario, diviser le terrain en cases me semble assez évident comme simplification pour ce type de jeu.

    Sinon, concernant ton diagramme, j'ai du mal à comprendre ce que représentent les classes :
    Entity
    Feature
    UpdatableFeature
    Mission
    Pourrais-tu en dire un peu plus?

    • [^] # Commentaire supprim√©

      Post√©¬†par¬† . √Čvalu√©¬†√†¬†4.

      Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: Ne pas se compliquer la vie!

      Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

      Je vais commencer par la fin et expliquer les différentes classes:

      Entity repr√©sente un √©l√©ment de la simulation, √ßa peut √™tre une case du terrain, un camion de pompier, un pont, une victime…

      Une entit√© est d√©finit par un ensemble de Feature, qui sont ses propri√©t√©s ou ses comp√©tences. Par exemple, les √™tres humains ont tous une feature Health, un pompier √† la feature ExtinguishFire, un feu ou une explosion peut blesser un humain gr√Ęce √† sa feature Wound…

      Certaines features qui peuvent avoir une action dans le temps impl√©mentent Updatable que la simulation appellera √† chaque tick (pas de temps). Par exemple une maladie infligera des d√©g√Ęts de plus en plus importants √† ses victimes au cours du temps.

      Mission est simplement la sp√©cification d'une mission que le joueur peut affecter √† une unit√© (chercher des victimes dans une zone, √©teindre un feu √† tel endroit…).

      Pour le changement de r√īle en cours de jeu, il suffit d'ajouter ou de retirer certaines features √† une unit√©.

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

  • # graphisme

    Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

    Pour ce genre de jeu, il ne serait pas plus joli et moins couteux en temps, de g√©n√©rer une carte en 3D plut√īt que d'utiliser des tiles ou des mod√®les tout fait¬†?

    L'avantage des modèles générés est le coté carré et répétitif qui disparait, ainsi que la variété du graphisme. Il est sans doute possible de trouver un modèle de 3D généré qui est aussi modulaire que ce que fait Minecraft, non ? (en plus, cela serait plus facile de coder les tremblement de terre, ras de marré, tsunami et autre dévastation de la nature)

    "La première sécurité est la liberté"

    • [^] # Re: graphisme

      Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

      Sans doute, mais pour un jeu dans un navigateur, il vaut mieux minimiser la complexité graphique.

      Après si quelqu'un veut s'éclater à coder un client opengl de la mort pourquoi pas :-)

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

  • # UML

    Post√©¬†par¬† . √Čvalu√©¬†√†¬†2.

    Content de voir que le projet avance, mais je me demandais un truc tout con : tu utilise quoi comme mod√©lisateur UML¬†? Il existe sous Linux et en libre¬†? J'en cherche un depuis pas mal de temps mais je trouve pas grand chose de vraiment utilisable et sympa (et sans bugs trop g√™nants, ou qui ne n√©cessite pas de lancer √Čclipse). Du coup tu conseille un truc sp√©cifique¬†?

    • [^] # Re: UML

      Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†3.

      J'ai utilisé DIA, ce n'est pas vraiment un modeleur UML, mais un logiciel de dessin de diagrammes avec quelques formes UML.

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

    • [^] # Re: UML

      Post√©¬†par¬† . √Čvalu√©¬†√†¬†4.

      J'ai fait quelques tests avec Umbrello, √ßa me semblait utilisable sans trop de bugs, sinon j'ai aussi test√© modelio mais vu que tu ne veux pas lancer eclipse…

      ¬ę Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. ¬Ľ Coluche

      • [^] # Re: UML

        Post√©¬†par¬† . √Čvalu√©¬†√†¬†4.

        J'ai oublié de parler d'ArgoUML qui m'avait l'être très bien pour les quelques tests que j'ai fait.

        ¬ę Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. ¬Ľ Coluche

    • [^] # Re: UML

      Post√©¬†par¬† . √Čvalu√©¬†√†¬†1.

      J’ai entendu parler de UMLet, mais je ne sais pas ce qu’il vaut.

  • # Dwarf Fortress

    Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†3.

    Connais-tu Dwarf Fortress¬†? Il me semble que √ßa t'int√©resserait d'y jeter un coup d'Ňďil pour le gameplay, mais aussi pour le d√©veloppement.

    Pour le gameplay:

    Le joueur ne contr√īle directement le d√©placement des unit√©s que lorsqu'elles partent en guerre, soit potentiellement jamais. Le reste du temps, il d√©finit le m√©tier des unit√©s, et dit comment modifier la carte (cultiver ici, chasser tel type d'animal, creuser l√†, tailler ces arbres, d√©river l'eau…) ou quoi fabriquer (nourriture, v√™tements, arbres, b√Ętiments). Cela reste agr√©able √† jouer car on peut faire des milliers choses, et il y a toujours des √©v√®nements surprenants qui donnent un aspect narratif au jeu.

    Chaque unit√© vit sa vie, a un nom, des amis, des qualit√©s qui progressent ou r√©gressent, des pr√©f√©rences, un caract√®re, peut avoir des enfants, tomber malade, mourir, etc. Le joueur apprend √† les conna√ģtre. Certaines unit√©s ne r√©sistent pas au stress par exemple, si un de leur proche meurt, elles deviennent alors ing√©rables, tandis que pour d'autres, ce moment est vite oubli√©.

    Pour le développement:

    Il n'est pas open source, mais il y a des fichiers de configuration modifiables qui donnent une idée de son fonctionnement. En simplifiant, il y a trois choses: les matières, les unités, et les réactions.

    Les matières sont définies par des caractéristiques physiques: masse, densité, couleur, températures de changement d'états (fusion, solidification, évaporation).

    Les unités sont soit des vivants, soit des objets, soit des composants de vivant ou d'objet. Par exemple, l'homme a deux bras, chaque bras est fait de peau, de chair et d'os, qui sont des matières particulières. Les objets sont eux aussi composés de différents éléments, eux-même composés de matières. Vivants et objets ont en outre des caractères: fécondité, sachant nager, voler, marcher, immobile, force, vitesse, masse, tranchant, contenant, habillant, fabriqué avec art pour les objets. Les caractéristiques physiques des unités sont définies par les matières qui les composent: avoir de la peau en or donne beaucoup de valeur à l'animal, outre qu'il est très résistant.

    Les réactions définissent ce qui se produit quand on mélange plusieurs unités: Le champ et la graine donnent une plante, la farine et l'eau donnent du pain, etc.

    À partir de ces trois choses (matières, unité, réactions), il est possible de définir tout l'univers. Ainsi, hormis les réactions, c'est le moteur physique qui gère la plupart des évènements (un saut brisé voit son eau couler par terre).

    • [^] # Re: Dwarf Fortress

      Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

      J'en ai beaucoup entendu parler, mais le mode ASCII ART me rebute. J'attends de voir ce que donnera le clone plus graphique A Game of Dwarves.

      L'idée d'un monde qui a sa vie propre et sur lequel on intervient que de temps en temps me plait beaucoup et si je réussis à écrire un bon moteur, je le réutiliserais sans doute pour d'autres styles de jeux.

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

      • [^] # Re: Dwarf Fortress

        Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†1.

        On peut remplacer l'ASCII ART par des "packs graphique" si tu veux tester

      • [^] # Re: Dwarf Fortress

        Post√©¬†par¬† (site web personnel) . √Čvalu√©¬†√†¬†2.

        le mode ASCII ART me rebute

        Peut-√™tre devrais-tu r√©viser cet avis. Entre l'ascii art et des tiles pixellis√©s, il n'y a pas grande diff√©rence. Dans les deux cas, le regard n'est pas tourn√© vers l'image elle-m√™me, mais vers ce qu'elle symbolise, et √©trangement, √† travers l'ascii, on ¬ę¬†voit¬†¬Ľ.

        On voit les abeilles derri√®re les ¬ę¬†.¬†¬Ľ, le chat derri√®re le ¬ę¬†c¬†¬Ľ, les licornes courir en troupeau dans la for√™t, les cristaux dans la cave, on voit couler la rivi√®re souterraine et s'√©lever la tour au sommet de la montagne, on voit le soleil qui rougeoie et le ciel qui bleuoie.

        Regard mêlé d'imaginaire, porté par la narration plus que par l'image.

        Ouvrir un tel regard, n'est-ce pas le but du jeu vidéo ?

      • [^] # Re: Dwarf Fortress

        Post√©¬†par¬† . √Čvalu√©¬†√†¬†1.

        Dans le genre "refonte graphique de Dwarf Fortress" avec quasiment exactement le même gameplay tu as aussi Towns : http://www.townsgame.com/

        En plus tu peux télécharger la démo pour te faire une idée

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.