Now, roughly a week ago I wrote this: http://www.pascalgamedevelopment.com...planning-stage and I got roughly a tonne and a half of feedback so I'll now write up a quick sequel based on feedback and for completions' sake.
Thats one of the reasons WHY you'll want to be doing some planning. Here HOW.
I am myself, a pen and paper person. So I'd grab a notebook, and start off with a list, in order, of what the program to do - it might look like this at first:
Initialization Main Loop - Get user input & events Work out what the input/event changes (if any) Commit those changes if needed AKA. Process data, input, gravity in a game or whatever Draw those changes Wait for the next cycle Deconstruction / closing the program / finalization
Initialize the libraries (if any) Load a config file to set initial values Get a window up and running, prepare objects and data types for the application Main Loop - Scan for events Check for window manager events Check for Input Call darw procedure relevant to current program mode (map, cutscene in a game, menu or dialog box of editor...) Update that with a sdl_flipcanvas or something similar Work out how many cycles that took and take that out of wait loop to keep a more constant FPS count Save any config changes Free up memory Halt