Архитектурные приемы в онлайн-играх — доклад с HighLoad++

Павел Кудинов из "Точки Кипения" об архитектуре серверной части онлайн-игр:

Это доклад с конференции разработчиков высоконагруженных систем HighLoad++. Ключевые слова: нужен ли Memcached+SQL+Apache, KISS, перфекционизм. На странице доклада есть также видео-запись, без которой показанная выше презентация не будет полной.

После идущей за этим постом статьи Анатолия Ропотова, я сейчас пишу это и чувствую себя как полный пионер.

Твоя оценка: Нет Средняя: 3 (1 vote)

Найдены баги:



Да уж..
"Я этого сам не пробывал, но вам советую так сделать" - отличный совет от докладчика.



Да ещё.
Мы сейчас делаем онлайновую игру на флексе. Так вот мы юзаем messaging. Сервер нужен только для сообщения играющих клиентов и сохранения/записи данных. Сама логика обрабатывается на клиенте (это же RIA ;) ). Так вот такого варианта я в докладе не услышал. А он есть самый производительный.



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



Типа геймер взломает swf-ролик и увидит алгоритмы бизнес-логики? Не выйдет! Эти алгоритмы хранятся на сервере и выполняются реал-тайм - то есть даже классов нет таких скомпиленных ;)



Звучит интересно. Вы уже думали об использовании нового функционала Flash Player 10 (peer-2-peer)?



Думали.
С одной стороны, это очень вкусно - снабдить клиентов логикой и адресами друг-друга и пусть сами, в обход сервера играют. Останется лишь сохранять некие результаты-данные в базе.
С другой стороны, есть большое препятствие в такой архитектуре - фаерволы. Ведь р2р - это какой-то там порт случайный на одной стороне и на другой. Но как правило, у юзеров открыты только 80, 21, 443 наружу и ещё несколько для локальных сетей. Это значит, что без специальной дополнительной настройки, такая архитектура при всех своих плюсах очень теряет.



Ролики с логикой грузятся клиентом с сервера и выполняются на машине клиента?



Нет. Логика лежит в базе в виде строк кода, который выполняется на клиенте при инициализации апп. По сути - это классы с логикой авторизации, боя и прочих приватно-секретных функций игры. Грузится это через секретный (https) AMF.

Написать багрепорт:

Содержание этого поля является приватным и не предназначено к показу кому бы то ни было.
 
  • Адреса превращаются в ссылки.
  • Можно: <a> <em> <strong> <s> <cite> <code> <ul> <ol> <li> <span> <div> <h3> <h4> <img> <object> <embed> <small> <big> <table> <tr> <th> <td> <caption> <pre>
  • Строки и параграфы переносятся автоматически.

Справка по форматированию.