However instead of planning it with any real degree, I just picked some tech and started throwing it together.
I'm relatively pleased with the result so far. A simple server running in Windows Azure and a simple text console "client" which I can perform the various actions for the game. I've got a few of the core features in place already, which is satisfying:
- Simple tech-tree of buildings and upgrades which is data-driven (defined in a JSON doc)
- Basic resource generation and harvesting mechanic
- Server-side action validation and state persistence
I can "log" in from anywhere and play (in theory). Although right now there's nothing more than building, upgrading to an extra level and resource harvesting.
I'm getting to the point where my text-based front end isn't satisfying and am looking to put it together in a form that more resembles a game. A couple of issues here already; my intended target platform is Windows Phone 8/Windows 8. This seems to limit the options I have for out-of-the-box engines and SDKs from the get-go.
Initially I was planning on using MonoGame. This is basically an open-source XNA and would let me target WinPhone8 from day 1 and migrate to other platforms as I needed. However, the downside of MonoGame is that you have to build lots of things you get as part of a full engine, or things you can add-on simply from third party libraries. This is a bit of a bummer from a productivity standpoint.
I've decided to work in Unity 4 "free" for the time being. At the moment this will be prototype-work mostly - trying to get the game as I want in an environment that allows rapid iteration. The downside is that if I end up loving Unity, I'll have to fork out a load of cash and will have to wait on the hope they provide WinPhone 8 support. But right now, the benefits of using it as a prototyping ground are strong, so it feels like a simple option.
Now, to figure out how to actually use Unity :)