Commit Graph
7 Commits
Author SHA1 Message Date
Leonid PershinandClaude Fable 5 8a7e2cce52 Adopt the engine Core/Host split; add LittleSim.Server headless prototype
Engine bump: MrGameEng.Core is now platform-free (Friflo only), the
windowed MonoGame host lives in the new MrGameEng.Host library, and the
core gains HeadlessHost — a fixed-timestep loop without a window or GPU.

Game side: scenes switch to Transitions.Fade from the Host library,
WorldScene reads the graphics device via Context.GetGraphicsDevice(),
GameContent.Load(buildAtlases: false) skips atlas building for headless
runs.

LittleSim.Server is the dedicated-server seed and the showcase for
HeadlessHost: it loads mods/defs without textures and fast-forwards the
world calendar and climate on a fixed tick (~3.6M ticks/s in Debug):

  dotnet run --project src/LittleSim.Server -- --days 10 --tps 60

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 23:13:40 +03:00
Leonid Pershin dc13b9b8c3 Enhance localization and world generation features
- Added new UI strings for menus, settings, and pause functionality in both English and Russian localization files.
- Introduced a new WorldPresetDef class to define world size and population settings, allowing for dynamic world creation.
- Updated world generation logic to support customizable terrain smoothing and population settings based on user-defined presets.
- Refactored WorldScene to utilize the new WorldConfig structure for improved world initialization and loading.

This commit improves the user experience by providing more options for world creation and enhancing the overall localization of the game.
2026-06-12 08:41:30 +03:00
Leonid Pershin dd3e9e400d Update project references in LittleSim.sln and LittleSim.csproj to include new MrGameEng.Content and MrGameEng.Simulation modules, while removing obsolete references. Mark engine submodule as dirty to indicate uncommitted changes. 2026-06-12 07:43:41 +03:00
Leonid Pershin 58de27248e Add pawn utility-AI brain; format code with CSharpier; enforce formatter
Wire the engine's new MrGameEng.AI module into a PawnBrain for world pawns,
plus surrounding content/scene tweaks. Apply CSharpier across the game and
document the convention in CLAUDE.md. Add .vscode/settings.json so the editor
formats on save with the CSharpier extension.
2026-06-12 07:20:03 +03:00
Leonid PershinandClaude Fable 5 8b531bcd7e Game as the Core mod: data-driven content and localization
The whole game is now described by Mods/Core — the first consumer of
the engine's new MrGameEng.Mods module:

- textures/ moved to Mods/Core/Textures; atlases are built at game
  start from the merged texture tree of all active mods into Cache/
  (gitignored, incremental) instead of being committed, and the
  GameAssets atlas handles are gone with them
- terrain, plants and pawns are JSON defs (Mods/Core/Defs) with parent
  inheritance; scenes read TerrainDef/PlantDef/PawnDef instead of
  hardcoded arrays, and the TerrainKind enum is retired
- HUD strings come from Mods/Core/Languages (ru default, en fallback)
  through LanguageManager; the language switches at runtime
- new console commands: mods, lang [code], defs [type]; atlas now
  inspects the runtime-built cache
- bump engine: MrGameEng.Mods module and the explicit-sources
  AtlasBuilder overload

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 21:51:46 +03:00
Leonid PershinandClaude Fable 5 35781a21ca Bump engine: pathfinding and collision detection modules
MrGameEng.Pathfinding (A*/Dijkstra/BFS + flow fields for crowds) and
MrGameEng.Collisions (spatial hash, pairs/queries/raycast) are now in
LittleSim.sln. Flow fields are the planned steering tool for villagers.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 13:40:09 +03:00
Leonid PershinandClaude Fable 5 beed114508 Initial LittleSim scaffold on the mrgameeng engine submodule
God-game: minimal graphics, deep simulation. The engine lives in the
engine/ git submodule and its sources plus test suites are part of
LittleSim.sln, so engine and game are developed in one editor window.

Playable skeleton: seed-deterministic terrain (smoothed height field ->
water/sand/grass/forest/mountain tinted cells), 80 wandering villagers
on a Y-sorted layer, god camera (WASD pan, wheel zoom, world-bounds
clamp), HUD and the dev console with a 'regen [seed]' command.

CLAUDE.md sets the game rules: simulation-first, one-seed determinism,
simulation/presentation split, a console command for every mechanic.
Design docs in Russian under docs/.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 05:33:10 +03:00