I would add these general habits to your design. While not really a concrete program structuring method, keep the following in mind. It can help tremendously.
Any project of an RPG's magnitude needs to be module-based. This means that the game has a Core engine running, and you can add and take away various modules while still being able to run the program without errors. For example:
You have the 'Core Engine', the 'Player Module' and the 'Monster Module'. If you run the game without either module engaged, you'd have nothing but a black screen. Activating the 'player Module' will allow you to move around with a character. Activating the 'Monster Module' and the 'Player Module' together allows you to move around your character as well as kill monsters.
That is a very, very basic example. In essence, here are some good programming strategies for a large project;
1 - Document
everything. When you program a function and don't look at it again for awhile you could lose grasp on how it works. Just simple explanations will do as long as you are the only one working on it. In a team it is best to give an in-depth explanation.
2 - Use namespaces. They allow much better control over function names as you won't collide with other functions. Use them liberally, but keep track of them.
3 - Use headers for organization. When writing various aspects of the game, put all the prototypes and variables into header files for easy, reliable organization. Keeping your source in a single file is very difficult to organize.
4 - Rarely, if ever, use global variables. Yes, they are nice and make things easy, but if messes up your memory organization. Keep globals to as few as possible. Instead, pass balues from function to function by reference.
5 - Keep an up-to-date log of changes and additions made to the game as well as the functionality of various modules. If a module is not working, update the log to reflect this when you are done for the night.
6 - Name Modules and Functions as succinctly as possible. Remember, functions should be quickly recognized, so making huge elaborate or descriptive names is not a good idea as you will likely be typing them a lot.
7 - Get comfortable with dynamic memory. It takes a little extra work, but it
much cleaner.
8 - Use classes. It is very convenient to be able to create custom data types and should be implemented to it's max. Classes can make or break a program so use them, to a lesser extent structs, as often as possible to stay organised.
Remember, organization is key to survival with a large project like an RPG. Keep up to dat logs and make sure to work on the project daily, lest you fall out of sync and lose headway.
Cheers,
Bishop
Tux is my guildmaster.