" I know I fixate on problems and “perfect” solutions at the detriment of my project’s velocity"
I have the same, which is why my current game is still not released.
Perfectionism made me reject all existing engines and write my own (I do use a physics libary, box2d, but actually am thinking about writing my own soon). I am happy with the result now, but I really had to learn to cut corners and abolish perfectionism again.
And now that WebGPU has come out(I programm on the web), I have to restrain myself to not overhaul everything again, because the GPU would unlock so much more power, making awesome new things possible in the simulation beneath..
So I am just doing one simple wgsl module to speed up one important part of the simulation, giving hopefully great performance improvements. And then do it all differently and right with the next game..
"Maybe if/when I get more skilled."
And the alternative would be tonstart now, making a very simple game, or using an existing engine.
It depends what you want to do. If you are really into complex systems, then yes - making everything from scratch, UI, Game logic, Rendering - then it all really gets complicated soon and if you didn't start right, you will never finish.
But a simple game, like a flappy birds clone or something alike, is not too complicated and will tell you, if you are really into it.
Just give it a try in a language you are comfortable with.
And of course there is no shame in using the right frameworks, libaries and engines, if you mainly want to get stuff done and play the result (which is very rewarding). Or rather, if you really want to ship a game, that runs stable and bugfree also on other peoples computers, then you will have to use existing work, or you won't get far, or will be buisy with it for a looong time, if you want to do anything not trivial.
This is an interesting viewpoint. I might suggest prototyping game ideas with an existing "game creation" tool, even something like roblox. Then one has multiple pathways for their design to progress - world design, interaction, story, events, as well as engine. And one can much more easily test out different aspects of graphics and physics to see which their game engine needs or demands. There is also the ability to code engine algorithms directly and tweak so many variables in the prototyping stage, that the resulting parameters/functionality can be brought back into the actual custom game codebase.
As someone who creates games for web consumption, thanks for being interested in the topic. Truly thanks. If I had to write low level WebGL (and now web GPU) code I simply wouldn’t do it. It’s hard enough creating at the higher level of abstraction of my game engine of choice. It’s just a bridge too far in my mind.
I’m now waiting for interested engineers like you to update Unity to enable use of web GPU. I embrace that it’s not a topic I want to care about as a creator, but instead as a consumer.
The thing with WebGPU is, that it is a very different way of programming, so you cannot just enable it and benefit from it coding the way you are used to.
Because the GPU are in fact lots of small cpus, meaning if you want performant code, it has to run parallel.
And then the fun starts with sharing ressources, coordinating etc.
So the code and data has to be structured very carefully, if you want actual improvements.
And this is not new to me, but I have never done it for something serious, so far. So for my intended use case is should work, as I need to do lots of raycasting and this is where GPUs shine. (But I still need to figure out the compute pipeline)
But in fact, I do intend to work something out, enabling other people to make use of it without having to do the deep dive.
I have the same, which is why my current game is still not released.
Perfectionism made me reject all existing engines and write my own (I do use a physics libary, box2d, but actually am thinking about writing my own soon). I am happy with the result now, but I really had to learn to cut corners and abolish perfectionism again.
And now that WebGPU has come out(I programm on the web), I have to restrain myself to not overhaul everything again, because the GPU would unlock so much more power, making awesome new things possible in the simulation beneath..
So I am just doing one simple wgsl module to speed up one important part of the simulation, giving hopefully great performance improvements. And then do it all differently and right with the next game..
"Maybe if/when I get more skilled."
And the alternative would be tonstart now, making a very simple game, or using an existing engine.
It depends what you want to do. If you are really into complex systems, then yes - making everything from scratch, UI, Game logic, Rendering - then it all really gets complicated soon and if you didn't start right, you will never finish.
But a simple game, like a flappy birds clone or something alike, is not too complicated and will tell you, if you are really into it.
Just give it a try in a language you are comfortable with.
And of course there is no shame in using the right frameworks, libaries and engines, if you mainly want to get stuff done and play the result (which is very rewarding). Or rather, if you really want to ship a game, that runs stable and bugfree also on other peoples computers, then you will have to use existing work, or you won't get far, or will be buisy with it for a looong time, if you want to do anything not trivial.