Commit Graph
201 Commits
Author SHA1 Message Date
西风逍遥游 d3cb623ddb Merge remote-tracking branch 'origin/dev' into codex/editor-p0-p1-mcp
# Conflicts:
#	src/modules/editor/Editor.cpp
#	src/modules/editor/Editor.h
2026-08-25 02:19:38 +08:00
西风逍遥游 a05431b781 Merge pull request #233 from EVEngine/codex/map-production-readiness
feat(map): add production tilemap foundations
2026-08-25 02:05:59 +08:00
西风逍遥游 cdff0b90d6 Merge remote-tracking branch 'origin/dev' into codex/editor-p0-p1-mcp 2026-08-25 00:39:42 +08:00
西风逍遥游 e571651ac6 feat(map): add production tilemap foundations 2026-08-25 00:02:54 +08:00
西风逍遥游 71b68fc9ab docs(stylize): document recipe workflow and boundaries 2026-08-24 23:46:35 +08:00
西风逍遥游 328e37e8ec feat(editor): complete P0 and P1 authoring services 2026-08-24 22:47:23 +08:00
西风逍遥游 8c4af101da test: add zeroerr fuzzing for shared JSON parser 2026-08-24 20:32:49 +08:00
西风逍遥游 9d310161bf docs(graphics): record atmosphere implementation status 2026-08-24 15:42:17 +08:00
西风逍遥游 48531a2f6d feat(atmosphere): unify daynight fog lighting 2026-08-24 15:23:14 +08:00
西风逍遥游 b14419b01a Merge pull request #217 from EVEngine/codex/composable-2-5d-tilemap
feat(map): composable 2.5D TileSet workflow
2026-08-24 14:50:50 +08:00
西风逍遥游 8b972b6a59 Merge remote-tracking branch 'origin/dev' into codex/sprite-animation-production-api
# Conflicts:
#	src/modules/graphics/Graphics.cpp
2026-08-24 13:47:29 +08:00
西风逍遥游 aa79d70200 feat(map): add composable 2.5D tileset workflow 2026-08-24 13:38:11 +08:00
西风逍遥游 6887ae6d91 feat(animation): add production sprite sequence workflow 2026-08-24 12:39:59 +08:00
西风逍遥游 10de850214 Merge origin/dev into codex/vehicle-system 2026-08-24 10:43:06 +08:00
西风逍遥游 fb68507123 Merge remote-tracking branch 'origin/dev' into codex/composable-gameplay-rts
# Conflicts:
#	test/CMakeLists.txt
2026-08-24 00:51:44 +08:00
西风逍遥游 77d751890e feat(gameplay): add composable systems and RTS commandery demo 2026-08-24 00:29:35 +08:00
西风逍遥游 58db27d545 Merge pull request #206 from EVEngine/codex/editor-tool-protocol
feat(editor): add protocol-first map and terrain editor components
2026-08-23 21:43:14 +08:00
西风逍遥游 90b28f9fbc Merge pull request #205 from EVEngine/codex/crowd-flowfield
feat(crowd): flow-field pathfinding + boids crowd behavior module
2026-08-23 21:43:05 +08:00
西风逍遥游 097444bfc2 fix(vehicle): RTS orders arrive and fire, weapons auto-reload, demo uses sprites + HUD
- kinematic RTS orders decelerate when turning/approaching so moveTo actually
  arrives inside arriveRadius instead of orbiting forever
- attack order now auto-fires auto-aim mounts within weapon range
  (attack_move keeps aim-only behavior)
- weapon module auto-starts reload when mag empty, cooldown done, reserve left;
  events still emitted, game can override/cancel
- vehicle demo: real Kenney CC0 sprites (body rotates, turret rotates by
  mount yaw, destroyed greys out), readable ImGui HUD log, capture-mouse
  guard so clicks on HUD don't issue orders
- tests: weapon.fire.autoReloadOnEmpty; README + design doc updated
2026-08-23 20:32:43 +08:00
sunxfancy fd5febe73e Merge remote-tracking branch 'origin/dev' into codex/dynamic-surface-fluid
# Conflicts:
#	docs/dev/images/surface-fluid-dynamic.png
#	docs/dev/specs/2026-08-23-surface-fluid-simulation.md
#	examples/surface-fluid-dynamic/README.md
#	examples/surface-fluid-dynamic/main.cpp
#	src/modules/fluids/Fluids.h
#	src/modules/fluids/SurfaceDropletSimulation.cpp
#	src/modules/fluids/SurfaceDropletSimulation.h
#	src/modules/fluids/SurfaceWetnessField.cpp
#	src/modules/fluids/SurfaceWetnessField.h
2026-08-23 20:27:50 +08:00
西风逍遥游 0387f7f14a Merge pull request #200 from EVEngine/codex/atmosphere-volumetric-clouds
Improve atmospheric day/night skies and add volumetric clouds
2026-08-23 20:05:09 +08:00
sunxfancy ebfa403c3b docs(editor): explain protocol-first editor composition 2026-08-23 19:36:25 +08:00
西风逍遥游 9d5e61fde8 feat(crowd): flow-field pathfinding + boids crowd behavior module
- CrowdField: Dijkstra integration field to continuous gradient flow
  field with bilinear sampling, terrain cost and multi-goal support
