I'm often asked about the development process when making this game, maybe these people have in mind that they wish to develope their own game and I say yes do it!
I work by the same method for every single feature implemented, without fail and so far has worked really well. I have had problems but I don't think it has been because of the process but more other bits and pieces, like commiting on features before ive had a chance to attempt programming them!
So where do you start? Simgple really you want a basic concept, at least I do. Whenever I am travelling (I do a lot for work), I brain storm and write ideas down on my phone, these are short and to the point and are looking to either look at a particular goal. I will use an example. I thought, whenever I play say Football Manager I find it hard 5-6 or so years into the game as I cannot identify with the new regenerated players, don't get me wrong this is the best simulation game ever by a million miles, but this particular problem for me meant that I often started new games too frequently.
So there I am on the train on another 2 hour trip and think, ok lets brain storm ideas on how to cure this particular problem. What can I do to make the player identify the new players and remember them if they happen to try and sign them later. The first idea ive already implemented, Eurovision. You either love or hate it, if you're from England likem myself you will likely think its a joke event but it does produce artists so I started to write down how adventurous I would be. I settled on just simulating the show in a simular fashion when the scores are being announced and I do believe I got it right doing this, but the notes had much more to it, ideas like simulating the whole show with commentary! But then I went onto the next stage and this idea was killed.
Stage 2. Being realistic
At this point I have to think, how will I implement it, what sort of data types I need, an idea how it will look and again I write my thoughts down with more concrete information, sorting out variables and key must have features. This will rule out lots of over the top ideas and needs some thought to get right but its important being moving onto phase 3.
Phase 3 Documentation
If you just wing it and implement an idea withough documentation, you could do it fine if its a smallish idea but if it is not then writing stuff down in an orderly way is quite important in my humble opinion. So I setup all the important information, set variable types, how many, functions required, any external data and where it will be stored, then the process order so that the information is used when its required etc.
Phase 4 Implementation
This bits fairly easy if you have written it all down well, the long part of it is due to you will have to code it not just talk about it, sometimes curve balls are thrown when things just don't work out, like I found out when I tried to implement twitter, such a good idea but when it was done just did not work!
Phase 5 internal testing
Just me on my lonesome testing out the game, I think of senarios and also just hit it multiple times over and over again. This will always pick up problems and its annoying as sometimes if im coding at night it takes longer than it should, and also with my famous typo's these can cause stupid bugs.
Phase 6 External testers
Nothing is more important than getting other people to test your builds, you must put a lot of effort in finding people as they will play the game in a different way and trust me they will find problems even if you tested for hours!
Phase 7 - Release it!
This should be smooth but any careless problem here can be a nightmare and extremely embarrassing so you must take it slow, be careful and don't do at 1am if can be avoided, trust me there