raylib/ROADMAP.md
2023-11-10 23:25:00 +01:00

4.7 KiB

raylib roadmap

Here it 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:

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, https://github.com/raysan5/raylib/discussions/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 Spot lights
  • 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)