raylib v4.2.0
New raylib release! Nine months after latest raylib, here it is a new version. It was supposed to be just a small update but, actually, it's a huge update with lots of changes and improvements. It has been possible thanks to the many contributors that have helped with issues and improvements, it's the update with more contributors to date and that's amazing!
Some numbers to start with:
- +200 closed issues (for a TOTAL of 1230!)
- +550 commits since previous RELEASE (for a TOTAL of +6000!)
- +20 functions ADDED to raylib API (for a TOTAL of 502!)
- +60 functions REVIEWED/REDESIGNED
- +70 new contributors (for a TOTAL of +360!)
Highlights for raylib 4.2
:
-
raylib extra libraries cleanup: raylib has been on diet and all the extra libraries included on previous releases have been removed from raylib. Now raylib only includes the original 7 raylib modules:
rcore
,rlgl
,rshapes
,rtextures
,rtext
,rmodels
andraudio
. But no worries, extra libraries have not been deleted, they have been moved to their own repos for better maintainability and more focus on its functionality. The libraries moved out from raylib repo are:raygui
,physac
,rmem
,reasings
andraudio
(standalone mode). On that same line, a new amazing GitHub group:raylib-extras
has been created by @JeffM2501 to contain raylib extra libraries as well as other raylib add-ons provided by the community. Jeff has done an amazing work on that line, providing multiple libraries and examples for raylib, like custom first-person and third person camera systems, Dear ImGui raylib integration, multiple specific examples and even a complete RPG Game Example! Great work Jeff! :D -
raylib examples review: The +120 raylib examples have been reviewed to add clearer information about when they were first created (raylib version used) and when they were updated for the last time. But the greatest improvement for users has been the addition of an estimated difficulty level for every example, web has been updated accordingly to reflect those difficulty levels. Now examples are classified with 1 to 4 stars depending on difficulty to help users with their learning process. Personally, I think this "small" addition could be a game-changer to better guide new users on the library adoption! Additionally, this new raylib release includes 7 new examples; the most interesting one:
text_codepoints_loading
that illustrates how to load and draw custom codepoints from a font file, very useful for Asian languages. -
rres 1.0
: Newrres
resources packaging file-format, including arres-raylib
library implementation andrrespacker
tool.rres
file format has been under development for +8 years and it was originally created to be part of raylib. It was highly inspired by XNA XNB resources file format but design has changed a lot along the years. This first release of the format specs is engine-agnostic and has been designed to be portable to any engine, including lots of professional features like data processing, compression and encryption. -
raygui 3.2
: The official raylib immediate-mode gui library designed for tools development has been updated to a new version aligned with raylib 4.2. Multiple controls have been reviewed for library consistency, now all controls follow a similar function signature. It has been battle-tested with the development of +8 published tools in the last months. The tools can be seen and used for free in the raylib technologies tools page. Worth mentioning that several of those tools have been open sourced for anyone to use, compile, contribute or learn how the code works. -
raylib_parser
: Multiple contributors using the tool to automatize bindings creation have contributed with improvements of this tool to parseraylib.h
(and other raylib-style headers) to tokenize its enums, structs and functions. Processed data can be exported to custom file formats (i.e XML, JSON, LUA) for bindings generation or even docs generation if required. -
New file system API: Current API has been redesigned to be more comprehensive and better aligned with raylib naming conventions, two new functions are provided
LoadDirectoryFiles()
/LoadDirectoryFilesEx()
to load aFilePathList
for provided path, supporting extension filtering and recursive directory scan.LoadDroppedFiles()
has been renamed to better reflect its internal functionality. Now, all raylib functions that start withLoad*()
allocate memory internally and a equivalentUnload*()
function is defined to take care of that memory internally when not required any more! -
New audio stream processors API (experimental): Now real-time audio stream data processors can be added using callbacks to played Music. It allows users to create custom effects for audio like delays of low-pass-filtering (example provided). The new API uses a callback system and it's still _ highly experimental_, it differs from the usual level of complexity that provides raylib and it is intended for advance users. It could change in the future but, actually,
raudio
module is in the spotlight for future updates; miniaudio implements a new higher-level API that can be useful in the future for raylib.
As always, there are more improvements than the key features listed, make sure to check raylib CHANGELOG for the detailed list of changes; for this release a WARNING
flag has been added to all the changes that could affect bindings or productivity code. raylib keeps improving one more version and a special focus on maintainability has been put on the library for the future. Specific/advance functionality will be provided through raylib-extras repos and raylib main repo devlelopment will be focused on what made raylib popular: being a simple and easy-to-use library to enjoy videogames programming.
Enjoy gamedev/tools/graphics programming! :)
New Contributors
- @KonPet made their first contribution in #2111
- @Schweinepriester made their first contribution in #2114
- @WIITD made their first contribution in #2116
- @lukekras made their first contribution in #2121
- @ampers0x26 made their first contribution in #2126
- @sol-vin made their first contribution in #2130
- @ronnieholm made their first contribution in #2136
- @WilledgeR made their first contribution in #2148
- @wolfenrain made their first contribution in #2149
- @ytrms made their first contribution in #2156
- @pancakevirus made their first contribution in #2163
- @jasonswearingen made their first contribution in #2168
- @anders-n08 made their first contribution in #2175
- @Toby222 made their first contribution in #2179
- @HarriP made their first contribution in #2189
- @jdeokkim made their first contribution in #2196
- @petelliott made their first contribution in #2202
- @eutro made their first contribution in #2208
- @ptarabbia made their first contribution in #2215
- @wereii made their first contribution in #2217
- @pitpit made their first contribution in #2233
- @salotz made their first contribution in #2238
- @planetis-m made their first contribution in #2243
- @shivajiva101 made their first contribution in #2253
- @tusharsingh09 made their first contribution in #2254
- @glorantq made their first contribution in #2260
- @gtrxAC made their first contribution in #2264
- @hero2002 made their first contribution in #2270
- @ArchieAtkinson made their first contribution in #2276
- @hartmannathan made their first contribution in #2277
- @MatthewOwens made their first contribution in #2281
- @phil-shenk made their first contribution in #2296
- @royqh1979 made their first contribution in #2298
- @siddharthroy12 made their first contribution in #2308
- @makuto made their first contribution in #2318
- @megagrump made their first contribution in #2324
- @audinue made their first contribution in #2319
- @locriacyber made their first contribution in #2329
- @zigster64 made their first contribution in #2332
- @DavidLyhedDanielsson made their first contribution in #2347
- @chrisws made their first contribution in #2366
- @IrishBruse made their first contribution in #2375
- @AnilBK made their first contribution in #2376
- @Hejsil made their first contribution in #2383
- @tixvage made their first contribution in #2384
- @guidoism made their first contribution in #2385
- @kristianlm made their first contribution in #2390
- @futureapricot made their first contribution in #2396
- @joaotavora made their first contribution in #2398
- @tana made their first contribution in #2419
- @ZimonIsHim made their first contribution in #2423
- @twuky made their first contribution in #2431
- @saccharineboi made their first contribution in #2428
- @FireFlyForLife made their first contribution in #2424
- @jcgamestoy made their first contribution in #2437
- @leomonta made their first contribution in #2442
- @ryupold made their first contribution in #2449
- @lazaray made their first contribution in #2444
- @Capital-EX made their first contribution in #2466
- @anggape made their first contribution in #2481
- @noodlecollie made their first contribution in #2485
- @patm1987 made their first contribution in #2486
- @gulrak made their first contribution in #2446
- @naveensrinivasan made their first contribution in #2496
- @dawranliou made their first contribution in #2509
- @Tekkitslime made their first contribution in #2521
- @TheTophatDemon made their first contribution in #2525
- @quantumedbox made their first contribution in #2536
- @hanaxar made their first contribution in #2539
- @Bitwise101 made their first contribution in #2559
- @CastimierDev made their first contribution in #2570
- @MikeDX made their first contribution in #2581
- @Timofffee made their first contribution in #2585
- @andsiu made their first contribution in #2587
- @evantj made their first contribution in #2589
- @kirigirihitomi made their first contribution in #2591
- @myuncle made their first contribution in #2592
- @wiertek made their first contribution in #2594
- @veins1 made their first contribution in #2579
- @sDos280 made their first contribution in #2602
- @BlueStaggo made their first contribution in #2604
- @TheManTheMythTheGameDev made their first contribution in #2608
- @ramiromagno made their first contribution in #2611
- @sysrpl made their first contribution in #2617
- @DaJobat made their first contribution in #2620
- @archie2x made their first contribution in #2622
- @ERmilburn02 made their first contribution in #2627
- @SomeUnusualGames made their first contribution in #2628
Full Changelog: 4.0.0...4.2.0