Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » TLT : RPG magique (et un moteur de jeu/rendu expérimental, Azur)
Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

TLT : RPG magique (et un moteur de jeu/rendu expérimental, Azur)

Posté le 29/06/2021 19:06

Ça fait (très) longtemps que je veux faire un bon RPG temps-réel avec un accent sur la notion de magie, et l'univers (que je développe au papier et dans ma tête par petits bouts depuis quelques années) a donné le nom «TLT» ; c'est juste un acronyme, mais c'est presque devenu coutumier de ne pas donner le nom complet, alors je m'y tiens pour l'instant.

Synopsis

Le cœur du concept c'est la notion de magie de l'univers. Toute l'histoire se passe dans un monde où la magie est un élément naturel et dont l'existence est bien connue, mais qui est très niche parce qu'on n'en connaît pas les principes et que peu de gens arrivent à s'en servir pour faire peu de choses. Vous pouvez imaginer une époque type Renaissance, pas encore d'industrie à proprement parler, mais plus raffinée et intellectuellement développée que du médiéval.

Lorsque des éléments systématiques sur le fonctionnement de la magie sont découverts, élargissant à la fois ses applications et son public, la société se reforme autour de cette science et technologie, et soudain tous les enjeux se mettent à tourner autour : le génie civil, l'armement, les relations politiques et internationales ; mais aussi la gestion de l'énergie, l'automatisation, et l'industrie, qui se créent du fait des nouveaux moyens disponibles.

TLT raconte le début de cette histoire, de la période où la magie est découverte jusqu'aux premiers conflits internationaux majeurs. Parce que sans surprise, c'est l'armement qui profite de la nouvelle technologie en premier, qu'on l'ait voulu ou non.

Théorie magique

La pièce de voûte de tout l'univers donc c'est cette magie. Le but ici c'est bien d'avoir un système de magie «dur», où le pourquoi du comment de chaque usage de la magie est expliqué. Pour résumer la vidéo en une phrase, moins on explique un système de magie (eg. le seigneur des anneaux) moins il est légitime/raisonnable de faire reposer des enjeux importants dessus, sinon on trahit les attentes et connaissances des spectateurs/joueurs. Et donc là je compte bien tout expliquer.

Pour vous donner une idée des grands principes, la magie c'est similaire au calcul mental. Tous les êtres conscients peuvent l'utiliser modulo explications et entraînement. Tout comme on peut retenir et combiner des nombres mentalement quand on fait du calcul, on peut conserver et combiner de l'énergie quand on fait de la magie. Et tout comme on peut écrire, dire, ou mettre en œuvre de diverses façons les résultats des calculs dans le monde physique, on peut aussi manifester l'énergie manipulée de différentes façon dans le monde physique.

J'agite les mains pour expliquer où exactement est l'énergie quand on «calcule» et comment la conversion avec les énergies du monde physique se font (si quelqu'un connaît un modèle compatible avec la physique moderne je prends). Mais une fois que cette partie est admise on peut rentrer dans le cœur du sujet.

Dans ce monde qui vient de découvrir la magie, l'enjeu majeur consiste à la systématiser (rendre son comportement reproductible avec le plus de fidélité possible) puis à la passer à l'échelle (construire des systèmes magiques de plus en plus complexes). Comme c'est un humain qui «calcule» chaque sort, il y a besoin de techniques pour rendre le procédé aussi simple que possible ; simplification des règles de «calcul», représentations visuelles, etc.

La version actuelle de la théorie (la plus prometteuse pour l'instant) consiste en une seule primitive de «calcul» qui déplace de l'énergie selon une règle aussi simple que possible. La primitive s'appelle un limiteur asymétrique (le nom est compliqué à cause de la longue lignée d'objets l'ayant précédé) et ressemble à ça.


L'énergie attend dans les entrées en haut. Lorsque c>0, le limiteur peut être activé, auquel cas l'énergie traverse du haut vers le bas. La valeur c est le «contrôle» du limiteur, il indique quelle quantité d'énergie est autorisée à traverser. L'entrée est i₁+i₂, et du coup la sortie c'est min(c, i₁+i₂). Toute l'énergie qui n'est pas autorisée à traverser est rejetée sur le côté. L'énergie du contrôle ressort telle quelle, d'où le trait direct qui traverse sur le dessin.

C'est pas hyper simple, mais quand on sait qu'avec juste une combinaison de ces limiteurs on peut construire une partie de l'arithmétique, de la logique booléenne, du stockage/des mémoires, des horloges et des systèmes synchrones, sans même supposer que les limiteurs sont activés en même temps ou à intervalles réguliers, je dirai que c'est pas mal.

J'ai pas mal de résultats très prometteurs sur cette théorie, mais comme je ne me fais pas confiance pour prouver des sorts complexes au papier je prépare un simulateur pour valider mes résultats !

Gameplay

Le gameplay doit servir l'histoire et l'expérience du protagoniste, qui ne sont pas entièrement définis, donc les mécaniques sont vraiment pas fixées ; mais voilà des idées.

Magie. Le but majeur du jeu (et le point le plus dur) c'est d'intégrer une notion de magie toute théorisée dans un RPG. Je voudrais que le joueur puisse découvrir et apprendre à utiliser le système de magie en même temps que le protagoniste, et concevoir des sorts au cours du jeu.

Bien sûr il n'est pas question de faire assembler des limiteurs asymétriques (ce serait horrible ), mais de présenter une version plus haut niveau de la chose. Un peu comme si je présentais Scratch au joueur après avoir inventé le transistor, si vous voulez.

Cette partie se clarifiera sans doute quand j'aurai atteint des aspects vraiment haut niveau du système de magie ; pour l'instant j'ai surtout travaillé sur le partie abstraite («calcul») et pas encore sur les interactions avec le monde physique, donc ça reste indéterminé. Mais il y a plusieurs options permettant au joueur de s'investir au niveau qui lui convient, donc je suis assez confiant que ce sera intéressant à jouer.

Combat. L'histoire impose pas mal de combat, et ça colle pas mal au style du Action-RPG aussi, donc ce sera probablement la mécanique principale pour accompagner la magie. J'aimerais être économe en mécaniques pour ne pas m'éparpiller, donc je pense que les statistiques et techniques de combat seront limitées aux équipements portés et à un arbre de compétences, sans système de niveau/XP (les points de compétences étant distribués au cours du scénario).

Initialement je voulais faire reposer l'intégralité du système de combat sur la magie, mais il est trop compliqué de formaliser de façon convaincante dans un sort (qui n'est qu'un diagramme) toutes les directions physiques («vers l'arrière»), ou les formes (sphère, cylindre), ou les timings. Du coup, je m'appuie à la place sur les entrées du joueur ou les compétences de combat physique (une liste fixe) pour exprimer ces notions, ce qui me donne un mélange de combat physique et de magie.

Environnement. J'aimerais pouvoir utiliser la magie pour autre chose que le combat, parce que l'univers s'en sert aussi dans plein d'autres situations (rien que le génie civil par exemple), mais je ne sais pas si j'arriverai à trouver des tâches/actions raisonnables pour réaliser ça.

Scénario. Le jeu sera probablement assez linéaire pour coller à l'histoire (genre Half-Life premier du nom), ce qui me permet aussi de définir assez peu de lieux et de me concentrer sur les mécaniques.

Aspects techniques et plan

Récemment j'ai infiltré KikooDX et Masséna (ils disent qu'ils m'ont «pris en stage» mais j'aurai le dernier mot !) pour avoir tous les protips de développement de jeux vidéos, vu que mon domaine c'est plutôt le genre gint et que les méthodes sont vraiment pas les mêmes. x)

