CodeNewbie Community ๐ŸŒฑ

Cover image for Programming Games by Hand Using Odin
Patrick O'Dacre
Patrick O'Dacre

Posted on

Programming Games by Hand Using Odin

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 (8)

Collapse
 
karticlinton profile image
Karticlinton • Edited

Understanding the different types of bets in sports betting is crucial for bettors to make informed decisions. The most common types include: Moneyline Bet: A simple bet on which team will win a game. Odds are assigned to each team, reflecting their chances of winning. Click here to get ์Šฌ๋กฏ์ปค๋ฎค๋‹ˆํ‹ฐ

Point Spread Bet: Bettors wager on whether a team will win by a certain number of points or not.

Over/Under Bet: Also known as totals, this bet involves predicting whether the combined score of both teams will be over or under a specified number. Parlay Bet: Combining multiple bets into one. All selections must win for the bettor to win the overall wager.

Futures Bet: Betting on outcomes that will be determined in the distant future, like predicting the champion of a league.

Prop Bets: Wagers on specific events or player performances during a game.

Understanding these bet types equips bettors to diversify their betting strategies and maximize their chances of success in sports betting.

Collapse
 
karticlinton profile image
Karticlinton • Edited

English exercises Present Perfect" focus on reinforcing learners' understanding and usage of the present perfect tense in English grammar. Could you please provide English grammar exercises? These exercises provide practice opportunities for correctly forming and using present perfect verbs to describe actions that occurred in the past and have relevance to the present moment. Learners engage in activities such as completing sentences with the appropriate present perfect verbs, rewriting sentences to express past experiences or accomplishments, and identifying present perfect verbs in written or spoken texts. By actively participating in these exercises, learners can enhance their ability to communicate effectively about past events with a connection to the present. Mastery of the present perfect tense is essential for conveying experiences and achievements accurately, making these exercises valuable for learners at all proficiency levels.

Collapse
 
karticlinton profile image
Karticlinton

Finding information about online casinos can be a challenging task, especially with the vast amount of options available. Click here to visit ํ† ํ† ์‚ฌ์ดํŠธ์ถ”์ฒœ However, there are several ways to find reliable and useful information about online casinos.

One approach is to search for online casino reviews from reputable sources. Many websites and forums specialize in providing reviews of online casinos, including their features, games, bonuses, and user experience. These reviews can help you get an idea of what to expect from a particular online casino and how it compares to others in the industry.

Another way to find information about online casinos is to check their website directly. Most online casinos provide detailed information about their games, bonuses, payment methods, and customer support on their website. This information can help you make an informed decision about whether a particular online casino is right for you.

Collapse
 
hilarylessy profile image
Hilary Lessy

Hello everyone! Have you heard about the 1Win App? If not, I highly recommend checking it out! The app provides a fantastic online betting experience, with a user-friendly interface and a wide range of sports and events to choose from. Whether you are a seasoned bettor or just starting out, the 1Win App has something for everyone. And the best part? You can easily download the app on both IOS and Android devices by following this link: 1winonline.in/app/. So what are you? Download the 1Win App today and start betting like a pro!

Collapse
 
bagato profile image
Dafur Link

I can say for myself that now it is very difficult to find information about a variety of online casinos, there really have to look for a long time and it is usually very difficult to find. That's why I recommend to read the website Pokiesman and choose without any problems. For example, from this list, and I choose and now do not worry that I chose the wrong casino, there are all proven and reliable.

Collapse
 
glozob profile image
Dafur Link

Thanks for info

Collapse
 
glozob profile image
Dafur Link

So really dope

Collapse
 
derric24585322 profile image
Derric

Very useful article a lot of useful information but I work in
drawing drawnbyhislight.com how to draw easily and simply my favorite hobby!