💻 Developer Setup & Building Guide
📌 Repository Source Disclaimer: The documentation in this Wiki reflects the current source code state in the repository, which may include recent unreleased commits or developmental features ahead of public release builds on CurseForge and Modrinth.
🛠️ Development Environment Setup
This project uses modern Gradle with Fabric Loom targeting Java 25+. Each supported Minecraft version is maintained as an independent subproject with dedicated build.gradle and gradle.properties manifests.
1. Prerequisites
- Java Development Kit (JDK): JDK 25 or higher (Eclipse Temurin, Microsoft OpenJDK, or Oracle GraalVM).
- Git: 2.40+
- IDE: IntelliJ IDEA 2024.3+ or Eclipse with Gradle Buildship.
2. Cloning the Repository
bash
git clone https://github.com/Rifaditya/Vanilla-Outsider-Velocity-Render.git
cd "Vanilla-Outsider-Velocity-Render"🏗️ Multi-Version Directory Layout
Vanilla-Outsider-Velocity-Render/
├── You Run Fast Render That First v26.1/
│ └── You Run Fast Render That First 26.1/
│ ├── build.gradle
│ ├── gradle.properties
│ └── src/
├── You Run Fast Render That First v26.2/
│ └── You Run Fast Render That First 26.2/
│ ├── build.gradle
│ ├── gradle.properties
│ └── src/
├── You Run Fast Render That First v26.3/
│ └── You Run Fast Render That First 26.3/
│ ├── build.gradle
│ ├── gradle.properties
│ └── src/
├── Wiki/
└── README.md🚀 Building & Testing Commands
To build and test a specific Minecraft version anchor, navigate to its subproject directory:
MC 26.3 Build & Test
powershell
cd "You Run Fast Render That First v26.3\You Run Fast Render That First 26.3"
./gradlew check --no-daemon
./gradlew build --no-daemonMC 26.2 Build & Test
powershell
cd "You Run Fast Render That First v26.2\You Run Fast Render That First 26.2"
./gradlew check --no-daemon
./gradlew build --no-daemonMC 26.1 Build & Test
powershell
cd "You Run Fast Render That First v26.1\You Run Fast Render That First 26.1"
./gradlew check --no-daemon
./gradlew build --no-daemon🧪 Automated Multi-Case Test Suite
Automated verification tests are located in src/test/java/net/vanillaoutsider/velocityrender/AnisotropicMathTest.java:
testForwardPriorityOverRear(): Proves forward chunk section receives lower distance score than rear chunk.testBelowSpeedThreshold(): Verifies low speed ($< 0.20\text{ b/t}$) retains exact Euclidean distance.testVelocityCalculator(): Verifies exponential moving average ($\alpha = 0.65$) smoothing and unit vectors.testBitPackedChunkPositions(): Verifies zero-allocation 64-bit coordinate packing.testMsptWatchdogFormula(): Validates reach tapering under server lag.testNullSafety(): Ensures null origin or camera position returnsDouble.MAX_VALUE.
Run the test suite standalone:
powershell
./gradlew test --info🏛️ Engineering Standards & Code Hygiene
- License Header: Every
.javafile must include the exact header:java// Copyright (C) 2026 Dasik (Rifaditya) | GNU GPLv3 - 1 File 1 Purpose: Classes, helpers, and mixins focus strictly on one cohesive responsibility.
- Zero Allocation in Hot Paths: Render polling runs inside worker threads at 1000+ Hz. Never allocate objects (
new, lambdas) insideAnisotropicDistanceHelper.calculateBiasedDistanceSqr.
