Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » MMO Space c 30K пользователей. | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 2
На страницу: 1, 2  След. | Все страницы
Поиск в этой теме:
Канал Игры Мечты: «MMO Space c 30K пользователей.»
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4041
Откуда: Москва
Зарегистрирован: 22.12.2002
Именно столько одновременных потоков поддерживает Tesla S1070.
Внимание вопрос: А можно-ли с помощью CUDA ускорить серверную часть? Пока архитектурные мысли такие:
Принимаемый поток от каждого пользователя засовываем в GPU, где снимаем криптование (должно работать, так как расшифровывание - линейный процесс ну или слабо ветвящийся), получившиеся данные представляем как набор изменений (грубо говоря, если пришел пакет о перемещении, то с помощью математических операций, как то умножение и т.д. довольно легко можно понять что и куда записывать) для общей памяти. Потом совершаем интерацию мира (просчет новых позиций), формируем отправной пакет и отдаем его на CPU, для передачи клиенту.
Да, есть засады, есть проблемы. Так как сама игровая логика довольно сложно представляется на GPU, но возможно-ли Хотя-бы простые вещи переложить на GPU и тем самым добиться 10К+ пользователей в онлайне на одной локации и без тормозов?

ЗЫ: Если во что-то выльется, можно попробовать написать клиент-серверную тестовую демку.
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 07:55 05-08-2009   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
я пока теоретизирую по поводу похожей темки, правда гораздо в более скромных масштабах Улыбка
вот дождусь пока выйдет MSI 628 чтобы на практике поковырятсо

основная мысля такая, применить стандартную лагокомпенсацию на сервере
пока это делается лишь для сетевых экшнов с весьма скромным количеством игроков

откатить хотя бы 1000 юзверей в ММО на N миллисекунд чтобы прочекать минувшие события...
это упирается как раз в нехватку вычислительной мощности

у CUDA есть ряд идеологических моментов, в корне отличающих её от общепринятого подхода к программированию, это отсутствие ветвления, отсутствие точек синхронизации и отсутствие памяти

т.е. в теории идеально подходят цепи Маркова Хы...

Warstone :
Так как сама игровая логика довольно сложно представляется на GPU

пока достаточно переложить лишь модель движения и трассировку выстрелов
это уже значительно разгрузит CPU
но 30к это анрил Гы-гы
_________________
This is what you get ...
(c) Radiohead

Последний раз редактировалось: Guest (21:25 05-08-2009), всего редактировалось 1 раз
    Добавлено: 20:12 05-08-2009   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4041
Откуда: Москва
Зарегистрирован: 22.12.2002
Sh.Tac. :
пока достаточно переложить лишь модель движения и трассировку выстрелов
это уже значительно разгрузит CPU
но 30к это анрил
Ну я согласен с тем, что анрил.

А вот насчет ветвления и памяти... Память есть вообще-то. И до нее спокойно можно добраться. На каджый поток сколько-то-там. Вообще-то 16Кб разделяймой между 32 потоками и общая в 90Мб вроде. Так что... Допустим мы хотим сделать проверку... Не знаю возможно-ли там такое, но что есть проверка? Это прыжок на другую точку кода. Если там есть JMP, то рассчитать куда надо прыгать - не составляет никаких проблем.

Я пока лениво курю маны по CUDA. Говорят что можно еще покурить OpenCL (Computing Lnaguage) он типа и под куду и под все, что хочешь.
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 09:56 06-08-2009   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
Warstone :
А вот насчет ветвления и памяти...

Это всё понятно, что по-минимуму там всё есть, но если песать в таком традиционном стиле, можно смело распрощаться с пиковыми гигафлопсами

и тогда вопрос, нахрена козе боян? Улыбка
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 13:38 06-08-2009   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4041
Откуда: Москва
Зарегистрирован: 22.12.2002
Sh.Tac. :
и тогда вопрос, нахрена козе боян?
Бойан в многопоточности.
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 16:11 07-08-2009   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4041
Откуда: Москва
Зарегистрирован: 22.12.2002
Надыбал лекции по CUDA, которые читали в МГУ в 2008 году. <250Мб. Дайте место, куда выложить. Набрал все 9 аудиозаписей + слайты + код, где есть + задания.
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 21:15 10-08-2009   
VBKesha
 817 EGP


Рейтинг канала: 3(31)
Репутация: 132
Сообщения: 3330
Откуда: обл.Брянская г. Трубчевск
Зарегистрирован: 07.12.2005
Да можно на всякие яндекс диски, ифолдеры и прочее выложить.

Последний раз редактировалось: VBKesha (22:27 10-08-2009), всего редактировалось 1 раз
    Добавлено: 22:07 10-08-2009   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4041
Откуда: Москва
Зарегистрирован: 22.12.2002
http://rapidshare.de/files/48083863/__1052___1043___1059_.7z.001.html
http://rapidshare.de/files/48083864/__1052___1043___1059_.7z.002.html
http://rapidshare.de/files/48083865/__1052___1043___1059_.7z.003.html
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 23:19 10-08-2009   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
по теме есть вводная статья pdf
Massively-Parallel Game Servers
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 03:32 16-08-2009   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
Warstone :
Надыбал лекции по CUDA, которые читали в МГУ в 2008 году.

