Marks the architecture document as implemented, replaces the roadmap section
with what each step actually landed and the measured result, and regenerates
the module inventory against the post-change dependency graph (scene is L1 now,
gameplay modules no longer pull data, and each row names the first profile that
includes it).
Adds docs/usr/TRIMMING.md for the user-facing side: profiles, per-module
switches, how dependency closure and the configure-time conflict errors behave,
has_module() in scripts, what cannot be trimmed and why, and measured savings.
Linked from the user and developer indexes.
Headline numbers after S1-S6: dependency cycles 26 -> 0, layering back-edges
16 -> 3, JSON implementations 6 -> 1, modules using Poco 15 -> 9, boot scripts
2 -> 1, and any module trimmable on desktop where none were before.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
Analyse how the 53 modules currently collaborate and why none of them can be
trimmed outside the hardcoded WASM axis, then lay out a target architecture and
a six-step route to per-module build options.
Adds scripts/module_depgraph.py, which produces the dependency graph, the
7-layer topological ordering and the cycle list the document cites. Its --check
mode fails on any back-edge outside the 16 known ones, so it doubles as the CI
guardrail for step S1.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
One-line story -> stage brief (parse_stage) -> creative-brain plan -> build
via scene_director -> scene-qc inspection/fix loop -> report + screenshots.
Reuses the in-repo creative-brain and scene-qc packages; ships a dry-run
in-memory executor and tests, an empty examples/ai-stage host, an openCode
subagent, and the AI场景导演 integration doc that doubles as the
agent-queryable scene-director spec.
- Added a new 3D rendering pipeline section in the documentation, detailing initialization, VKBuilder, and asynchronous frame handling.
- Updated the Ambient Occlusion module to support depth-based sampling, allowing for improved visual fidelity in 3D scenes.
- Introduced new shader functionalities for ambient occlusion and global illumination, enhancing the overall rendering quality.
- Updated GBuffer to include hardware depth texture for more accurate depth sampling in 3D rendering.
- Enhanced the RenderControl to manage new features for ambient occlusion and global illumination, ensuring they are enabled by default.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* Add extensible building placement module for strategy/ETS games
Introduce eve.Building with data-driven definitions, grid occupancy worlds,
ghost previews, and pluggable validate/snap/change hooks. Includes design docs,
user module guide, unit tests, and a gitignore fix so build*/ no longer ignores
src/modules/building/.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* fix(building): preserve free-snap world pose on placeAtWorld
placeAtWorld now keeps the snap rule's worldX/worldY on the placed
instance instead of always rewriting to the cell origin, so free and
custom snap modes stay accurate for ETS-style soft placement.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* Add examples/building town placement sandbox demo
Interactive demo covering grid snap ghost preview, terrain (dock on water),
road adjacency (stall), L-mask barn, rotate/remove, and resource costs.
Also adds make building shortcut, docs links, and a unit test locking the
demo building definitions.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* fix(ci): vendor CesiumMan test assets to avoid flaky Linux SSL download
Linux CI failed linking unit_test when PRE_BUILD curl hit a self-signed
certificate fetching CesiumMan from api.github.com. Commit the ~464 KiB
glTF fixture, skip download when files are present, and add curl retries
with explicit CA bundle for refresh runs.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* feat(map): add extensible grid pathfinding with group Flow Field
Implement A* and same-goal Flow Field pathfinding on PathGrid with
pluggable topologies (ortho4/ortho8/hex) for orthogonal, isometric,
staggered, and hexagonal maps. Expose Pathfinder/Path/FlowField via
Map::newPathfinder and document the design.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* fix(map): use ComponentRef accessors in PathGrid sync
TileLayer::config()/tiles() return ComponentRef, not raw pointers.
Also cast PathTopology in zeroerr CHECKs for streamability.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* fix(map): shrink Windows export surface for pathfinding
MSVC LNK1189 (65535 library objects) is hit when WINDOWS_EXPORT_ALL_SYMBOLS
exports every PathGrid/topology symbol. Collapse grid/topology into an
internal Pathfinder impl (anonymous namespace) and a single TU so eve.exe
stays under the export limit.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* fix(windows): disable WINDOWS_EXPORT_ALL_SYMBOLS to avoid LNK1189
MSVC cannot export every symbol from eve.exe once the binary grows past
the 65535-object limit. Plugins already import EVENGINE_API symbols
(ModuleManager / ModuleRegister); keep ENABLE_EXPORTS without exporting
the entire object set.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Expose a localhost MCP JSON-RPC server (--mcp-port) alongside DAP so AI
agents can pause, eval, snapshot, and slice errors on a live session.
Add DevTools AI session log/ImGui panel (eve.dev.ai, F9) and a Cursor
stdio bridge under tools/eve-mcp.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>