raylib
imgui
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.
raylib
-
The Failures Of API Design
Let's take a look at another API. Raylib. Now Raylib does a little bit more than just load images. Raylib is more of a game framework than a single-purpose library. It will create a window, handle input, load images, render pixels, handle loading and rendering fonts, and so on. Even though Raylib does multiple things, it doesn't go overboard. It tries to be simple yet robust. There's a clear vision for the library. They didn't try to force a GUI editor into the API or an alternative string type. It had one goal and that is to become a game framework. What happens when Raylib has added all the features it needs to add? Well, call it feature-complete and just move on. There's no need to bloat an API for no reason other than you "felt like it".
-
One must imagine Sisyphus writing a new JS framework
Don't like having to use gigantic game engines to make games? Here's a whole suite of beautifully simple libraries with bindings for a lot of languages: raylib
-
Exploring Raylib and Open Source
Do like playing video games? I know I do; in fact, I enjoy it so much that I learned how to make video games. So, for a recent course I’m taking in school for open-source development I decided to focus on Raylib. Raylib describes itself as “a simple and easy-to-use library to enjoy videogames programming.” Written in pure c with bindings for almost any other programming language such as c++, Rust, and Python. It is a flexible tool which can work in almost any environment.
- SDL3 new GPU API merged
-
Zig! Can you C?
Fetch Packages... raylib... ./ray_test_zig/build.zig.zon:7:20: error: url field is missing corresponding hash field .url = "https://github.com/raysan5/raylib/archive/refs/tags/5.0.tar.gz", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ note: expected .hash = "1220c28847ca8e8756734ae84355802b764c9d9cf4de057dbc6fc2b15c56e726f27b",
- Ask HN: Do you know any open source (2D or 3D) asset libraries?
- Raylib – A simple and easy-to-use library to enjoy videogames programming
-
Can't make my mind about which engine to use
libGDX is great, but I can understand if it's not for some people. This also applies to love2d, raylib and Monogame
-
Raylib Library For Video Games Programming as Senior Developer
Raylib library
- Advice for managing a group of beginner C programmers, myself included
imgui
- Rewriting Rust
-
Microui+fenster=Small GUI
Cool project! Graphics programming is _hard_ and anything to make it easier is welcome.
Maybe a dumb question, but why not Imgui (https://github.com/ocornut/imgui). "It's way too big and complex" is a completely reasonable answer, but I found it fantastic for debug menus, and there are a few applications that have used it as their _main_ GUI (Ship of Harkinian as an example).
-
Building cross-platform GUI apps in Rust using egui
The most well known immediate mode GUI framework, which egui is also inspired by, is Dear imgui. The egui repository also has a section on the trade offs when it comes to immediate mode GUIs, which I would definitely recommend you check out.
-
About the IMGUI Paradigm
> "Minimize state synchronization."
> void UpdateUI()
Minimize state synchronization by effectively synchronizing state on each screen refresh?
> "Minimize state storage on user side."
> Immediate mode is a style of API where important state is kept in user code
Then reduce state stored in user code by storing "important state" in user code?
> "Minimize setup and maintenance."
I don't find the example convincing. It seems like any more complexity beyond this toy example puts you right back where you started. Building components by hand is stone age ideology regardless of how you push state.
https://github.com/ocornut/imgui/blob/master/examples/exampl...
> "Easy to use to create dynamic UI which are the reflection of a dynamic data set."
Which is great for a video game.
- Home to Anything JavaFX Related
- About the Imgui Paradigm
- 10 Years of Dear ImGui
-
Russ Cox is stepping down as the Go tech lead
> I switched from C++ to C about 7 years ago and never looked back
I'm definitely considering the same, and you're right - it's not C++ itself that appeals to me at all, it's the libraries. I'm not sure what C libraries I'd use for collections (instead of the STL and Abseil [0]), or in lieu of CLI11 [1] or Dear ImGui [2].
[0] https://abseil.io/about/design/swisstables
[1] https://github.com/CLIUtils/CLI11
[2] https://github.com/ocornut/imgui
-
So you think you know box shadows?
This discussion around adding shadows to window boarders in imgui is also interesting: https://github.com/ocornut/imgui/issues/1329
-
Plausible Community Edition
I think that world still exists. We're on HN, so there's always going to be a business/startup bias in what we talk about and share here. And doubly so if someone develops a product as open source with a commercial offering to support it from the get go.
Off the top of my head, Imgui[0] is an example of an open source project, widely used, developed by a small group with a main contributor. AssetCooker [1] is a project that I discovered recently which is clearly a passion project from a single developer who shared it with the world. CNCF [2] is an odd one, but in my mind it's a 21st century Apache foundation - they have a bunch of core projects which are complete open source projects, used widely in production and sustained through different models.
I think imgui (of the bunch) is probably closest to the GCC-of-the-early-90's idea.
[0] https://github.com/ocornut/imgui
[1] https://github.com/jlaumon/AssetCooker
[2] https://www.cncf.io/projects/
What are some alternatives?
SFML - Simple and Fast Multimedia Library
wxWidgets - Cross-Platform C++ GUI Library
SDL2 - SDL2 bindings to perl
nuklear - A single-header ANSI C immediate mode cross-platform GUI library
bevy - A refreshingly simple data-driven game engine built in Rust
NanoGUI - Minimalistic GUI library for OpenGL
SDL - Simple Directmedia Layer
GTK+ - Read-only mirror of https://gitlab.gnome.org/GNOME/gtk
bgfx - Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
CEGUI
love - LÖVE is an awesome 2D game framework for Lua.
egui - egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native