Here is a wishlist with features and ideas to improve the library. Note that features listed here are usually long term improvements or just describe a route to follow for the library. There are also some additional places to look for raylib improvements and ideas:
- GitHub Issues has several open issues for possible improvements or bugs to fix.
- raylib source code has multiple TODO comments around code with pending things to review or improve.
- raylib wishlists discussions are open to everyone to ask for improvements, feel free to check and comment:
Current version of raylib is complete and functional but there is always room for improvements.
raylib 5.x
-
rcore
: Support additional platforms: iOS, Xbox Series S|X -
rcore_web
: Avoid GLFW dependency, functionality can be directly implemented using emscripten SDK -
rlgl
: Review GLSL shaders naming conventions for consistency -
textures
: Improve compressed textures support, loading and saving -
rmodels
: Improve 3d objects loading, specially animations (obj, gltf) -
raudio
: Implement miniaudio high-level provided features -
examples
: Review all examples, add more and better code explanations - Software renderer backend? Maybe using
Image
provided API
raylib 4.x
- Split core module into separate platforms?
- Redesign gestures system, improve touch inputs management
- Redesign camera module (more flexible) (#1143, raysan5#2507)
- Better documentation and improved examples, reviewed webpage with examples complexity level
- Focus on HTML5 (raylib 5k gamejam) and embedded platforms (RPI and similar SOCs)
- Additional support libraries: raygui, rres
raylib 4.0
- Improved consistency and coherency in raylib API
- Continuous Deployment using GitHub Actions
- rlgl improvements for standalone usage (avoid raylib coupling)
- Basic CPU/GPU stats system (memory, draws, time...) (#1295) - DISCARDED
- Software rendering backend (avoiding OpenGL) (#1370) - DISCARDED
- Network module (UDP):
rnet
(#753) - DISCARDED - Use nbnet.
raylib 3.0
- Custom memory allocators support
- Global variables moved to global context
- Optimize data structures for pass-by-value
- Trace log messages redesign (#1065)
- Continuous Integration using GitHub Actions
raylib 2.5
- Support Animated models
- Support glTF models file format
- Unicode support on text drawing
raylib 2.0
- Removed external dependencies (GLFW3 and OpenAL)
- Support TCC compiler (32bit and 64bit)
raylib 1.8
- Improved Materials system with PBR support
- Procedural image generation functions (spot, gradient, noise...)
- Procedural mesh generation functions (cube, sphere...)
- Custom Android APK build pipeline (default Makefile)
raylib 1.7
- Support configuration flags
- Improved build system for Android
- Gamepad support on HTML5
raylib 1.6
- Lua scripting support (raylib Lua wrapper)
- Redesigned audio module
- Support FLAC file format
raylib 1.5
- Support Oculus Rift CV1 and VR stereo rendering (simulator)
- Redesign Shaders/Textures system -> New Materials system
- Support lighting: Omni, Directional and Spotlights
- Redesign physics module (physac)
- Chiptunes audio modules support
raylib 1.4
- TTF fonts support (using stb_truetype)
- Raycast system for 3D picking (including collisions detection)
- Floyd-Steinberg dithering on 16bit image format conversion
- Basic image manipulation functions (crop, resize, draw...)
- Storage load/save data functionality
- Add Physics module (physac)
- Remove GLEW dependency -> Replaced by GLAD
- Redesign Raspberry PI inputs system
- Redesign gestures module to be multiplatform
- Module raymath as header-only and functions inline
- Add Easings module (easings.h)