Compatibility
Minecraft: Java Edition
1.21.1
1.20.1
Platforms
Supported environments
Client and server
Tags
Creators
Details
Licensed LGPL-3.0-only
Published 9 months ago
Changelog
Changelog - Version 0.8.0
Native Migration: Terrain and Contact Systems
- Native C++ Port: Migrated the core terrain tracking and state management from Java to native C++ to achieve higher simulation fidelity and performance.
- Native Greedy Meshing: Ported terrain generation to a native C++ greedy meshing implementation for faster collision shape creation.
- Native Contact Architecture: Refactored the physics contact system into a modular dispatcher-based architecture in C++ with specialized handlers.
- Native State Synchronization: Offloaded full physics state synchronization to a specialized JNI bridge to reduce Java-side overhead.
- Custom Terrain Collision Shapes: Replaced standard box-based terrain collision with a custom native shape system.
- TerrainVoxelShape: Implemented a custom shape to support non-solid blocks (like glass and torches) and filter out internal face collisions.
- Internal Edge Removal: Enabled enhanced internal edge removal for all bodies to prevent physics objects from catching on block boundaries.
Terrain Interactions and Mechanics
- Physics-Driven Interactions: Implemented dynamic interactions for doors, trapdoors, and fence gates that respond realistically to physical forces.
- Impact Effects: Added mass-proportional localized audio and particle effects triggered by physical terrain impacts.
- Dynamic Block Destruction: Implemented physics-based terrain impact reactions, including block destruction and material-based transformations.
- Per-Material Configuration: Introduced data-driven interaction thresholds and vanilla block weights for realistic physics simulation.
- Interaction Refinement: Increased door and trapdoor interaction thresholds and refined physical weight distribution for better stability.
Infrastructure and Dependencies
- Custom Jolt-JNI Fork: Transitioned to an internal
vx-jolt-jnifork (v4.3.1-SNAPSHOT) to enable specialized native features, IDE source support, and optimized library naming. - Modular Library Management: Implemented an explicit registry system and modularized native loader logic into a dedicated
vx-nativemodule. - Automated JNI Generation: Implemented automatic JNI header generation to streamline the interface between the Java and C++ layers.
- Global Configuration: Centralized "magic" physics thresholds into a unified native
GlobalConfigstruct.
Performance and Networking
- Asynchronous Packet Dispatch: Moved packet dispatching off the server main thread to eliminate tick-wait latency.
- Adaptive Interpolation: Replaced fixed interpolation delays with an adaptive system based on measured packet intervals.
- Optimized Terrain Shapes: Utilized a data-oriented Y-axis sweep-and-prune algorithm to optimize terrain shape generation.
- Lock-Free Networking: Implemented lock-free network synchronization and broadcast-safe payload management.
- Concurrency Improvements: Optimized contact listener concurrency and terrain material caching to reduce thread contention.
Fixes and Refactors
- Shutdown Deadlocks: Resolved critical world shutdown deadlocks in the physics and terrain systems.
- Memory Safety: Fixed
IllegalReferenceCountExceptionby refactoringVxRawPayloadto use byte arrays. - Simulation Stability: Decoupled the Jolt lifecycle into
VxPhysicsSimulationand resolved physics body tracking initialization issues.
Build and CI
- Reusable Pipelines: Refactored CI workflows into reusable pipelines with automated GitHub release publishing.
- Automated GameTests: Integrated NeoForge and Fabric GameTests into the CI pipeline to verify physics behavior before releases.
- Maven Integration: Implemented a generic Maven publishing system for artifact management.
Documentation
- Technical README: Fully rewritten README focusing on the technical architecture and native JNI implementation.
- API Documentation: Completed comprehensive Javadoc.
Dependencies
Files
velthoric-neoforge-0.8.0.jar(10.88 MiB) Primary
Metadata
Release channel
BetaVersion number
0.8.0Loaders
NeoForge
Game versions
1.21.1Environment
Client and server, required on both



