Все потоки
Поиск
Написать публикацию
Обновить
273.16

Разработка игр *

Разработка игр

Сначала показывать
Порог рейтинга
Уровень сложности

Питер Мольине столкнул два варианта монетизации в Curiosity

Время на прочтение1 мин
Количество просмотров65K
Игра Curiosity от Питера Молинье – это куб, от которого множество пользователей со всего мира отщипывают чешуйки, удаляя слои в надежде добраться до его сердцевины, где скрыта некая тайна.



В последнем обновлении автор добавил во встроенные покупки возможность не только удалять элементы куба, но и наоборот — наращивать их обратно. За разные суммы можно добавить от 10 до 500 тысяч элементов.
Читать дальше →

Как я Quake в браузере делал

Время на прочтение5 мин
Количество просмотров102K

2 месяца назад я выложил на GitHub первую бета-сборку WebQuake — порта первого Quake, работающего в браузере через WebGL.

В этом посте я бы хотел вам рассказать о подробностях разработки и реализации движка: как сделана графика, как работает звук, и так далее.
Читать дальше →

Использование ActiveRecord от Yii в игре тайм менеджере

Время на прочтение6 мин
Количество просмотров7.6K
Всем привет!

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

Напомню, что в проекте используется 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. Уменьшить количество запросов в базу на выборку


Читать далее

Успех в инди: руководство для начинающих

Время на прочтение10 мин
Количество просмотров82K
image

Вот чем меня точно не удивишь, так это вопросом, как стать профессиональным независимым разработчиком игр и достичь на этом пути успеха. Если честно, слышать его — по-прежнему большая честь для меня, поэтому сначала я каждый раз благодарю задавшего этот вопрос. Но вот дальше… черт, если я действительно собираюсь помочь человеку стоящим советом, то это потребует от меня немалых усилий. Я, конечно, всегда могу «отмазаться», сказав что-то вроде «Дерзай! Старайся! Следуй только за своим сердцем!» — и, на самом деле, это будет не самый плохой ответ. Впрочем, пользы от него тоже будет немного.

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

Приятного вам чтения!
Читать дальше →

Android NDK: OpenSL ES

Время на прочтение9 мин
Количество просмотров24K
Здравствуйте, уважемые хабражители!
Недавно, читая хабр, я увидел статью об Android NDK и OpenAL. А в комментариях был задан вопрос о OpenSL ES. Тогда у меня и родилась мысль написать статью об этой библиотеке. Я занимался этой темой, когда мне понадобилось добавить звуки и музыку в игру под Android, написанную на C++, под NDK. Статья не претендует на полноту, здесь будут лишь основы.

Содержание:
  1. Краткое описание структур OpenSL ES
  2. Инициализация механизма библиотеки и создание объекта для работы с динамиками
  3. Проигрывание PCM(wav)
  4. Проигрывание MP3, OGG
  5. Заключение

Читать дальше →

Метрика #4 — Подкаст о технологиях и проектировании интерфейсов и сервисов

Время на прочтение1 мин
Количество просмотров5.8K
Всем привет! С вами «Метрика» – шоу для тех, кто создает и анализирует продукты и сервисы на различных платформах.

В этом выпуске


Антон Артемов (a_dae), Платон Днепровский (hryusha) и Дмитрий Кабанов (dmitrykabanov) обсуждают игровые UI, их особенности, новинки, и дискутируют о современном понимании игрофикации.
Читать дальше →

На Kickstarter идет сбор средств на игру-наследника знаменитого Road Rush

Время на прочтение1 мин
Количество просмотров19K
Сегодня случайно наткнулся на сбор средств на Kickstarter для игры, которую сами разработчики называют «духовным наследником» знаменитой серии Road Rush. Серия игр Road Rush была очень популярна в 90-х (по крайней мере в моей детстве так было) для приставки Sega Mega Drive. Название игры Road Redemption. В процессе просмотр трейлера сразу улавливаются «нотки» той старой олдскульной игры: противников можно бить различными предметами, толкать под встречные машины, ну и сами гонки на мотоциклах никуда не делись. Арсенал стал интересней: появилось огнестрельное оружие, взрывчатка, к оружию ближнего боя из оригинальной игры (в оригинальной версии были кулаки, дубинка, цепь и лом) добавились самурайские мечи, кувалды и много другой арматуры, кроме того в игру обещают добавить полноценный сюжет. Команда создателей подобралась с большим геймдевелоперским и судя по всему геймерским опытом, так что есть все основания полагать, что мы увидим очень неплохую игру.
Читать дальше →

