Something I am all ways wondering is the plan of attack on a project...
For over a year now I have been gearing up to start my own Mmo. The biggest issue that brought the project to a stand still was the lack of a good game eng that had the networking in place and all the things that was going to be needed for my idea. The year was not wasted I spent it getting the hardware that will be needed, software, models, buildings and development tools. With Multiverse going open source, and finally having all the hardware that I need I feel that I can get started and this is my game plan in order:
1 – Eng Check – First check of the game eng just to make sure that it works.
Done – installed Multiverse on a few VMware servers and got it up and running.
2 – Set up the Hardware. (I am currently at this stage imaging servers right and left the house is a mess) LoL.
Set up 3 identical server networks (Production, Staging and Development). This will allow us to do development and stress testing on the same hardware that is in production to see how it works and handles before it is turned lose on the production environment.
Production – This will be made public and where people will be playing the game. I plan on getting it up and running from the get go, this way players can log on to see the progress we are making on the game and give input before the game is done. Starting out I am going use the fantasy sample world just to give the server something to do and let my kids (5 boys) play around on it.
Staging – This is where we will do the testing and stress testing. If the development work does not pass this stage it will not go live. However during the testing of a push development will not have to stop.
Development – This is where all the work on the code and server updates will take place.
3 – Monitoring and Backups
Backups – I have a 30T NAS to make backups of all the servers. I am going with a weekly full backup with incremental backups on the other days.
Monitoring – I plan on using Nagios to alert me if any thing goes down. There is nothing worse than having players tell you that the log in server has been down for a week and you never knew. Catci for monitoring the server health. This comes in handy not only when you stress test but also to see when you need to had more servers, memory or hard drive space before it becomes and issue.
In house SVN – For the code.
4 - Start of streamlining player experience. - Do a quick clean up of the client install, new account creation and make sure the client updates right. This is just to make the Mmo useable by others that may not be so tech savvy.
5 – Gutting the world. - Remove everything and start out with a nice blank clean world.
6 – There be land – Add the world to the Mmo make it as huge as possible even if I have to ad a few more servers at this point.
7 - Time to start the work.
This is where we start ripping in to the code, setting up model work flows, changing the art, changing the game logic and putting in the pre-built meshes I have. Taking grate care to doc every thing as we go on the dev wiki.
At this point we go into a loop. Wednesdays we decided what we are going to wrap up, and what will be put off till next push. Every Friday do a push, anything on the staging server goes to production, then any thing on the development servers will go to the staging server for testing. This will give a week for development, a week to test the changes, and also give the players updates every week to look forward to.
I know this is a very tight development pace but in the long run I think it will help keep things on the right track even if there are weeks that the update is just a image or something small. If any thing else it will keep me on my toes.
Let me know what you think, and what your plans are I am interested....