Skip to content

Releases: zarigata/PCU

v0.8.0-alpha - Rendering Unit Tests

Choose a tag to compare

@zarigata zarigata released this 26 Feb 17:55

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

Choose a tag to compare

@zarigata zarigata released this 26 Feb 17:49

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

Choose a tag to compare

@zarigata zarigata released this 26 Feb 17:37

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

Pre-release

Choose a tag to compare

@zarigata zarigata released this 26 Feb 17:07

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

Pre-release

Choose a tag to compare

@zarigata zarigata released this 26 Feb 16:49

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

Pre-release

Choose a tag to compare

@zarigata zarigata released this 26 Feb 16:47

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

Pre-release

Choose a tag to compare

@zarigata zarigata released this 26 Feb 16:42

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

Pre-release

Choose a tag to compare

@zarigata zarigata released this 26 Feb 16:38

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!