Физический движок для железнодорожного транспорта

Время на прочтение6 мин
Количество просмотров21K
Здравствуйте.
В данной статье представлена концепция написания физического движка для железнодорожного транспорта.
Одна из главных задач, которую должен решать данный физический движок – это расчет взаимодействия между вагонами.
Читать дальше →

Игрофикация – игра как мотивация в бизнесе

Время на прочтение5 мин
Количество просмотров37K


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

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

Вообще, игрофикация или геймификация — это когда игровые механики накладываются на что-то в реальной жизни. В СССР, например, были соревнования смен, доска с лучшими работниками и так далее — всё это хорошие добрые игры, когда работа идёт не ради плана, а ради того, чтобы доказать свою крутость или просто поучаствовать в процессе. Ещё примеры:
  • Хабр. Карма, рейтинг плюс наши бейджи и инвайты: они создают дополнительную мотивацию писать посты.
  • Террористы. На самой лекции также говорилось, что боевики в Аль-Каиде проходят несколько уровней своего рода игры, каждый из которых разблокирует новые возможности в организации.
  • Обучение. Там же приводился пример про школу, в которой все в начальных классах стали играть роли в экипаже космического корабля. Учиться стало интересно уже не потому что так надо, а потому, что это помогало проходить сюжет.
Читать дальше →

Алгоритм Эллера для генерации лабиринтов

Время на прочтение5 мин
Количество просмотров155K
Это топик-перевод статьи Eller's Algorithm. В ней рассказывается о способе программной генерации лабиринтов. Дальнейшее повествование идет от лица автора.

 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __  
|__   |__       __ __|__   |   __|  |  |  |  |
|__   |__   |__|   __ __|   __ __      |     |
|        |  |  |     |  |__      |__|  |  |  |
|__|__|  |  |   __|   __|__   |   __|__|  |__|
|   __|  |     |__ __ __|  |  |__|  |     |  |
|  |  |  |  |__|  |__   |  |   __|__ __|  |  |
|  |__    __    __ __    __|  |   __   |  |  |
|  |  |  |  |      __|  |   __|  |  |__|  |  |
|  |     |     |__   |  |  |  |  |  |__    __|
|  |  |__|__|__ __|  |     |  |  |      __|  |
|__ __|  |  |  |__   |__|   __|     |   __ __|
|   __|  |   __|__      |__   |__|  |__    __|
|  |  |     |  |     |__|  |   __    __|   __|
|   __|  |__ __|__|      __|  |  |     |  |  |
|   __ __   |      __|__|  |__   |  |  |__|  |
|__ __ __|__ __|__ __ __ __ __|__|__|__ __ __|


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

Читать дальше →

А вот я принёс вам настольную игру про космические полёты

Время на прочтение5 мин
Количество просмотров47K

Уже немного обжитый корабль. В экипаже двое людей и инопланетянин.

Уф. Неделю назад мы обещали всем приятный сюрприз на день космонавтики — и сегодня в огромной спешке развозили ещё тёплые коробки настольной игры «Galaxy Trucker» (или «Космические дальнобойщики» в локализованной версии) по магазинам.

В общем, именно сегодня хочу показать вам одну из самых весёлых гиковых штуковин, которые я видел за последние пару лет. И поздравить с праздником.

Для начала вы должны свыкнуться с мыслью, что все космические корабли будущего будут строиться из частей канализации. Почему? Потому что жила-была корпорация, которая зарабатывала только тем, что поставляла детали для бытовых инженерных сетей на отдалённые планеты. Разница технологических уровней позволяла здорово на этом зарабатывать, и при этом не сильно вредить балансу сил в галактике. За несколько веков все ближайшие системы были обеспечены канализацией и инженерными системами на 100%, поэтому приходилось улетать всё дальше и дальше. В итоге полёты стали довольно опасными, а прибыль – не такой уж и большой. Корпорация оказалась на грани банкротства.
И как они выкрутились?

