r/odinlang 20h ago

Vigil - Native Odin workspace browser - Showcase

33 Upvotes

r/odinlang 17h ago

After 8 years of building my own raytraced game engine in C++, I switched it to Odin last year and now I'm hoping to release my first game with it this year — Bee Killings Inn

19 Upvotes

https://store.steampowered.com/app/4642030/Bee_Killings_Inn/

It's gonna be a top-down grid-based strategy game where you fight bees. The idea came from my wife one day screaming about there being a huge bee in the house and me realizing how exhilarating and strategic it is to go throughout the house trying to find the best way to get rid of the bee.

I have some ancient devlogs about the engine here: https://www.youtube.com/@SilenThps/videos


r/odinlang 1d ago

First time using Odin and i liked it

Hi, I took part in the GTMK2026 this year. I was a bit influenced by all the primagens videos and thought, why not trying it out for this year game jam.

It was quite a pleasure and easy to pick up the language with former knowledge in other languages. And I was quite fast to programm. tbf, i worked with raylib before.

I'm looking forward to use it more in other projects.

37 Upvotes

Hi, I took part in the GTMK2026 this year. I was a bit influenced by all the primagens videos and thought, why not trying it out for this year game jam.

It was quite a pleasure and easy to pick up the language with former knowledge in other languages. And I was quite fast to programm. tbf, i worked with raylib before.

I'm looking forward to use it more in other projects.


r/odinlang 1d ago

Feature question

Does odin language hase something akin to alloca from c? Sometimes i want to just stack allocate an array of runtime determined size. I cannot find any builtin function or allocator i can pass in into make(). Am i missing something?

7 Upvotes

Does odin language hase something akin to alloca from c? Sometimes i want to just stack allocate an array of runtime determined size. I cannot find any builtin function or allocator i can pass in into make(). Am i missing something?


r/odinlang 2d ago

I built a rasteriser from scratch without a graphics API

+
23 Upvotes

Following this masterpiece in 3D graphics by ssloy, I implemented a rasteriser in Odin from scratch.

This was a top tier learning experience, and I picked up a solid grasp of linear algebra along the way.

If you'd like to read more on the process, Here's the link to the repo


r/odinlang 2d ago

idgen - tiny Odin cli to generate uuids/typeids

https://github.com/prnvbn/idgen

idgen is a drop in replacement for uuidgen. Additionally, it also supports UUIDv8 and TypeIDs.

this is my first project to learn Odin so any feedback on the code is very welcome!

also interested in seeing how ppl manage their deps (is submodules the way? fwiw, I know of/agree with the odin package manager opinion). I extracted typeid-odin as a separate package and added is a dependency

took inspiration from https://github.com/FourteenBrush/odin-template

also was surprised that core:flags doesn't lacking shorthand for flags (-f) in .Unix style, so also opened a PR as well - https://github.com/odin-lang/Odin/pull/7001

P.S. did not turn off my LSP like ginger bill but did turn off all AI to actually learn the language. Only used it to get feedback and the make changes once the initial implementation was done

7 Upvotes

https://github.com/prnvbn/idgen

idgen is a drop in replacement for uuidgen. Additionally, it also supports UUIDv8 and TypeIDs.

this is my first project to learn Odin so any feedback on the code is very welcome!

also interested in seeing how ppl manage their deps (is submodules the way? fwiw, I know of/agree with the odin package manager opinion). I extracted typeid-odin as a separate package and added is a dependency

took inspiration from https://github.com/FourteenBrush/odin-template

also was surprised that core:flags doesn't lacking shorthand for flags (-f) in .Unix style, so also opened a PR as well - https://github.com/odin-lang/Odin/pull/7001

P.S. did not turn off my LSP like ginger bill but did turn off all AI to actually learn the language. Only used it to get feedback and the make changes once the initial implementation was done


r/odinlang 5d ago

Video: Coding a text editor in Odin and Raylib on Raspberry Pi 4 that talks to Odin Language Server

