Better readme, added why zig and sokol
This commit is contained in:
parent
af559317fb
commit
1c49ffa07f
28
readme.md
28
readme.md
@ -1,3 +1,29 @@
|
|||||||
A little learning playground of [sokol](https://github.com/floooh/sokol) in [zig](https://ziglang.org/). Started on the gamejam at Decentrala, 9th June 2024.
|
A little learning playground of [sokol](https://github.com/floooh/sokol) in [zig](https://ziglang.org/). Started on the gamejam at Decentrala, 9th June 2024.
|
||||||
|
|
||||||
To build, you need to have zig master. Then just `zig build run` and that should be it!
|
The goal of this project is not fixed, and is just to try out some sokol features. But here's a few things I'd like to try out:
|
||||||
|
- [x] Draw a circle
|
||||||
|
- [ ] Load and render textures
|
||||||
|
- [ ] Render a 3D object
|
||||||
|
- [ ] Compile it for WebAssembly and run it in the browser
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
To build, you need to have zig master (you can use [zvm](https://www.zvm.app/) to help you with this). Then just `zig build run` and that should be it!
|
||||||
|
|
||||||
|
Note that if you change shaders, you have to recompile them manually - run compile_shaders.bat.
|
||||||
|
|
||||||
|
## Why zig?
|
||||||
|
|
||||||
|
Zig is a low level language and toolchain that is designed as a "better C". Its main goal is to be simple, robust and fast. A few strong points:
|
||||||
|
- It can cross-compile from any platform to any platform.
|
||||||
|
- It can include C headers and you can use it in zig directly.
|
||||||
|
- It has a built-in build system that is also written in zig, so no other build systems like cmake are needed.
|
||||||
|
- Unlike C++, it's not OOP, there are no hidden constructor and destructor calls and overcomplicated copy/move rules.
|
||||||
|
- Unlike C, it solves A LOT of problems of C, and is MUCH harder to shoot yourself in the foot.
|
||||||
|
- There are no hidden allocations, everything that is heap-allocating has to be done explicitely.
|
||||||
|
- It has a powerful metaprogramming facility "comptime", which provides full static reflection.
|
||||||
|
- I can go on listing more cool features, but that is enough for now.. :)
|
||||||
|
|
||||||
|
## Why sokol?
|
||||||
|
|
||||||
|
Sokol is a cross platform graphics library with minimal footprint that can compile to any backend like DirectX, OpenGL, Vulcan, Metal or even WebAssembly.
|
Loading…
Reference in New Issue
Block a user