пасибо, с разинутым ртом послушал лекции 2-3-4 Ух ты!..
дальше жесть жёсткая Гы-гы

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

а так лекции можно качать с офф-сайта по одной:
программа курса
аудиозаписи
слайды/задачки
_________________
This is what you get ...
(c) Radiohead

Последний раз редактировалось: Sh.Tac. (18:11 16-08-2009), всего редактировалось 1 раз
    Добавлено: 18:10 16-08-2009   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4041
Откуда: Москва
Зарегистрирован: 22.12.2002
Sh.Tac. :
рапидшара очень злобная к количеству закачек, можно было упаковать и одним архивом
А там 100Мб - предел одного файла. Я потому и спрашивал куда положить.
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 19:43 16-08-2009   
auliere
 301 EGP


Рейтинг канала: 1(1)
Репутация: 62
Сообщения: 1013
Откуда: Винница, Украина
Зарегистрирован: 09.02.2008
Warstone :
А там 100Мб - предел одного файла.

Вроде бы уже 200 Оо Или вы про rapidshare.de?
    Добавлено: 01:40 17-08-2009   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4041
Откуда: Москва
Зарегистрирован: 22.12.2002
Про де. Так как ен только 10 скачиваний дает, потом трет.
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 12:04 17-08-2009   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
тэкс, в теории гигафлопсами запаслись...

надо бы порешать что считать? Улыбка

можно пресловутое Ньютоновское движение:
Код:

vec3f pos = pos0;
vec3f vel = vel0;

while (1)
{
    pos += vel*dt + a*dt*dt/2;
    vel += a*dt;
}

где dt - шаг симуляции и a - вектор моментальных ускорений, которые например складывается из собственно манёвра КА и тупо ускорения свободного падения на шарообразную массу в пределах сферы её действия

все три вектора, положений, скоростей и ускорений + кнопки пересылаются например по UDP в обоих направлениях

ориентацию КА в пространстве тупо задавать кватернионом
для начала кнопки можно повесить на тягу, тангаж, крен, рыскание
и считать что все ускорения идут через ЦМ

впоследствии особо заморочиться и считать вращательные моменты РД через плечо Хы...
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 17:27 17-08-2009   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4041
Откуда: Москва
Зарегистрирован: 22.12.2002
Отлично, вы пока считайте Ньютоновское движение, а я попробую обрезать сферу видимости (что передавать Игроку через сеть) вроде тоже - очень внушающая задача, которая при переложении ее на ГПУ даст многа плюшек (больше чем движение в ГПУ ИМХО)

добавлено спустя 4 минуты:
Да, сразу давайте договоримся... Ядро вычислений стараемся переложить на ГПУ, а игровую логику на .Net (моно, ибо SIMD). Если необходимо - прослойку между ними - на Си (Без +, так как ООП в Си.. Не самое удачное с точки зрения быстродействия)

Да, ну и что-бы это все было кросс-платформенно (читать как "Все равно будет работать на FreeBSD/OpenBSD"), то пользуем в качестве студии MonoDevelop. Умеет делать как Си так и моно проекты. Есть и под Виндой и Под никсами. Вобщем ИМХО упрощаем себе жизнь.

ЗЫ: Моно: www.mono-project.com
МоноДевелоп: http://monodevelop.com/
_________________
WARNING: By reading this post you accept that this post is genius.

Последний раз редактировалось: Варсик (22:18 17-08-2009), всего редактировалось 3 раз(а)
    Добавлено: 22:13 17-08-2009   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
Warstone :
на Си (Без +, так как ООП в Си.. Не самое удачное с точки зрения быстродействия)

умею на плюсах без ООП Улыбка

некоторые мои рассуждения будут весьма наивными, потому как вторгаюсь в область, которую просто не знаю

думаю положить шаг симуляции 64 мс, для ММО это крайне малое значение, вся надежда на быстрые расчёты

клиент может также посылать пакеты каждый шаг, поместив туда 4 опроса клавиатуры-мыши (через 16 мс) + посчитанное движение

навскидку это получается:
4 байта id клиента +
(1 (начальное состояние) + 4 (среза)) = 5Х
{
12 байт ускорение +
12 байт скорость +
12 байт позиция +
16 байт кватернион
4 байта положение мыши + состояние клавиатуры
----------------------------------------------
56
}
+ 2 байта порт (для NAT)
+ 8 байт собственный таймстемп
+ 8 байт отражённый таймстемп
+ 2 байта мс затраченные на обработку/ожидание
----------------------------
итого: 304 байта payload

предполагаемый трафик от клиента = 304*8*1000/64 = 38 кбит/c Совсем запутался...
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 01:42 18-08-2009   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Sh.Tac. :
думаю положить шаг симуляции 64 мс, для ММО это крайне малое значение, вся надежда на быстрые расчёты

