понедельник, 22 января 2018 г.

Какие персонажи должны быть в игре

(на примере платформера)

  1. Герой: персонаж, который "играет игру", с которым происходят все игровые события;
  2. Наставник: дает герою советы по миру игры и полезные вещи;
  3. Помощник: дает случайные подсказки;
  4. Инструктор: объясняет игроку, как играть в игру;
  5. Финальный босс: кто-то (главный злодей), с кем предстоит последняя решающая схватка;
  6. Приспешники (подчиненные босса): многочисленные плохие парни разных типов и уровня сложности;
  7. Три босса (как минимум): более "жесткие" парни (по сравнению с предыдущим пунктом), с которыми предстоят стычки в течение всей игры;
  8. Заложник: какой-то персонаж, которого ценою прохождения всей игры предстоит спасти (как вариант: принцесса из Super Mario Brothers);

воскресенье, 7 января 2018 г.

Каким должен быть дизайн-документ

Ниже по пунктам приведена информация о том, что должен содержать любой сюжет, в том числе, дизайн-документ для игры.
  1. Обычный мир - сцены, изображающие нашего героя в повседневной жизни;
  2. Вызов приключениям - перед героем встает проблема, которая ломает уклад привычной жизни;
  3. Отказ от вызова - герой находит причину отказаться от предстоящего приключения;
  4. Встреча с наставником - мудрец дает наставление, совет, оказывает помощь, обучает героя;
  5. Покидание зоны комфорта - герой покидает родной дом (город, страну, галактику (возможно, под чьим-либо давлением) и оказывается на пути к приключениям;
  6. Испытания, союзники, враги - герой встречается с несущественными трудностями, обретает друзей, сталкивается с врагами, изучает устройство нового мира;
  7. Укрытие в подполье - герой сталкивается с чередой неудач и вынужден пробовать что-то новое, получить новые знания;
  8. Суровое испытание - герой встречается с решающим испытанием, испытывает переломный момент в своей жизни;
  9. Награда - герой выживает, преодолевая свой страх, и получает награду;
  10. Дорога домой - герой возвращается в свой прежний мир, однако не все проблемы решены;
  11. Воскрешение - герой сталкивается с еще более могущественными врагами, для победы над которыми используется все знания и навыки, полученные раньше;
  12. Возвращение с лекарством от всех болезней - путешествие подошло к концу, и успех героя улучшает жизнь каждого в его повседневной жизни: дома, в городе, стране, планете, галактике;

пятница, 5 января 2018 г.

Критическая уязвимость

3-го января широкой общественности стало известно об архитектурной ошибке, присутствующей во всех процессорах, выпущенных за последние 10 лет. Она имеет место в продуктах всех вендоров: Intel, AMD, ARM. Все эти процессоры подвержены атаке, в результате которой хакер может получить доступ к данным нулевого ядерного уровня, где хранятся критические сведения пользователя (пароли, учетные записи, etc.) и операционной системы (данные реестра, защита областей памяти, межпроцессорное взаимодействие, etc.). Это неслабо всколыхнуло интернеты.

Между тем Крис Касперски, земля ему пухом, писал об этом еще в 2008-м году, то есть он знал об этом еще 10 лет назад, выступал с докладами на эту тему на хакерских конференциях по всему миру, рассказывал об уязвимости, одновременно демонстрируя взлом системы из браузера с помощью JavaScript.


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

XBox 360 и другие консоли

Юрий “yurembo“ Язев
инди игродел

Почему среди всех современных игровых консолей: XBox, PlayStation, Switch я отдаю предпочтение первой? Ответ заключается в простоте процедуры сертификации для разработки под консоль. Оставим потуги с оригинальной (самой первой) Xbox. С другой стороны, XBox 360 - первая в истории консоль, на которой можно было выполнять сторонний код. В свое время для меня это было очень круто: возможность запускать свои игры на приставке. Для этого Microsoft выпустила мультимедийную библиотеку XNA, которая подобно DirectX позволяла создавать быстро работающие интерактивные приложения. XNA - это развитие управляемого DirectX для управляемых в общей среде выполнения CLR языков, типа C# и VB.NET. А я в свое время еще успел поиспользовать управляемый (managed) DirectX с C#. Следует учесть, что консоль вышла в свет в конце бородатого 2005-го года. И тогда еще не было такого широкого выбора движков, то есть выбора совсем не было. На XNA можно было разрабатывать игры, как для настольной Windows, так и для консоли XBox 360, один и тот же исполняемый код одинаково работал в обоих случаях. Это было достижением. Тем временем, в качестве операционной системы на XBox 360 использовалась модифицированная ОС для оригинальной Xbox, которая в свою очередь основана на Windows 2000. В итоге получилась так, что Windows PC и Windows XBox 360 - разные операционные системы. Модифицировать операционную систему пришлось по той причине, что в консоли используется процессор PowerPC, он, как известно, реализован на процессорной архитектуре RISC, в отличие от процессоров от Intel и AMD для настольных компьютерах, работающих под Windows, реализованных на архитектуре CISC.


Использование XNA для разработки игр под XBox 360 не единственный вариант создания игр для консоли. Чуть позже GarageGames выпустила заточенный для разработки игр под платформу Xbox 360 движок Torque X - ответвление от основного продукта компании Torque 3D. Torque X использовал XNA. Много позже в Unity тоже появилась такая возможность. Присутствует поддержка и в Unreal Engine 4.

В настоящее время XNA мертв. Microsoft сама убила свой продукт. По идее, сейчас он уже, по-сути, не нужен: XBox 360 - консоль прошлого поколения. XNA так же использовался для создания мультимедийных приложений для Windows Phone 7.0/7.5, но и это давно устаревшая мобильная операционка.

Ныне существует OpenSource-либа MonoGame, созданная по образу и подобию XNA, взявшая все самое лучшее, что было в последней - 4-й версии XNA (например, менеджер ресурсов) и добавившая к ней новые возможности, главным из которых можно назвать кросс-платформенность. XNA работала на продуктах от Microsoft: настолках, консолях и смартфонах, MonoGame добавила поддержку: Linux, MacOS, iOS, Android, PS4, Switch и другого цифрового барахла. Контрибьютер, сделавший наибольший вклад в развитие библиотеки, и использующий ее во множестве своих мультиплатформенных проектах, компания Sickhead. Она же разработчик Torsion - IDE для проектов на Torque. Sickhead в лице Тома Спиллмана в прошлом активный участник сообщества разработчиков на движках семейства Torque. Все это немного увело нас в сторону от главной темы.


Следующая версия - XBox One еще более упростила процессы сертификации,  разработки и публикации игр. В консоли установлен вполне стандартный 8-ядерный x86-64 процессор от AMD, что позволило запустить на приставке такую же версию Windows 10, как на десктопе. Существует специальный вариант Xbox One для разработчиков Xbox One DevKit, который позволяет выполнять и отлаживать пользовательский код. Тогда, как по-умолчанию обычная коммерческая приставка не разрешает это. Однако Xbox One, ровно, как Xbox 360 позволяет перейти в режим разработчика без покупки дополнительных устройств и выплаты лицензионных отчислений.

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

Разработка современных игр в абсолютном большинстве осуществляется с помощью движков, которых развелось великое множество. Не исключением стали игры для Xbox One, многие из движков позволяют создавать игры для этой консоли: Unity, Unreal Engine, Xenko. Еще можно очень сильно извернуться и написать свой движок на DirectX 12… о, времена, о, нравы…

Условия для разработки игр под PlayStation 4 и любые другие консоли от Sony:
  • Регистрация компании-разработчика;
  • Вы должны обладать статическим IP-адресом;
  • Физически вы должны находиться на территориях США, Канады, Мексики, Центральной и Южной Америки;

Так то все это совсем не проблема, но это сложнее, чем для Xbox One.

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

воскресенье, 31 декабря 2017 г.

Итоги года в игровой индустрии от yurembo

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

1) Для меня неожиданно стал популярным «новый» игровой жанр Battle Royal и, в частности, игра PlayerUnknown’s BattleGrounds (PUBG). «Новый» в кавычках потому, что на мой взгляд жанр совсем не новый, чем не Deathmatch в Quake 3 Arena в 1999-м году. В PUBG сам я не играл, но довольно много следил за игрой летсплееров. Тут же Epic подсуетилась и выпустила Fortnite, игру по такой же механике. В последнюю я уже поиграл, так как она Free-to-Play. Ничего нового я не почувствовал. Однако успех PUBG радует. Чувствую, мне ее необходимо купить, чтобы испытать полную картину ощущений. На днях в РФ ее издала mail.ru, так же можно купить в Steam и играть на забугорных серверах.

