Модераторы: Rickert
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сервер online игры 
:(
    Опции темы
Simargl
Дата 13.12.2007, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



Доброе время суток, 
возник вопрос: а как пишется серверная часть для онлайн игр, какие потоки там необходимо выделять, ну и т.д. по списку.
PM MAIL   Вверх
Simargl
Дата 13.12.2007, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



Ладно, раз никто не ответил, то возможно плохо изложил идею... попробую с другой стороны. 
 smile 

Итак игра аля Arcanum, есть города, игрок может перемещаться между городами, соответственно могут генериться случайные встречи.
За встречи, города, бои, добычу ресурсов отвечает сервер.
Меня сервер интересует с сугубо технической точки зрения (не плохо бы было узнать как устроены сервера того же WoW или Ultima), в частности как там осуществлять работу с потоками. Как я думаю:
должны быть потоки отвечающие за игрока, основной, отвечающие за жизнь "городов".
???
PM MAIL   Вверх
Ryoga
Дата 14.12.2007, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 20.9.2005

Репутация: 3
Всего: 6



Шли бы Вы на ДТФ - я не думаю, что здесь кто-то что-то подобное реализовывал... smile
PM MAIL   Вверх
Simargl
Дата 14.12.2007, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 12.12.2007

Репутация: нет
Всего: нет



Ryoga:  ДТФ - а это куда  smile  , поподробнее можно?

вопрос, снят, нашёл  smile 

Это сообщение отредактировал(а) Simargl - 14.12.2007, 02:54
PM MAIL   Вверх
Rickert
Дата 14.12.2007, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 6
Всего: 52



dtf.ru - на будущее.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
arilou
Дата 17.12.2007, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61



Ryoga, ну вот прямо так уже и никто  smile 


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Ryoga
Дата 17.12.2007, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 20.9.2005

Репутация: 3
Всего: 6



arilou, я ошибся? Тем лучше... smile Ждём Вашего рассказа. smile
PM MAIL   Вверх
arilou
Дата 19.12.2007, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 6
Всего: 61



Simargl, есть такой вариант:

На каждый тип игрового объекта (NPC, инвентарь, квест, и т.п.) отводится отдельный поток на обработку. При таком подходе сервер хорошо масштабируется при увеличении кол-ва процессоров/ядер. 

Опишите конкретнее, что именно интересует. При разработке онлайновых миров очень много ньюансов и трудностей.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
sparn
Дата 15.1.2008, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 11.5.2006

Репутация: нет
Всего: 1



Цитата

На каждый тип игрового объекта (NPC, инвентарь, квест, и т.п.) отводится отдельный поток на обработку. При таком подходе сервер хорошо масштабируется при увеличении кол-ва процессоров/ядер. 

Это, мягко говоря, не лучшая идея smile. Во первых - количество потоков в любой ОС ограничено, во вторых - при слишком большом количестве потоков даже на много процессорных системах чревато значительной потерей производительности. Даже выделение отдельного потока под каждого подключившегося игрока - это не есть хорошо. В третьих - А как вы себе представляете синхронизацию такого количества потоков? Это сплошные ДедЛоки(чесно говоря не знаю как обстоит дело в дот нет но если использовать стандартное апи ОС то это превратится в титанический труд) smile.

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

Таким образом все пакеты от игроков складываются в очередь и обрабатываются в пропорциональном количеству процессоров количестве(кламбур, но по другому не выходит написать smile) потоков.

И еще запускается такое же количество потоков для обработки таймаутов.

Кроме того благодаря небольшому количеству потоков такую схему можно применять к каждой локации например(если их не запредельное количество конечно)

Это сообщение отредактировал(а) sparn - 15.1.2008, 15:14
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.0937 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.