Рубрика «game development» - 93

Игровая конференция DevGamm в этом году собрала рекордное количество участников (более тысячи трёхсот), некоторые из которых уже опубликовали свои впечатления. Однако среди разработчиков и издателей игр немного выделялся Вадим — прежде всего тем, что ему было 12 лет.

Вадим сделал игру Robots Inc c необычным, голосовым управлением. (Чтобы робот летел, нужно жужжать, а чтобы в конце уровня взорвалась заложенная бомба, нужно сказать: «Бдыщь!») На игровых конференциях нечасто встретишь двенадцатилетних разработчиков мобильных игр, поэтому мы решили взять у Вадима интервью.

Вадим учится в московской школе с углубленным изучением иностранных языков № 1296 в 6 В классе. С Unity работает с 2011 года, в 2012-м прошел курс обучения по C#, а сейчас самостоятельно изучает Java. Также активно занимается каратэ.

image
Вадим, фотография папы.
Читать полностью »

В этой статье я хочу поделиться своим опытом разработки мобильной игры, поскольку я Windows Phone разработчик, я буду рассказывать про свой опыт применительно к этой системе.

Память и текстуры

Если Вы уже занимались разработкой мобильных игр, то основное зло не в нехватке ресурсов CPU/GPU, а в нехватке памяти. Именно о памяти нужно думать в мобильной разработке в первую очередь. В Windows Phone 7 ограничение было в 100мб, в Window Phone 8 стало получше, но не сильно:

Тип лимита Тип приложения Телефоны с маленьким количеством памяти 1- Гб телефоны 2-Гб телефоны
Default XNA или native 150 MB 150 MB 150 MB
Default XAML/.NET excluding XNA 150 MB 300 MB 300 MB
Higher All app types 180 MB 380 MB 570 MB

И если Вы разрабатываете игру, в которой довольно большое количество спрайтов (уложенных, конечно же, в атласы) — то вы рано или поздно задумаетесь о количестве этих самых атласов и сжатии текстур.
Стандартный атлас, с которым работают все более или менее уважающие себя устройства — это 2048х2048 пикселей. Что в несжатом виде (32 bits per pixel) будет занимать аж 2*2*4 = 16 Мб памяти. Тогда на выручку приходят форматы сжатия текстур, в нашем случае это DXT сжатие.
Сжатые текстуры не только требуют значительно меньше памяти видеокарты, но и вообще отображаются быстрее, чем несжатые текстуры, за счет снижения требований к пропускной способности. Но некоторые качества изображения могут быть потеряны из-за сжатия. Тем не менее, снижение объема памяти позволяет увеличить разрешение текстур, которые будут использоваться, что действительно может дать существенный выигрыш в качестве.
Читать полностью »

При разработке нам понадобился простой конечный автомат, желательно уже реализованный. Из списка реализаций, который предложил гугл, выбрали этот, за простоту и компактность. Используем у себя, в целом FSM неплох. Далее под катом перевод оригинальной статьи автора из Греции Tasos Giannakopoulos. Я не переводчик, поэтому я старался передать смысл, иногда объясняя суть своими словами, за что извиняюсь перед перфекционистами.

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

Spy vs Spy на canvas и node.js

Однажды решили мы с братом (brdsoft) создать браузерную игру. Опыта создания игр мы не имели, поэтому игра должна была получиться простой. Немного посовещавшись мы решили сделать копию NES игры Spy vs Spy с мультиплеером.

Данная статья будет состоять из двух частей:
1. Общие сведения и реализация сервера
2. Реализация клиента
Читать полностью »

image

Несколько дней назад Valve объявила о рассылке 300 прототипов Steam Machines, и вот сегодня первые из тех счастливчиков, кому достались приглашения на бета-тест, начали получать свои посылки — и естественно, в Сети появляется все больше фото и видео прототипов. Думаю, многим на Хабре будет интересно посмотреть на то, как выглядит долгожданная «коробка» от Valve — стоит отметить, что компания довольно оригинально подошла к ее оформлению.

Осторожно, под катом много фото и немного видео.
Читать полностью »

Как скомпилировать билд Unity3D проекта для IOS на Windows?
Билд для IOS всегда стоял особняком в Unity3D. Если все остальные можно было компилировать на Windows машинах, то для IOS обязательно нужен был Мак. Я как и все столкнулся с этой проблемой при попытке выпустить свой первый проект на IOS, которая казалась мне трудно преодолимой. Однако, совсем недавно произошло два события которые делают эту проблему практически неактуальной, и которые прошли на Хабре незамеченными.
Читать полностью »

Всем привет!
Незаметно прошел первый год второй пятилетки.

Этот год был лучше предыдущего — кроме игр на флэше выпустил также игры на мобильных платформах. Однако, ни разу не написал в блог и уменьшил свой сайт с флэш играми. В этом году его взломали раза 3 — движок, на котором он был сделал — был не движком, а сплошной дырой.

