How I Chose a Programming Language for My GameDev Journey
If you're interested in programming games from scratch, you've probably agonized over how to get started.
You could use an existing tool, you could write everything from scratch, or you could do a little bit of both.
I really like the idea of programming everything by hand. Learning how to use an existing engine like Unity or Godot isn't easy. If you're going to invest hours upon hours into learning something, you may as well apply yourself to building something from scratch.
Choosing a Programming Language
When deciding on a language I knew I wanted the following:
- no garbage collection
- a simple language
- a simple toolchain
- online resources to help me learn game dev using that language
I considered the following languages:
- C
- Rust
- Odin
Each language has aspects that appeal to me.
What about C?
When you're learning it's really helpful to have an abundance of resources, and because C has been around forever, there are many examples of how to make games using C. My favorite resource, Handmade Hero, is a prime example.
I like writing C, and I believe I would really enjoy programming with it, but I would like to have a few more modern conveniences if possible.
Rust? not so much...
I really appreciate Rust's toolchain and learnings resources. I wrote Rust professionally for about 6 months when I was working on a Substrate-based blockchain, and all of these resources really helped me be productive.
But I'm sorry to say that I don't like Rust very much as a language. I found it very tedious to follow along with all the traits, type aliases, impls, etc. I like simplicity, and Rust is complex.
Couldn't I just write my own Rust code to be less complex? Of course, but Rust has one more thing I don't like -- ownership semantics.
Rust has a particular approach to memory management. It is A way to write code, not THE way. And while ownership semantics may work well in a lot of applications, I don't find the approach particularly compelling in a gamedev context.
Hello, Odin
I chose Odin for many reasons.
Odin is simple like C. The language is very practical and offers many useful features like array programming, slices, bit sets, and more.
Odin is fast and modern like Go, but it doesn't have a garbage collector. I want to get more experience with manual memory management, and using something like Go doesn't allow me to do that.
Odin offers officially-maintained bindings for helpful libraries like SDL2. Unlike the Rust bindings which are more "idiomatic", Odin's SDL2 bindings are identical to C, so any gamedev tutorials using C is easily translated to an Odin program.
Visit the official site for a full list of Odin vendor libraries.
And finally, as icing on the cake, I have been regularly impressed by the care and thoughfulness that has gone into the design of the language. This is true for C and Rust, too, of course, but I want to highlight that Ginger Bill has put a lot of thought and care into how Odin works. He has made a deliberate effort to create a language that is incredibly powerful but easy to learn, and fun to program with.
At the end of the day, I want to enjoy the language I'm using, and Odin certainly delivers.
Top comments (20)
This dev journey hits home! Building a game from scratch teaches you so much more than just using an engine. I felt the same excitement when trying out simulation games like bus simulator indonesia apk all vehicles unlocked, where the depth and detail really reflect the love for game mechanics and programming.
Programming games manually with Odin is a true art of creating your own world, where every detail is under control. It is especially interesting to notice how even simple game mechanics can evoke emotions similar to those that arise when playing at sixty six casino on sixty6. In Sweepstakes, everything is built around the enjoyment of the process, without the pressure of betting or risk — exactly what inspires game development.
S9 Game Login provides a seamless way to access your gaming account and continue your progress without interruptions. With a secure login process, players can enjoy smooth gameplay, unlock rewards, and stay connected to the gaming community effortlessly.
Great insights on selecting a programming language for game development! I fully agree—simplicity is crucial, and Odin strikes a nice balance between modern performance and manual memory control. If you're also looking to enhance user communication in your game or app, integrating a popular messaging application like GB WhatsApp could be a game-changer. With robust APIs for notifications and user interaction, WhatsApp makes it easy to create seamless communication experiences. Pairing it with Odin could take your project’s engagement to the next level.
Rev up your engines with Traffic Rider All Bikes Unlocked Mod APK, where all bikes are unlocked, and you have unlimited money at your disposal. Enjoy the immersive first-person view as you navigate through endless highways. With no fuel limits and enhanced gameplay, take your motorcycle racing to the next level. Get ready to conquer the roads like never before.
Really appreciate this post—I'm also going down the path of building a game completely from scratch and can relate to the struggle of picking the right language. I’ve been exploring Odin recently for similar reasons: simplicity, control over memory, and the straightforward toolchain. It feels like a great fit, especially for smaller-scale but performance-sensitive games.
Right now, I’m working on designing something similar to E-Scooter Game —a lightweight, physics-driven mobile game that focuses on smooth mechanics and responsive controls. Would love to hear your thoughts or connect with other Odin devs!
Summertime Saga Mod APK offers an enhanced version of the popular visual novel game, giving players access to unlocked content and premium features. With unlimited money and fully opened storylines, it allows for a smoother and more immersive experience. The latest version is optimized for Android devices, providing improved performance and rich, engaging gameplay.
Great write-up! I really appreciate your thought process in choosing a language for game development.
Odin seems like a fantastic choice, especially for those who enjoy the simplicity of C but want more modern conveniences without a garbage collector. The fact that its SDL2 bindings are identical to C is a huge plus, making it easier to translate existing tutorials and resources.
I also resonate with your take on Rust—while it’s powerful, its ownership model can sometimes feel more like an obstacle than a benefit in certain domains like game development. I also tried to develop something like Traffic Rider MOD APK must check!
Looking forward to seeing what you build with Odin!
This is a really insightful post! It's fascinating to see the dedication involved in programming games by hand with Odin. It reminds me of how much goes on behind the scenes, far beyond just downloading an app from a site like APKHura.
In Dota 2, the Low Priority queue is a penalty system that the game applies to players who have been reported multiple times for poor behavior or negative actions during matches. This can include things like abandoning games (AFK), intentionally feeding the enemy team, or being disruptive and rude in the chat of Dota 2 Low Priority.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.