// game launcher main() { [Win32|OSX|Linux]PlatformResources resources(...); // engine.lib Application app(resources.engine); // game.lib } // mobile game launcher [Android|WP|iOS]PlatformResources* resources; Application* app; onCreate(){ resources = new [Android|WP|iOS]PlatformResources; app = new Application(resources->engine); } onDestroy(){ delete app; delete resources; } onKeyEvent(e){ resources.onKeyEvent(e); } // editor launcher edmain() { [Win32|OSX]PlatformEditorResources resources(...); // engine.lib // .. editor init .. Engine* e = resources.CreateEngine([HWND|View]); }