С блогом тоже не очень хорошо получилось по некоторым техническим причинам. Раньше я использовал b2evo, чтобы и по-русски и по-английски писать, но из-за того, что старая версия не поддерживает php5, функции записи в блог через админку, попросту, отсутствуют. Новая версия b2evo вообще не ставится поверх старой. Какие-то не лады у меня с вебом, поэтому решил сделать проще — 2 wordpress на разные субдомены.

Игр стало больше — и флэш и мобильных. Кстати, в этом месяце в мои мобильные игры играют больше, чем во флэш. Но тем не менее флэшки все еще мой основной источник дохода.

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

В прошлом году я жаловался на сборку версий для мобильных платформ — в этом году все решено наилучшим образом — сборка версии занимает 2 минуты. Очень помогло — когда искал баг платформы, видимый только на устройстве после некоторого время прохождения игры. После 23 залитых апдейтов на устройство — проблема была решена, и это заняло часов 6.

Из технических достижений: в одну из игр встроил перки из игры Warlock. Ушло 8 часов кодинга и 16 часов на перерисовку всех иконок. Примерный объем работ здесь. Причем лист перков хранится в тхт файлике, полностью содержащим текст wiki страницы, подправленным на мой геймплей.

Еще в прошлом году мы прибили несколько человеко/месяцев на красивую игрушку про дракончика в сетинге Алхимии — но увы и ах. Так и лежит замороженная тонна арта.

Все конференции в этом году я «прогулял» — не было ни материалов туда ехать, ни времени. Все игры выпустил или сам или через FGL.

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

Ну а теперь — циферки:
Всего за 6 лет удалось заработать — $315,183. За первый год — $40,468, за второй — $28,329, за третий — $76,734, за четвертый — $85,370, за пятый — $33,395, за шестой — $50,918. Если общее поделить на количество месяцев, то в среднем получается $4200 в месяц. Или по $4400 в месяц, если брать в расчет только последний год.

Общая статистика за 6 лет работы независимым разработчиком
Читать полностью »

Чекины? Не, не слышал. Ведь гораздо интереснее не просто чекиниться, а захватывать, развивать или продавать реальные здания и заведения! Я уже рассказывал про гео-социальные игры на КРИ 2013, а также делал обзор на Хабре в августе. Но там речь шла в основном про великий и ужасный Ingress и другие западные проекты, хотя и отечественные разработчики уже ступали на тропу войны за реальный мир. Я собрал серию интервью со всеми существующими, уже закрывшимися и еще только разрабатывающимися у нас гео-социальными играми. Часть 1: BigShot, Geopoly и DigitWar.
Читать полностью »

Легко понять популярность языка C++ среди профессиональных разработчиков игр. Этот язык недалеко ушел от переносимости и эффективности языка C, но при этом предлагает определённые конструктивные преимущества объектно-ориентированного языка. Хоть язык и обладает такой мощью, для эффективной работы потребуется правильный подход и хорошая реализация кода. Несмотря на парадигму объектно-ориентированного программирования (ООП), программы, написанные на С++, могут работать несколько хуже, чем написанные на языке С.

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

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

Качественная локализация мобильного приложения. 5 простых советов и 12 ссылок
Хочешь вовлечь пользователя? Общайся с ним на его языке!

Хотя вопросы «состыковки» текста с кодом, несомненно, важны, один момент – очень деликатный! – часто остается без внимания, и это – качество перевода. Почему? Для этого есть объективные причины.

Во-первых, локализация мобильных приложений имеет свои особенности. Большие хардкорные проекты издатель обычно переводит, например, с английского/корейского на русский. У «телефонных игр» другая судьба. Им необходимо привлечь внимание как можно большего количества пользователей по всему миру, поэтому с базового русского или английского их, наоборот, выгодно локализовывать на максимальное количество языков.

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

Вторая причина – приоритет кода перед текстом. Логично, что юзабилити, монетизация и графика ставятся во главу угла. В конце концов, пользователь приходит в игру не для того, чтобы читать! Да на буквы эти и внимания никто не обратит! (Возьмите конфетку, если вы разработчик, и такие мысли никогда не приходили вам в голову – значит, вы на самом деле исключение из правил).

В эту ловушку попадаются многие – задачи по подготовке локализации и ее тестированию часто откладываются на самый последний момент.

В результате нередки случаи, когда пользователи очень даже замечают текст, потому что он полон ошибок, неточностей и ляпов. Встречают по одежке, провожают по уму. Локализация и графика – это та самая одежка. Пользователь может просто не оценить великолепные игровые механики, если при входе в приложение увидит жизнерадостное «Здраствуй, гозть!».

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

Как же добиться того, чтобы локализация не просто налезла на приложение, но и сидела на нем, как влитая?
Читать полностью »


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