Releases: Lunicen/Block-Forge
Alpha release v0.6.2
Release notes
Final prototype of HUD and ability to modify terrain has been implemented 😃! From now You can also download a binary below to test the engine.
Info: This project will be abandoned soon due to the wrong implementation decisions and need of a complete overhaul of the architecture 🙁.
Added
- HUD and placing/destroying blocks is now integrated 🎉!
- Changed current Chunk generation order for better User Experience.
Showcase
Known bugs
- Placing and destroying blocks has bugged ray casting algorithm. Expect weird behaviour!
Alpha release v0.6.1
Release notes
Multithreading implemented 🎉!!! Finally a user can discover the world without encountering the lag spikes that were caused by the sequential terrain generation. We've also implemented a HUD scaffolding.
Added
-
Multithreaded (SPSC) world generation. There is one thread that queues chunks data to build and the main thread handles them ⚙.
The OpenGL actions unfortunately must be executed on the main thread, that's why it had to be implemented in this way.
-
Heads-Up Display (HUD) scaffolding 🖼.
-
Implemented vector based blocks data holding from the hashmap implementation (this gave a huge performance boost and relieved unnecessary RAM usage) 💨.
-
Faster & more stable data structures, thanks to the robin hood hashing library 📄.
Fixed
- Memory leaks related to the
std::unordered_map
implementation.
Known bugs
- Sometimes user might encounter an exception thrown by the Producer thread (
std::bad_alloc
). It's a completely normal behaviour and should be covered by the try-catch mechanism.
Alpha release v0.6
Release notes
GPU Optimization update and layer system implementation 📚. Right now you can load much more chunks without noticeable performance hits thanks to the Batch rendering optimization!
Added
-
Layer system:
Provides a convenient way to handle rendering & eventsOnUpdate()
method is called every frame in order to render content.OnEvent(HID)
is called to react to the input events.
The layers should be ordered on a dedicated stack that would handle them.
Layers and stacks can have custom constructors.
-
Dynamic meshes 💨
-
Structure optimization for less RAM consuming
-
Some debug logs
Fixed
- Abused references
- Interfaces inconsistency
Alpha release v0.5
Release notes
Application system overhaul and optimization update 🧰. Optimized building settings and project building is 5x faster right now ⚡.
Added
- Painting biomes based on JSON with biomes data
- Application arguments handling
--trace
enables the most detailed logging--debug
enables debug level logging
- Ability to resize and minimize window
- Parallel project compiling
Fixed
- Wrong FPS text alignment (was bottom-left, now it's top-left)
- Handling keyboard keys
- Wrong cursor flags while handling the Camera
Alpha release v0.4
Release notes
In this release the block system was rebuild. Now every block has 6 faces (front, back, top, bottom, left, right). That allows creating various optimizations and now extending the current system is much more convenient for the future developers 😃 .
Added
- Easy block creating based on the texture atlas
- Improved placing system
- Back-face culling
- Model & mesh system
Fixes
- Huge memory issues with using redundant data (from average 1.9 GB usage to 70 MB!)
- Wrong biomes placing calculations
- Blocks positioning (Now block at position 0, 0, 0 means literally that it is in the 0, 0, 0 coordinate)
- Wrong control-flow in deciding which biome to place
Alpha release v0.3
Release notes
We did it folks! The biomes system is implemented right now 😃! The current result is shown below. It's still needs to be polished - no textures, lagging etc. but we have something and we are very happy to announce the current results 🥳.
Added
- Multiple biomes generation
- Basic rendering
- Simple rendering optimization (hiding blocks that are not visible to player - for instance underground)
- FPS Counter
- Render distance tweaks
- Camera movement with custom key binding (configurable from code)
v0.2
Release Notes
Updated environment for better code maintainability. Added basic functionality like main menu
and displaying simple square on the screen.
Added
- Main menu (disabled, but implemented)
- Basic object displaying
- OpenGL buffer system
- SonarCloud analysis
- Refactoring
- Better development workflows
Pre-alpha
Release Notes
Setup the environment in which the development process could be bearable and even maybe pleasant 😉.
Changelog
Added
- File handling system (based on JSON files)
- Logging system
- Unit tests
- Graphic libraries
- Documentation (https://lunicen.github.io/Block-Forge)