public void run() {
        waitForPlayers();
        
        //Init server
        gameServer.broadcast(new StartGameMessage());
        //Initialize NetOwl
        NetOwlServerConfig serverConfig = new DefaultNetOwlServerConfig();
        serverConfig.setNetOwlCommonsConfig(commonsConfig);
        serverConfig.addNetOwlLogicFactory(new DDJOLogicFactory());
        netOwlServer = new NetOwlServer(serverConfig, new DDJOInitializer(gameServer), gameServer);
        
        
        
        long currentTimeStamp = System.currentTimeMillis();
        while(run) {
            long newTimeStamp = System.currentTimeMillis();
            netOwlServer.update((newTimeStamp - currentTimeStamp)/1000f);
            currentTimeStamp = newTimeStamp;
        }
        
        if(gameServer.isRunning()) {
            gameServer.close();
        }
    }