Хабраинтервью с разработчиками «Космических рейнджеров»

Время на прочтение2 мин
Количество просмотров41K
Игра «Космические рейнджеры 2»

В связи с недавним рейтингом лучших игр по версии Хабра я заинтересовался игрой «Космические рейнджеры». Я не могу назвать успех игры иначе, чем феноменальным. В связи с чем связался с разработчиками с просьбой дать мне и хабрасообществу интервью. Итог следующий:

  • Алексей Дубовой согласился ответить на вопросы по почте.
  • Дмитрий Гусаров от интервью отказался.
  • Команда, которая готовит аддон «Революция» на интервью согласна.

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

Отложенная обработка команд в социальной игре

Время на прочтение4 мин
Количество просмотров11K
Всем привет!

Сегодня я хочу поделиться с вами решением задачи, с которой мы столкнулись при разработке социальной игры. Игровой клиент был написан на flash, а для back-end был выбран php. Игра относится к тайм-менеджмент играм.
Схема работы была выбрана следующая:
  1. игрок совершает действие на клиенте
  2. клиент проверяет возможность совершения действия
  3. отсылает команду на сервер
  4. сервер проверяет возможность совершения действия, выполняет команду, производя изменения в базе
  5. клиент уведомляется о том, что все ок или информируется об ошибке


Все работало отлично, пока не происходило резкое возрастание количества игроков.
Сначала начались тормоза со стороны php. Основная проблема данной реализации заключалась в том, что на каждое действие игрока дергается сервер, который производит довольно много вычислений по обсчету объектов на карте перед выполнением команды. Эта проблема была решена путем добавления дополнительных серверов с обработчиками php.
Потом мы уперлись в производительность mysql. Было слишком много запросов. Так как шардинг не был заложен в систему, то выкручивались как могли. Что-то перенесли в mongodb, где-то улучшили работу с кэшем.

Кстати, mongodb оказался не таким простым хранилищем, как может показаться на первый взгляд. Учитывая то, что у нас было включено шардирование и стояли правильные индексы, мы все равно словили там тормоза, с которыми не смогли разобраться на тот момент. Периодически просто высыпалась пачка запросов в log, которые вдруг затупили. Хотя через секунду те же запросы работали нормально при том же количестве запросов. Но это тема отдельного поста.


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

Какой же?

Ближайшие события

Деньги и App Store

Время на прочтение15 мин
Количество просмотров80K

Статистика для инди разработчика



Автор Emeric Thoa

Перевод мой

Intro


Когда я распрощался с работой на крупную игровую компанию и основал свою игровую студию, было интересно прикинуть, сколько денег можно было ожидать заработать как инди разработчик. Проработав в Ubisoft в разработке консольных AAA игр, у меня были некоторые соображения. Но они для моей новой инди жизни уже были неактуальны. 20-ти миллионные бюджеты в долларах, команды из 20 тысяч человек, продажи по 70 долларов за копию… Я понимал, что для инди все намного по-другому, но информации о том, насколько по-другому было очень недостаточно.

Angry Birds взлетела на Олимп, Plants vs. Zombies уже была показательным образцом успеха, Doodle Jump был хорошим примером успеха в то время, когда я стартовал, Cut the Rope продавалась по миллиону копий в неделю. Но, кроме случаев, которые я называю джекпотами, в сети было очень мало публичных данных со статистикой. Это значило, что финансовые ожидания от первого проекта SQUIDS были покрыты мраком необоснованных предположений. С тех пор, я собираю статистику и в этой статье хочу поделиться информацией с собратьями по оружию – инди разработчиками, которые находятся на той стадии, на которой я сам был полтора года назад.

Мифы App Store


Я предоставлю пост-мортемы и статистику, характерную для индустрии, и обосную какое место занимает наш проект SQUIDS в общей картине. Но, сначала я развенчаю несколько мифов про App Store с точки зрения денег.
Читать дальше →

Баланс в играх жанра Tower Defense (часть 2)

