BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Jeu de rôle sur table original et ses outils : moteur de combat TypeScript (planificateurs ou agents llm, tests Jest) et site de règles Next.js 16 / React 19.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Jeu de rôle sur table original, dans le monde d'Aeonir. Quadrature est un JdR maison construit autour d'un système de dés singulier (quatre dés numérotés 0–5, score final 0–20) et d'un univers à forte identité : une planète quasi-verrouillée à son étoile, dont le terminateur — la frontière jour/nuit — dérive lentement, façonnant quatre peuples. Ce dépôt regroupe à la fois les règles, le site de lecture, un simulateur de combat et les outils de worldbuilding. 🚧 En développement actif. Voir l'état du projet.README 전문 보기 ↗
Jeu de rôle sur table original, dans le monde d'Aeonir.
Quadrature est un JdR maison construit autour d'un système de dés singulier (quatre dés numérotés 0–5, score final 0–20) et d'un univers à forte identité : une planète quasi-verrouillée à son étoile, dont le terminateur — la frontière jour/nuit — dérive lentement, façonnant quatre peuples. Ce dépôt regroupe à la fois les règles, le site de lecture, un simulateur de combat et les outils de worldbuilding.
🚧 En développement actif. Voir l'état du projet.
Ce dépôt mêle trois natures d'œuvre, qui n'appellent pas la même licence. La règle qui les départage est simple : la licence suit la provenance, pas l'emplacement du fichier.
| Ce qui est couvert | Où | Licence |
|---|---|---|
| Code — site, moteur de combat, outils | web/, simulator/, tools/, geo/ | MIT |
| Contenu du jeu — règles, univers, données | rules/, data/ | CC BY-NC-SA 4.0 |
| Illustrations générées par IA | registre data/illustrations.yaml | CC0 1.0 |
Les fichiers situés hors de ces répertoires suivent la nature de leur contenu,
pas leur emplacement : le contenu de jeu sous web/public/ relève de la licence
du contenu, bien qu'il vive dans un dossier de code. Pour les images, c'est le
registre qui fait foi, image par image — ni le dossier ni l'extension.
Concrètement : réutilisez le code comme bon vous semble, y compris commercialement. Les illustrations générées sont dans le domaine public, sans condition ni attribution exigée — l'auteur ne revendique rien de ce qu'un modèle a produit. Pour le contenu du jeu, vous pouvez le partager et l'adapter — scénarios, aides de jeu, extensions — à condition de citer la source, de ne pas en faire un usage commercial et de partager vos adaptations sous la même licence. Jouer, en parler ou en diffuser des extraits dans le cadre d'une partie ou d'une critique n'a jamais demandé d'autorisation. Pour un usage commercial : [email protected].
Le raisonnement qui mène à ces trois régimes — et ce que l'IA fait, ou ne fait pas, dans la fabrication du jeu — est dans la charte d'usage de l'IA.
| Dossier | Rôle | Stack |
|---|---|---|
rules/ | Vault Obsidian — source de vérité des règles et de l'univers | Markdown / Obsidian |
web/ | Site de lecture (livre paginé + PDF), cartes d'action, feuille de personnage | Next.js 16 · React 19 · Tailwind v4 |
simulator/ | Moteur de combat avec agents (scriptés et LLM) | TypeScript · Jest |
tools/ | Calculateur astronomique + cladogramme du bestiaire | Python · Node |
1 meilleur 🟦 + 2 meilleurs 🟨 + 1 aléa, soit 0 à 20.Détail complet : ouvrir le vault rules/ (entrée fr/_index.md)
ou lire le site (web/).
Planète quasi-verrouillée (rotation ≈ période orbitale) : le Soleil se déplace
très lentement dans le ciel, et le terminateur mobile traverse les terres au fil
des siècles. Quatre peuples (Cimes, Neiges, Pluies, Vents) s'y sont adaptés. La
physique du monde n'est pas qu'évoquée : elle est calculée par tools/astronomy.py
(quasi-verrouillage, lune-horloge, saisons polaires asymétriques, gravité 0,75 g…).
Aeonir possède aussi une langue rituelle ancienne (rules/fr/univers/language.md) :
une phonologie à deux registres — voix de pierre (minérale, gutturale) et voix de sève
(vivante, chantante) — où l'inversion sonore encode les antonymes (un contre-sort renverse
l'incantation). Elle outille la génération de noms propres, toponymes, créatures et incantations,
et nomme les quatre peuples : Syldor (Cimes), Vaedor (Vents), Lumidor (Pluies), Sahgdor (Neiges).
Dépôt unique (monorepo) à la racine. Chaque sous-projet reste autonome mais partage le même historique git.
Quadrature/
├── rules/ # Vault Obsidian (core/, disciplines/, univers/, cartes/…) — SOURCE DE VÉRITÉ des règles
│ └── fr/ # entrée : _index.md
├── data/ # Données structurées — SOURCE DE VÉRITÉ des données de jeu
│ # actions, traits, gardes, équipement, disciplines,
│ # cladogramme, mutations, bestiaire — lues par web/, simulator/ & tools/
├── web/ # Site Next.js (lit rules/fr/ + data/ au build)
├── simulator/ # Moteur de combat TypeScript
├── tools/ # astronomy.py · cladogram.ts · consolidate-bestiary.ts
├── images/ # Illustrations et concept art
├── CHARTE-IA.md # Usage de l'IA dans le projet — et licence des images générées
├── README.md · Roadmap.md · CHANGELOG.md
└── rapport_avancement_*.md # revues d'avancement ponctuelles
La source de vérité des règles est
rules/fr/. Les exports legacy à la racine (Quadrature_latest.md…) sont conservés hors versionnement et ne font plus foi.
Prérequis : Node 20+ (web, simulator, tools/cladogram.ts), Python 3 (tools/astronomy.py), Obsidian (rules).
rules/)Ouvrir le dossier rules/ comme vault Obsidian ; commencer par
fr/_index.md. Aucune installation.
web/)cd web
npm install
npm run dev # serveur de dev sur http://localhost:3000
npm run build # build serveur (.next/) ; servir via `npm run start`
npm run generate-pdf # génère le PDF du livre (Puppeteer + pdf-lib)
Rubriques notables : /fr (accueil), /fr/volumen/<livre> (lecture paginée),
/fr/cartes (cartes d'action imprimables), /fr/traits (traits de compétence),
/fr/equipement (catalogue d'objets), /fr/adversaires (fiches de bestiaire),
/fr/evolution (cladogramme), /fr/personnage (feuille de personnage interactive :
édition, sauvegarde locale multi-personnages, export/import JSON, impression PDF).
Les rubriques /fr/traits et /fr/equipement lisent data/*.yaml — la même
source que le simulateur — et affichent donc l'état réel du branchement
moteur, trous compris : une mécanique décrite dans les règles mais que le moteur
n'applique pas encore y est signalée comme telle.
Toutes les rubriques partagent le même chrome (components/TopBar.tsx puis
components/ToolBar.tsx) : la TopBar dit où l'on est — identité, rubrique,
retour à l'accueil, langue — et la ToolBar ce qu'on peut y faire — filtrer,
rechercher, zoomer. Une barre d'outils ne porte donc ni titre de page ni lien de
retour, et le sélecteur de langue est toujours le dernier élément de la TopBar.
Chaque rubrique suit le même gabarit de mise en page : hauteur figée, barres
fixes, un seul bloc défilant en dessous.
/fr/encounters est un outil local de mise au point : il rejoue un rapport du
simulateur manche par manche (plateau et trajectoires, log par bandes façon
chat, dés et effets, vitaux physique/mental). Les rapports vivant dans
simulator/combatReports/ (non versionné), la rubrique reste vide sur un build
déployé et n'apparaît pas dans la navigation publique.
simulator/)cd simulator
npm install
npx jest --no-coverage # suite de tests
npx ts-node src/simulate.ts encounters/duel-arme.yaml 400 --quiet
npx ts-node src/simulate.ts encounters/approche-faucheur.yaml # 1 run AVEC plateau (approche + charge)
npx ts-node src/simulate.ts encounters/tir-vs-faucheur.yaml 100 --quiet # tirailleur qui kite (recul + tir)
npx ts-node src/optimize.ts # équilibrage (grid search)
Un run unique écrit un rapport rejouable dans combatReports/ (rejouable dans
/fr/combat) ; un run multiple (… 400) écrit un rapport agrégé *.batch.json
réservé aux statistiques. Une rencontre peut déclarer un board et des pos
de départ : le combat se joue alors sur une grille (déplacements, portées,
attaques à distance). Les agents scriptés décident par espérance d'utilité
(actions, garde, positionnement — approche, kiting, tenir).
Les agents pilotés par LLM utilisent l'API Mistral — renseigner MISTRAL_API_KEY
dans un .env (cf. .env.example). Les agents scriptés n'en ont pas besoin.
tools/)Astronomie — modèle physique d'Aeonir :
python tools/astronomy.py # régénère tools/aeonir_astronomy.md
Cladogramme du bestiaire — data/cladogram.yaml (l'arbre) et
data/mutations.yaml (les mutations : label, description, kit de combat)
sont la source de vérité de l'arbre phylogénétique de la faune d'Aeonir (clades, mutations,
biomes, statut). On les édite via l'utilitaire tools/cladogram.ts plutôt qu'à la main : il
préserve le style de l'arbre et valide après chaque opération.
# nécessite js-yaml — lancer `npm install` dans web/ au préalable
node tools/cladogram.ts validate # contrôle (clés inconnues, mutations non placées)
node tools/cladogram.ts print # arbre indenté + label de chaque mutation
node tools/cladogram.ts node-mut "Faucheurs" sickleClaws # pose une mutation (référencée par CLÉ)
node tools/cladogram.ts node-status "Faucheurs" done # marque une espèce comme peuplée
node tools/cladogram.ts mut-add maCle "Label fr" "Description fr"
# autres : node-cd · node-ref · node-rename · node-clear-mut · mut-relabel · mut-describe
Les mutations (data/mutations.yaml) forment un dictionnaire clé → { label, description, kit? }
(chaînes Locale) ; les nœuds de l'arbre y réfèrent par clé (champ mut) et chacun porte un
uid stable. Le kit décrit la brique de fiche d'adversaire conférée par la mutation
(cf. rules/fr/adversaires/). La numérotation d'affichage est calculée côté front. Une
insertion de nœud (qui ré-indente le sous-arbre) se fait en important la lib
(import { loadRaw, save, findAny } from "./cladogram.ts") dans un petit script ponctuel.
Bestiaire d'adversaires — data/bestiary/ relie le cladogramme aux fiches de monstres :
les sources species/<id>.yaml (stats propres + from: = uid d'une espèce du cladogramme) sont
consolidées en fiches cards/<id>.card.yaml par tools/consolidate-bestiary.ts.
Chaque mutation de l'ascendance apporte sa brique (kit : parties du corps, cartes, traits ;
Speed/Fatigue dérivés) → ce que la créature EST découle de ses mutations. Les fiches (anglais + Locale)
alimentent la rubrique web /adversaires.
node tools/consolidate-bestiary.ts # régénère data/bestiary/cards/*.card.yaml
Système jouable et chaîne de publication fonctionnelle ; le projet a dépassé le prototype. Chantiers en cours côté cohérence des règles, resynchronisation du lore et complétion des disciplines.
rapport_avancement_2026-06-10.mdRoadmap.mdCHANGELOG.md{ fr: … }).feat:, fix:, chore:, refactor:…).rules/fr/ (pas les exports legacy de la racine).Œuvre originale d'Ewen Maréchal, sous double licence : code en MIT, contenu du jeu en CC BY-NC-SA 4.0. Détail en tête de ce fichier : Licence.