null
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
James Fenn f5ce50f903 create separate velocity event for object move 3 weeks ago
assets/nil/blocks rewrite events system to separate object events 2 months ago
src create separate velocity event for object move 3 weeks ago
.editorconfig rewrite json object format in yml 3 months ago
.gitignore rewrite json object format in yml 3 months ago
Cargo.lock begin working on movement velocity 3 months ago
Cargo.toml implement model conditions logic 3 months ago
Makefile partial implementation of wgpu rendering 3 months ago
README.md rewrite json object format in yml 3 months ago

README.md

NIL

After installing Rust, the project can be started with either make or cargo run.

Using make fps should display an FPS indicator, which can be useful for performance monitoring.

Assets

Files inside assets/ are iterated through recursively to generate the set of items used in the game. A file such as assets/nil/blocks/nullium.yml can be referenced in the codebase with the identifier "nil/blocks/nullium".

YAML format

Each YAML file must specify a default texture key, referencing a PNG texture, and a model key, referencing an OBJ model file.

Additional conditions can be added to these files to swap models or textures when the object is in a particular state.

model: nil/blocks/block
texture: nil/blocks/nullium

OBJ format

OBJ files can be exported from Blender. All vertex positions should be within the range of [-0.5..0.5].

Texture format

Emissive pixels

In this project, "emissive pixels" are defined as pixels which are not subject to any lighting effects (they do not actually emit any light). An emissive pixel can be created by setting its alpha channel to exactly 254.