My grid right now is 144x144, so about 20,000 tiles. Things were working OK in iOS Safari when just using colors to draw the tiles, but the browser started crashing when I tried upgrading to image sprites.
Turns out the trick is to not submit each individual tile to the GPU. You have to roll them up into larger, chunked meshes and submit those meshes to lessen the impact.
I'm sure this is game dev 101, but I've never been close enough to the GPU to have to actually care about this sort of stuff. I cut my teeth learning the performance characteristics of the DOM not the GPU.
I wasn't trying to imply that I was making an AAA game. Just that, from the outside, it seemed like the difficulty would be in designing game mechanics, making something actually fun, marketing, etc., but in reality there's an ever-steepening technical learning curve when you want to deliver nicer looking stuff. When I look at how many days I've spent working on my game, and how terrible it looks, and then I look at something like Cyberpunk 2077... I struggle to conceive how we as humans were able to create those levels of graphics in a timeframe that allows for the game to be profitable.
https://github.com/MeoMix/symbiants btw. Feel free to browse the code (or come volunteer! I've got a few other HNers tinkering alongside me these days)
Oh cool, I didn't realize Factorio had such an extensive dev blog. I see it goes back over a decade! It'll be a treat to read through this :)
And ugh, I can believe it with DF. I'm trying to deliver something with similar quality graphics and naively thought that setting the bar so low would make that aspect of the project "free" :)... but it's about the journey not the destination and it is so rewarding making all the little micro-improvements over time. So, I'll stick with it and hope to get quicker as I gain more experience.
To be fair, Cyberpunk 2077 took 500 people 11 years and 400 million dollars, and even then when it dropped it was barely in a playable state. It seems more fair to compare modern AAA games to movies than indie games, in terms of the cost and resources that go into them. Although with movies, they're actually finished when they release (George Lucas and Steven Spielberg notwithstanding.)
But as someone who can mess around with tilemaps all day but still can't work in Blender, or rig a model, or understand OpenGL or shaders, I feel your pain.
Turns out the trick is to not submit each individual tile to the GPU. You have to roll them up into larger, chunked meshes and submit those meshes to lessen the impact.
I'm sure this is game dev 101, but I've never been close enough to the GPU to have to actually care about this sort of stuff. I cut my teeth learning the performance characteristics of the DOM not the GPU.
I wasn't trying to imply that I was making an AAA game. Just that, from the outside, it seemed like the difficulty would be in designing game mechanics, making something actually fun, marketing, etc., but in reality there's an ever-steepening technical learning curve when you want to deliver nicer looking stuff. When I look at how many days I've spent working on my game, and how terrible it looks, and then I look at something like Cyberpunk 2077... I struggle to conceive how we as humans were able to create those levels of graphics in a timeframe that allows for the game to be profitable.
https://github.com/MeoMix/symbiants btw. Feel free to browse the code (or come volunteer! I've got a few other HNers tinkering alongside me these days)