J'ai vraiment pas les réflexes qu'il faut pour aller vite mais je m'accroche, vous verrez apparaître rapidement un petit jeu de combat marrant (co-op avec Masséna) si j'arrive à me concentrer dessus.

Ce que j'ai concrètement, en ignorant les idées :
  • Des documents décrivant la théorie des limiteurs asymétriques ;
  • Des notes sur l'univers avec en particulier un chapitre de narration qui raconte la fin de TLT (qui est plus le début de l'histoire principale de l'univers) ;
  • Un moteur de rendu (... dans le futur, de jeu, mais pour l'instant de rendu) qui supporte SDL sur PC, SDL/emscripten dans le navigateur, et gint sur Graph 90+E avec des méthodes pétées. Des détails arriveront plus tard.
  • Et le début d'un simulateur pour valider les résultats théoriques.

Programmer les grandes lignes du jeu (map, combat, physique, etc) n'est pas particulièrement difficile, mais comme les détails de la magie auront beaucoup d'influence dessus je me précipite pas.

Voilà voilà, maintenant que j'ai un topic je posterai des update sur tout ce qui tourne autour de ce jeu, vu que j'ai toujours un pied dans un des aspects.

@RDP avant que j'oublie.

Fichier joint


1, 2 Suivante
Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 29/06/2021 19:30 | #


OwO

oui, ça fait longtemps
Mais avec la hype de maintenant ça va paraitre encore plus long avant la sortie

PS: si t'as des soucis sur le "worldbuilding" ya un youtubeur avec une chaine nommée "hello future me" qui fait des vidéos sur le sujet
Shadow15510 Hors ligne Administrateur Points: 5500 Défis: 18 Message

Citer : Posté le 29/06/2021 20:04 | #


Eh ben… Bon courage pour la suite !

Pour le coup de la théorie magique / physique, j'y connais pas grand chose, mais maintenant dans les modèles physique en astronomie ils foutent des particules de partout (champs magnétique, gravité, interactions en tout genre…), je sais pas trop si ça correspond à ce que tu cherches ou pas du tout, mais avoir un système de magie à coup de particules élémentaires (lôl, on sent venir le magiton là ) ça me semble marrant… xD
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 29/06/2021 20:09 | #


je plussois Sha-chan sur les particules elementaire pour le coup~

bon c'est sans doute pas aussi simple qu'il le laisse entendre, mais ça merite de se pencher dessus. faut juste trouver quelqu'un qui s'y connais un peu.

regardes autour d'elle

m*rde…
Redeyes Hors ligne Membre Points: 630 Défis: 7 Message

Citer : Posté le 29/06/2021 20:50 | #


Wow, ce puissant projet de jeu RPG!

Les mécaniques sont profondément étudiées et l'histoire qui va avec semble si intéressante!
Ca a l'air d'un bien gros travail tout ça, bon courage! J'ai hâte de le voir prendre forme petit à petit!

(Youpi, un autre acronyme à 3 lettres xD)
Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 29/06/2021 21:56 | #


Hackcell a écrit :
oui, ça fait longtemps
Mais avec la hype de maintenant ça va paraitre encore plus long avant la sortie

Ha ha oui toi t'as vu le (presque) tout début !

Merci pour Hello Future Me! La vidéo liée dans le post est de lui, mais j'ai pas perdu mon temps à en regarder une autre. J'y retournerai

Shadow15510 a écrit :
Pour le coup de la théorie magique / physique, j'y connais pas grand chose, mais maintenant dans les modèles physique en astronomie ils foutent des particules de partout (champs magnétique, gravité, interactions en tout genre…), je sais pas trop si ça correspond à ce que tu cherches ou pas du tout, mais avoir un système de magie à coup de particules élémentaires (lôl, on sent venir le magiton là ) ça me semble marrant… xD

J'ai tenté à un moment. La difficulté que ça pose c'est que si ton objet élémentaire est une particule (avec une position, probablement une vitesse, et d'autres propriétés mécaniques) le fondement des grands principes devient géométrique.

Et même si ça ne pose pas de problème du point de vue théorique (il n'y a qu'à voir tous les phénomènes physiques qui ont ce style), c'est vraiment pas pratique à étudier sans coller des grosses équations et des intégrales partout. C'est aussi très casse-pieds à représenter sur des diagrammes du fait qu'un diagramme n'a pas d'intuition géométrique.

J'ai un peu quitté cette idée quand j'ai décidé de laisser les entrées et compétences du joueur s'occuper de l'aspect géométrique. C'est un peu comme un sabre dans la vraie vie : il n a pas de fonctions particulièrement géométriques, ton cerveau et tes bras sont responsables de la trajectoire, vitesse, courbe de la lame.

Hackcell a écrit :
bon c'est sans doute pas aussi simple qu'il le laisse entendre, mais ça merite de se pencher dessus. faut juste trouver quelqu'un qui s'y connais un peu.

regardes autour d'elle

m*rde…

Ouais les grosses équations d'opérateurs vectoriels je les vois venir de très loin. xD

Redeyes a écrit :
Wow, ce puissant projet de jeu RPG!

Les mécaniques sont profondément étudiées et l'histoire qui va avec semble si intéressante!
Ca a l'air d'un bien gros travail tout ça, bon courage! J'ai hâte de le voir prendre forme petit à petit!

(Youpi, un autre acronyme à 3 lettres xD)

Merci beaucoup ! Venant de toi c'est encore plus un compliment.

Oui c'est un autre acronyme à 3 lettres, faudra s'y faire.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 29/06/2021 23:08 | #


Lephenixnoir a écrit :
Tu veux pas écrire ça sur le topic à tout hasard ? :3

Lez go! Voici la (courte) discussion, avec des compliments par la suite.


J'espère que tu parleras de l'esclavage dans ton jeu Lephe. C'est dans un cadre équivalent à la Renaissance, et avec la magie il y a beaucoup de potentiel.

Lephenixnoir a écrit :
Hmm je sais pas comment ça se passe. Mais il n'y pas de races vraiment variées sur ce continent et il n'y a pas beaucoup de voyages, donc pas sûr qu'il y ait le bon prétexte pour expliquer de l'esclavage.

L'esclavage date d'avant la ségrégation. Tu n'es pas obligé de faire une des (trop nombreuses) formes existantes dans notre monde.
Notez bien que je parlais de la ségrégation dans le contexte d'esclavage.

Si ce n'est pas dans les vibes de ton jeu oublie ce que j'ai dit. C'est très bien les mondes fantasy sans les perversions du notre, la vie est déjà assez difficile.

Lephenixnoir a écrit :
système de magie «dur»

Bon dans ton explication tu ne prends pas trop en compte les inconnues. Dans Le Seigneur des Anneaux [repris car donné comme exemple] ils ne connaissent pas toutes les nuances de la magie, l'univers reste cohérent. Je considère qu'Harry Potter est carrèment risible niveau cohérence [mon exemple de « soft magic »]. Mais si ton monde « découvre » la magie, ils n'auront pas tout en main. Comme nous avec la physique et les mathématiques.
J'suppose que t'y as déjà pensé mais j'aime pinailler :3

Spoiler : Lephé y avait pensé.


Maintenant, les exclus !

Le système de magie : Ça a l'air très intéressant. J'espère que ces règles t'aideront à contruire ton monde (et le gameplay !) C'est assez drole de voir qu'au final, la magie est un set de règles physiques qu'on ajoute aux notres.

Scénario : bien vu le scénario linéaire. Ça te permettra de satisfaire ton coté perfectioniste

Pro-to-tip (hihi) : prototype ton système de combat ASAP, plusieurs fois si nécessaire. Le gameplay sera la partie du jeu qui le distinguera d'un livre ─ je crois t'avoir déjà linké un article sur l'art en game design ─ et au vu de ton système magique très intriguant je pense que tu devrais trouver un moyen de l'exploiter qui corresponde à l'univers. Pour un Action RPG, je crois savoir que tu as déjà un moteur (wink), mais tu peux aussi essayer des choses, disons, plus exotique, pour mettre en avant ton univers. Le prototypage papier te sera bien utile si tu as du mal à programmer du code jetable Et si, au final, Action RPG is the goto, parfait ! Tu auras vu les alternatives, et surement appris des choses.
Communique à travers le joueur et ses interactions. Si tu veux des exemples je peux en donner, je fais plus de designs que de jeux finis.

Maintenant, des quotes avec mon opinion pour te questionner sur le game design. Toutes tes idées sont (très) bonnes, je fais juste des remarques pour rendre cette étape ─ je l'espère ─ plus intéressante pour toi.

Lephenixnoir a écrit :
arbre de compétences

Un Arbre de compétence colle-t-il à un système de magie où le joueur découvre ? Si on pense à un arbre de compétence traditionnel, clairement pas. Rend ton arbre unique. Après l'Arbre à chat, considère l'Arbre à choix.

Lephenixnoir a écrit :
sans système de niveau/XP (les points de compétences étant distribués au cours du scénario)

C'est très malin, je me demande comment tu justifieras cette progression et l'intégrera avec la philosophie de l'Arbre.

Lephenixnoir a écrit :
J'aimerais pouvoir utiliser la magie pour autre chose que le combat, parce que l'univers s'en sert aussi dans plein d'autres situations (rien que le génie civil par exemple), mais je ne sais pas si j'arriverai à trouver des tâches/actions raisonnables pour réaliser ça.

C'est très intéressant, mais réfléchis au cadre. Ton jeu est déjà assez complexes sans. Heck, rien ne t'empeche de faire un Sim City dans cet univers plus tard (:

J'espère que vous apréciez l'effort de rédaction immense que j'ai mis dans cette réponse. Il s'est un peu dilué, mais je vous assure qu'il est là =)

Ah et surtout, TLT hype train ! C'est vraiment le style de jeu qui m'intrigue profondèment, et je crois en toi Lephé.
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 29/06/2021 23:45 | #


Si ce n'est pas dans les vibes de ton jeu oublie ce que j'ai dit. C'est très bien les mondes fantasy sans les perversions du notre, la vie est déjà assez difficile.

En vrai je te cache pas qu'inconsciemment j'ai toujours poussé ma vision optimiste sur la société décrite, donc même si j'ai pas trop de mal à coller des défauts et dérives (... le scénario complet de TLT en est un gros), j'avoue que l'esclavage ça ne m'est jamais venu à l'idée.

Par contre il y a de grandes inégalités de niveaux de vie, principalement à cause de moyens réduits, dans la principale région d'intérêt. Ce n'est clairement pas un monde «facile à vivre» dans l'ensemble, et l'histoire est assez sombre.

Mais si ton monde « découvre » la magie, ils n'auront pas tout en main. Comme nous avec la physique et les mathématiques.

Exactement ! Merci d'avoir soulevé ce point.

La façon dont je conçois la théorie est en partant du modèle élémentaire parce que c'est absolument indispensable pour s'assurer que tout est cohérent, bien défini, et que le système a toute l'expressivité dont j'ai besoin. (Et aussi j'ai trop envie de pouvoir écrire des chapitres entiers sur la rétro-ingénierie de sorts, la puissance de calcul du système, les mille et une façons de synchroniser des sorts, etc. xD)

Mais il est clair que du point de vue historique, ça ne peut pas se passer comme ça. J'ai quelques grandes idées de phénomènes magiques «de haut niveau» faciles à observer et qui permettent d'appréhender le système et d'évolutions ensuite, mais c'est vrai que j'espère surtout que la théorie sera assez propre pour avoir une approche intuitive. Par chance, si tu reprends l'analogie avec le calcul mental, ce n'est pas très dur d'avoir des systèmes primitifs très inefficaces (par exemple où tu calcules des opérations compliquées de tête) donc j'ai déjà quelques garanties de ce côté-là.

Le système de magie : Ça a l'air très intéressant. J'espère que ces règles t'aideront à contruire ton monde (et le gameplay !) C'est assez drole de voir qu'au final, la magie est un set de règles physiques qu'on ajoute aux notres.

Masséna parlait de Noitra tout à l'heure et je pense que ça m'inspire sur quelques points importants. L'idée c'est que je suis obligé de limiter les interactions avec le monde physique à une collection finie qui est codée et pour laquelle il y a, pour caricaturer, des graphismes fournis. Ce formalisme oblige à avoir des règles limitées qui ont un côté sympa d'étendre les actions possibles, mais qui ne sont pas trop l'esprit libre et constructiviste de créer «tous les sorts que tu veux».

Noitra me fait réaliser qu'il est possible de définir les interactions d'une façon assez fine, et peut-être même de profiter de code ou de génération automatique pour ne pas trop dépendre d'assets prédéterminés. Mon style est beaucoup moins sandbox puisque la map sera fixe selon toutes probabilités, mais ça m'a données des idées pour des interactions avec les entités/ennemis/objets. Avec cette flexibilité j'ai de bons espoirs que le système de magie soit plus fun à explorer.

prototype ton système de combat ASAP, plusieurs fois si nécessaire. Le gameplay sera la partie du jeu qui le distinguera d'un livre ─ je crois t'avoir déjà linké un article sur l'art en game design ─ et au vu de ton système magique très intriguant je pense que tu devrais trouver un moyen de l'exploiter qui corresponde à l'univers.

Oui, c'est mon intention ! J'ai du progrès à faire dans ce domaine comme tu le sais, mais j'y arriverai.

Cela dit, le système de combat tout seul sans la magie ne serait vraiment pas intéressant (et ne testerait pas ce que le jeu essaie d'être, comme devrait tout prototype si j'ai bien suivi), d'où l'accent que j'ai mis sur la théorie jusqu'ici.

Pour un Action RPG, je crois savoir que tu as déjà un moteur (wink), mais tu peux aussi essayer des choses, disons, plus exotique, pour mettre en avant ton univers. Le prototypage papier te sera bien utile si tu as du mal à programmer du code jetable Et si, au final, Action RPG is the goto, parfait ! Tu auras vu les alternatives, et surement appris des choses.

J'ai pas trop peur de réviser le gameplay pour ne pas tomber dans le problème de «concevoir le gameplay avant la vision», mais quand je cherche d'autres idées pour mettre en œuvre l'univers je ne tombe sur rien de plus convaincant. Je suis pas hyper imaginatif après x")

Un Arbre de compétence colle-t-il à un système de magie où le joueur découvre ? Si on pense à un arbre de compétence traditionnel, clairement pas. Rend ton arbre unique. Après l'Arbre à chat, considère l'Arbre à choix.

Pardon c'était peut-être pas clair, l'arbre de compétences c'est pour le combat physique et quelque stats. Ça correspond au build hors magie, avec l'avantage conséquent que selon le type de compétences physiques que tu as (corps-à-corps vs. à distance, mêlée vs. AoE, offensif vs. défensif, quelles formes, distances, etc) ton style magique varie parce que les sorts dépendent du «support physique» que tu leur donnes.

Le système de magie sera probablement beaucoup plus organiques, et pour l'instant je n'ai jamais envisagé autre chose que de donner accès à tout le système au joueur.

C'est très malin, je me demande comment tu justifieras cette progression et l'intégrera avec la philosophie de l'Arbre.

Probablement justifiée par une petite pastille rouge avec un "1" sur l'icône appropriée ?

C'est très intéressant, mais réfléchis au cadre. Ton jeu est déjà assez complexes sans. Heck, rien ne t'empeche de faire un Sim City dans cet univers plus tard (:

La bonne question selon moi, en plus de si c'est faisable, c'est si ça apporte plus pour raconter l'histoire que d'autres parties du jeu (que je pourrais sacrifier en échange pour maintenir la simplicité). Et... ça a clairement du potentiel, c'est le genre de trucs qu'il me paraît utile de prototyper. Je veux dire tu peux difficilement t'opposer à la philosophie de «la magie comme force armée/de domination» (une question récurrente dans le scénario) quand le jeu s'en sert que pour le combat. ^^"

(Et puis ça m'éviterait d'avoir à inventer des monstres stupides à tabasser si on peut avoir des tâches plus significatives à accomplir. Auquel cas j'éviterais 100% la side quest consistant à tuer 200 goblins archers ou à trouver la potion perdue de whatever. x3)

Merci pour les retours... vraiment motivants <3
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 29/06/2021 23:50 | #


L'esclavage c'est surtout pour repondre a un besoin de main d'oeuvre peu onereux, donc selon les capacité de la magie ça peut ne pas avoir de sens (pourquoi nourrir et loger du monde pour miner si un mage peut le faise seul et sans risque, etc…). Après je parle d'esclavage de grande échelle comme durant l'époque coloniale, un systéme ou un humain peut appartenir à un autre reste possible, mais à plus petite échelle.

Sinon vu que c'est pas évident pour tout le monde, un systéme de magie "douce" n'est pas négatif, c'est juste une differente approche de comment la magie interagie avec ton histoire (mais qui peut mener à des trous dans ton scenar si tu fais pas gaffe, mais c'est juste rajouter un element qui pourrait poser probléme si on fait pas gaffe, magie ou non, il reste plein d'autre moyen de se planter)
Eragon Hors ligne Gardien des bots Points: 435 Défis: 0 Message

Citer : Posté le 30/06/2021 10:45 | #


L'histoire de l'esclavage a un sens. Tu peut prendre comme esclave des mages qui vont extraire des ressources minérales a ta place (tu est trop puissant pour utiliser ta magie a une tâche aussi basse que ça)
Les esclaves peuvent aussi être des hommes/femmes a tout faire, ménage, réparations… etc (c'est une des formes d'esclavages la plus répandue dans le monde en 2019…)
Ou encore des esclaves sexuels… je suis sûr qu'en cherchant on peut encore trouver plein de sujets pour lesquels la magie n'a pas d'utilité.


J'ai eu une idée foireuse, je la laisse là, vous en faites ce que vous voulez.
Eragon a écrit :

Éventuellement pour une magie «physique» on peut se baser sur la fameuse «énergie noire» le la physique quantique actuelle.

Elle se trouve derrière toute matière, elle régie les lois de la physique, et donc peut les modifier. Elle peut être contrôlé par les esprits, car un esprit ne se trouve pas dans le plan physique de l'existence mais dans le plan spirituel/quantique ce plan d'existence est le plan dans lequel l'énergie trouve sa source et sa puissance. Ainsi un esprit humain, lié au corps de cet humain par l'énergie, peut contrôler le corps de l'humain.
Par exemple, mon esprit est «né» dans le plan quantique, puis il a été lié a un corps humain par l'énergie noire, la seule manière pour mon esprit d’interagir avec le monde physique se fait par cette énergie, donc quand je décide de bouger, en réalité mon esprit demande a l'énergie d'envoyer un signal électrique dans mes nerfs.

L'énergie doit donc avoir quelques règles supplémentaires pour le plan quantique, le fait qu'elle crée les esprits et les lie aux humains quand ils naissent doit être régie par un certain nombre de règles.
Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 30/06/2021 11:00 | #


Hackcell a écrit :
Sinon vu que c'est pas évident pour tout le monde, un systéme de magie "douce" n'est pas négatif, c'est juste une differente approche de comment la magie interagie avec ton histoire

Oui, je pourrais certainement partir là-dessus... mais le pouvoir que ça donne au lore est bien plus réduit. Et puis c'est un peu le but de l'expérience de faire un système de magie le plus dur possible, je pense que c'est la constante dans l'équation.

Eragon a écrit :
L'histoire de l'esclavage a un sens. Tu peut prendre comme esclave des mages qui vont extraire des ressources minérales a ta place (tu est trop puissant pour utiliser ta magie a une tâche aussi basse que ça)

N'oublie pas que les magiciens initialement sont très peu nombreux (juste ceux qui sont assez doués pour utiliser deux/trois sorts à l'intuition) et qu'ils ne savent pas faire grand-chose d'utile avec. Ce n'est clairement pas une «force de travail».

Lorsque la magie est formalisée, les possibilités s'élargissent beaucoup, mais il y a toujours assez peu de magiciens (la théorie évolue plus vite qu'on ne peut former et remplacer une génération de personnes !) donc tu ne peux pas les gaspiller.

Au contraire, la logique voudrait que le petit peuple soit exploité dur pour obtenir les ressources nécessaires à la recherche. C'est moins original mais «c'est comme ça» (l'approche sur la découverte de la magie y oblige, même si je voulais avoir de l'esclavagisme dans l'autre sens ce serait difficile à justifier).

Elle peut être contrôlé par les esprits, car un esprit ne se trouve pas dans le plan physique de l'existence mais dans le plan spirituel/quantique ce plan d'existence est le plan dans lequel l'énergie trouve sa source et sa puissance.

Ah, la fameuse scientologie quantique.

En vrai j'esquive un peu ces questions-là de mon côté, avec l'analogie calcule mental dont on se doute bien que les plantes ne peuvent pas le pratiquer (pouvoir faire du calcul mental = même condition qu'être conscient ou être un esprit dans ton cas). Note que chez moi les animaux peuvent pratiquer la magie
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 30/06/2021 11:09 | #


Pour reprendre l'exemple hypothetique du mage pour miner (si la magie le permet), comment faire pour qu'il ne s'echape pas, un tel pouvoir va impliquer des possibilité pour lui, donc tu prend trois autres mage pour le surveiller ? pas très rentable. On pourrait imaginer un sytéme contrôle d'esprit, mais sans plus d'info sur le sytéme magique, je préfere ne pas m'avancer. Pour le reste, ça reste possible, mais ça depend de comment est repartit la magie dans la population, plus la population y a accées, plus la sociéte va être egalitaire (voir les differentes societé dans Avatar). Après, du fait que lephe fasse de la zone de depart un endroit pas super sympa, ça veut que soit certain n'y ont pas accées, soit c'est compliqué.


De plus quand on dit matiére noire aujourd'hui, ça veut dire "particule elemantaire pas encore detectable" et ça ne resoud pas le probléme que ça va être des equations vachement compliqué
Shadow15510 Hors ligne Administrateur Points: 5500 Défis: 18 Message

Citer : Posté le 30/06/2021 11:22 | #


Après, c'est peut-être possible de s'éloigner un peu du formalisme scientifique que tu voulais et de voir la magie comme une sorte de conscience ? J'y pense en voyant ta phrase : "Note que chez moi les animaux peuvent pratiquer la magie"

La magie comme quelque chose d'innée à tous les êtres vivants, mais qui peut être renforcé par un apprentissage… Typiquement le langage, les oiseaux peuvent faire des vocalises, et en l'entraînant certains parviennent à reproduire des sons "humains" (j'entends par là des mots qui ont un sens pour nous).

Après là c'est plus du tout un truc physique ou mathématiques, c'est plus de la biologie et j'y connais carrément rien et en conscience, je suis pas sûr que quelqu'un sache vraiment d'où ça vient… x) Et ça me semble pas le plus pertinent si tu veux des équations derrières, j'ai une sensation de "solution de facilité" xD qui ne résous rien. Après assumer le côté "on sait pas d'où ça vient, mais on sait que tous le monde l'a et on sait travailler avec" c'est pas forcément rédhibitoire… Faudra penser à faire des centres où des gens font des recherches sur l'origine de la magie xDD
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 30/06/2021 11:30 | #


C'est possible oui, mais ce n'est pas l'objectif. Si tu veux la magie est un phénomène clairement établi dans les règles physiques (y compris ce que tu peux faire avec dans l'esprit), ce qui n'empêche pas d'en avoir une version intuitive que les gens doués, ou les animaux, peuvent utiliser.

Si tu t'arrêtes à un phénomène maigrement défini tu élimines toutes les options de développement théorique qui se produisent dans l'histoire (alors certes pas trop dans TLT, quoiqu'un peu sur la fin). Et puis tu réduis le charme d'avoir un système autonome qu'on peut rigoureusement approcher et développer en méta. C'est parfaitement possible, mais c'est pas ce que je cherche à explorer ici.

Notez que je n'essaie pas de réfuter vos idées ; j'ai un plan assez clairement établi pour l'instant (sinon j'aurais pas fait un topic) et je suis encore en train de «présenter» ma vision, donc si je fais des changements maintenant ce sera très fragile. Mais je retiens bien tout ce que vous dites et je n'hésiterai pas à vous en piquer des bouts pour résoudre les problèmes futurs
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Dark storm Hors ligne Labélisateur Points: 11634 Défis: 176 Message

Citer : Posté le 30/06/2021 12:15 | #


D'un point de vue gameplay, ce que tu raconte au sujet de la découverte de la magie et la construction de sorts, tu as l'excellent Magicka qui peut te donner des idées. Il est d'ailleurs en promo à 2,50 € jusqu'au 8 juillet.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 06/07/2021 20:33 | # | Fichier joint


Pour information j'ai implémenté pas mal de code pour la simulation de la magie. (Contexte : j'ai une théorie magique mais je veux pas faire des preuves au papier, je veux la simuler pour vérifier que ça marche.) Ça reste primitif mais voilà un mini-système avec deux limiteurs asymétriques modélisé et rendu.


Ici les deux limiteurs sont du stockage d'énergie (à cause de la boucle entre la sortie de rejet et une des entrées, qui empêche l'énergie de sortir sauf exactement ce qui est demandé), et ils sont liés d'une façon que si on active le limiteur de gauche on a un transfert gauche→droite et si on active le limiteur de droite on a un transfert en sens inverse (en supposant qu'il y a de l'énergie dans le circuit au début).

Rien de très impressionnant, mais on peut bouger, zoomer, etc. C'est du OpenGL presque pur avec Dear ImGui pour les widgets et du rendu custom pour le diagramme. Pour l'instant la simulation n'est pas codée.

Ah si, un truc impressionnant peut-être : on peut le lancer dans un navigateur (quand mon Pi sera up et le simulateur un peu plus solide je vous ferai tester si ça vous intéresse).

Edit : J'ai oublié de le préciser mais oui les lignes droites c'est moche lol.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 10/07/2021 16:06 | #


Côté programmation, j'ai mentionné que le moteur de jeu/rendu utilisé ici était un peu spécial. C'est essentiellement parce que j'ai trouvé des techniques permettant d'accélérer (potentiellement beaucoup) le rendu, et ça donne des résultats assez pétés.

Je vais pas tout décrire d'un coup, mais essentiellement la vitesse à laquelle on peut générer des frames dans une application gint classique est limitée par trois facteurs principaux :

  1. La durée de transfert des données à l'écran ; 396×224 pixels de 16 bits, ça fait 177 kio, et le transfert manuel prend 25 ms ; le transfert par DMA prend 11 ms et c'est la méthode utilisée dans dupdate().
  2. Le temps d'accès à la RAM : la RAM est lente, et lire ou écrire 177 kio avec le CPU (pour les images, sprites, etc) ne peut pas prendre moins de ~6 ms. Pour une image plein écran, comme il faut aussi lire les données dans la ROM ou la RAM, ça varie entre 24 ms et 15 ms selon le format de l'image (plus elle est compacte moins il y a de choses à lire en ROM/RAM plus ça va vite).
  3. Il n'est pas facile d'accéder à la RAM d'une façon efficace en termes de cache, parce que ça nécessite de limiter le nombre de passes. Essentiellement il faudrait dessiner tous les éléments présents sur le 30-40 premières lignes sans toucher aux autres lignes, puis passer aux 30-40 lignes suivantes sans toucher aux premières, et ainsi de suite. Personne ne fait ça (à juste titre).

Avec ça vous ne serez pas surpris de savoir que les jeux temps réel comme par exemple les platformers de KikooDX tournent en général à 30 FPS, soit un budget de 33 ms par frame. Il n'y a pas besoin d'être très calculateur pour voir que 60 FPS, soit 16.7 ms par frame, ça ne passe juste pas. (Cela n'empêche pas le moteur physique de tourner à 60 UPS cela dit.)

Notons que c'est déjà une bonne amélioration par rapport à la Prizm, où les jeux comme le RPG prototypé par Nemhardy durant le concours des 10 ans du site avaient besoin de faire des rafraîchissements partiels pour rester compétitifs. Cet écart est largement dû à la différence de vitesse du matériel, puisque le CPU et le bus vont sensiblement plus vite sur la Graph 90+E, mais aussi en plus faible partie à des améliorations côté logiciel.

Alors comment est-ce qu'on améliore ça ?

La clé est de ne pas utiliser la RAM principale pour manipuler les données graphiques. La RAM principale est irréparablement lente, principalement parce qu'elle est derrière le SuperHyway super loin du CPU et du DMA et de l'écran. C'est pas un défaut de conception, c'est juste qu'on veut pousser les performances assez pour que ce niveau ne soit pas acceptable.

La clé du moteur de rendu que je prépare pour TLT (mais qui sera assez séparé pour être réutilisable si des fous sont intéressés), c'est que toute la VRAM est en fait stockée dans la XRAM, une mémoire intégrée au CPU qui est entre 10 et 20 fois plus rapide d'accès, de 8192 octets. Cette proximité a tout un tas d'avantages, mais aussi tout un tas d'inconvénients, puisque les plus habiles d'entre vous auront remarqué que 8192 < 177 kio.

Les détails techniques de pourquoi c'est plus rapide et combien de cycles on gagne seront probablement détaillés dans le topic d'optimisations que j'ai créé récemment ; je reviendrai plus tard sur ce topic expliquer comment le moteur de rendu marche en termes d'architecture.

Edit : @RDP avant que j'oublie
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 26/08/2021 23:15 | # | Fichier joint


J'ai des nouvelles, parce que croyez-le ou non j'arrive quand même à progresser sur ce projet au milieu de tout le reste.

Pour résumer le post précédent, je ne suis pas satisfait des performances graphiques du modèle de dessin dans la VRAM, et donc je fais autrement. Au lieu de dessiner dans la VRAM (qui est dans la RAM principale), je dessine dans la XRAM, une mémoire beaucoup plus rapide mais aussi beaucoup plus petite (assez pour 8 lignes de l'écran environ).

Pour compenser la taille extrêmement réduite, je fais un rendu par fragments, où je dessine d'abord les 8 premières lignes dans la XRAM, je les envoie à l'écran, ensuite je dessine les 8 lignes suivantes, je les envoie à l'écran, et ainsi de suite. (Le tearing qui peut se produire a des solutions, que j'étudierai plus tard.)

Le système est inspiré d'OpenGL, et procède avec les grandes étapes suivantes :

  1. D'abord on génère un ensemble de commandes mais sans rien dessiner. Chaque commande indique une opération de dessin (donnée par un numéro de shader) et le fragment sur lequel la faire. Si on veut dessiner quelque chose qui croise plusieurs fragments, on génère une commande par fragment concerné.
  2. Une fois que tout ça est fait, on fait un tri stable sur les commandes en ordonnant par numéro de fragment.
  3. Ensuite, on lance le rendu ; les commandes sont lues dans l'ordre, les fragments sont dessinés et envoyés à l'écran les uns après les autres.

Pour l'instant, j'ai codé deux shaders (l'équivalent de deux fonctions de rendu) :

  • Un shader AZRP_SHADER_CLEAR qui efface la totalité de l'écran avec une couleur (comme dclear()).
  • Un shader AZRP_SHADER_TEX2D qui affiche des images (comme dsubimage()) - pas tout à fait fini mais ça vient.

Le choix du terme «shader» est un peu arrogant, mais l'architecture ressemble quand même pas mal à OpenGL, et je pense pouvoir faire des vrais effets de couleur, lumière, et autres graphismes assez forts avec ce système, donc je prends le pari.

Pour vous donner une idée de l'état actuel, mon écran de test ressemble à ça (je l'ai reconstitué à la main, je n'ai pas encore de captures d'écran par USB avec ce système).


Et le plus important de tout, voilà les chiffres, voilà combien de temps ça prend.

Command generation: 235 us
Frame rendering: 2060 us
  Sorting: 1179 us
  Shaders: 773 us
  Overhead: 108 us
R61524 transfer: 7.686 ms

La première étape est la génération des commandes. La plupart du temps est passé dans les images parce que les bandes verticales de tileset que vous pouvez voir touchent chacune 24 fragments, et il y a quelques calculs préliminaires qui sont fait dessus. C'est assez long, mais y'a pire.

Tout en bas vous avez le temps de transfert avec l'écran. C'est séparé pour la lisibilité, même si en réalité le transfert s'entremêle avec le rendu. En tout, ça prend 7.686 ms, ce qui est pas mal du tout. C'est fait par le CPU, ce qui a plusieurs avantages (j'y reviendrai quand je parlerai de l'upscaling x2 et x3). La méthode habituelle avec la VRAM et le DMA prend 11 ms, ça veut dire qu'avant même de dessiner plus vite on a déjà ~3.5 ms d'avance. Sachant qu'un frame c'est 33 ms (30 FPS) ou 17 ms (60 FPS), on ne crache clairement pas dessus.

L'avantage réel est le temps de rendu. Le tri est assez long, 1179 µs pour les 116 commandes dans cet exemple. On peut faire mieux, pour l'instant j'ai simplement utilisé le qsort() de la lib standard, j'optimiserai ensuite (là c'est franchement pas terrible).

Le temps d'exécution des shaders est de juste 773 µs. C'est franchement pas mal, surtout quand on sait qu'il y a 400 µs pour effacer l'écran et donc seulement ~350 µs pour afficher les images. Les chiffres paraissent abstraits comme ça, mais l'effacement de l'écran est 6 fois plus rapide que dclear() !

Le total est plus petit que 10 ms, ça veut dire que cette scène s'affiche à plus de 100 FPS.
Ok c'est bon j'ai leur attention là, go go go drop le @RDP

Que dire d'autre ? Ce système est ultimement limité par la lecture des données, un gros tileset sera toujours lent à afficher parce qu'il faut lire les tiles, je n'ai optimisé que l'écriture. Par contre les effets purement calculatoires ça va y aller. Un exemple con : assombrir tout l'écran. Dans le modèle VRAM ça prend ~12 ms, ce qui est imbitable et ruine le 30 FPS à coup sûr. Ici, ça prend à peine 1 ms, ça passe eazy peasy.

Je pense que c'est pas mal pour une update, je vais pas rester là à cracher des chiffres pendant deux heures. Stay hyped jusqu'au prochain post solide (du gameplay un jour promis)
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5500 Défis: 18 Message

Citer : Posté le 26/08/2021 23:22 | #


Bravo ! Ça fait rêver des perfs pareilles !

J'ai une question, par complètement en rapport avec TLT, mais plutôt sur toutes ces optis : Est-ce que ça va être intégré à Gint de manière native (les systèmes de shaders, les fonctions d'affichage ultra-rapide etc) ?
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 26/08/2021 23:26 | #


Merci ! Pour l'instant intégrer à gint n'est pas mon intention, simplement parce que j'ai envie de coder le jeu sans m'embêter avec les histoires d'API compliquées. Mais c'est dans le moteur de jeu et ce sera réutilisable à coup sûr, à côté des quelques outils supplémentaires (genre la lib de calcul en point fixe en C++).

Plus tard, peut-être l'intégrer à gint... mais il faut bien voir que ce n'est pas aussi polyvalent que le modèle VRAM, et il y a des limites que je n'ai pas mentionné en détails, donc tous les programmes ne peuvent pas l'utiliser, c'est vraiment surtout les jeux. Ça risque de rester en lib externe, même si là encore je promets que ce sera réutilisable.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5500 Défis: 18 Message

Citer : Posté le 26/08/2021 23:28 | #


Aow, une sorte de OpenGL façon Casio du coup ?
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

1, 2 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 82 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd