They say start small, complete games, and then move on to something bigger. But that didn't appeal to me and I felt that I could learn what I needed as I went. The problem with this of course is that mistakes would be made. Here are some that I encountered.
A big issue is trying to plan ahead when you really don't know everything. Many, many times I would do a ton of code only to find out that I had to go back and change a lot of it.
One example of this is with my user defined type for my characters. I defined a lot of stuff as strings and only later did I realize this would cause memory issues with such a large udt. So I had to go and change a lot of the stuff to bytes and booleans and that meant changing a whole bunch of code I had already done.
Another issue is designing things and then later finding out you can do it better. And I had to decide if it was worth the time to do so.
The main cause of this problem for me was doing everything with clip art and designing interfaces myself then later deciding to bring in a professional artist to redo everything. If I would have known I was going to use an artist all along and the process of designing a simple prototype for the artist it would have saved me many months.
I will go more into the details of some of the old interface stuff I changed later. But first I want to talk about one thing that did save me all kinds of time and how it is very important to narrow the focus of your project when possible.
When I first designed the game I wanted to do a strategy turn based game...along the lines of Heroes of Might and Magic. This meant having economy, city building, and a map. I even had all the specifics for how this was to be done written out.
Later, however I realized it just would take too long and I decided to focus on the battles. Keep in mind this is to be an online game. Anyway, so I got rid of all the building/map/economy stuff.
But now I had two problems. 1) I like all the use of equipment, leveling up, and gold but it no longer made sense. 2) The battles themselves just weren't interesting/strategic enough.
So I had to make some changes.
With the leveling up and equipment I implemented a system of gaining rewards when you win battles vs other players online. Also, adding in a 3 tiered ranking (fame, faith, community) allowed some flexibility with these rewards.
To spice up the battles and the building of your army I decided to make the game a collectible card game. Yes, quite a jump here. This of course meant quite a bit more work but much less then making then trying to have an empire building game with a map and city building.
I'll go into more detail with this stuff later.