Create an account


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Raylib 3.0 Released

#1
Raylib 3.0 Released

<div><p>Raylib 3.0 was <a href="https://raysan5.itch.io/raylib/devlog/134369/raylib-30-released">released today</a>.&nbsp; Raylib is an open source, cross platform C based framework of tools and libraries for making games.&nbsp; Components of raylib can be used on their own, however you can also download a preconfigured development environment making it among the easiest ways to get started doing C or C++ game programming.&nbsp; </p>
<p>Details of the 3.0 release:</p>
<ul>
<li>All <strong>global variables</strong> from the multiple raylib modules have been <strong>moved to a global context state</strong>, it has several benefits, first, better code <strong>readability </strong>with more comprehensive variables naming and categorization (organized by types, i.e. <code>CORE.Window.display.width</code>, <code>CORE.Input.Keyboard.currentKeyState</code> or <code>RLGL.State.modelview</code>). Second, it allows <strong>better memory management </strong>to load global context state dynamically when required (not at the moment), making it easy to implement a <strong>hot-reloading mechanism</strong> if desired.</li>
</ul>
<ul>
<li>All <strong>memory allocations</strong> on raylib and its dependencies now use <code>RL_MALLOC</code>, <code>RL_FREE</code> and similar macros. Now users can easely hook their <strong>own memory allocations mechanism</strong> if desired, having more control on how memory is allocated internally by the library. Additionally, it makes it easier to port the library to <strong>embedded devices</strong> where memory control is critical. For more info check raylib issue <a href="https://github.com/raysan5/raylib/issues/1074">#1074</a>.</li>
</ul>
<ul>
<li>All <strong>I/O file accesses</strong> from raylib are being moved to <strong>memory data access</strong>, now all I/O file access is centralized into just four functions: <code>LoadFileData()</code>, <code>SaveFileData()</code>, <code>LoadFileText()</code>, <code>SaveFileText()</code>. Users can just update those functions to <strong>any I/O file system</strong>. This change makes it easier to integrate raylib with <strong>Virtual File Systems</strong> or <strong>custom I/O file implementations</strong>.</li>
</ul>
<ul>
<li>All raylib <strong>data structures have been reviewed</strong><strong> and optimized</strong> for pass-by-value usage. One of raylib distinctive design decisions is that most of its functions receive and return data by value. This design makes raylib really simple for newcomers, <strong>avoiding pointers</strong> and <strong>allowing complete access to all structures data</strong> in a simple way. The downside is that data is copied on stack every function call and that copy could be costly so, all raylib data structures have been optimized to <strong>stay under 64 bytes</strong> for fast copy and retrieve.</li>
</ul>
<ul>
<li>All raylib <strong>tracelog messages have been reviewed</strong> and categorized for a more comprehensive output information when developing raylib applications, now all display, input, timer, platform, auxiliar libraries, file-accesses, data loading/unloading issues are properly reported with <strong>more detailed and visual messages</strong>.</li>
</ul>
<ul>
<li><code>raudio</code> module has been <strong>internally reviewed</strong> to accomodate the new <code>Music</code> structure (converted from previous pointer format) and the module has been <strong>adapted to the highly improved </strong><a href="https://github.com/dr-soft/miniaudio"><strong>miniaudio v0.10</strong></a>.</li>
</ul>
<ul>
<li><code>text</code> module reviewed to <strong>improve fonts generation and text management functions</strong>, <code>Font</code> structure has been redesigned to better accomodate characters data, decoupling individual characters as <code>Image</code> glyphs from the font atlas parameters. Several improvements have been made to <strong>better support Unicode strings with UTF-8 encoding</strong>.</li>
</ul>
<ul>
<li><strong>Multiple new examples added</strong> (most of them contributed by raylib users) and all examples reviewed for correct execution on most of the supported platforms, specially <strong>Web and Raspberry Pi</strong>. A detailed categorized table has been created on github for <a href="https://github.com/raysan5/raylib/tree/master/examples"><strong>easy examples navigation and code access</strong></a>.</li>
</ul>
<ul>
<li>New <strong>GitHub Actions CI system</strong> has been implemented for <strong>Windows, Linux and macOS</strong> code and examples compilation on every new commit or PR to make sure library keeps stable and usable with <strong>no breaking bugs</strong>.</li>
</ul>
<p>Raylib is available on <a title="https://www.raylib.com/" href="https://www.raylib.com/">https://www.raylib.com/</a>, with the source code <a href="https://github.com/raysan5/raylib">hosted on GitHub</a> under the liberal ZLib license.&nbsp; The <a href="https://www.raylib.com/cheatsheet/cheatsheet.html">raylib cheatsheet</a> is a one stop shop for learning the commands from the various libraries.&nbsp; Raylib is also well documented <a href="https://github.com/raysan5/raylib/wiki">on the Wiki</a>.</p>
<p>Learn more about raylib in the <a href="https://youtu.be/xx9ntuvA1t0">video</a> below.</p>
<p align="center">[embedded content]</p>
<p class="under"> <span class="categories"><a href="https://www.gamefromscratch.com/category/GameDev-News.aspx">GameDev News</a></span> <span class="tags"><a href="https://www.gamefromscratch.com/?tag=/CPP" rel="tag">CPP</a></span> </p>
<hr>
<p> &lt;!–</p>
<p>–&gt;</p>
</div>


https://www.sickgaming.net/blog/2020/04/...-released/
Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

Forum software by © MyBB Theme © iAndrew 2016