Рубрика «Блог компании «Alawar Entertainment»»

imageМобильный free-to-play уже практически не обходится без использования социальных сетей в играх. Социальные сети обеспечивают то, что называют виральностью (от англ. viral – вирусный, т.е. способный распространяться как вирус, от одного человека к другому), что позволяет привлекать новых игроков с минимальными затратами. В данной статье мы поделимся опытом интеграции Facebook в игры Alawar на платформе iOS.
Читать полностью »

imageВ нашем блоге мы уже публиковали ряд статей о статистике в играх, в них мы рассказывали, в основном, о ключевых показателях и метриках и о том, какие на рынке есть инструменты для аналитиков.
А в сегодняшней статье мы хотим поделиться опытом построения непосредственно технических инструментов по сбору и обработке статистической информации для мобильных игр.
Читать полностью »

Около года назад перед нашей командой была поставлена задача стартовать разработку серверных частей ряда игровых MMO проектов. Специфика такого рода проектов помимо требований к гибкости, стабильности и масштабируемости также включает в себя:

  • необходимость A/B-тестирования разных версий одной и той же игры
  • возможность по максимуму переиспользовать функционал от одной игры в другой
  • высокую вероятность географической удаленности от разработчиков занимающихся клиентским функционалом

Более того, в дальнейшем нашу команду предполагалось расширить, возможно за счет аутсорс разработчиков, в том числе и для задач поддержки. В этих условиях для успешной реализации было решено наравне с версионированием проектов, пакетированием и стандартизацией ряда шагов разработки внедрить и практику continuous delivery.

Цель данной статьи – рассказать о проделанных шагах, принятых решениях и описать полученный результат.

image

Читать полностью »

Не секрет, что в последнее время кроссплатформенные мобильные free-to-play игры стали основным направлением деятельности большого числа игровых компаний. В этой статье мы не будем говорить ни о причинах, которые к этому привели, ни о перспективах данного направления. Компании изменили свои бизнес-модели, начертили схемы монетизации и игровых циклов, помолились на SCRUM и Agile, однако в статье речь пойдет и не про это. Игры по-прежнему нужно делать качественно, нужно правильно выбирать технологии, нужно понимать, что ждать от загадочного free-to-play и с чем придется столкнуться. В этой статье мы рассмотрим 5 наиболее важных технологических проблем, возникающих при создании кроссплатформенных мобильных free-to-play игр.
Читать полностью »

Unigine Open Air 2013. Как это было (взгляд одного разраба)
Всем привет!

На прошедших выходных под Томском прошла одна из самых необычных IT-конференций, на которых мне удалось побывать.

Если вы не видите себя без общения с себе подобными, любите отдых, палатки, ночной кодинг шейдеров, игровые движки, C++ хардкор оптимизацию, игры, задушевные разговоры о LLVM и Flash под раскаты грома, красивых девушек в купальниках, способных собрать билд на 7 платформ в один клик — велкам под кат, там про то, как это было.
Читать полностью »

Всем привет!
Сайты Alawar — это сайты для русского, американского, европейских и других рынков, отдельные сайты для mobile-устройств, сайты партнерских программ и др. Все они развернуты на одном инстансе Yii, о чем мы уже писали в нашем блоге на хабре.
Сегодня я расскажу, как мы организовали хранение, структуру и управление конфигами наших сайтов, какие при этом получили преимущества. А также поведаю, как осуществляется деплой нашего проекта в различных окружениях.

Читать полностью »

Начиная с версии 5.4.0, в PHP появится новая конструкция языка — трейты (traits), реализующая возможность использования примеси (mix in). Механизм примесей является еще одним механизмом повторного использования кода и присутствует в том или ином виде в других языках, например, Ruby, Python, Common Lisp, etc.

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

Следует отметить, что реализации примесей в PHP существуют как минимум с версии 4.0.1, и в настоящее время присутствуют, чаще всего под именем behavior, в ряде популярных фреймворков, например, в Yii, Symfony, Doctrine, CakePhp, Propel.

Цель статьи — продемонстрировать и сравнить несколько основных подходов к реализации примесей в PHP до версии 5.4.0, базирующихся только лишь на функциях самого языка и не использующих сторонние расширения, как-то, например, функцию runkit_method_copy из PECL runkit.
Читать полностью »

Здравствуйте!Кластерное хранилище в Proxmox. Часть третья. Нюансы

Третья часть статьи является своеобразным приложением к двум предыдущим, в которых я рассказывал о работе с Proxmox-кластером. В этой части я опишу проблемы, с которыми мы сталкивались в работе с Proxmox, и их решения.

Авторизованное подключение к iSCSI

Если вам понадобилось при подключении к iSCSI указать креденшиалы — лучше это делать в обход Proxmox. Почему?

  • Во-первых, потому что через web-интерфейс Proxmox невозможно создать авторизованное iSCSI-подключение.
  • Во-вторых, даже если вы решите создать в Proxmox неавторизованное подключение с тем, чтобы указать авторизационную информацию вручную, то вам придется бодаться с системой за возможность изменить конфигурационные файлы таргетов, так как при неудачной попытке подключения к iSCSI-хосту Proxmox перезаписывает информацию о таргетах и производит повторную попытку подключения.

Читать полностью »

Всем привет!

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

Напомню, что в проекте используется php(Yii), mysql и memcached. В проекте достаточно много сущностей, для каждой из которой есть своя модель, которая наследуется от CActiveRecord.

Хранятся файлы моделей следующим образом. В папке models создаем папку base. Когда генерируем модель через Gii, то указываем, что ее нужно положить в папку models/base и к имени класса добавляем Base. Затем создаем в models аналогичный класс без Base, который наследуется от базового класса и имеет в себе лишь метод model().

Кстати заранее скажу, что базовые модели наследуем не от CActiveRecord, а от ExtActiveRecord — расширяем CActiveRecord под наши нужды. Но об этом позже. Пока что разницы никакой.

Пример:
models/base/BaseUser.php — стандартный класс, который генерируется через Gii
models/User.php — класс, который наследуется от BaseUser и имеет в себе метод model()

	/**
	 * Returns the static model of the specified AR class.
	 * @param string $className active record class name.
	 * @return User the static model class
	 */
	public static function model($className=__CLASS__) {
		return parent::model($className);
	}
	

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

Не забываем добавить в конфиге 'application.models.base.*'.

Перейдем собственно к теме поста и поставим задачи, которые хотим решить:

  1. Уменьшить количество запросов в базу на обновление
  2. Уменьшить количество запросов в базу на выборку

Читать полностью »

Всем привет. Вот и подошла очередь нашей очередной статьи. В первой мы познакомили вас с рабочими процессами нашей студии и вскользь упомянули тулзы, которыми мы пользуемся при создании игр. Вторая статья была посвящена кроссплатформенности движка Alawar Engine и предназначалась во многом для тех, кто уже сталкивался с подобными вопросами в своей работе. К слову о кроссплатформенности – 13 марта вышла наша игра для PlayStation 3, которую мы впервые создали на движке Alawar Engine. Помимо кроссплатформенности движок поддерживает и мультижанровость, так уже были выпущены игры в таких жанрах как: арканоид Hyperballoid 2, match-3 The Treasures of Montezuma 2, аркада Space Op (iOS), готовится к выпуску тайм менеджер из серии «Веселая ферма».

В третьей статье мы подробнее остановимся на процессе создания игры. Вашему вниманию представляется демо-версия движка Alawar Engine, а данная статья будет служить своего рода инструкцией по работе с ним.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js