all-is-cubes
all-is-cubes copied to clipboard
Yet another block/voxel game; in this one the blocks are made out of blocks. Runs in browsers on WebGL+WebAssembly.
Commit f40f290f78bea147d5cd602caab408b7e9ff0254 introduced the "`propagation_table`" for pre-computed light ray propagation data. This improved light update performance, but computing it is a significant cost when constructing a new `Space`. The obvious...
As of b6e27616622781353556ea83338ac76e2d149846 we build block meshes asynchronously (not only in one stage of rendering one frame). This is already a great improvement in throughput, but we'd like to do...
`fuzz_mesh` is hitting the fuzzer-imposed memory limit. We should place explicit limits on the maximum complexity of a mesh so that it not only doesn't hit the fuzzer limit, but...
We have a function called `recursive_ray`, which is used by the raytracer and cursor to descend into a block's voxels. It is just implemented as: ```rust pub(crate) fn recursive_ray(ray: Ray,...
Bumps [bytemuck](https://github.com/Lokathor/bytemuck) from 1.14.3 to 1.15.0. Changelog Sourced from bytemuck's changelog. 1.15.0 This primarily relaxes the bounds on a From impl. Previously: impl<T: NoUninit> From<Box<T>> for BoxBytes Now: impl<T: ?Sized...
As discussed in 95a1578cde6ed0a51efe7f3febcb12f8b56bf924, I am adding `Primitive::Text`, text rendering in blocks without rendering to an intermediate space, for more efficient rendering and better interactive editability. The feature needs work:...
Enable playing All is Cubes on systems that have a gamepad or other non-keyboard input device. This will likely involve, or at least benefit from, implementing customizable ~~key~~bindings (and user...
Overview of UI framework stuff that is needed and not yet done: * [x] Buttons with text labels. * [ ] Alignment to lines/planes that aren't the maximum available space:...
I sat down to implement blocks containing _and displaying_ inventories, and discovered a problem: right now, the signature of `Tool::icon()` is ```rust pub fn icon ``` which can't be called...
The `Transaction` system is intended to allow various game rules and `Behavior`s to make changes in a consistent way (while also obeying Rust's exclusive borrow rules). However, most of the...