Программирование многопользовательской игры

Я работаю над игрой, в которой несколько игроков должны иметь возможность играть одновременно. Это 2Dигра, и все персонажи должны видеть движения друг друга на экране. Как и в игре, теперь все устройства просто отправляют и получают координаты друг другана сервер. Это делается путем запуска в потоки:

public void StartCoordinatorFetcherThread(final Sprite Object)
{
    Thread CoordinateStarter = new Thread()
    {
        public void run()
        {           
            while(true)
            {
                Object.testing = Object.InternetObject.GetMessages();
                try {
                    Thread.sleep(20);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    };
    CoordinateStarter.start();
}

public void StartCoordinatorPosterThread(final Sprite Object)
{
    Thread CoordinatePoster = new Thread()
    {
        public void run()
        {           
            while(true)
            {
                Object.InternetObject.PostCoordinates(Object.x,Object.y);
                try {
                    Thread.sleep(20);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    };
    CoordinatePoster.start();
}

В любом случае, я бы хотел, чтобы персонажи двигались более плавно, так как это может быть немного "запаздывающим"при таком способе. может достичь этой цели?

Может быть, мне следует создать такой тип стека координат, который просто постоянно получает в него координаты, а затем выталкивает значения по ходу игры?

Будем признательны за любую помощь.

Приветствую!

5
задан Trikaldarshi 29 March 2012 в 10:29
поделиться