ФорумСообществоФлейм → алгоритм сетевых игр(к примеру CS)

алгоритм сетевых игр(к примеру CS)

  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 15 февраля 2011 г. 23:51

    анука
    кто знает/может рассказать алгоритм работы сервера и клиента онлайн игр.. например counter-strike?
    оч интересно..
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 16 февраля 2011 г. 1:34, спустя 1 час 42 минуты 30 секунд

    помнится ты уже спрашивал ?)
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 16 февраля 2011 г. 1:46, спустя 12 минут 2 секунды

    да.. ответ дуда(вроде) удовлетворил мои потребности в необходимых знаниях.. но появились новые.. хочется по подробней да и мб от нескольких людей мб даже дополняющих друг друга =)
    Спустя 74 сек.
    интересная тема.. мозг чешется)
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 16 февраля 2011 г. 1:57, спустя 10 минут 59 секунд

    вот тебе заданице, сделаешь его - поймешь принцип любой онлайн игры

    сделай клиент и сервер, чтобы на сервер могло коннектиться несколько клиентов, у каждого клиента есть объект (допустим кнопка), которым он может управлять, более того, если координаты кнопки изменены - то эти изменения видны всем клиентам (т.е. кнопки движутся)
    Спустя 14 сек.
    далее по ходу дела уже спрашиваешь что не понятно
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 16 февраля 2011 г. 2:04, спустя 7 минут 29 секунд

    ок =)
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 16 февраля 2011 г. 4:06, спустя 2 часа 1 минуту 15 секунд

    у меня есть проблема… я уже упоминал о ней.. точнее тему создавал.. если сервер посылает данные а клиент принимает их с небольшим промежутком времени то к клиенту они приходят в одном сообщении вместо множества раздельных.. в той теме я эту проблему решил заставив сервер немного медленнее посылать данные.. но тут я не знаю как решить этот вопрос.. дело в том что когда 2 и более клиентов одновременно посылают данные то получается что данные 2 или более клиентов одновременно прилетают к клиентам и получается что данные склеиваются.. хз че делать
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 16 февраля 2011 г. 5:46, спустя 1 час 40 минут 1 секунду

    даже не так.. на сервер от 2х клиентов одновременно прилетают данные в одной строке..
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 16 февраля 2011 г. 6:29, спустя 43 минуты 34 секунды


    даже не так.. на сервер от 2х клиентов одновременно прилетают данные в одной строке..
    руки вытащи из жопы :-)
    Сапожник без сапог
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 16 февраля 2011 г. 6:54, спустя 24 минуты 56 секунд

    вытащил) все, понял
    Спустя 29 сек.
    мне вся эта хуйня сница уже)
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 16 февраля 2011 г. 7:42, спустя 48 минут

    все равно когда реально 3 допустим клиента начинают отправлять данные одновременно и сервер раскидывает их по всем клиентам то в клиенты они приходят все вместе одновременно и с ними не реально по отдельности работать.. но я думаю что не бывает такого начинают одновременно
    Спустя 83 сек.
    просто я юзал pywin32 и на одном компе запускал 3 клиента и по нажатию клавиши они начинали одновременно отправлять данные.. сбило с толку
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 16 февраля 2011 г. 9:26, спустя 1 час 43 минуты 49 секунд

    алгоритм nagle, гугли
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 16 февраля 2011 г. 10:32, спустя 1 час 5 минут 30 секунд

    интересно а на пхп можно реализовать клиент-сервер десктопное приложение?
    Спустя 13 сек.
    ололо пошёл реализовывать
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 16 февраля 2011 г. 10:33, спустя 1 минуту 28 секунд

    я сделал. че не понятно скажу потом..
    Ура товарищи! у нас в Ялте выпал снег=) такое бывает 1 день раз в году

    Спустя 46 сек.
    пойду гулять =)
    Спустя 41 сек.
    код покажу попозже.. немного кривизны есть с лейбачками….
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 17 февраля 2011 г. 21:16, спустя 1 день 10 часов 42 минуты

    Frozzeg, давай я тебе свой алгоритм расскажу а ты подскажеш как решить мою проблему? да и вообще ченить подскажеш че поправить…
    проблему скажу по ходу алгоритма

    сервер

    Thread(){
       send(свои данные с координатами всем клиентам)
       while (1){
          читаем данные с клиента
          отправляем их всем
       }
    }
    listen
    while (1)
    {
         accept
         Thread.start()      
    }


    клиент
    Thread()
    {
       while (1)
       {
            #собсно читалка.. читает все что приходит с сервера. я думаю что проблема в ней. когда дохуя клиентов сразу шлёт пакеты то клиент не успевает всех обрабатывать и получаеца что во время усвоения пакета сервер шлёт новые пакеты и после усвоения одного этого пакета приходят данные 2ух, 3ёх  скопившихся пакетов в одном пакете

            тут разбираем пришедший пакет.. определяем для чего он и что в нём
            {
                читаем данные и в зависимости от того что в них, делаем ту или иную операцию… отрисовка всех, движение по координатам и тд
            }
       }
    }
    while (1)
    {  
       #движение вверх
       if кнопка вверх нажата
       {
            отправка ид своего обекта+координата Х + координата У+1
            слип(0.01)
       }
    }


    или лучше использовать схему с твоей онлайн рисовалки?
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 17 февраля 2011 г. 21:22, спустя 6 минут 2 секунды

    пакеты и должны склеиваться, таковы особенности TCP

    обрамляй пакеты в начале и в конце каким-нить байтами, потом парси их

    например два клиента послали по пакету, первый клиент послал: "0x1..контент1…0x2", второй "0x1.контент2…0x2"

    на сервере мы получили 1 склеенный пакет "0x1..контент1…0x20x1.контент2…0x2", далее разделить его уже не трудно
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!