2) VR/AR опять не выстрелила. После прошлогоднего фейла я, по честности, не ждал от нее успеха в этом году. Но все-таки. В прошлом году я много писал об AR/VR в «Хакере», делая анализ и разрабатывая для платформ виртуальной/дополненной реальности приложения.

3) Внезапно Nintendo Switch стала хорошо продаваться, почти не имея эксклюзивов. Nintendo, как и Apple, знает секрет успешных продаж всякого барахла.

4) Мода на специфические контроллеры (нунчаки Wii U, Kinect для Xbox) постепенно спала, став неожиданностью, ровно, как при своем резком появлении. Единственное, что осталось востребованным, это Leap Motion, так как он используется совместно со шлемами виртуальной реальности. По всей видимости, эту моду сменила новая популярность портативных консолей (Switch). 

5) yurembo выпустил второе издание своего учебника для настоящих мужчин по разработке компьютерных и мобильных игр

6) Новая волна хороших инди-игр для PC. Из последних релизов взять хотя бы Hello Neighbor, изданная TinyBuild 8-го декабря в Steam.

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

среда, 15 ноября 2017 г.

Scorpions 2017

Юрий “yurembo” Язев
независимый игродел

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


Тем не менее я приехал туда не для поиска уныния и грусти и даже не для того, чтобы разобраться в целесообразности жизни. Целью моей поездки являлось посещения концерта Scorpions. Уже седьмой год они ездят по миру с прощальными концертами, но все никак не могут попрощаться. Текущий тур посвящен 25-летию альбома Crazy World, вышедший в 1990-м году.


