sokol-tools
rend3
sokol-tools | rend3 | |
---|---|---|
5 | 14 | |
201 | 1,033 | |
- | 2.5% | |
7.3 | 8.0 | |
2 days ago | 10 days ago | |
C++ | Rust | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sokol-tools
-
Stop Hiding the Sharp Knives: The WebAssembly Linux Interface
I would really love being able to take any POSIX command line tool, compile that to WASI, and run it on (at least) Linux, Windows and macOS like a regular executable without having to install a separate WASI runtime.
I'm a 'WASI convert' since I was able to take an ancient 8-bit assembler written in the mid-90's (http://xi6.com/projects/asmx/), compile that as-is with the WASI SDK (https://github.com/WebAssembly/wasi-sdk), and then integrate it into a VSCode extension (https://marketplace.visualstudio.com/items?itemName=floooh.v...).
A similar problem is I have is a shader cross-compiler (https://github.com/floooh/sokol-tools) which needs to run Linux, macOS and Windows and takes too long to build locally, thus I currently need to distribute that as pre-built binaries. Compiling this to WASI works, but the filesystem access restrictions built into current wasm runtimes are a hassle to manage, and it would require a WASI runtime to be separately installed).
-
Meta Releases Intermediate Graphics Library
Sokol also provides a solution for shader cross-compilation (https://github.com/floooh/sokol-tools/blob/master/docs/sokol...), so you only need to write your shaders once no matter if you're targeting OpenGL, Metal, or DirectX.
There are other tools you could use out there with IGL, but Sokol's solution streamlines the whole process.
-
Go 1.21 will (likely) have a static toolchain on Linux
> but that is only for software written in C, it does not work with C++.
I have a pretty complex C++ command line tool which works just fine with MUSL (https://github.com/floooh/sokol-tools). What potential problems should I be aware of?
-
Zig: The Modern Alternative to C
In practice it works very well though, I experimented replacing cmake with build.zig for a 'not-quite-trivial' C++ project, and tbh for cross-platform code that's a lot nicer wrestling with cmake and all the C/C++ compiler toolchain differences:
https://github.com/floooh/sokol-tools/blob/master/build.zig
-
Qb – Zero-configuration build system to quickly build C/C++ projects
Yes, here is an example:
https://github.com/floooh/sokol-tools/blob/master/build.zig
Compared to cmake, this means giving up IDE support like Xcode or Visual Studio though, it's really just a pure build system.
rend3
-
Meta Releases Intermediate Graphics Library
The WGPU people are still working through lock conflicts in that area. The idea with Vulkan land is that you should be able to load content while rendering is in progress. For that to be useful, all the layers above Vulkan also have to have their locking problems hammered out. Most open source game engines don't do that yet. Unreal Engine and Unity do, which is why you pay for them for your AAA title.
[1] https://raw.githubusercontent.com/BVE-Reborn/rend3/trunk/exa...
[2] https://github.com/BVE-Reborn/rend3/blob/trunk/examples/scen...
[3] https://video.hardlimit.com/w/sFPkECUxRUSxbKXRkCmjJK
-
Is bevy the best option for a Rust based game engine (long term)?
The big problem I have with bevy here is that they seem to be very much against bevy being reusable across the ecosystem. Every feature has to be bevyfied into an ECS thing. There's no way one can use bevy_input for input handling outside of bevy, or bevy_audio for audio, or bevy_render to get a 3d renderer like https://rend3.rs/. The Rust ecosystem would've been so much better off if bevy wasn't creating a walled garden and draining insane amounts of effort just for itself, but say instead used rend3 for its rendering, so that other efforts in rust gamedev didn't have to reimplement everything from scratch.
-
NANOVOID Devlog #1: Lua Scripting
We have our own engine. There aren't really full engines available in the Rust ecosystem. Bevy attempts to fill this, but it's far from being feature complete. There's also https://fyrox.rs/, but that's also work in progress. There's also https://rend3.rs/ which is just a 3d renderer, so you'll need to build the rest of the engine yourself.
- Really frustrated. [Warning: Bit of a negative rant]
-
We're still not game, but there has been progress. A progress report.
That's been fixed. It was one of those things where a complicated workaround for Rust's ownership rules, one that required maintaining internal consistency between multiple tables, was inconsistent.
-
We're not really game yet.
Rend3 crashes The library's internal memory allocator for GPU objects is losing objects and panicking. This seems to be a race condition that comes up once you get past displaying static scenes and start having moving objects. Rend3 has one overworked main developer. If you're qualified to work on GPU-level stuff, which I am not, that project could use help.
- Ambient: The Multiplayer Game Engine
- Learn WGPU updated to 0.15!
-
Which graphics crate do you use?
I personally use Rend3, ability to use WGPU to make my own render effects, but I still get to build my own engine around it, although I'm waiting for the vertex-pulling branch to be merged before I really get going
- Is there an easy wrapper for wgpu?
What are some alternatives?
libxev - libxev is a cross-platform, high-performance event loop that provides abstractions for non-blocking IO, timers, events, and more and works on Linux (io_uring or epoll), macOS (kqueue), and Wasm + WASI. Available as both a Zig and C API.
wgpu-text - 📜A simple 2D text renderer for wgpu📜 > is a wrapper over glyph-brush for easier text rendering in wgpu > inspired by similar to wgpu_glyph
SFML-IGL - Rendering example with Meta's Intermediate Graphics Library and SFML
wgpu - A cross-platform, safe, pure-Rust graphics API.
c - Compile and execute C "scripts" in one go!
bevy_retro - Plugin pack for making 2D games with Bevy
libddwaf - Datadog's WAF
wgpu-practice
igl - Intermediate Graphics Library (IGL) is a cross-platform library that commands the GPU. It provides a single low-level cross-platform interface on top of various graphics APIs (e.g. OpenGL, Metal and Vulkan).
Neothesia - Flashy Synthesia Like Software For Linux,Windows and MacOs
qb - Zero-configuration build system to very quickly build C/C++ projects.
three-d - 2D/3D renderer - makes it simple to draw stuff across platforms (including web)