Well there's no magic wand, you just keep track of them. I find a simple way to test is to add a function which counts the number of type instances for each type and writes them to a file. Then I run the game, do nothing and quit. Copy the debug file somewhere. Then Run it again, play through a few times, try and cover everything at least twice, then quit. That usually shows me if I've forgotten to delete anything.
EG: In my pool game, if I played two games, and the log showed 32 ball type instances, I'd know I'd forgotten to delete the balls after each game ( as there are 16 balls in a game, two games.. you do the math )
You could also write the log every time you step in and out of the main menu to see where type instances are being created and not deleted.
Graphics not freed will usually bite you in the bum quite noticeably, but displaying the AvailVidMem() can help track down niggling texture and mesh freeing errors.
EG: In my pool game, if I played two games, and the log showed 32 ball type instances, I'd know I'd forgotten to delete the balls after each game ( as there are 16 balls in a game, two games.. you do the math )
You could also write the log every time you step in and out of the main menu to see where type instances are being created and not deleted.
Graphics not freed will usually bite you in the bum quite noticeably, but displaying the AvailVidMem() can help track down niggling texture and mesh freeing errors.