# Random number generator. Native, multi algorithm and instance based

**URL:** <https://forum.defold.com/t/random-number-generator-native-multi-algorithm-and-instance-based/74532>\
**Category:** The Defoldmine\
**Created:** [October 14, 2023, 7:52pm UTC](https://forum.defold.com/t/random-number-generator-native-multi-algorithm-and-instance-based/74532 "2023-10-14T19:52:37Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Alchimystic](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/alchimystic/32/33560_2.png) [@Alchimystic](https://forum.defold.com/u/Alchimystic)\
**Post date:** [October 14, 2023, 7:52pm UTC](https://forum.defold.com/t/random-number-generator-native-multi-algorithm-and-instance-based/74532/1 "2023-10-14T19:52:37Z")

</div>

Based on the idea behind Defold-random, i created a new extension for native, instance based (non-global) random number generators.

Hereby i present [defold-rng](https://github.com/alchimystic/defold-rng)

This extension has 3 main aspects:

- Native, to be as fast as possible
- Instance-based (no global state), so true procedural generation is possible
- Multi-algorithm, so we can add multiple algorithms and choose the best for each use and need

To start with, we have PCG32 algorithm. Others will follow.

I just started in Game Development, and after checking reviews for more than 30 engines and given my own expectations and values, i decided to stick with Defold.

Procedural generation is something i would like to invest in. I felt the need for this extension, so i created it, based on other great extensions, such as defold-random.

Despite having 30 year experience as a programmer, i just recently started with Lua, and C/C++ is something i don’t have contact with for more than 25 years.

As a seasoned programmer, i feel code reuse is a must, and extensions are the best way to have it in Defold.

Hopefully this is the first (of many) extension contributions for the Defold community.

---

<div class="post-metadata">

**Author:** ![britzl](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/britzl/32/23_2.png) [@britzl](https://forum.defold.com/u/britzl)\
**Post date:** [October 15, 2023, 9:04pm UTC](https://forum.defold.com/t/random-number-generator-native-multi-algorithm-and-instance-based/74532/2 "2023-10-15T21:04:47Z")

</div>

Cool. Thank you for sharing!

---

<div class="post-metadata">

**Author:** ![Alchimystic](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/alchimystic/32/33560_2.png) [@Alchimystic](https://forum.defold.com/u/Alchimystic)\
**Post date:** [October 16, 2023, 10:56am UTC](https://forum.defold.com/t/random-number-generator-native-multi-algorithm-and-instance-based/74532/3 "2023-10-16T10:56:27Z")

</div>

Just published version 1.1.0, adding support for TinyMT32 (Tiny Mersenne Twister).  
This one is similar to the original Mersenne Twister (MT19937), but uses way less state buffer (only 7 uint32, instead of 2.5kb)

---

<div class="post-metadata">

**Author:** ![Alchimystic](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/alchimystic/32/33560_2.png) [@Alchimystic](https://forum.defold.com/u/Alchimystic)\
**Post date:** [April 13, 2026, 11:24pm UTC](https://forum.defold.com/t/random-number-generator-native-multi-algorithm-and-instance-based/74532/4 "2026-04-13T23:24:03Z")

</div>

Just published version 1.2.0, which adds examples/demo to /example/main.script.  
In the same folder you can also find tests.script, with a full suite of unit tests for both algorithms
