Repository navigation
Releases: zarigata/PCU
Release list
v0.8.0-alpha - Rendering Unit Tests
VoxelForge v0.8.0-alpha
๐งช Rendering Unit Tests
Comprehensive unit tests for the rendering pipeline using GoogleTest framework.
Test Coverage
VulkanBuffer Tests (test_vulkan_buffer.cpp)
- Buffer default construction and initialization
- Ring buffer allocation logic
- Buffer pool alignment calculations
- Vertex/index buffer size calculations
- Buffer usage flags validation
- Memory property flags verification
Renderer Tests (test_renderer.cpp)
- RenderStats default values and accumulation
- RenderSettings quality presets
- Renderer default construction
- Camera setup (perspective/orthographic)
- View matrix generation
- Projection matrix validation
- Frustum culling tests
- Camera rotation
ChunkMesher Tests (test_chunk_mesher.cpp)
- Face normal directions and magnitudes
- Face offsets for neighbor checking
- ChunkMeshData empty state and clearing
- ChunkVertex structure size and alignment
- Face UV coordinates
- Empty chunk mesh generation
- Single block mesh generation
- Buried block face culling
- Transparent block mesh layering
- Mesh generation statistics
- Ambient occlusion calculations
- Light value packing
๐ Test Statistics
- Total test files: 10
- Rendering test files: 3
- Test cases: 40+
- Lines of test code: 1,500+
๐ง Test Configuration
- GoogleTest framework
- CI/CD ready
- Mock-friendly architecture
- Performance benchmarking tests
โ All Tasks Completed
| Task | Status |
|---|---|
| VulkanContext.cpp | โ Complete |
| VulkanBuffer.cpp | โ Complete |
| Renderer.cpp | โ Complete |
| ChunkMesher.cpp | โ Complete |
| Block Registry Expansion (200+ blocks) | โ Complete |
| World Generation System | โ Complete |
| Unit Tests for Rendering | โ Complete |
| GitHub Releases | โ Complete |
GitHub: https://github.com/zarigata/PCU
Total Commits: 22
Total Releases: 8
v0.7.0-alpha - World Generation & Core Systems
VoxelForge v0.7.0-alpha
๐ World Generation System
Complete procedural terrain generation with multi-octave noise:
WorldGenerator
- Multi-octave Perlin/Simplex noise terrain
- Continentalness and erosion systems
- Biome-based terrain features
- Cave generation with 3D noise
- Ore distribution with proper depth ranges
- Bedrock generation with fading effect
- Feature placement system (trees, flowers, etc.)
ChunkSection
- Paletted block storage for memory efficiency
- Light data storage (sky and block light)
- Block entity support
- Height map generation
- Biome storage per column
๐๏ธ Core Engine Systems
Engine Module
- Main engine initialization and shutdown
- Module management
Event System
- Type-safe event bus
- Event queue processing
- Handler registration
Resource Manager
- Asset path management
- Texture, shader, and model loading stubs
๐ World Management
ChunkManager
- Chunk loading/unloading based on player position
- Load queue management
- Configurable view distance
- Per-frame load limits
LightEngine
- Sky light calculation
- Block light propagation
- Light emission from blocks
BiomeRegistry
- Plains, Desert, Forest, Jungle biomes
- Swamp, Savanna, Badlands biomes
- Snowy Plains, Ocean biomes
- Biome-specific surface blocks
DimensionRegistry
- Overworld (Y: -64 to 320)
- Nether (Y: 0 to 256, ceiling)
- End (Y: 0 to 256)
AnvilLoader
- Minecraft Anvil format parsing
- Region file handling
- NBT parsing
- GZIP/Zlib decompression
๐ Statistics
- Source files: 65
- Total commits: 21
- Lines of code: ~15,000+
๐ง Technical Details
- Proper chunk lifecycle management
- Efficient paletted block storage
- Multi-threaded chunk generation ready
- Light propagation algorithms
- Minecraft world format compatibility
GitHub: https://github.com/zarigata/PCU
Next Milestone: Entity systems, physics integration, rendering pipeline
v0.6.0-alpha - Vulkan Rendering & Block Expansion
VoxelForge v0.6.0-alpha
๐จ Vulkan Rendering System
This release implements the core Vulkan rendering pipeline:
New Features
- VulkanContext: Complete Vulkan instance, physical/logical device, and queue management
- VulkanBuffer: Buffer utilities including staging, vertex/index buffers, ring buffers, and buffer pools
- Renderer: Main renderer with swapchain, render pass, framebuffers, and frame management
- ChunkMesher: Chunk mesh generation with face culling, ambient occlusion, and multiple render layers
๐งฑ Block Expansion (200+ Blocks)
Extended BlockRegistry with comprehensive vanilla Minecraft block coverage:
Stone Variants
- Granite, Diorite, Andesite (regular and polished)
- Deepslate, Cobbled Deepslate
- Tuff, Calcite
Ores
- Iron, Gold, Diamond, Emerald, Coal, Copper
- Lapis Lazuli, Redstone
- Deepslate variants for all ores
Wood Types
- Oak, Spruce, Birch, Jungle
- Acacia, Dark Oak, Mangrove
- Cherry, Bamboo
- Crimson, Warped (Nether wood)
Leaves
- All tree type leaves with proper transparency
Building Blocks
- Stone Bricks (regular, cracked, mossy, chiseled)
- Bricks, Terracotta, Concrete
- Sandstone, Red Sandstone
- Prismarine variants
Wool Colors
- All 16 dye colors
Nether & End
- Netherrack, Soul Sand, Soul Soil
- Basalt, Blackstone, Glowstone
- End Stone, Obsidian, Crying Obsidian
Light Sources
- Lantern, Soul Lantern, Campfire
- Glowstone, Sea Lantern, Shroomlight
- Jack o'Lantern
Redstone Components
- Piston, Sticky Piston
- Dispenser, Dropper, Observer, Hopper
- Redstone Lamp
Utility Blocks
- Anvil, Enchanting Table
- Brewing Stand, Cauldron, Bell
- Beehive
Decorative
- Ice variants, Snow, Clay, Sponge
- Bookshelf, Ladder
- Sculk blocks (1.19+)
- Amethyst blocks
๐ Statistics
- Lines of code added: ~4,700
- Block types: 200+ (from 20)
- New files: 6
- Total commits: 19
๐ง Technical Details
- Uses Vulkan 1.3 with dynamic rendering
- Implements ambient occlusion for chunk meshes
- Supports solid, cutout, and translucent render layers
- Ring buffers for efficient uniform buffer management
- Buffer pools for dynamic allocations
Next Milestone: Chunk mesh rendering on GPU, physics integration with PhysX
v0.5.0-alpha - Items & Entities
VoxelForge v0.5.0-alpha
๐ Items & Entities Release
This release adds the item and entity systems.
โจ New Features
-
Item System
- Item definitions with properties
- ItemStack with NBT data
- Item registry for registration
- Food, tool, armor properties
-
Inventory System
- Base inventory class
- Player inventory (36 slots + armor)
- Chest inventory (27/54 slots)
- Crafting grid
-
Entity System
- ECS-based entity components
- Living entities with health
- Mob AI components
- Projectile entities
- Entity factory for creation
-
Config System
- JSON-based configuration
- Type-safe value storage
- Global game settings
๐ Statistics
- 15 commits
- 9,676 lines of code
- Item and inventory systems
- Entity components
๐ฏ Next Steps
- Vulkan renderer
- Block entity rendering
- Mob AI implementation
Building towards a playable game!
v0.4.0-alpha - World Generation
VoxelForge v0.4.0-alpha
๐ World Generation Release
This release adds the foundation for world generation and management.
โจ New Features
-
World Class - Main world container
- Block access and modification
- Chunk loading/unloading
- Basic terrain generation with Perlin noise
- Day/night cycle support
- Raycast for block picking
-
Terrain Generation
- Perlin noise-based height calculation
- Biome determination
- Basic block placement (stone, dirt, grass)
-
Chunk Management
- Load queue system
- Unload distant chunks
- Chunk storage with hash map
๐ Statistics
- 11 commits
- 7,888 lines of code
- World with terrain generation
- Chunk loading system
๐ฏ Next Steps
- Vulkan renderer
- Entity system
- More biomes and features
Getting closer to playable!
v0.3.0-alpha - World Foundation
VoxelForge v0.3.0-alpha
๐ World Foundation Release
This release adds the foundation for world generation and storage.
โจ New Features
-
Chunk System - Full chunk implementation with sections
- Paletted block storage for memory efficiency
- Light data storage (sky + block light)
- Height maps
- Biome storage
-
Block Palette - Efficient block state storage
- Variable bit width based on block variety
- Automatic resizing when palette grows
-
Compression - Zstandard integration
- Streaming compression/decompression
- Fast compression mode for real-time use
-
Camera - 3D camera system
- Perspective and orthographic projection
- Frustum culling support
- PlayerCamera for first-person controls
๐ Statistics
- 10 commits
- 7,382 lines of code
- 20+ vanilla blocks registered
- Complete chunk section storage
๐ฏ Next Steps
- World generation with noise
- Vulkan renderer initialization
- More block types
World generation coming soon!
v0.2.0-alpha - Core Systems
VoxelForge v0.2.0-alpha
๐ฎ Core Systems Release
โจ New Features
- Camera System - First-person camera with frustum culling
- Compression - Zstandard streaming compression
- More vanilla blocks - Expanded block registry
๐ Statistics
- 8 commits
- 6,890 lines of code
- Camera with frustum culling
- Compression utilities
๐ง Improvements
- Better documentation
- More test coverage
Still in early development - not playable yet!
v0.1.0-alpha - Foundation
VoxelForge v0.1.0-alpha
๐ฎ Foundation Release
This is the first alpha release of VoxelForge - a C++ Minecraft clone with integrated modding.
โจ Features
Core Systems
- Logger - spdlog-based logging with file rotation
- Timer - High-resolution timing and FPS counter
- Memory - Arena allocators for performance
- ECS - Custom Entity Component System
Platform
- Window - GLFW window management
- Input - Full keyboard/mouse input handling
- Events - Type-safe event bus
World
- BlockRegistry - 20+ vanilla blocks registered
- Block States - Property system for block variants
Utilities
- Noise - Perlin, Simplex, Voronoi noise
- Random - XorShift128+ PRNG
- NBT - Named Binary Tag serialization
๐ Statistics
- 6 commits
- ~4,000 lines of code
- Full documentation
๐ง Known Issues
- No rendering yet
- No world generation
- Build system not tested
๐ฏ Next Steps
- Vulkan renderer
- Chunk system
- World generation
This is an early alpha - not playable yet!