Когда я вышел из ж/д вокзала, в двухста метрах перед собой я увидел огромное здание “Маринс Парк Отель”, где мне предстояло остановиться. Я пересек привокзальную площадь и по подземному переходу вышел к гостинице. Довольно быстро без очереди прошел регистрацию и поднялся на 9-й этаж в свой номер. Он оказался довольно маленьким: стол, телевизор, тумбочка, одноместная узкая кровать, холодильник, который ночью издавал такие звуки, что заставляло вскакивать с постели.


До концерта еще оставалось порядочно времени. Поэтому, оставив вещи в номере, я пошел на осмотр близлежащей территории. Вдобавок я обнаружил, что не взял зарядку для телефонов. Ее мне тоже надо было купить. Выйдя на улицу, я сразу же наткнулся на салон МТС, где, собственно, и купил зарядку. Затем я пошел прочь от ж/д вокзала по широкой улице Якова Свердлова. По обеим сторонам улицы на первых этажах зданий находятся разные магазинчики, банки и другие заведения. Мне особенно бросилось в глаза преобладающее количество магазинов с меховыми изделиями. На улице было прохладно, серо, солнце лишь иногда, пробиваясь через затянутое тучами небо, бросало на землю свои лучи. Среди зданий ветер не чувствовался.


Следуя по улице Свердлова, я дошел до концертного театра “Космос” (в Екатеринбурге есть свой Космос), затем я свернул к Олимпийской набережной реки Исеть. Некоторое расстояние я прошел вдоль набережной. 
 



Далее я свернул на Первомайскую улицу, и, дойдя по ней до ул. Карла Либкнехта (еще один революционер), решил возвращаться в гостиницу, так как подул сильный, пронизывающий ветер, стало холодно. Спускаясь вниз по улице, с правой стороны находится Вознесенская церковь, перед которой раскинулась Вознесенская площадь. На ней представлены фотографии последнего российского императора Николая II и его семьи. Теперь они отнесены к лику святых за то, что были расстреляны большевиками. Какое недоразумение, какое несоответствие! С одной стороны, улицы названные в честь “красных” революционеров, с другой стороны на этих же улицах - церковь скорби “белого” царя. Вы определитесь, в конце концов!


Улица Карла Либкнехта перетекла в улицу Якова Свердлова, по которой, зайдя предварительно в магазин для покупки чего-нибудь перекусить, я вернулся в гостиницу.


До начала концерта оставалось еще 2 часа, я решил, что пора выдвигаться в сторону КРК “Уралец”, где в 19 часов предполагалось начало концерта. Примерно в двухста метрах от гостинцы находится станция метро “Уральская”. Проехав оттуда 2 станции, я вышел на станции “Геологическая”. Ее убранство выполнено в естественно зеленом цвете сапфира, приятном глазу.


Я много раз был в Екатеринбурге, но до сих пор мне так и не удалось проехаться в екатеринбургском метро, уже состоящем из трех веток. Тем самым, я уже ездил в 4-х российских метрополитенах: в московском, в волгоградском, в новосибирском и, вот, в екатеринбургском.

В Екатеринбурге поезда метро ходят сравнительно реже, чем в Москве. Если там каждую минуту, то в Ебурге раз в 12 минут. Кроме того, для пропуска в метро используются жетоны, а в Москве - исключительно карточки. В Новосибирске используются жетоны на ряду с карточками. Что используется в Волгограде, я уже не помню. Вроде, так как там много наземных линий со станциями на поверхности, в каждом вагоне присутствует кондуктор. Но это не точно.