Время на прочтение9 мин
Количество просмотров35K
В первой части мы начали рассказывать о балансе юнитов в нашей игре жанра TD, которая неплохо себя показала, добравшись до топовых мест в своих жанрах US, RU и др. Appstore, получила фичеринг в разделе «Игры» в RU Google Play и в New&Noteworthy в 60 странах Appstore.
В данной статье мы затронем тему создания новых типов башен по принципу «от рассмотренной ситуации – к юниту», расскажем о расчете параметров крипов и дадим описание бонусов.


Читать дальше →

2D скроллшутер за неделю

Время на прочтение5 мин
Количество просмотров12K

А как всё мило начиналось


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


Lightforce, Commodore 64, 1986г.

Внимание, под катом большие картинки.
Читать дальше →

RPG для обучения детей программированию на Java

Время на прочтение2 мин
Количество просмотров126K

Java считается мало подходящим для того, чтобы стать первым языком программирования, в отличие от того же Pascal или Python, тем более для детей. Однако, это обстоятельство не остановило специалистов университета Калифорния (Сан-Диего) от любопытного эксперимента, который, по их словам, показал вполне успешные результаты — ими была разработана игра CodeSpell для обучения детей Java в ходе игрового процесса.

Игра представляет собой нечто вроде RPG от первого лица с довольно скромной на сегодня графикой и весьма типичным сюжетом. Игрок — волшебник в стране, населённой гномами, которые по некоторой причине утратили свои магические способности. Задача игрока — помогать гномам при помощи своей магии, которая представляет из себя Java-код, выполнение которого приводит к модификации предметов и влиянию на окружающий мир: левитация, полёты, уничтожение огнём и тому подобное. Игра «помогает» игроку различными способами, начиная от подсказок и заканчивая чем-то на подобие дополнения кода, так что раздражения по поводу заклинания на Java «как разрушить это препятствие» у школьников не должно возникнуть.

Игровой процесс — правда, урывками и без особого смысла — можно посмотреть на видео
Узнать подробности

Мысли о будущем компьютерных игр

Время на прочтение6 мин
Количество просмотров25K

Доброго времени суток, Хабр!


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

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


Именно так я представляю себе обобщенную структуру новых компьютерных игр. И чем-то она напоминает мне структуру сущностей в древнегреческой мифологии…

Но обо всем по порядку.

Замечание об Инструкциях (без претензии на мировое господство)

Время на прочтение11 мин
Количество просмотров9.8K
Как это бывает

Вы хотите некое дело довести до успешного конца? Что, серьезно? И это не пикник за городом, а «серьёзный» проект на 3-4 месяца с участием пяти человек, пара из которых работают удаленно и в глаза друг друга не видели (хуже того, точно неизвестна их квалификация)? И на разработку продукта может уйти кругленькая сумма, да еще, есть чувство, с перерасходом, а за нею стоит кредитор с «большими зубами»? Вы плохо представляете объем работ и вообще, как все это точно реализовать? Вы не можете контролировать всех, потому как не представляете, что делает каждый участник («ах, он снова укатил на рыбалку, а проект не компилируется…»)? У вас нет достаточной квалификации, чтобы вообще понять, что вам прислал очередной программист? У вас трения в команде с самого начала? Или все друг другу мило улыбаются, но все совещания по Скайпу заканчиваются лишь руганью или распитием пива с чоканьем о сенсорный экран (поставьте галочки против вопросов)?

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

Facebook Game On в Москве 15 апреля

Время на прочтение1 мин
Количество просмотров3.4K

Facebook Game On состоится в понедельник, 15 апреля, в Digital October.





Это уникальная возможность встретиться со всей командой Facebook EMEA Gaming, узнать все об игровой платформе Facebook, о том, как создать успешные игры на Facebook.com и мобильной версии, а также как продвигать ваши игры и охватить большую аудиторию.

Каждый месяц более 250 миллионов человек по всему миру играют в игры на Facebook (это практически каждый пятый из ежедневных пользователей!). У более чем 200 игры на Facebook более миллиона игроков в месяц. А из 400 самых прибыльных приложений iOS, 55% интегрированы с Facebook.

Читать дальше →

Вклад авторов