Odin Changes in Detail #

Dynamic Literals are now disallowed #

Hidden allocations in Odin are [dynamic] arrays and map literal declarations. These allocate memory without the user potentially knowing.

An example would be:

main :: proc() {
    test: map[int]string = {
        0 = "zero",
        1 = "one",
        2 = "two",
        3 = "three",
    }
}

Now this is not supported anymore and can only be turned on explicitly through the flag #+feature dynamic-literals to have backwards compatibility when necessary.

map_entry builtin #

A new builtin to help in cases where you want to lookup if something exists in a map, return a pointer to the value or insert something new + return the final pointer in the map

Here is an example of it being used in the core:strings intern library. This is a call which has to be efficient as it may get called many times. map-entry-diff

SDL3 Support #

If you didn’t catch it yet, SDL3 has been released.

Odin Vendor packages strive to support the most commonly used libraries, so of course we support SDL3 just like we did SDl2!

Here is the vendor package vendor:SDL3

Further Changes #

Catch up on all changes on the releases page


Odin 7 Day Jam #

Karl Zylinski has held a Game Jame in which the community had to create games with odin in 7 days!

Here are all the entries and the final winners listed on the itch.io page: https://itch.io/jam/odin-7-day-jam/results


Community Projects #

Odin C Bindings Generator #

Look there is a new C Bindings generator! This one does the popular approach which uses clang to output an ASST and then turns it into odin code.

https://github.com/karl-zylinski/odin-c-bindgen

Sokol Hot Reload Template #

Github: https://github.com/karl-zylinski/odin-sokol-hot-reload-template

QRCode Generator #

https://github.com/jon-lipstate/qrcode


Socials #

Nadako - Sokol Tutorials #

Nadako - SDL3 Tutorials #

Handle Based Arrays Blog #

https://zylinski.se/posts/handle-based-arrays/


Community Games (Outside of the Game Jam) #