Выйдя на поверхность, я прошел два квартала прямиком по улице 8-го марта и уперся в перекресток с улицей Большакова. Мимо меня проходили студенты, на улице 8-го марта находятся Уральский институт управления и общежитие Горного университета. Далее я стал двигаться по улице Большакова. Пройдя еще 2 квартала, я прибыл на место назначения, к большому культурно-развлекательному комплексу “Уралец”, принимающий домашние матчи екатеринбургского хоккейного клуба “Автомобилист”. Возле него столпилось уже довольно много народа. До концерта еще полтора часа.
 
 
В отделе продажи рок-сувениров я приобрел футболку с датами текущего тура.
 

 
К слову, я уже был на концерте в КРК “Уралец”. Это произошло в марте 2013-го года, на выступлении группы Manowar.


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


В зал пребывал народ, постепенно был занят не только танцпол, но и все сидячие места. Чтобы зрители не скучали, играла музыка, Led Zeppelin, Kiss, etc. Концерт начался с опозданием в 35 минут. Так всегда, нечему удивляться. Погас свет. Публика подняла вой. Кулисы открылись. На огромном экране отобразилось название: “Scorpions”.
 
Поднялось множество рук с фото-камерами и смартфонами.


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

На сцену вышли участники группы, и шоу началось с песни “Going Out With a Bang” с последнего альбома “Return to Forever”, выпущенном в 2015-м году.



Мелодии и песни плавно сменяли друг друга. Вот весь трек-лист концерта:
1. Going Out With a Bang
2. Make It Real
3. The Zoo
4. Coast to Coast
5. Top of the Bill / Steamrock Fever / Speedy's Coming / Catch Your Train
6. We Built This House
7. Delicate Dance (Matthias Jabs solo)
8. Always Somewhere / Eye of the Storm / Send Me an Angel (Acoustic medley)
9. Wind of Change
10. Rock 'n' Roll Band
11. Overkill (Motörhead cover)
12. Drum Solo (by Mikkey Dee)
13. Blackout
14. Big City Nights
15. Still Loving You
16. Rock You Like a Hurricane
 



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


 
Неожиданный для меня факт: Микки Ди, на протяжении более 23-х лет (с 1992 по 2015) являющийся ударником Motorhead, примкнул к Scorpions, заменив там Джеймса Коттака, который был вынужден на неопределенный срок взять отпуск по состоянию здоровья. Но тем временем он уже готовит альбом со своей группой, где поет и играет на гитаре. Микки прекрасно справляется с новой ролью, по его словам, в Motorhead он молотил по барабанам, как умалишенный, а в Scorpions ему приходится сдерживать свой пыл, что является для него интересным опытом.
 

Микки Ди

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






 
Первая часть концерта прошла в возбужденной обстановке. Затем Клаус запел особенно любимую в народе Wind of Change. Люди вокруг – публика всего зала стала подпевать. После нее последовала динамичная Rock’n’Roll Band – кавер на песню группы ABBA. После этого на экране позади сцены стали отображаться фотографии Лемми Киллмистера. 
 

 
Скорпы в память о Лемми исполнили зубодробительный хит Overkill с одноименного альбома. Очень непривычно было слышать эту песню из уст Клауса. Его голос не подходит для исполнения песен Motorhead. Однако дань памяти. Затем Микки отыграл ударное соло. На этой волне возбуждения последовали крышесносные хиты Scorpions: Blackout и Big City Nights.
 





 
После этого группа покинула сцену. В США на этом концерт бы закончился. Но в Европе, включая Россию, это был только перерыв. Вернувшись после него, Клаус сказал, что сегодняшним концертом в Екатеринбурге завершается тур по России, и специально для сегодняшней публики: Still I’m Loving You. Если бы концерт был завершен это балладой, было бы не по рокинрольному. Поэтому в нагрузку была добавлена динамичная Rock You Like a Hurricane.
 



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




На концерте так же был Сашка Язев со своей подругой. Тем не менее, ни во время концерта, ни после мне не удалось с ним поговорить. Обсудить после концерта произошедшее событие самое классное дело. Но Сашка, как предатель, смылся, не дождавшись меня. Поэтому поговорить о концерте, поделиться эмоциями мне было не с кем. 
 



На следующий день перед отправлением поезда я прогулялся возле железнодорожного музея. Перед ним расположены экспонаты по тематике железной дороги.