Commit Graph

31 Commits

Author SHA1 Message Date
Ludovic Marie 77f9c075ca Add a control socket and horizon-ctl to drive the client from scripts
`--control` opens a local Unix socket; horizon-ctl sends text commands and
prints JSON replies. Scripts can read status, press keys and mouse buttons,
look, teleport, give items, change render distance, take PNG screenshots
of the presented frame, and benchmark frame times without a person at the
keyboard. Under control, losing focus no longer pauses the game.

Key presses and play-screen mouse buttons move into shared methods so the
window and the socket take the same paths.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 11:42:52 +02:00
Ludovic Marie 34f4722e42 Show audited Java parity in the README and correct stale status
Score fourteen subsystems against the code (55% overall) and test that the
README percentage matches the table. Fluids, redstone, crop growth and the
Nether already run in the client; the native-client status still described
the old test-generator terrain without mobs or containers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 11:21:53 +02:00
Ludovic Marie be1352b4dc Target ludodesktop only and drop the M2 Mac from scope
The Rust rewrite now targets one Linux machine (Ubuntu 26.04, i7-13700KF,
RTX 4080, GNOME on Wayland). macOS and Windows are out of scope; the Java
packs, including the Mac starter, remain available but are no longer developed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 11:18:30 +02:00
Ludovic Marie 08b8e71838 Drop Windows from scope and add a native client packager
Horizon now targets Linux and macOS only: remove the Windows CI runners and
wgpu's DX12 backend, and update the scope docs. The Ubuntu RTX 4080 desktop
becomes the first physical Linux target. tools/package_native_client.py bundles
a release build with its prepared resources and a launcher for playing on
another machine of the same platform.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 10:48:58 +02:00
Ludovic Marie 3777c9009b WIP: playable client — streaming world, lighting, HUD, crafting, saves, audio, items
Checkpoint of the playable client rewrite before build verification.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-07 23:24:14 +02:00
Ludovic Marie 082cbb4077 Apply pending player attribute callbacks during resident simulation
Refresh scale dimensions and clamp health and absorption after movement, preserving native callback order and queued synchronization. Replay per-reference JVM identities in the scene comparison and cover changing limits, modifiers and low tunnels. Waypoint callbacks remain explicit requests for the future manager runtime.
2026-10-07 18:27:58 +02:00
Ludovic Marie 4e01780255 Validate resident crouching, pose dimensions and ledge backoff
Connect Shift input timing, dry pose fit, movement slowdown and eye height to the resident walking scene. Compare exact evolving state against pinned native client/server methods and record Linux window validation. Full gameplay and release acceptance remain unfinished.
2026-10-07 18:15:56 +02:00
Ludovic Marie 24ce21abee Connect native-validated sprint input to resident movement and hunger 2026-10-07 17:55:29 +02:00
Ludovic Marie ecb3ebfd34 Account for accepted movement distance in resident player hunger 2026-10-07 17:29:13 +02:00
Ludovic Marie 5023f82078 Record interactive hunger recovery validation 2026-10-07 17:16:58 +02:00
Ludovic Marie 3403705c74 Bind resident player hunger, regeneration and starvation to live health 2026-10-07 17:14:57 +02:00
Ludovic Marie c82f0ee8be Apply native-validated landing damage to resident player health 2026-10-07 16:56:23 +02:00
Ludovic Marie 5eb1d61e3a Bind native landing and fall callbacks to the resident player scene 2026-10-07 16:20:23 +02:00
Ludovic Marie 59676c6e84 Connect native-validated player motion to fixed-rate walking controls 2026-10-07 15:45:47 +02:00
Ludovic Marie 40a9f04f42 Preserve attribute state during dry movement ticks 2026-10-07 15:30:41 +02:00
Ludovic Marie 405e174e64 Bind stored player motion to resident chunks and live attributes 2026-10-07 15:15:57 +02:00
Ludovic Marie c109f91cc5 Connect resident client chunks to native-validated world collisions 2026-10-07 14:42:44 +02:00
Ludovic Marie a6966ab450 Mesh resident block models with native culling and UV-aware merging 2026-10-06 22:30:16 +02:00
Ludovic Marie f5ba959cdc Match native neighboring block-face visibility and suppression 2026-10-06 22:10:44 +02:00
Ludovic Marie 1a88d6c300 Render registry-bound variants and multipart block models 2026-10-06 21:59:03 +02:00
Ludovic Marie 90a76bc0aa Match vanilla blockstate transforms and UV-locked baking 2026-10-06 21:49:27 +02:00
Ludovic Marie f286aa24e1 Match weighted model choice and multipart random consumption 2026-10-06 21:31:55 +02:00
Ludovic Marie 1d0b537a0a Bind vanilla blockstate selectors and multipart model parts 2026-10-06 21:26:47 +02:00
Ludovic Marie 54a2b552ee Decode vanilla blockstate variants and multipart conditions 2026-10-06 21:16:15 +02:00
Ludovic Marie b3a508dba8 Match native numeric scanner rejection in model resources 2026-10-06 21:09:56 +02:00
Ludovic Marie 81ea783e35 Match vanilla sprite animation metadata and tick selection 2026-10-06 21:05:55 +02:00
Ludovic Marie 6a4add0c67 Render baked vanilla models and animated cutout sprites natively 2026-10-06 20:47:09 +02:00
Ludovic Marie 8c7d8f6416 Bake vanilla cuboid geometry with native float-bit validation 2026-10-06 20:30:09 +02:00
Ludovic Marie f0a03aea52 Resolve vanilla model inheritance and texture aliases 2026-10-06 20:17:53 +02:00
Ludovic Marie 9dbd93192f Decode pinned cuboid models and verify native client semantics 2026-10-06 20:10:30 +02:00
Ludovic Marie e8b66b83fc Add native Horizon development client with textured chunk rendering 2026-10-06 19:17:08 +02:00