Skip to the content.

New Year, New Language(s)

Happy New Year for 2024 🎊 🍾 🎉!

If you happen to be reading this, thank you for your interest, and Happy New Year for 2024!

New Year, New Language(s)

I figured, learning to make video games would help me develop my computer science skills further. I have spent a lot of time using Python, and learning how to work with data. This has taught me a lot of useful concepts, but I wanted to broaden my experience.

After all, video games are built around manipulating data in 2D, 3D, and 4D spaces. So I would still be sharpening data skills, whilst learning some more concepts deeply: Graphics/Shaders, (DS: maps, plots), UI development (DS: interactive dashboards), database management, memory management, etc…

Learning Godot

I had heard a lot about this game engine. It has a reputation for enforcing good software design patterns (e.g., favor Composition over Inheritence), whilst also being beginner friendly. Game engines are notoriously complex, given the complex nature of game development, so this was very appealing.

I followed a tutorial series on YouTube (naturally) to get going. And, no surprises here, I really enjoyed it. I learned how to use their built-in scripting language (GDScript).

I got to the end, really fast. I realized I enjoyed it so much. I also found I learned really efficiently. Who knew that learning could be so much easier, when I am using video games to do it. So, this gave me an idea …

Learning Rust (& Bevy)

I have wanted to learn Rust, since I started using Polars. Polars’s Python API is amazing. While still young, it really shows the true potential of a marriage between Rust and Python. But, I kept running up against a wall when using it. I ended up constantly going to the Pola-rs crate on crates.io (this is approximately, the Rust equivalent of PyPi), to figure out what was going on, since all errors led me to there.

However, the language scared me. Like, really scared me. The learning curve is notoriously difficult, because it is such a safe language. Notwithstanding, it works at a lower level than Python. I could never find the motivation to push through.

That is, until I learned about (Bevy)[https://bevyengine.org/learn/]. Bevy is a game engine built in Rust. Brilliant. I always wanted to learn Rust, I enjoyed learning new stuff via building games, this is a sign from above!

So, I have been learning rust for a couple of weeks now. I started with videos, and some basic resources.

So far, I have been working my way through rustlings. It only took me like 30 minutes to get rust working on my machine, and about 15 minutes to get VS Code configured to work with it. Within an hour I was ‘mastering’ Rust 🦀.

I kid, Rust is challenging. But, with the help of the docs, VS Code plugins, and the compiler (Yes, THE COMPILER is smart enough to teach you how to program in Rust), I have been smashing my way through Rustlings, and having a blast doing it.

So, what is next?

For now, I am going to continue to learn the basics of Rust. Then, I am going to throw myself into Bevy. Project-based learning has always worked better for me. I don’t want to get stuck in ‘tutorial hell’. So I am going to learn the hard way. There are no shortcuts to learning unfortunately.

In fact, I have a great video on this very topic, if you’re interested:

(Learning Rust the wrong way - Ólafur Waage)[https://www.youtube.com/watch?v=DL9LANLg5EA]