- Crowd: SOA simulation for massive crowds - flow/seek/boids/idle
  actions, turn-rate-limited heading, Boids separation/alignment/
  cohesion, wall penetration resolution, per-frame counting-sort
  spatial grid and overlap relaxation
- Squirrel API: eve.Crowd with batch getPositions/getHeadings
- example: examples/crowd (2000-agent marching / boids demo)
- tests: flow field correctness, turning, seek arrival, boids
  convergence, wall penetration, 20k-agent smoke + script round-trip
2026-08-23 19:17:12 +08:00
sunxfancy 60b01b6ce2 fix(fluids): stabilize surface simulation timesteps 2026-08-23 19:11:18 +08:00
sunxfancy e831797957 feat(fluids): bridge droplet caps into scene rendering 2026-08-23 19:07:05 +08:00
西风逍遥游 61fc6f792e docs(vehicle): finalize design doc and add runnable vehicle demo example 2026-08-23 19:02:02 +08:00
sunxfancy 7435721367 feat(fluids): build oriented droplet render instances 2026-08-23 18:58:29 +08:00
sunxfancy 27a44960e6 fix(fluids): render continuous identity-stable wet trails 2026-08-23 18:43:49 +08:00
sunxfancy f8ad9900bc fix(fluids): preserve sphere reference visuals 2026-08-23 18:35:14 +08:00
西风逍遥游 5841b84b2e Merge pull request #201 from EVEngine/codex/urban-procgen
feat(procgen): hierarchical parcel & street co-generation (EG 2024 urban modeling)
2026-08-23 18:25:40 +08:00
sunxfancy dd35636a9f feat(fluids): support droplets on dynamic surfaces 2026-08-23 18:01:44 +08:00
sunxfancy 6bdf4ef00c feat(fluids): support droplets on dynamic surfaces 2026-08-23 18:01:13 +08:00
西风逍遥游 8a53d9d8a6 feat(procgen): hierarchical parcel & street co-generation (EG 2024 urban modeling) 2026-08-23 17:47:19 +08:00
sunxfancy b152da9a1c feat(graphics): add procedural volumetric cloud rendering 2026-08-23 16:33:32 +08:00
西风逍遥游 e48551911f Merge pull request #194 from EVEngine/codex/cloth-simulation
feat(physics): 2D/3D cloth with self-collision, fold limits, body collision, and GPU backend
2026-08-23 16:19:33 +08:00
西风逍遥游 426059d299 Merge pull request #195 from EVEngine/codex/animskin-script-skinning-writeback
feat(animation): script-playable skeletal animation via AnimSkin writeback
2026-08-23 15:02:29 +08:00
西风逍遥游 c65daede2e feat(animation): script-playable skeletal animation via AnimSkin writeback
AnimSkin can now write CPU-skinning results back to the render mesh so skeletal animation actually plays from scripts:
- capture bind normals at fromModel and skin them per pose (updateSkinnedNormals / getSkinnedNormals, cofactor inverse-transpose + normalize)
- packed getSkinnedPositions() array getter, matching AnimLattice's script pattern
- one-call applyToMesh(gfx, mesh, pose): skin positions+normals then in-place gpu.updateMeshVertices
- Renderable3D.getMesh() script binding so createRenderable meshes are reachable
- Mesh::gpuVertexCount so getVertexCount() is correct for non-morph meshes (both backends)
- tests: packed positions == skinPositionsTo, normals follow pose and stay unit length, applyToMesh render test with in-place updates
- docs: animation/graphics user guides + design spec
2026-08-23 14:24:11 +08:00
西风逍遥游 188012ee47 feat(physics): 2D/3D cloth with self-collision, fold limits, body collision, and GPU backend
- Cloth3D: meter-space Verlet cloth with triangle-level self-collision, dihedral fold-angle limit, mass-proportional rigid-body collision, double-sided mesh rendering
- Cloth (2D): self-collision, fold-angle limit, mass-proportional body collision, Fluid-style interactAt
- ClothGPU: compute-shader Verlet + distance constraints (double-buffered Jacobi), overflow-free atomicExchange spatial-hash self-collision, Sequence single-submission per frame
- World/World3D point probes for particle-vs-body queries; Body3D::getMass; Squirrel bindings for all new APIs
- examples/softbody3d demo; softbody/softbody_gpu/physics_cloth tests; user/dev docs
2026-08-23 13:54:20 +08:00
西风逍遥游 0087072636 Merge pull request #192 from EVEngine/codex/fluid-surface-sim
feat(fluids): interactive surface fluid simulation with screen-space reconstruction
2026-08-23 13:02:57 +08:00
西风逍遥游 b5282e7c5b Merge pull request #191 from EVEngine/codex/interactive-snow
feat(snow): interactive snow — depth field + real displacement + POM detail + snowfall recovery
2026-08-23 13:02:45 +08:00
西风逍遥游 ffff64588c feat(decal): P1 full PBR channel blending with instanced decal layer
Completes the PBR surface-parameter layer: mesh3d.frag now blends normal / roughness / metallic / emissive (in addition to albedo) from the DecalLayer before lighting; decals are drawn as grouped instanced draws (112B per-instance SSBO, alpha-over non-premultiplied layer, per-decal uvRect/atlas + channel strengths + blend mode API); DecalManager gains frustum + distance culling and setUvRect/setTextures/setBlend; new headless readback readDecalLayerToImageData validates the pass without a swapchain. Fixes two Vulkan validation violations found by the layer (missing vertex/index binds on instanced draws, blend attachmentCount).
2026-08-23 00:52:26 +08:00
西风逍遥游 203c2a21e9 feat(fluids): Bingham yield stress and screen-space surface reconstruction
Phase 3 of the surface fluid simulation:
- Bingham yield stress in the CPU solver and integrate kernel: effective
  viscosity grows as local shear rate drops, so mud piles up and freezes
  instead of spreading like water.