А ежели у клиента случиццо задержка, и он в шаг не попадёт?
А что будет делать клиент между шагами (максимально допустимый шаг на стороне клиента - не более 33мс, дольше - это уже Задница и глоза вылазят) - как обычно, предсказывать?

добавлено спустя 3 минуты:
Sh.Tac. :
12 байт ускорение +
12 байт скорость +
12 байт позиция +
16 байт кватернион

Нормально Мощно! Поворот заложить в кватернион из 4-х флоатов, а ещё кучу параметров передавать векторами по 3 флоата! Особенно ускорение актуально таким диапазоном покрывать, да...

Сдвиг позиции на следующий кадр - ИМХО более чем, да ещё перепаковать, в зависимости от нужной точности. Уж один раз 12 байт с головой должно хватить на это...

добавлено спустя 4 минуты:
Sh.Tac. :
предполагаемый трафик от клиента = 304*8*1000/64 = 38 кбит/c

Я вот думаю - а что если для повышения надёжности и при таковой возможности канала клиента - передавать не один, а несколько потоков с дублирующейся инфой? Вероятность задержки падает пропорционально избыточности - не нужно переприсылать пакеты (ну или если без гарантии доставки - не нужно ждать дошедший, если 30% из них съедаются сразу и ещё 30% уходят причудливым маршрутом в Сингапур)... Всё ж таки не на акустических модемах уже живём...
Метку времени всё равно мы внутрь кладём, чтобы не перепутать...
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (01:57 18-08-2009), всего редактировалось 4 раз(а)
    Добавлено: 01:53 18-08-2009   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
Guest :
А ежели у клиента случиццо задержка, и он в шаг не попадёт?

в шаг он примерно будет попадать, потому как сетевая подсистема будет высерать пакет кажный шаг или я не понял вопроса

Цитата:
А что будет делать клиент между шагами как обычно, предсказывать?

угумц, сервер не может быстрее провернуться
может только медленнее Улыбка

Цитата:
Особенно ускорение актуально таким диапазоном покрывать

смысл в точности флоата поскольку всё считается в них
возможно в дальнейшем некоторые вектора уйдут, но поначалу надо как-то отлаживаться и вообще понимать что происходит Улыбка

Цитата:
передавать не один, а несколько потоков с дублирующейся инфой

ну это слишком наверное, и так 15 пакетов в секунду, была мысля сделать чересполосицу посылать два пакета, в одном чётные четверть-тики в другом нечётные...

при этом дилемма, удвоить количество пакетов, уменьшив их размер примерно вдвое - зло и редкостное вредительство
ждать в два раза дольше пока наберётся нужное количество "полос" ещё хуже

трафик и так будет значительно больше, потому как сервер всунет, - мало не покажется Гы-гы + TCP для обычной игрологики (не движения)
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 02:45 18-08-2009   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Sh.Tac. :
смысл в точности флоата поскольку всё считается в них

Ну так поделил int... Впрочем, может не хватит.
Я вот лично не вижу смысла передавать скорость и ускорение вообще - их, как первую и вторую производные передвижения на нескольких кадрах соответственно, может посчитать и сам сервер, если ему нужно.
Остаётся вектор-3 положения и кватернион-4 (а, кстати, почему кватернион? Приращением вращение считать?) вращения. 28 байт.
Sh.Tac. :
ну это слишком наверное, и так 15 пакетов в секунду

Ну, для широкого канала. 0.5 - 1 мбит/сек. Там даже сильнораспухший пакет можно по трём маршрутам кидать, в теории (хотя - интерфейс всё равно один, так что какая разница - всё равно m раз посылать надо, хоть вдоль, хоть поперек... Повесишся тут с вами...).
Правда, придётся, видимо, перекопать TCP - я не знаю, есть ли возможность сбрасывать необходимость повторной отправки пакета по валидации с нескольких потоков самим приложением, или приложению на этот уровень не достучаться. Озадачен

Не, по здравом размышлении, этот вариант ничего не даёт. Нет
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (04:18 18-08-2009), всего редактировалось 2 раз(а)
    Добавлено: 02:55 18-08-2009   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
пакеты от сервера просты как веники, чтобы датаграмму не фрагментнули по пути она должна укладываться в магические 576 байт вместе со всеми заголовками

получаем:
4 байта id + 12 байт позишн + 16 байт ориентейшн = 32 байта
Х 16 юзеров
+ 8 байт собственный таймстемп
+ 8 байт отражённый таймстемп
+ 2 байта мс потраченные на обработку/ожидание
-----------------------------------------------
530 байт payload

встаёт закономерный вопрос скока на скока махачи планируются? Подозрение.

допустим 100 + 100 это примерно 240 входящих на клиент датаграмм в секунду по полкило кажная

выходит где-то 1 Мбит/c Зеваеца
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 04:18 18-08-2009   
Канал Игры Мечты: «MMO Space c 30K пользователей.»
На страницу: 1, 2  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: После интеграшки — 2600ХТ будетЬ просто таки летать. особенно, если память - GDDR3. ну а если GDDR2, то — таки тоже будетЬ летать, но нызЭнько-нызЭнько. (Ы в ЖК)

  » MMO Space c 30K пользователей. | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18