For any newbies that might have popped in, Fate of Nations is going to be the best browser-based game there ever was. If it ever gets completed. :mellow:
This post is where I'm going to explain my plan for how to get it completed, and whether you're on the team or not, please give feedback on whether you think this is a good plan.
If you are on the team, just a reminder that this is in the public area, so
DON'T TALK ABOUT TOP SECRET STUFF!The plan for Fate is quite simple, and it involves getting a big sword and cutting it up. :sword:
No, really. I'm proposing we split Fate of Nations into four seperate projects/modules. Two of the projects we keep internal to the team, whilst the other two we consider making open-source.
The two internal projects being the bits that will make Fate unique:
Fate-World - everything related to ensuring the gameworld is rich and interesting: the races, nations, histories and so on.
Fate-Mechanics - functions and formulae relating to how things interact. The quantitive attributes of nations and units, etc.
These two projects will remain secret to prevent people from stealing our great ideas, and we can continue(/start) to use Fyrefryst for them.
(Although Fate-Mechanics will eventually need converting into something Fate-Engine can read, but that shouldn't be difficult and we'll approach that bridge once we're about to cross it.)
The two external projects being what will allow Fate to exist as a game are:
Fate-Interface - The visuals and controls that allows a player to actually play the game. This may actually end up as multiple sub-projects - eg: a regular HTML/JS interface, a Flash interface, possibly even a Windows app interface.
Fate-Engine - a relatively generic game engine that sits between any Fate-Interface version and Fate-Mechanics (or any set of game mechanics) and the database, and does fancy processing stuff.
The reason for open-sourcing these later two bits, is that it might allow us to get development help from other people without having to worry about fully trusting them as a team member (and also might help enable other good games to be developed), and it also shows how much work is or isn't being done, and so on.
Why seperate Interface and Engine? Because it then doesn't require that both are worked on simultaneously, and allows us to use any user interface, or even offer multiple interfaces.
Fate-Engine will be a web service written in ColdFusion (because writing web services in CF is easier than falling off a slippery log) and then Fate-Interface(s) can be written in anything that can read web services - which means CF, PHP, Flash, JavaScript/AJAX, C#, or whatever.
Once we've got these four easy projects complete, we'll bind everything together into a single solid experience, and then the hard part starts - testing and balancing. But by that time we'll hopefully have plenty of momentum and that wont faze us at all.
So, that's my idea - let me know your feelings...