raylib 3.1 roadmap

Created on 12 Apr 2020  路  28Comments  路  Source: raysan5/raylib

I started thinking about next raylib release, this time I planned to focus on library polishing and some quality-of-life changes, it will include some naming consistency changes (yeap, some API breaking) and also some new examples.

Here a list with intended improvements:

  • core: Support dynamic memory loading at InitWindow() (for global state) -> config.h #1240
  • [x] core: Support RPI4 platform through DRM #1096
  • [ ] core: Redesign window config flags system #1367
  • [x] rlgl: Support mesh instancing #1127
  • [x] rlgl: Redesign GenTexture*() functions using generic implementations #721 -> Not final yet but ok
  • [x] raymath: Review functions naming consistency #1197
  • [x] textures: Unify ImageDraw*() functions with Draw*() counterpart equivalents https://github.com/raysan5/raylib/commit/b132da0ac2b0777cc965238fc3b011b1fa9b1fe5
  • text: Avoid Image data storage on Font atlas generation -> config.h
  • [x] audio: Support WAV fileformat for Music streaming
  • utils: Support VFS on LoadFileData() #1327
  • [x] build: Support Continuous Deployment on GitHub Actions #1164
  • [x] misc: Add and improve raylib on Wikipedia
  • [x] misc: Support UWP again #1182 HELP WELCOME!
  • [x] misc: Move raylib/games to separate repo (implies web changes)

Some interesting new examples I'd like to add: HELP WELCOME!

  • core_3d_camera_touch -> Support 3d model visualization with touch/gesture inputs
  • core_vr_configurator -> Configure VR parameters in realtime (with raygui)
  • textures_cubemap -> Load and display a cubemap (new API available)
  • [x] textures_blending_modes -> Illustrate multiple blending modes (reference)
  • [x] models_skybox -> Review, not working on OpenGL ES 2.0, related to Cubemap
  • [x] shaders_hot_reloading -> Track shader on disk with GetFileModTime() to reload it

Just note that I'll keep updating this list as required!

Most helpful comment

@masterneme thanks, I'm aware of enet, looks good... but I try to only use single-file single-header libraries with raylib. But maybe I consider it in the future.

All 28 comments

There could be a lot to do here, might it be a good idea to divide it up amongst interested developers, this might stop people working on PR's doing the same thing...

I volunteer for this btw!

One thing I note can VFS and rres be integrated, so rres is a possible provider of a VFS
(I'm assuming by VFS you mean Virtual File System and not something else!)

@chriscamacho I edited the issue to mark the points where HELP is WELCOME! Most of the others points I think I can deal with that or they could require some API redesign.

About VFS and rres, yes that's the plan, allow seamless loading of files/data from a rres file.

I can help with the text part since I recently had to deal with that module.

Font Ligature support would be nice to have, also is there a way to get the window size after you resized it. I know raylib is using glfw underneath for the window but it doesn't seem like a lot of the window functions are exposed.

@ZelCloud Font ligature is out-of-scope. You can get window size with GetScreenWidth() and GetScreenHeight(). Yes, not al GLFW functionality is exposed... just feel free to use GLFW directly in your code, only need to include the header.

FYI just added a new section Development History to the raylib Wikipedia draft based on the releases tab and your 6 years of fun article

@Not-Nik ok, by the way, you also have that information on HISTORY.md

Hello. Just dropping a note to say that I'll be working on the textures_blending_modes example. Thanks.

audio: Support WAV fileformat for Music streaming

Possible to extend this for WAV use in general in raylib?

@rfaile313 what do you mean? WAV is already supported for Wave/Sound...

@rfaile313 what do you mean? WAV is already supported for Wave/Sound...

Doesn't it usually have issues? I thought only OGG files don't have issues?

@rfaile313 personally I hardly ever had any issue with WAV loading... 馃

EDIT: Just implemented WAV streaming, also updated used library for convenience.

Maybe I'm wrong, sorry :)

I plan to work on the textures_cubemap examples next.

Is the new API being referred to this one?
TextureCubemap LoadTextureCubemap(Image image, int layoutType)

@accidentalrebel hey! yes, but that function was not tested and it can have issues or be uncomplete. Actually, an example would be required just for that reason.

No problem. I'll give it a go and report if there are any bugs.

Just note that raylib Wikipedia entry has been improved and draft has been submitted for review and publishing. Review process could take up to seven weeks, in the meantime article can be further improved.

I'd love to see more scientific graphics available in the examples section alla GitHub.com/ProfJski/Raylib-Examples

Notes on #1327: Several Load*FromMemory() functions have been added to allow loading some types of data from a PHYSFS returned buffer. But some data types involve loading multiple files, i.e. model involves mesh/material/image files, usually referenced between them... loading all of them from memory is not trivial, a proper VFS must be setup and a proper API to access/configure it must be provided. I'm leaving it for next raylib iteration.

model_skybox (Cubemap generation and drawing) already works on OpenGL ES 2.0 (commit https://github.com/raysan5/raylib/commit/b5d50ee51afe7d30bbbcdd619534e9d4f432f4d3).

Just a note, moved raylib integration with other libraries to Wiki. It should be commented on the release!

A very nice addition would be to use the sokol gfx for the rlgl module in order to add support for metal and directx and also add support for dear imgui :) @raysan5

@gavriil07 No plans to redesign rlgl to support sokol_gfx, actually, if it was redesigned it would be to support Vulkan directly.

About Dear ImGui support, we already have c99-raylib-cimgui-template.

Hi, I don't know if you gave up on raynet but I suggest you check out enet, I believe it has everything you need. Godot uses it and League of Legends did (I don't know if they do now), so it's already been battle tested.

@masterneme thanks, I'm aware of enet, looks good... but I try to only use single-file single-header libraries with raylib. But maybe I consider it in the future.

@gavriil07 No plans to redesign rlgl to support sokol_gfx, actually, if it was redesigned it would be to support Vulkan directly.

About Dear ImGui support, we already have c99-raylib-cimgui-template.

ok, but what will happen after apple drops opengl?

@gavriil07 well, raylib won't be supported on Apple platforms until someone writes a Metal backend.

I try to only use single-file single-header libraries with raylib. But maybe I consider it in the future.

There is already a fork of single-header enet. We are using it couple of years already. However, no rush, there are few other libs, with fallback to emscripten's TCP WebSockets/WebRTC. enet is UDP only. Choose wisely.
https://github.com/zpl-c/enet

Was this page helpful?
0 / 5 - 0 ratings

Related issues

yashrk picture yashrk  路  5Comments

williamfjm picture williamfjm  路  3Comments

siavashserver picture siavashserver  路  5Comments

gavriil07 picture gavriil07  路  11Comments

carlsmith picture carlsmith  路  8Comments