Skip to content

Commit

Permalink
README updates.
Browse files Browse the repository at this point in the history
  • Loading branch information
kpreid committed Oct 24, 2023
1 parent 3a9850f commit 58fe8c6
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 6 deletions.
13 changes: 10 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -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)

Expand All @@ -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
--------------------

Expand Down
2 changes: 1 addition & 1 deletion all-is-cubes-desktop/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
-----
Expand Down
2 changes: 1 addition & 1 deletion all-is-cubes-gpu/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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/

Expand Down
4 changes: 3 additions & 1 deletion all-is-cubes/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit 58fe8c6

Please sign in to comment.