It needs to work. And by work I mean execute without crashing.
It needs to do what you expect it to do.
It needs to have code you can actually read and debug.
No Syntax Errors
No Warnings (from the compiler)
It has tests (yes, even asserts)
It passes test.
It logs errors.
It does not crash.
Someone who doesn't know you won't kill you for writing completely illegible code.
It has instructions. For the user.
Work on getting your code to work
Then work on understanding why your code works in the first place
Then work on getting the code to be better
Then work on understanding why your code is better in the second place
I think for anyone beginning to learn to game dev, you should heed the following Suggestions.
I don't care how you do it; just do it.
Your language doesn't matter. Your platform doesn't matter.
Nothing. Truly NOTHING. Is better or best for game dev.
You will struggle. You will get everything wrong. You will write terrible code.
You are expected to fail in the most successful way.
So just make a game.
Are you worried about performance, cross-platform, code smell, or architecture, then GOTO 8.
Finish making that game, worry about nothing else.
If you want to learn how to make your game better, then show your code and ask questions.
If you want to make another game, then GOTO: Step 6.