· A game Engine
· A Database Engine (knock up a prototype, use JET, or 3rd party, e.g. C-Tree)
· A Virtual Machine (multi-processing, something very similar to Java)
· A Communications Manager (ACE will do for starters)
· As much as there is time for in terms of typical game services: Spatial indexing, collision detection, physics, route finding, etc.
· Some means of automatically updating the software