this post was submitted on 07 May 2024
1376 points (99.5% liked)

Programmer Humor

19176 readers
1344 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] Ephera@lemmy.ml 4 points 4 months ago

The problem is that this complexity isn't just a one-off thing you need to get through. There's a ton of details which matter, which you will not have thought through as part of your idea.

Many of these details, you will encounter as you write code. As in, you've just worked for three weeks on a feature and then realize a glaring problem in one of the details. Then you spend another week trying to find a solution. And worst-case that solution is to rip out that month of work and start fresh.

This has been my biggest learning from dabbling in gamedev for a while: Make a stupid paper model first.

Even if you spend a week glueing sheets of paper, and you don't really even get that close to your actual idea, the more of these details you think of upfront, the higher your chance of getting anywhere (or scrapping your idea without wasting months trying to put it into code).

Well, and the other big learning was: Holy crap, gamedev is hard.

I know how to "code". I'm a senior developer and have worked on multiple large-scale software projects.
The scope of the game I was trying to create, was laughable in comparison. As in shitty 2D, tile-based, turn-based.

I encountered performance problems like I've never had to deal with in my career, because it turns out the whole games industry is fueled by smokes and mirrors.
Know how ray-traced lighting is the craziest new technology? Yeah, that's literally just a matter of hardware being strong enough that we can simulate lighting in the way it actually works. It's conceptually simpler than the ever more sophisticated bullshitting we did beforehand.