It's not a flowchart per se, it's more of a diagram of how the OOP objects should link together. I prefer OOP charts over flowcharts because it makes it easier to encapsulate routines.
Quote: "if you notice you're moving a lot of objects downwards based on gravity, its worth implementing a system where you call an add_fall_object() command to add an object to an array, and move every object in the array downwards based on their gravity speed, and increase a type called "speed" for each array element by the world gravity rate"
Well my main concern is code quality, I hate to write the same code twice so I'll probably have lots of systems like that.
My current method of dealing with not rewriting code is that instead of having code like this:
if mario_gets_get_hit_by_a_goomba then
play die music
play die animation
decrement life
restart level
endif
if mario_gets_get_hit_by_a_koopa then
play die music
play die animation
decrement life
restart level
endif
and then noticing that there's two ways to die so you can make a mario_die() function instead of repeating code I set up these systems beforehand. I have a source file called MARIO.dba that has functions MARIO_getsupermushroom(), MARIO_getfireflower(), MARIO_hit(), MARIO_die() and these functions call each other. A great part is that the routines can take an index number and work with a scalable array, that's great for when you have multiple enemies you want to process in an OOP like fashion. It's also great for debugging because on the console you can just type the command that makes mario die to test the die code instead of looking for a goomba.
The only hard part about that is simulating OOP inheiritance. I'm definitly not going to have a separate source file for every type of enemy in my FPS, I'll need to have one ENEMY class and have customizable data somehow, and that's going to be hard especially when they have different AI types, it's not as simply as setting enemies(enemynum).health to a different value than the rest of them.
By reading this sentence you have given me brief control of your mind.