- FluidSurfaceRenderer: screen-space fluid rendering pipeline (splat depth+
  thickness with atomic min/add, bilateral depth smoothing, view-space normal
  reconstruction from depth gradients, water/mud shading), mirrored 1:1 in
  FluidSsfKernels.h and driven through the gpgpu compute queue with a CPU
  fallback and PPM debug output.
- Script API: Fluids.newSurfaceRenderer + FluidSurface (render/setCamera/
  setMode/writePpm).
- Design + usage spec under docs/dev/specs.
- Tests: yield-stress freeze, SSF single-particle depth/normal/thickness,
  water-vs-mud shading, GPU SSF pipeline with PPM artifact (17 fluids cases).
2026-08-23 00:17:00 +08:00
西风逍遥游 7a11a9a638 docs(snow): user guide, module index and design notes 2026-08-22 23:49:21 +08:00
西风逍遥游 5c1ba73994 docs(decal): add decal system design spec 2026-08-22 23:28:58 +08:00
西风逍遥游 a6e9db4086 test(docs): expand map/rpg/building coverage matrix + accessor round-trips
Add §17b–§17d API detail tables to docs/dev/测试覆盖.md for map, rpg and
building (all rows now '已展开'), backed by a fresh audit of the existing
70+ map cases, 28 rpg cases and 15 building cases.

Fill the audit gaps with two compact accessor tests:
- map.path.accessorRoundTrips: diagonal, blockEmpty, cellCost getter,
  unblockGid/clearBlockedGids, invalidateCache, setBlocked/isWalkable.
- map.fov.accessorRoundTrips: cornerPeek, eyeOffset, cliffBlock,
  verticalRange, perceptionRadiusScale, revealerPosition3/perception,
  revealer count and unknown-id behavior.

Local win32-debug: map/map_fov/map_path bundles pass.
2026-08-22 17:13:22 +08:00
西风逍遥游 5624388f1c test(event): cover Event::wait with a pre-queued message
The blocking-wake path was already covered by event.workerPushWakesWait;
add the queued-message fast path (wait returns immediately). Update
docs/dev/测试覆盖.md §9: wait marked 已覆盖.
2026-08-22 14:05:43 +08:00
西风逍遥游 d995497842 Merge remote-tracking branch 'origin/dev' into codex/headless-tests-ci 2026-08-22 12:57:15 +08:00
西风逍遥游 ff77852fcd Merge pull request #176 from EVEngine/codex/thread-test-gaps
test(thread): close last API gaps + fix JobSystem use-after-free found by ASan
2026-08-22 12:56:46 +08:00
西风逍遥游 3e9d2814fa Merge pull request #171 from EVEngine/codex/cmdline-fixes
feat(cmdline): eve get/build 基于官方 release SDK,release CI 增加消费侧全链路验证
2026-08-22 12:38:40 +08:00
西风逍遥游 c47e061181 test(thread): cover Channel::demand and Thread::postMain
Fill the last thread-module API gaps: blocking demand() and cross-thread
postMain() into the Event queue (same-thread, empty-name throw, worker
thread). 46/46 thread bundle cases pass locally on win32-debug. Update
docs/dev/测试覆盖.md: thread row to '已展开' with a full API detail table.
2026-08-22 12:22:31 +08:00