-Me: Dev, unused game content, preservation, digital archeology, composer, my ideas, fun;???;butts, DDR, anime,


Bokonon-Lives
@Bokonon-Lives

Part 1 here: https://cohost.org/Bokonon-Lives/post/3247812-my-game-dev-journey

Life is busy! But I've made slow and steady progress learning Rust. I didn't jump headlong into building a game - I just wanted to get a better understanding of the language.

In three months, I've read the first 11 chapters of the Rust book and done all the exercises up through there. Which I guess pretty much just means that I know about enough to start understanding more in-depth tutorials. I am starting to really love this language, though, and I've still got my mind set on using it to build actual applications!

Last night I watched the fantastic RustConf keynote speech "Using Rust for Game Development" by Catherine West: https://youtu.be/aKLntZcp27M

My biggest takeaway was a better understanding of ECS and why it can be beneficial. I had been a little uncertain about to what degree ECS should play a role in my eventual from-scratch game engine - Tyler Glaiel had posited "you probably shouldn’t use 'pure' ECS unless you have a really specific use case for it", and I really learned a lot from his various articles. I'm not sure what Mr. Glaiel means by that - as far as I can tell, the only downside of ECS seems to be that some people think it makes development more complicated - but performance-wise, it seems like a win. And Ms. West's presentation demonstrated in dramatic fashion that ECS can actually really be a boon as compared to object-oriented programming, if you have an extraordinary number of properties or methods per entity. Furthermore, for as powerful and performant as Rust is as a programming language, it is extremely limiting thanks to the borrow checker, and it sounds like ECS is THE solution to playing nice with the mean old strict Rust compiler! Whatever other downsides I'm missing of ECS in other languages, the choice seems clear for me.

So I'm feeling great about ECS, and making the decision to embrace it seems like the first big milestone in architecting this thing.

Where I'm stuck is my game loop.

It seems there are a lot of different ways to handle the timing of your game loop. If you told me there was one clear answer and asked me to name it, I'd say, well, it must be this "fixed-update time step, variable rendering" option everyone seems to be talking about. It seems to logically make sense, but I think the answer really might depend on the type of GAME I'm making. I definitely need to learn more on this subject. So far I've read two wonderful articles, here:

(Shout-out to Robert Nystrom's book Game Programming Patterns. The bits and pieces I've read so far have been so thorough, captivating and educational that I think I just might need to read this cover-to-cover sometime.)

...and here:

(shout-out once again to Tyler Glaiel, whose content was some of the first I read when I was getting started with this little project, and very much inspired me to go ahead and make it happen.)

But based on cited sources, I've added the following to my reading list to hopefully expand my mind... I'll revisit this subject once I've actually read them:

In any case, I've paused there for now, but I stand at the precipice of a change of pace.

Tonight is the kickoff for Global Game Jam 2024!

I have limited time and a general unwillingness to stay up into the wee hours the next few nights, but I think I'm going to resolve to make something in Rust this year - something small. Time to dive in head-first after all!

I'll be following Sunjay Varma's guide for this and just opting for the simplest executions should there be further "moral dilemmas" on design.

Less than an hour remains before the theme reveal reaches us, and I'm nervous but excited. I'm keeping expectations low (and hopefully avoiding scope creep!), but I'd really like this to work out. Just a simple, dumb prototype will make me happy. I've done a whole lot of reading, and now it's time to really get my hands dirty and see what I learn from the experience!


You must log in to comment.