VIVIA
π§ͺ View animated test results β 224 passed / 225 total β
A complete voxel survival sandbox with AI-powered terrain, multiplayer networking, and a custom neural network β built from scratch in Rust. Premiering on Epic Games Store, August 2026.
VIVIA: Beyond the Known (internally NV_ENGINE, repository: NV2_ENGINE) is a
shipped commercial voxel game written in Rust (47 source files, 15,800+
lines). It features procedural terrain generation with real-world NASA climate
data, an embedded neural network (MeMLP) that learns vegetation placement
while you play, a full mob system with AI-generated 3D models, multiplayer
TCP networking, procedural audio, and a survival gameplay loop β all rendered
on GPU via wgpu.
Developer: Terra Nova Gameworks Β· Version: 1.0.0 Β· Price: $9.99 (launch $7.49) Platforms: Linux, Windows Β· Stores: Epic Games Store, itch.io
Stack: Rust 2021 Β· wgpu 0.20 Β· winit 0.30 Β· cgmath 0.18 Β· OpenSimplex2 Β· rayon Β· tokio Β· ndarray Β· meshopt Β· bincode Β· rodio Β· fontdue Β· bytemuck Β· Epic Online Services Β· C#/.NET 8 (content tools) Β· Python (AI/texture tools)
Feature matrix
World & terrain
| Feature | Detail |
|---|---|
| Procedural generation | OpenSimplex2 heightmaps, caves, ores, water-aware column sampling |
| Chunk dimensions | 16Γ512Γ16 β double-height chunks (raised from 256) for tall mountains & deep caves |
| Biomes | 9 climate-driven biomes: Ocean, Coast, Plains, Forest, Dark Forest, Swamp, Taiga, Desert, Mountains |
| Climate model | Temperature + humidity drive block distribution, vegetation density, fog and ambient color |
| Generation channels | Dedicated OpenSimplex channels + seeds for continent shape, temperature, humidity, erosion, peaks/relief, height/detail, warp, caves, ores, water |
| Async generation | Bounded work queue, in-flight dedup, rayon parallel generation, mpsc delivery to main thread |
AI-driven vegetation β MeMLP
| Feature | Detail |
|---|---|
| Architecture | MeMLP (Modular embedded Multi-layer Perceptron Model) β modular, in-process, pure CPU, one JSON checkpoint |
| Vegetation head | Deep MLP 8β24β16β4, ~0.3 Β΅s/prediction (3.4 M/s) |
| Biome head | 8β12β9 β biome classification driving biome-aware decorations |
| Texture head | 8β12β6 β procedural texture-style selection |
| Input features | 8 terrain features: height, slope, temperature, humidity, water distance, plant density, light, noise seed |
| Output classes | 4 vegetation classes: flowers, ferns/water plants, sticks/decorations, pebbles/rocks |
| Background training | Continuous thread, 240+ samples/epoch across all heads, <1% CPU overhead |
| Training method | Online SGD + cross-entropy, backprop through all layers; trains on player feedback, online climate data (offline-safe) and synthetic samples |
| Checkpoints | Single JSON file; legacy 8β16β4 checkpoints migrate automatically |
| Vegetation blocks | 22 new block types: roses, tulips (4 colors), dandelions, cornflower, allium, azalea, ferns, lily pads, seagrass, kelp, moss carpet, vines, sticks, pebbles |
| Confidence threshold | 0.40 β only high-confidence predictions place blocks |
Rendering (wgpu 0.20)
| Feature | Detail |
|---|---|
| Per-chunk GPU buffers | A block edit re-uploads only that chunk (previously ~81 chunks per change) |
| Frustum culling | GribbβHartmann plane extraction with safety margin + protected 3Γ3 area around player |
| Packed vertices | 72-byte CPU vertices β 36-byte GPU format (Snorm8x4/Unorm8x4) |
| Incremental water meshing | Only changed chunks rebuild; interval-based simulation |
| Separate pipelines | Solid world, water, flat UI panels, sprite UI icons, text rendering |
| Texture atlas | Dynamic atlas, switchable texture packs, top/bottom/side variants |
| Text rendering | fontdue rasterization, custom text layers |
Gameplay
| Feature | Detail |
|---|---|
| Block interaction | DDA raycast targeting, held-break mining, right-click placement |
| Tool tiers | Hand β Flint β Stone β Iron β Diamond β Netherite, with power values and durability |
| Inventory | 36-slot inventory + 9-slot hotbar, stack merging, drag-and-drop |
| Crafting | 2Γ2 player grid + 3Γ3 NVCrafter station, shaped & shapeless recipes |
| Recipes | 18 recipes: planks, sticks, NVCrafter, wooden pickaxe/axe/shovel/hoe, torches, chest, door, trapdoor, ladder, fence, fence gate, workbench upgrade, flint/stone/iron pickaxes |
| Movement | Walk, sprint (FOV kick), jump, flight, water gravity/sinking, AABB collision, foliage movement modifiers |
| Commands | /locate <biome> [--tp], /tp <x> <y> <z>, /attack |
| Persistence | JSON world saves (seed, chunk blocks, water metadata, NVCrafter states) |
| Left-click attack | attack_nearest() with 0.4s cooldown β default mouse button when cursor locked |
Mob system
| Feature | Detail |
|---|---|
| Enemies | 36 hostile mobs across 11 families: Frost Hound, Sand Reaper, Bone Colossus, Void Wraith, Ash Crawler, Lava Brute, Swamp Toxin, Plague Mother, Wretched Flyer, Shadow Stalker, World Serpent, Iron Golem, Night Wisp, Deep Maw, Sand Hydra |
| Animals | 41 passive mobs: Deer, Rabbit, Wolf, Bear, Eagle, Chicken, Horse, Pig, Cow, Sheep, Cat, Dog, Turtle, Frog, Snake, Bat, Mouse, Fox, Boar, Bee |
| AI | Melee/ranged/hunter/guardian behavior per family, 15-attack damage spread, attack_nearest(), attack_closest_enemy(), attack_weakest() |
| 3D models | 11 GLB mesh files (ARACHNID, BOSS, BRUTE, CANID, CRAWLER, FLYER, GOLEM, HUMANOID, WISP, WORM, WRAITH) with meshopt optimization, tint + scale in shader |
| Families | 11 base shapes cover 77/100 mobs; 23 small animals use voxel fallback |
Multiplayer
| Feature | Detail |
|---|---|
| Networking | TCP (tokio async), length-prefixed bincode serialization, 20Hz tick rate |
| Protocol | 18 packet types: Join, Leave, GameState, Input, Chat, Ping, etc. |
| Server | Headless TCP server (--server --port 26400 --seed 42), server authoritative |
| Client | --connect <addr> --name <nick>, crossbeam channels (sync β async) |
| NAT traversal | playit.gg β zero cost, 4-100 players |
| Remote players | Rendered as humanoid cubes with blue tint |
| Shared seed | Server and client use identical world generation seed |
Special gameplay logic
| Feature | Detail |
|---|---|
| Flint drops | Gravel can drop flint via deterministic seeded logic |
| Tree harvesting | Destroying a trunk harvests the connected trunk/leaves cluster |
| Leaf drops | Leaves drop saplings and sticks with deterministic odds |
| Crafter flush | Breaking an NVCrafter flushes stored contents into world drops |
| Placement guard | Blocks cannot be placed inside the player AABB |
Quick start
Requires a Rust toolchain (stable is enough) and a GPU with Vulkan/Metal/DX12/GL support.
cd Core
cargo run --release
The game opens a window with the main menu:
| Menu item | Action |
|---|---|
| New Game | Start a new procedurally generated world |
| Load/Save | Load the saved world |
| Low-End-PC | Toggle the low-end performance profile |
| Quit | Exit |
Note:
cargo runin dev mode already builds third-party crates atopt-level 3, so even a debug build plays smoothly.
CLI flags:
| Flag | Action |
|---|---|
--server |
Run headless multiplayer server (no GPU/okna) |
--port |
Server port (default: 26400) |
--seed |
World generation seed |
--connect <addr> |
Connect to multiplayer server |
--name <nick> |
Set player nickname |
--autostart |
Skip main menu, start new game immediately |
--night |
Start at night (for testing) |
First minutes in-game: spawn near a forest β punch trees with your bare
hands β gather wood β open the 2Γ2 crafting grid (E) β craft wooden
planks β sticks β a wooden pickaxe β mine stone β craft a stone pickaxe β
mine iron β eventually craft an NVCrafter for 3Γ3 recipes.
Multiplayer (local):
# Terminal 1 β server
cargo run --release -- --server --seed 42
# Terminal 2 β player 1
cargo run --release -- --connect 127.0.0.1:26400 --name Alice
# Terminal 3 β player 2
cargo run --release -- --connect 127.0.0.1:26400 --name Bob
Multiplayer (internet via playit.gg): see MULTIPLAYER.md
Documentation index
| Page | Contents |
|---|---|
| Architecture | Full runtime, renderer, world, UI layering β module by module |
| Gameplay | Controls, interaction, inventory, crafting, commands, persistence |
| Blocks & Biomes | Complete 97-block registry, tool tiers, 9 biome definitions, ores |
| Crafting Reference | Every recipe with exact patterns |
| Water Simulation | Liquid encoding, solver, and rendering internals |
| AI Vegetation System | Network math, training loop, hyperparameters, integration |
| Performance | GPU bandwidth, culling, meshing budgets, profiles |
| Development | Build, module map, testing, extending the engine |
| Roadmap & Changelog | History, Phase 2 plans, known limitations |
π VIVIA: Beyond the Known β Epic Games Store Launch
Premiere: August 2026 (Monday) Β· Price: $9.99 (launch promo $7.49) Publisher: Terra Nova Gameworks Β· Stores: Epic Games Store + itch.io
The project was renamed from NV2 Engine to VIVIA: Beyond the Known for
the commercial release. The internal engine code retains the NV_ENGINE prefix;
the game title on all store pages and marketing material is VIVIA.
Build pipeline
- Linux + Windows builds via
build.sh - GitHub Actions CI (
.github/workflows/windows-build.yml) - Epic Games Store submission kit:
EGS/directory with manifest, build, store assets - Store assets: capsule art (5 sizes) + gameplay screenshots in
store_assets/
Engine stats at launch
| Metric | Value |
|---|---|
| Source files | 47 .rs files + 10 .wgsl shaders |
| Test cases | 224 passed / 225 total (3 ignored) |
| GLB models | 11 AI mesh families, ~45 MB total |
| Block types | 97 |
| Biomes | 9 climate-driven |
| Mob families | 11 base shapes, 77/100 mobs covered |
| Multiplayer | TCP, 20Hz tick, headless server mode |