Архив

Архив раздела ‘MMOG, MMORPG игры’

Игровые размышления — какие сервисы нужны, какие сервисы важны для браузерной игры

15 февраля 2009 7 комментариев

games-256x256Приветствуем читателей. Сегодня воскресенье и поэтому я не буду много говорить о технической стороне дела, не буду даже код приводить, сегодня мы просто порассуждаем.. нет не о сферическом коне в вакууме, хотя отчасти и так, а поговорим о... Нет, я попытаюсь изложить свои мысли о том, какие сервисы и возможности может предоставлять онлайн браузерная игра для игрока, сообществ игроков, администраторов и остальных интересующихся.

Сначала определимся, что же я имею ввиду под словом "сервис". Понятно, что основным сервисом, услугой, которую предоставляет игра, является как раз игра сама по себе, игровой мир и все, что в нем. Но никакой мир не может жить сам по себе, более того, зачастую его развитие тесно связано именно с, казалось бы, второстепенными сервисами и услугами, выстраиваемыми вокруг центральной услуги, игрового мира. Об этом часто забывают разработчики и менеджеры проектов, думая, что "да ладно, поставим форум и все, игроки себе будут сами общаться и тусоваться". С другой стороны видна и активность самих игроков в исправлении недочетов или тонкого расчета администрации, когда на плечи игрового сообщества ложится задача доделывания и поддержки тех околоигровых сервисов, которые не созданы самими разработчиками. Это, безусловно, хорошо, показывает степень заинтересованности рядовых игроков и увлечённости их игрой, но никак не оправдывает администрацию. Читать далее...

JavaScript, AJAX, Socket и Flash/ActionScript — исследуем вопрос передачи данных в AJAX-приложениях

12 февраля 2009 5 комментариев

socket_1667_128Приветствуем наших читателей. Как то в последнее время я начал активно повышать свои навыки и знакомиться не только и не столько с новыми технологиями, но и изучать некоторые привычные всем, но новые для меня вещи. Например, я уже более-менее освоил Java, а именно - занимаюсь сетевыми сервисами и фреймворками, а также системы кеширования - но об этом как-нибудь в другой раз (планирую много написать, но увидим). Также, из последнего (буквально вчера) - начал работать с ActionScript 3. Так что теперь часть в моих проектах будет написана и на Flash, хотя мое мнение относительно применимости в AJAX-приложениях Flash-компонентов не изменилось - их надо использовать там, где они дают максимальное преимущество, а вот вся "обвязка", например, интерфейс пользователя, можно сделать при помощи стандартных технологий. Мой любимейший ExtJS все же даст фору любым Flash/Flex-решениям, но если вы найдете что-то похожее - обязательно напишите комментарий. Стоп, сегодня статья снова не об этом. Читать далее...

AGPsource Session Server — первая бета-версия компонента из состава игровой платформы

3 февраля 2009 Comments off

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

Предпосылки к созданию

В случае разработки масштабных РНР-приложений и распределённых систем, перед программистами встает задача обеспечения корректной обработки пользовательских запросов, в случае, если приложение работает на нескольких серверах. Обычные РНР-приложения используют механизм сессий для хранения идентификационных данных и сессии задействованы при обработке каждого запроса от клиента. В обычном режиме сессии хранятся в файловой системе и, таким образом, доступны только на том же сервере, где запущено приложение. Если у нас стоит балансировщик нагрузки, он не может, в случае необходимости, перенаправить запросы на другой, свободный в этот момент сервер, так как для корректной обработки нам необходима сессия, а она хранится на том сервере, где пользователь начала работу. Для этого есть даже специальный термин, «Sticky session» - по сути, это стратегия работы балансировщика, который на основе сессионного идентификатора определяет, куда посылать все запросы. Читать далее...

AGPsource Game Platform — заметки о способах общения в онлайн играх

27 января 2009 4 комментария

logo3

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

И так, сначала давайте определим, что в игровом мире могут быть несколько видов коммуникаций. Их можно разделять по различным признакам, мы же используем всего несколько. Читать далее...

AGPsource Game Platform — эксперименты с игровым движком, РНР <> JSON <> JDBC

logo3

Приветствуем читателей. Этим постом  я открою новую серию статей, в которых будем обсуждать различные нюансы проектирования и реализации серверной платформы для браузерных игр, которую я разрабатываю. В дальнейшем компоненты будут выложены в виде как отдельных открытых проектов, так и вся платформа (пока политика не определена). И первым делом я хочу поделится с вами своими экспериментами в реализации одной из важнейших серверных подсистем - механизма доступа к базе данных. Сразу скажу, что общая статья с рассмотрением архитектуры всей системы игры будет скоро, пока начнем с отдельных подсистем.

И так, доступ к базе данных. Изначально мы имеем игру, которая написана на РНР, соответственно, если отбросить промежуточные библиотеки, используется либо mysqli или же PDO, который, в свою очередь, опирается теперь на новый драйвер Mysqlnd. К сожалению, на этом уровне внедрить какие-то более продвинутые методики работы с базой сложно.
Читать далее...

WarAliance Game — постмортема проекта он-лайновой браузерной стратегии, часть 2.

logo1Приветствуем наших читателей! Сегодня я продолжу рассказывать о проекте WarAliance, начало читайте в этой статье.

Примечание: данный текст  - это только критический взгляд с теперешнего опыта и воспоминание своего первого опыта. Конечно, сейчас я вижу и знаю, где и что было сделано не так, и описанное - всего лишь попытка восстановить в общих чертах картину того времени и описать свой первый опыт в игровой индустрии в качестве разработчика игры (опыт в играх в качестве менеджера уже был накоплен). Все приведенные документы, скриншоты, схемы и другая информация приведены лишь в ознакомительных целях.