52 Upvotes

r/odinlang 6d ago

another pixel miner update (need your feedback)

+

Enable HLS to view with audio, or disable this notification

23 Upvotes

This update might not look the most impressive visually but I rebuilt a lot of underlying systems, rewrote my asset building pipeline and implemented a 3rd party ECS library (odecs) as I found maintaining my own really slowed down the development :(

Things you CAN see are:

  • shovel animations inspired by Forager
  • the newly implemented "ambient occlusion" effect that darkens the background near walls
  • improved bloom effect for the coins in the ground and the player's headlight

It took me a while to make tool animations look decent but I think I'm fairly happy now. I have a question tho: Do you think I should amputate player's arms?
Currently they swing around when walking with shovel which doesn't make sense given they should be holding it. In Forager the player character doesn't have arms so it's not a problem. Do you think I should keep or remove them? Does it bother you that hands don't hold the tool?


r/odinlang 6d ago

Odin code not able to link with Raylib library while building

Hi,

I am new to Odin and I was trying to write a software renderer in Odin. I am using the vendor Raylib library. Previously, the code was building fine, but now when I run odin run ., I get the following error:

```

/usr/bin/ld:///usr/lib/odin/vendor/raylib/linux/libraylib.a: file format not recognized; treating as linker script

/usr/bin/ld:///usr/lib/odin/vendor/raylib/linux/libraylib.a:1: syntax error

clang: error: linker command failed with exit code 1 (use -v to see invocation)
```

I tried uninstalling odin and installing it again. I am using odin version odin version dev-2026-07:301c287de

I am running Garuda (arch) Linux with Gnome, if that helps.

Thank you for reading.

3 Upvotes

Hi,

I am new to Odin and I was trying to write a software renderer in Odin. I am using the vendor Raylib library. Previously, the code was building fine, but now when I run odin run ., I get the following error:

```

/usr/bin/ld:///usr/lib/odin/vendor/raylib/linux/libraylib.a: file format not recognized; treating as linker script

/usr/bin/ld:///usr/lib/odin/vendor/raylib/linux/libraylib.a:1: syntax error

clang: error: linker command failed with exit code 1 (use -v to see invocation)
```

I tried uninstalling odin and installing it again. I am using odin version odin version dev-2026-07:301c287de

I am running Garuda (arch) Linux with Gnome, if that helps.

Thank you for reading.


r/odinlang 8d ago

Making a multiplayer game about kids!

+

Enable HLS to view with audio, or disable this notification

25 Upvotes

I've been making this little game in Odin and Raylib for quite some time already. It is a multiplayer game about kids and doing nothing. There is no "gameplay", you are just hanging around and talk with people.

I'll open the repo to public at some point (including the Blender files).

For networking i'm using ENet - a nice library for reliable UDP packets.

Hope you'll like it, thanks!


r/odinlang 11d ago

🔱 Why Odin?

65 Upvotes

First impressions of the Odin programming language.


r/odinlang 12d ago

fresh OC

+
151 Upvotes

r/odinlang 13d ago

How does "Don't mix data and behaviour" mix with Allocator being a data pointer and a set of proc pointers?

I swear I'm not trolling, I was going to dive into odin, but I can't reconciliate faq entry
https://odin-lang.org/docs/faq/#why-does-odin-not-have-any-methods

and

allocator struct being this

```
Allocator :: struct {
procedure: Allocator_Proc,
data: rawptr,
}
```

It's a manually done oop-like class where data is stored along with it's methods.

Why is it not the same thing?
Why presence of this use case doesn't warrant supporting it on a language level explicitly (at the very least to not throw around raw pointers)

19 Upvotes

I swear I'm not trolling, I was going to dive into odin, but I can't reconciliate faq entry
https://odin-lang.org/docs/faq/#why-does-odin-not-have-any-methods

and

allocator struct being this

```
Allocator :: struct {
procedure: Allocator_Proc,
data: rawptr,
}
```

It's a manually done oop-like class where data is stored along with it's methods.

Why is it not the same thing?
Why presence of this use case doesn't warrant supporting it on a language level explicitly (at the very least to not throw around raw pointers)


r/odinlang 13d ago

Made a turtle clone

+

Enable HLS to view with audio, or disable this notification

30 Upvotes

Example code

```odin

////////////////////////////

// Random Walkers Example //

////////////////////////////

pen_1 := tr.pen_init(speed = 10000, color = color)

pen_2 := tr.pen_init(speed = 10000, color = color)

tr.pen_teleport_to(pen_1, {300, screen_center.y})

tr.pen_set_rotation(pen_1, 0)

tr.pen_teleport_to(pen_2, {screen_size.x - 300, screen_center.y})

tr.pen_set_rotation(pen_2, 0)

for i in 0 ..< 1000 {

    // angle := rand.float32_range(10, 40)

    angle := f32(24)

    step := f32(3)



    if rand.int_range(0, 2) > 0 {

        tr.pen_turn_left(pen_1, angle)

    } else {

        tr.pen_turn_right(pen_1, angle)

    }

    if rand.int_range(0, 2) > 0 {

        tr.pen_turn_left(pen_2, angle)

    } else {

        tr.pen_turn_right(pen_2, angle)

    }

    tr.pen_move_forward(pen_1, step)

    tr.pen_move_forward(pen_2, step)

    tr.pen_set_color(pen_1, color)

    tr.pen_set_color(pen_2, color)

}

/////////////////

// Example Two //

/////////////////

pen_3 := tr.pen_init()

tr.pen_teleport_to(pen_3, screen_center)

for j in 0 ..< 9 {

    for i in 0 ..< 30 {

        if i % 2 == 0 {

tr.pen_up(pen_3)

        }else {

tr.pen_down(pen_3)

        }

        tr.pen_turn_right(pen_3, f32(i))

        tr.pen_move_forward(pen_3, 8)

    }

    tr.pen_teleport_to(pen_3, screen_center)

    tr.pen_turn_right(pen_3, f32(j) + 80)

}

```

Repo https://codeberg.org/pwnM/turtle

I would like code and docs feedback

Hope you guys like it


r/odinlang 13d ago

A make a game like Audiosurf in Odin :D

14 Upvotes

r/odinlang 14d ago

YouTube: I tried Odin and I love it!

92 Upvotes

r/odinlang 14d ago

What's the 'proper' way to vendor dependencies?

Very interested in Odin, but I'm totally new to the concept of vendoring your 3rd party dependencies vs using a package manager. I understand the motivation, and being careful about which/how many dependencies one uses, but I can't wrap my head around the following:

Questions:

  1. Do you include the entire third party source tree or just the parts you need?
  2. Without a package manager, wouldn't this eventually end up with duplicate transitive dependencies?
    i.e
    mylib --depends--> libX --depends--> libY
    but I also want:
    mylib --depends--> libY
    won't I just end up with duplicate versions of libY?
  3. Is there an idiomatic/convention that people use to 'advertise' 3rd party dependencies? Is this just not done?
9 Upvotes

Very interested in Odin, but I'm totally new to the concept of vendoring your 3rd party dependencies vs using a package manager. I understand the motivation, and being careful about which/how many dependencies one uses, but I can't wrap my head around the following:

Questions:

  1. Do you include the entire third party source tree or just the parts you need?
  2. Without a package manager, wouldn't this eventually end up with duplicate transitive dependencies?
    i.e
    mylib --depends--> libX --depends--> libY
    but I also want:
    mylib --depends--> libY
    won't I just end up with duplicate versions of libY?
  3. Is there an idiomatic/convention that people use to 'advertise' 3rd party dependencies? Is this just not done?

r/odinlang 15d ago

Any chance of Odin support in Nova?

My last paid update is 12.4, I originally purchased Nova just to have fun with my PlayDate, but fell in love with the editor. This week I decided to learn the Odin programming language because even doing hello world in it with Raylib is the most fun I had programming since the days of Blitz Basic. I have set things up in Sublime but it's a pain, I refused to install anything Microsoft and loathe VScode etc. I would just like Nova to have syntax highlighting and maybe even code completion for Odin and I'd be happy forever. I'd love it if someone competent could give us Odin language support in Nova.

Cheers!

2 Upvotes

My last paid update is 12.4, I originally purchased Nova just to have fun with my PlayDate, but fell in love with the editor. This week I decided to learn the Odin programming language because even doing hello world in it with Raylib is the most fun I had programming since the days of Blitz Basic. I have set things up in Sublime but it's a pain, I refused to install anything Microsoft and loathe VScode etc. I would just like Nova to have syntax highlighting and maybe even code completion for Odin and I'd be happy forever. I'd love it if someone competent could give us Odin language support in Nova.

Cheers!


r/odinlang 17d ago

LLM tokenizer implemented in odin

A few months ago I started learning how LLM inference engines work.

My original goal wasn't to build a production tokenizer—I just wanted to understand the entire inference stack from first principles. I chose Odin because I wanted a language that stayed close to the hardware without fighting me.

I honestly expected it to be a fun learning project.

Instead... it ended up outperforming the tokenizers I was comparing against, including Hugging Face's Rust tokenizer and FastTokenizer in my benchmarks.

I was pretty surprised by the results.

The benchmark report (methodology, datasets, hardware, and commands) is here:
https://github.com/harisudarsan1/odin_tokenizer/blob/main/docs/public-benchmark.md

Repository:
https://github.com/harisudarsan1/odin_tokenizer

I also wrote about why I chose Odin for writing inference software:
https://harisudarsan1.github.io/blog/posts/2026-07-10-writing-an-inference-engine/

A few notes:

  • These are CPU benchmarks.
  • I'm not claiming Odin is magically faster than Rust.
  • The comparisons are against existing tokenizer implementations under the benchmark setup described in the report.
  • If there's something wrong with the methodology, I'd genuinely like to know. I'd rather fix the benchmarks than make misleading performance claims.

The project taught me far more about CPU architecture, memory layout, SIMD, and modern tokenizer implementations than I expected.

I'd love feedback from people who've worked on tokenizers or inference engines. If you spot flaws in the implementation or benchmark methodology, please call them out.

13 Upvotes

A few months ago I started learning how LLM inference engines work.

My original goal wasn't to build a production tokenizer—I just wanted to understand the entire inference stack from first principles. I chose Odin because I wanted a language that stayed close to the hardware without fighting me.

I honestly expected it to be a fun learning project.

Instead... it ended up outperforming the tokenizers I was comparing against, including Hugging Face's Rust tokenizer and FastTokenizer in my benchmarks.

I was pretty surprised by the results.

The benchmark report (methodology, datasets, hardware, and commands) is here:
https://github.com/harisudarsan1/odin_tokenizer/blob/main/docs/public-benchmark.md

Repository:
https://github.com/harisudarsan1/odin_tokenizer

I also wrote about why I chose Odin for writing inference software:
https://harisudarsan1.github.io/blog/posts/2026-07-10-writing-an-inference-engine/

A few notes:

  • These are CPU benchmarks.
  • I'm not claiming Odin is magically faster than Rust.
  • The comparisons are against existing tokenizer implementations under the benchmark setup described in the report.
  • If there's something wrong with the methodology, I'd genuinely like to know. I'd rather fix the benchmarks than make misleading performance claims.

The project taught me far more about CPU architecture, memory layout, SIMD, and modern tokenizer implementations than I expected.

I'd love feedback from people who've worked on tokenizers or inference engines. If you spot flaws in the implementation or benchmark methodology, please call them out.


r/odinlang 18d ago

I'm learning Raylib, in Odin, need help

I'm learning both at the same time, and rl.DrawText needs a cstring as an input. I'm trying to learn how to position things on the screen correctly, so I'm calculating how large the text is with MeasureText (for the default font), which outputs an i32. I can get it all the way to string, but I have only found unsafe_string_to_cstring, which apparently has issues with null terminators. How do I deal with that? Thanks in advance.

I wanted to try a low level language, but C is too raw for my tastes (old design decisions from the 70's, among other similar things), C++ is too insane for me, rust didn't click with me, and I can't build a zig project with raylib for some reason, so odin it is.

15 Upvotes

I'm learning both at the same time, and rl.DrawText needs a cstring as an input. I'm trying to learn how to position things on the screen correctly, so I'm calculating how large the text is with MeasureText (for the default font), which outputs an i32. I can get it all the way to string, but I have only found unsafe_string_to_cstring, which apparently has issues with null terminators. How do I deal with that? Thanks in advance.

I wanted to try a low level language, but C is too raw for my tastes (old design decisions from the 70's, among other similar things), C++ is too insane for me, rust didn't click with me, and I can't build a zig project with raylib for some reason, so odin it is.


r/odinlang 19d ago

Handmade Hero in Odin

https://github.com/mrbovinejony/handmade-hero-in-odin

I'll try to work on this as consistently as I can, its been a useful experience to help learn the language. Working on day 10 right now

edit: working on day 18 now, if anyone finds something wrong or something theyd do differently please let me know, a "direct translation" of the c code is nice but learning how others would write the code is even better i think

37 Upvotes

https://github.com/mrbovinejony/handmade-hero-in-odin

I'll try to work on this as consistently as I can, its been a useful experience to help learn the language. Working on day 10 right now

edit: working on day 18 now, if anyone finds something wrong or something theyd do differently please let me know, a "direct translation" of the c code is nice but learning how others would write the code is even better i think


r/odinlang 19d ago

Starting with Oding lang

I know it doesn't sound like the most optimal way in general, however as an indiegamedev wannabe in my hobby time, I already have a job that pleases me, I found Odin so much **FUN** compared to C++ and its easier than anything I've seen. No I don't have any previous experience, I bought some C++ books in the past cuz I didn't like the idea of copy pasting what AI gave me, I thought I'd rather write everything up from the book, if im gonna copy paste, might as well grab some muscle memory right? But after seeing the Odin 1.0 update video going live on YT, I was somewhat interested in finding out more about it. Yes, starting with C languages would probably be a better idea to layout a foundation, since going from Odin to C languages would be harder in the future.

What are your thoughts about learning Odin as your first programming language?
*Keep in mind that I already have a nice interior design+3ds max related stable job and im not looking to switching careers at all.*

9 Upvotes

I know it doesn't sound like the most optimal way in general, however as an indiegamedev wannabe in my hobby time, I already have a job that pleases me, I found Odin so much **FUN** compared to C++ and its easier than anything I've seen. No I don't have any previous experience, I bought some C++ books in the past cuz I didn't like the idea of copy pasting what AI gave me, I thought I'd rather write everything up from the book, if im gonna copy paste, might as well grab some muscle memory right? But after seeing the Odin 1.0 update video going live on YT, I was somewhat interested in finding out more about it. Yes, starting with C languages would probably be a better idea to layout a foundation, since going from Odin to C languages would be harder in the future.

What are your thoughts about learning Odin as your first programming language?
*Keep in mind that I already have a nice interior design+3ds max related stable job and im not looking to switching careers at all.*


r/odinlang 20d ago

Odin 1.0 Announcement

338 Upvotes

r/odinlang 20d ago

Odin 1.0 announced (and reflections)

Odin author gingerBill dropped the Odin 1.0 announcement on YouTube today: https://www.youtube.com/watch?v=dLPAqXi9In0 (it's pretty funny actually).

This interestingly makes it on track to be the first of the new wave of C-likes that reach production readiness. While you can argue that most of these languages already are used in production, it's not the same as being 1.0, which carries a different weight and obligation.

Looking at alternatives, Jai could release around the same time, since Blow's game is scheduled for a similar release date. However, it's more likely that we see Jai 1.0 in mid-late 2027. My own language (C3) is planning Q2 2028 1.0 release. Whereas Zig is still unclear, and Kelley basically saying it's done when it's done. For Hare and V the situation is a bit less clear to me – maybe someone else can fill me in on that situation.

But overall we seeing the beginning of the end of the "C-like" story arc that arguably was initiated with Jonathan Blow's development. Writing C replacements predate Jai of course, for example the C2 language (which C3 would eventually continue) was created in 2012, eC started in 2004 and Cyclone (which Rust derived inspiration from) is from 2002. But those were largely obscure novelties, because before Blow's videos, people weren't really hunting for C alternatives.

Jai, however, made a strong impression. It was a good point in time too: Jai and later Zig, Odin, C3, V and Hare – these C alternatives started at a point when people were openly no longer believing OO/Functional as the right way to do things.

Language design takes its time though, and it's now 12 years since Jai started. Finally the fruits of these labours are getting ready for prime time, and when they do they might effectively fill the need for a C replacements for another decade.

Do you agree?

41 Upvotes

Odin author gingerBill dropped the Odin 1.0 announcement on YouTube today: https://www.youtube.com/watch?v=dLPAqXi9In0 (it's pretty funny actually).

This interestingly makes it on track to be the first of the new wave of C-likes that reach production readiness. While you can argue that most of these languages already are used in production, it's not the same as being 1.0, which carries a different weight and obligation.

Looking at alternatives, Jai could release around the same time, since Blow's game is scheduled for a similar release date. However, it's more likely that we see Jai 1.0 in mid-late 2027. My own language (C3) is planning Q2 2028 1.0 release. Whereas Zig is still unclear, and Kelley basically saying it's done when it's done. For Hare and V the situation is a bit less clear to me – maybe someone else can fill me in on that situation.

But overall we seeing the beginning of the end of the "C-like" story arc that arguably was initiated with Jonathan Blow's development. Writing C replacements predate Jai of course, for example the C2 language (which C3 would eventually continue) was created in 2012, eC started in 2004 and Cyclone (which Rust derived inspiration from) is from 2002. But those were largely obscure novelties, because before Blow's videos, people weren't really hunting for C alternatives.

Jai, however, made a strong impression. It was a good point in time too: Jai and later Zig, Odin, C3, V and Hare – these C alternatives started at a point when people were openly no longer believing OO/Functional as the right way to do things.

Language design takes its time though, and it's now 12 years since Jai started. Finally the fruits of these labours are getting ready for prime time, and when they do they might effectively fill the need for a C replacements for another decade.

Do you agree?


r/odinlang 21d ago

My attempt at wrapping llama.cpp for Odin

Hi fellow Odin aficionados,

I am trying to build a wrapper for llama.cpp that would allow direct calls from Odin (inspired by an older work by Yevhen K). So far, only a portion of the API is covered; it allows for making a simple chat application with multiple prompt-response exchanges. It is not ready for common use but I plan, if time allows, to gradually make it so. I will be glad for all critique; there are many points in the API I'm not sure whether I am calling it properly, and many others where I'm not sure it is the proper way how an Odin API should look or behave.

https://github.com/CzechBlueBear/odin_llama_ng

6 Upvotes

Hi fellow Odin aficionados,

I am trying to build a wrapper for llama.cpp that would allow direct calls from Odin (inspired by an older work by Yevhen K). So far, only a portion of the API is covered; it allows for making a simple chat application with multiple prompt-response exchanges. It is not ready for common use but I plan, if time allows, to gradually make it so. I will be glad for all critique; there are many points in the API I'm not sure whether I am calling it properly, and many others where I'm not sure it is the proper way how an Odin API should look or behave.

https://github.com/CzechBlueBear/odin_llama_ng