Skip to content

Latest commit

ย 

History

History
45 lines (37 loc) ยท 2.97 KB

File metadata and controls

45 lines (37 loc) ยท 2.97 KB

PtotahovatciStroj

v0.15.1

Logo

A voxel engine built using raylib-go and OpenGL

Features ๐ŸŒŸ

  • Infinite Random World Generation: Utilizes a Perlin noise algorithm for creating expansive landscapes.
  • Water Formations: Realistic water bodies.
  • Surface Feature System: Procedurally generated trees with L-systems and randomly placed flowers and tall grass.
  • Cave Generation: Intricate cave systems made using 3D perlin noise.
  • Biome Diversity: Various biomes with different topographies determined by Worley noise.
  • Basic Shading: Combines ambient with directional lighting for better depth perception.
  • Atmospheric effects: Atmospheric depth with fog and basic clouds.
  • Cache System: Efficiently stored surface feature positions, providing better world consistency.
  • Asyncronous Chunk Loading: Chunks loaded in parallel using a worker pool outside the main game loop.
  • Game Settings: Configuration menu accessible by pressing "Tab". There, players can configure the view distance, FPS limits, world rules (weather, day/night cycle and add/remove or change cloud height), and toggle debug, such as FPS and player position.
  • Dynamic Weather & Time Cycle: Weather effects such as rain and snow, and day/night cycle.

Upcoming Features ๐Ÿ“‹

  • Advanced Optimizations: Algorithms such as Fustrum Cooling and Occlusion Cooling for better performance.
  • Smooth Lighting: Improved lighting using vertex lighting and baked ambient occlusion.
  • Block Interaction: Enable players to place and destroy blocks.
  • Web Build: Compile the project to WASM.

Screenshots ๐Ÿ–ผ๏ธ

light

world_gen

world_gen

world_gen

Getting Started ๐Ÿš€

To get started with the voxel engine, clone the repository and open the folder. Make sure you have Go installed on your device. Then, run the command go mod tidy and finally, to compile the project, run go run ./src.

Controls ๐ŸŽฎ

  • Mouse Left Button: Lock cursor.
  • Camera: WASD movement, mouse to look.
  • Tab: Open settings menu.
  • Esc: To close the window.

License ๐Ÿ“„

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments ๐Ÿ™

Inspired by CubeWorld and TanTan's Voxel engine built with the beavy engine. I would also like to acknowledge the use of voxelized vegetation assets from MangoVoxel in my voxel engine. The shader code was based on examples provided by raylib.