В предыдущую статью не попал скриншот с системы навигации по карте галактики. Механизм там простой - технически карта состоит из нескольких слоев, внизу лежит растровый рисунок, сверху он покрывается сеткой секторов или квадратов, в зависимости от типа карты. При наведении курсора на область сектора, он подсвечивается и отображаются его границы, по двойному клику переход на детальную карту указанного участка. Это все инкапсулировано в один объект, и перезагрузки страницы не происходит - все слои перестраиваются сразу на клиенте, а все данные о вселенной грузятся только первый раз и хранятся в кеше. Механизм стал еще одной технической фишкой проекта. Читать далее...

WarAliance Game — постмортема проекта он-лайновой браузерной стратегии, часть 1.

logoПриветствую читателей! Присоединяясь к всеобщим поздравлениям с новым годом, я, тем не менее, не только поздравлять буду, но и продолжать радовать интересными материалами. В этот год мы войдем с материалом достаточно отличным от других публикаций блога.

Примечание: данный текст  - это только критический взгляд с теперешнего опыта и воспоминание своего первого опыта. Конечно, сейчас я вижу и знаю, где и что было сделано не так, и описанное - всего лишь попытка восстановить в общих чертах картину того времени и описать свой первый опыт в игровой индустрии в качестве разработчика игры (опыт в играх в качестве менеджера уже был накоплен). Все приведенные документы, скриншоты, схемы и другая информация приведены лишь в ознакомительных целях.

Начну с далекого. Последние четыре года (гм.. а может и больше) я плотно работаю над различными проектами в области игровой индустрии, а конкретнее, занимаюсь проектированием и разработкой браузерных игр. Проработав год главным администратором, совмещая в себе и геймдизайнера и техподдержку и комьюнити-менеджера, в отличном проекте SanCity.ru, в один прекрасный момент я ушел оттуда на вольные хлеба. Сначала вместе с несколькими друзьями мы усиленно проектировали и просто мечтали о собственном игровом проекте, однако по ряду причин дальше концепта и первой демки карты и перемещения (кстати, и сейчас реализованное там достаточно уникально для современных игр, думаю, об этом как то расскажу отдельно) мы не продвинулись. Впрочем, думаю, на этом этапе застряло множество команд, вне зависимости от опыта или амбиций. Позже, играя активно в стратегию OGame, мы ее буквально разобрали по косточкам, всю игровую механику, социальную составляющую и т.п., в общем - набирались опыта в анализе успешных проектов (рассматривали все аналогичные игры космической темы). Читать далее...

Краткий обзор MQ (Messages queue) для применения в проектах на РНР. Часть 1

Приветствуем наших читателей. К сожалению, очень много дел и проблем навалилось, поэтому частота обновление блога не такая, как хотелось бы, но это поправимо. Параллельно к основной работе, я в "фоне" обдумываю и прикидываю реализации архитектуры для игровых проектов (напомню, что основная область моих интересов и работ - создание онлайновых браузерных игр). Последнее время я все чаще и чаще возвращаюсь к мысли, что интересно было бы реализовать основной игровой сервер на основе очередей сообщений (MQ или Messages queue). То есть,  движок такой игры будет представлять собой набор компонентов, которые будут общаться между собой посредством асинхронных сообщений, а каждый компонент может быть как генератором сообщений, так и подписчиком, то есть исполнять другие сообщения.

Такой подход, насколько я понимаю, широко применяется в мире Java, там для этого есть стандарт Java Message Service (JMS) и применяются брокеры сообщений и на этом базируется архитектура  Enterprise service bus (ESB), например,  Apache ServiceMix. Но для нас это пока высокая сфера крупных проектов, а в специфике веба и веб-ориентированных приложений я бы хотел рассмотреть, можно ли что-то сделать подобное, но с меньшими затратами и обеспечить приложению отказоустойчивость, распределение нагрузки и асинхронную обработку. И конечно, очень желательно, чтобы это было реализовано на РНР как основном языке реализации всех компонентов сервера. Читать далее...

Веб-обзор #14: в помощь игроразработчику, оптимизация и кеширование в Zend Framework, немножко web 2.0 экономики, ExtJS и MySQL, а также фичкаттинг в стартапах.

Приветствую наших читателей. Некоторый перерыв в публикациях был связан с моей командировкой в Киев и последующей срочной работой, впрочем, сейчас я уже могу выкроить время для новой публикации. На этот раз я вспомнил забытой мною рубрике интересных материалов и, посмотрев на открытые вкладки и закладки с тем, что меня заинтересовало, понял, что "забывать дальше" эту рубрику никак нельзя. Ведь сегодня в сети очень много материалов, вместе с этим качественные и интересные ещё нужно поискать. Этим то мы и займёмся. Приятного и, главное, полезного чтения. Читать далее...

Кто и как создаёт большие, масштабируемые и высоконагруженные веб-сайты.

20 октября 2007 1 комментарий

Сегодня я расскажу вам об очень интересном ресурсе, где собираются материалы (часто эксклюзивные) о построении веб-сайтов, которые могут обслуживать тысячи и миллионы пользователей - а проще, высоконагруженные проекты. Такие системы, конечно же, отличаются от обычных веб-сайтов, к примеру, такого, как этот - мы вряд л выдержим трафик больше нескольких десятков тысяч пользователей, хотя сам движок WordPress вполне справиться с такой нагрузкой - подтверждение этому популярнейшие блоги, вроде Techcrunch. Но кто и как создаёт проекты, вроде Twitter-а, Flickr и подобные?

Для ответа на такие вопросы и существует сайт под названием High Scalability - организованный в виде блога, он аккумулирует большинство доступных знаний о построении подобных систем. Что же там можно узнать интересного?

Читать далее...