aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authortslil clingman <>2021-09-29 21:23:52 -0400
committertslil clingman <>2021-09-29 21:35:09 -0400
commitb44d2155e6a43b2abaf3c5c6d934d97ead72c099 (patch)
treeba9c0adaff8736f03c49151c8c9c031416d68729 /README.md
parent72dcaf8b2f811d0d1525592b2a1a63327b2fbc7a (diff)
Better description
Diffstat (limited to 'README.md')
-rw-r--r--README.md34
1 files changed, 28 insertions, 6 deletions
diff --git a/README.md b/README.md
index 09e47cb..9cf4fe5 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,38 @@
# ZiRC
-Learning Zig by building a Raycasting engine (of sorts). Work in
-progress.
+Learning Zig by building a raycasting engine.
+
+![Screenshot](screenshot.png)
+
+An explicit goal of this project is to do as much as possible in software. As such, except for the skyclinder, all of the rendering is done in software and hardware acceleration is only used to scale the resulting image.
+
+In particular alpha blending is implemented in software. This was the result of an interesting diversion into unsigned integer arithmetic approximations of floating point computations.
+
+## Features
+
+- [X] Basic textured raycasting
+- [X] View-bobbing, collision detection with walls, momentum etc
+- [X] Textured floors and ceilings
+- [X] Variable height walls
+- [X] Render tops of walls
+- [X] Static sprite objects
+- [X] Skyclinder*
+- [X] No overdraw (without sprites, skyclinder)
+- [ ] Variable height ceilings
+- [ ] Walls extending from ceiling instead of floor
+- [ ] Sprites look different from different directions
+- [ ] Animated textures
+
+*It's topologically a cylinder, not a box; hardware rendered for now
## Build
-Ensure you have a recent version of Zig (tested on
-`0.9.0-dev.866+6a6e2cd64`), and the `csfml` library somewhere we your
-linker can find it. Then run
+Ensure you have a recent version of Zig (tested on `0.9.0-dev.866+6a6e2cd64`), and the `csfml` library somewhere we your linker can find it. Then run
`zig build -Drelease-fast run`
+The default keybinds are FRST for Forward, Left Strafe, Backward, Right Strafe and the arrow keys for similar but turn instead of strafe. Escape exits.
+
## License
-GPLv3+
+the code is GPLv3+, the artwork is CC-BY-SA 4.0