Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2013, 13:50   #11
DrDron
 
Регистрация: 07.06.2011
Сообщений: 3
По умолчанию

Недавно тоже озадачился такой проблемой... как я понимаю взаимодействие от клиента к серверу должно происходить так:
ClientPC-(Press Keys)->GameServer
GameServer включает в себя: ServerFifo-->ServerMath-->DBServer;
Client PC - машинка пользователя где он запустил клиентское игровое ПО
PressKeys - пакет данных для сервера который включает в себя события пользователя (ИМХО: нажатие клавиш, а также сервисную инфу какую нить)
ServerFifo - предварительный сервер куда "стекается" вся инфа идущая от клиентских машинок, происходит предварительный анализ получаемой инфы (ну допустим если игрок присылает инфу что он нажал за 1 сек 10 раз одну клавишу - значит читер!) формируется очередь.
ServerMath - обрабатывает события из очереди ServerFifo, обрабатывает реакцию игрового мира на эти события и вносит изменения в БД – характеристики игрового мира и игровых элементов.
DBServer - сервер базы данных элементов игрового мира, игроков и тд.
Все выше описанное это мое видение реализации взаимодействия «клиент->игровой сервер» для 10+ игроков. Взаимодействие "игровой сервер->клиент", описать не решусь, но думаю что тут будет нечто:
DBServer->ServerFifo->ClientPC (сервер ServerFifo – может формировать как очередь входящих событий игроков, так и очередь исходящих данных – состояние игровых объектов на текущий момент времени. Рассылка осуществляется по UDP без анализа доставки данных до клиентов, частота рассылки зависит от динамичности игры – в случае пошаговой стратегии, то каждый конец хода, в случае экшена, десятки раз в одну секунду ). На чем будет написан ServerFiFo, ServerMath – зависит от разработчика.
В случае написания экшена для 2-16 человек , оптимальней всего «вшить» серверное ПО в клиент игры – чтобы каждый игрок имел права создать свой сервак (в случае с unity3d – придется на скриптах реализовывать – JavaScript, C#).
Меня больше интересует реализации игры с отдельным серверным ПО и клиентским ПО.. кто нибудь может подсказать инфу по реализации серверного игрового ПО для 100-200 одновременных подключений? Описание методов минимизации данных отсылаемых/принимаемых игровым сервером, методы шифрования, методы контроля нагрузки – никто книжицу не встречал такую?

Последний раз редактировалось DrDron; 11.03.2013 в 14:13.
DrDron вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен Unity3D программист. MaratZahidyl Фриланс 1 10.12.2011 18:16
3D Studio Max и Unity3D rc2f6 Свободное общение 0 07.02.2011 15:23
Delphi-оболочка для MS SQL Server (создание, присоединение, восстановление, резерв. копирование БД) Машуля Помощь студентам 0 28.11.2009 11:27
НЕ могу найти Server Socket в закладке Internet в Delphi 7 для создания серверной части трояна Reds Общие вопросы Delphi 4 11.10.2008 16:27