diff --git a/README.md b/README.md index 2b63abae9..9e05dc291 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ All is Cubes ============ -This project is (will be) a game engine for worlds made of cubical blocks. The unique feature of this engine is that each ordinary block is itself made out of blocks; each block can be directly edited in the same fashion as the outside world. +This project is (will be) a game engine for worlds made of cubical blocks (“blocky voxels”). The particular features of this engine are that each ordinary block is itself made out of blocks, and all game mechanics are defined by data within the world that can be interactively edited. -Or rather, that's the plan; for now, this is just my very first project written in Rust, and I am aiming to duplicate and expand on the functionality of my previous work [Cubes](https://github.com/kpreid/cubes/). That was written in JavaScript; this compiles to WebAssembly so the result will still run in the browser (hopefully faster), but also support a multiplayer server and storage backend. +Or rather, that's the plan; for now, it mainly supports rendering of said content, and I am aiming to duplicate and expand on the functionality of my previous work [Cubes](https://github.com/kpreid/cubes/). That was written in JavaScript; this compiles to WebAssembly so the result will still run in the browser, but also someday support a multiplayer server and storage backend. ![](https://switchb.org/kpreid/2020/all-is-cubes-10-13-progress.png) @@ -12,15 +12,22 @@ Project organization This repository is divided into several Rust packages: -* `all-is-cubes/` is a library containing all of the fundamental data types and algorithms. It is intended to be usable as a library but also contains the non-platform-specific top-level application logic. +* `all-is-cubes/` is a library containing all of the fundamental data types and simulation algorithms. * `all-is-cubes-mesh/` is a library containing algorithms to generate triangle meshes from the voxel data. * `all-is-cubes-gpu/` is a library containing the GPU-based rendering code, depending on [`wgpu`](https://wgpu.rs/). * `all-is-cubes-ui/` is a library containing a widget framework and basic user interface functions (not platform-specific). * `all-is-cubes-content/` is a library containing “game content” — procedural generation and demos — that does not need to be part of the core library but is used by all of the below binaries. +* `all-is-cubes-port/` is a library implementing import and export to various formats. * `all-is-cubes-desktop/` is a standalone game app which will use `winit` and `wgpu` for platform windowing & graphics, or ASCII-art raytracing in the terminal. * `all-is-cubes-wasm/` is the game app code for the browser/WebAssembly environment (if compiled outside of `wasm32` architecture, it will be an empty crate). * `all-is-cubes-server/` is to be a network server for the game, but right now only contains a preconfigured HTTP static file server. +The following packages and other directories are for testing: + +* `fuzz/` is a package containing fuzz tests. +* `test-renderers/` is a package containing image-comparison tests. +* `tools/` contains miscellaneous files relating to development. + Building and running -------------------- diff --git a/all-is-cubes-desktop/README.md b/all-is-cubes-desktop/README.md index 9ca23b8cb..607d278d6 100644 --- a/all-is-cubes-desktop/README.md +++ b/all-is-cubes-desktop/README.md @@ -15,7 +15,7 @@ Requirements Your system must have these installed: -* If on Linux, then the libraries that Ubuntu calls `libxrandr-dev`, `xorg-dev`, `libwayland-dev`, and `libasound2-dev`. +* If on Linux, then the libraries that Ubuntu calls `libxrandr-dev`, `xorg-dev`, `libx11-xcb-dev`, `libwayland-dev`, and `libasound2-dev`. Usage ----- diff --git a/all-is-cubes-gpu/README.md b/all-is-cubes-gpu/README.md index 6f1c7106a..cf30dd6aa 100644 --- a/all-is-cubes-gpu/README.md +++ b/all-is-cubes-gpu/README.md @@ -5,7 +5,7 @@ All is Cubes is a “voxel game” where each block is made out of smaller block This particular library package contains algorithms for rendering All is Cubes content using the [`wgpu`] graphics API abstraction library. -The API is fairly unstable and primarily intended to serve the needs of the existing desktop and web “app” crates. +The API is fairly unstable and primarily intended to serve the needs of the existing desktop and web “app” crates; I do not recommend using this library directly. If you have a use case for this library, please get in touch. [`wgpu`]: https://wgpu.rs/ diff --git a/all-is-cubes/README.md b/all-is-cubes/README.md index 9d30ff799..239b97e01 100644 --- a/all-is-cubes/README.md +++ b/all-is-cubes/README.md @@ -29,7 +29,9 @@ Related crates * [`all-is-cubes-ui`](https://crates.io/crates/all-is-cubes-ui) contains a widget framework and basic user interface functions (not platform-specific) * [`all-is-cubes-content`](https://crates.io/crates/all-is-cubes-content) - contains procedural generation and data for “game content” as opposed to the engine; it is separated so that it is possible to depend on the engine alone, and for compilation speed. + contains procedural generation and data for concrete “game content” as opposed to the engine. +* [`all-is-cubes-port`](https://crates.io/crates/all-is-cubes-port) + provides import and export to various formats. * [`all-is-cubes-desktop`](https://crates.io/crates/all-is-cubes-desktop) is a binary you can build and run to “play the game”. * [`all-is-cubes-server`](https://crates.io/crates/all-is-cubes-server)