i used to try to make videogames from time to time and arguably i still do but less frequently. a thing that never stops bothering me - and this is not a Subchost, i just got to thinking about it again cause i saw some posts - is how "it's easy to get started making a game with (tool) and (tool)" is such a common thing to see, and more importantly, seems to work for a lot of people.
a comment that has come up several times is, paraphrased:
the reason there's such a big "draw the rest of the owl" gap is because after you get e.g. a basic graphics environment going and like, have a sprite moving around, everything between that and finishing the game is addressing specific micro-issues that are all completely application-dependent and can't be covered in a tutorial format
the thing is, that's exactly the problem. that's what keeps me constantly off-kilter, the feeling of, "wait, oh no, i have to write another little bit of code to handle this specific thing? is that because i didn't write something generally enough?"
if i'm writing a megaman style platformer, and my OC hits the edge of the screen, and I want to flip to a new screen, i... guess I need to write code that moves them from the right edge of the screen to the left? just... manually, i suppose. like a line that literally says "player.x = 0." i guess that's what i have to do. and then i need to add a check to make sure that doesn't drop them in the middle of a solid wall, and if so... uh... do something about it? i guess?
every single step of the way my brain is SCREAMING at me "if you had written an actual simulation you wouldn't be in this situation. that functionality shouldn't need to be hardcoded, it should be a byproduct of movement and environmental code that you never wrote, you just wrote "player.x += player.speed" and now you're digging yourself deeper and deeper into duct-tape spaghetti garbage. it's unsustainable, this will NEVER scale to a finished videogame. it's cute, it feels good to see stuff moving on screen, and you'll make it to a point where you can flip between a few screens, maybe shoot an enemy or something, but as soon as you start trying to build outwards from that and make a finished, serious game like what you see in your minds eye, you'll instantly run into limitations because you just plain didn't do this right, and before long you'll be so buried in tacked-on bandaids that you'll be hardcoding 'make an enemy appear on screen 6' because you didn't generalize enough up front."
and i just never figured out how to get over that, despite the fact that... yeah, from all appearances, that is what you do. you write shit, and if you find out that the engine as you've developed it so far can't account for a situation, you... write a few lines of code that account for that specific situation. and then later maybe you end up in another situation, so you write another few lines of code. and you just keep doing that until you ship. brain will not permit this!

