Index: code/branches/FICN/src/orxonox/graphicsEngine.cc
===================================================================
--- code/branches/FICN/src/orxonox/graphicsEngine.cc	(revision 471)
+++ code/branches/FICN/src/orxonox/graphicsEngine.cc	(revision 473)
@@ -46,4 +46,5 @@
     this->configPath_ = "";
     this->dataPath_ = "";
+    scene_ = NULL;
   }
 
@@ -56,18 +57,23 @@
   {
     //TODO: Check if file exists (maybe not here)
-#ifndef OGRE_STATIC_LIB
+/*#ifndef OGRE_STATIC_LIB
     root_ = new Root(configPath_ + "plugins.cfg", configPath_ + "ogre.cfg",
                      configPath_ + "Ogre.log");
-#endif
+#else
     root_ = new Root(NULL, configPath_ + "ogre.cfg", configPath_ + "Ogre.log");
+#endif*/
+    root_ = new Root();
   }
 
   /**
-   * returns scene manager
+   * @return scene manager
    */
   SceneManager* GraphicsEngine::getSceneManager()
   {
     if(!scene_)
+    {
       scene_ = root_->createSceneManager(ST_GENERIC, "Default SceneManager");
+      std::cout << "created SceneMan: " << scene_ << std::endl;
+    }
     return scene_;
   }
@@ -94,5 +100,5 @@
     // Load resource paths from data file using configfile ressource type
     ConfigFile cf;
-    cf.load(dataPath_ + "resources.cfg");
+    cf.load(dataPath + "resources.cfg");
 
     // Go through all sections & settings in the file
Index: code/branches/FICN/src/orxonox/main.cc
===================================================================
--- code/branches/FICN/src/orxonox/main.cc	(revision 471)
+++ code/branches/FICN/src/orxonox/main.cc	(revision 473)
@@ -81,8 +81,8 @@
 #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
     orx->init(argc, argv, macBundlePath());
-    orx->start();
+    //orx->start();
 #else
     orx->init(argc, argv, "");
-    orx->start();
+    //orx->start();
 #endif
 
Index: code/branches/FICN/src/orxonox/orxonox.cc
===================================================================
--- code/branches/FICN/src/orxonox/orxonox.cc	(revision 471)
+++ code/branches/FICN/src/orxonox/orxonox.cc	(revision 473)
@@ -63,5 +63,5 @@
 #include "../network/Server.h"
 #include "../network/Client.h"
-//#include "../network/NetworkFrameListener.h"
+#include "../network/NetworkFrameListener.h"
 
 // some tests to see if enet works without includsion
@@ -222,5 +222,5 @@
     // load this file from config
     string levelFile = "sample.oxw";
-    loader_ = new loader::LevelLoader(levelFile);
+    //loader_ = new loader::LevelLoader(levelFile);
     //TODO: run engine
   }
@@ -248,29 +248,11 @@
     ogre_->setConfigPath(path);
     ogre_->setup();
-    if(!ogre_->load()) die(/* unable to load */);
-  }
-
-  void Orxonox::serverInit(std::string path)
-  {
-    ogre_->setConfigPath(path);
-    ogre_->setup();
-    //server_g = new network::Server(); // add some settings if wanted
-    if(!ogre_->load()) die(/* unable to load */);
-    //ogre_->getRoot()->addFrameListener(new network::ServerFrameListener());
-    ogre_->startRender();
-
-    createScene();
-    setupScene();
-  }
-
-  void Orxonox::clientInit(std::string path)
-  {
-    ogre_->setConfigPath(path);
-    ogre_->setup();
-    //client_g = new network::Client(); // address here
-    if(!ogre_->load()) die(/* unable to load */);
-    //ogre_->getRoot()->addFrameListener(new network::ClientFrameListener());
-    ogre_->startRender();
-
+    root_ = ogre_->getRoot();
+    //if(!ogre_->load()) die(/* unable to load */);
+
+    defineResources();
+    setupRenderSystem();
+    createRenderWindow();
+    initializeResourceGroups();
     createScene();
     setupScene();
@@ -278,4 +260,79 @@
     createFrameListener();
     startRenderLoop();
+  }
+
+  void Orxonox::serverInit(std::string path)
+  {
+    ogre_->setConfigPath(path);
+    ogre_->setup();
+    server_g = new network::Server(); // add some settings if wanted
+    if(!ogre_->load()) die(/* unable to load */);
+    //ogre_->getRoot()->addFrameListener(new network::ServerFrameListener());
+    ogre_->startRender();
+
+    createScene();
+    setupScene();
+  }
+
+  void Orxonox::clientInit(std::string path)
+  {
+    ogre_->setConfigPath(path);
+    ogre_->setup();
+    client_g = new network::Client(); // address here
+    if(!ogre_->load()) die(/* unable to load */);
+    //ogre_->getRoot()->addFrameListener(new network::ClientFrameListener());
+    ogre_->startRender();
+
+    createScene();
+    setupScene();
+    setupInputSystem();
+    createFrameListener();
+    startRenderLoop();
+  }
+
+  void Orxonox::defineResources()
+  {
+    Ogre::String secName, typeName, archName;
+    Ogre::ConfigFile cf;
+#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
+    cf.load(macBundlePath() + "/Contents/Resources/resources.cfg");
+#else
+    cf.load("resources.cfg");
+#endif
+
+    Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
+    while (seci.hasMoreElements())
+    {
+      secName = seci.peekNextKey();
+      Ogre::ConfigFile::SettingsMultiMap *settings = seci.getNext();
+      Ogre::ConfigFile::SettingsMultiMap::iterator i;
+      for (i = settings->begin(); i != settings->end(); ++i)
+      {
+        typeName = i->first;
+        archName = i->second;
+#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
+        Ogre::ResourceGroupManager::getSingleton().addResourceLocation( String(macBundlePath() + "/" + archName), typeName, secName);
+#else
+        Ogre::ResourceGroupManager::getSingleton().addResourceLocation( archName, typeName, secName);
+#endif
+      }
+    }
+  }
+
+  void Orxonox::setupRenderSystem()
+  {
+    if (!root_->restoreConfig() && !root_->showConfigDialog())
+      throw Exception(52, "User canceled the config dialog!", "OrxApplication::setupRenderSystem()");
+  }
+
+  void Orxonox::createRenderWindow()
+  {
+    root_->initialise(true, "OrxonoxV2");
+  }
+
+  void Orxonox::initializeResourceGroups()
+  {
+    TextureManager::getSingleton().setDefaultNumMipmaps(5);
+    ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
   }
 
Index: code/branches/FICN/src/orxonox/orxonox.h
===================================================================
--- code/branches/FICN/src/orxonox/orxonox.h	(revision 471)
+++ code/branches/FICN/src/orxonox/orxonox.h	(revision 473)
@@ -39,4 +39,8 @@
       void clientInit(std::string path);
       void standalone(std::string path);
+      void defineResources();
+      void setupRenderSystem();
+      void createRenderWindow();
+      void initializeResourceGroups();
       void createScene(void);
       void setupScene();
@@ -46,5 +50,4 @@
     private:
 
-      //static Orxonox*       singletonRef_;
       GraphicsEngine*       ogre_;      //!< our dearest graphics engine <3
       std::string           dataPath_;  //!< path to data
@@ -56,4 +59,5 @@
       OIS::InputManager*    inputManager_;
       OrxListener*          frameListener_;
+      Ogre::Root*           root_;
   };
 }
