суббота, 17 декабря 2016 г.

Почему стоит разрабатывать мобильные игры?


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

Если у вас до фига денег и есть сплоченная команда профессионалов геймдева, флаг вам в руки, разрабатывайте крутую MMORPG или синглплеерный AAA-проект. Но у инди-команд обычно все наоборот. Средств нет даже на зарплату, не то, что на трафик, рекламу, оплату серверов и прочего. Участники команды не обладают необходимым опытом, не надо брызгать слюней, иначе бы, зачем они стали ввязываться в ад инди-разработки. Романтика и все такое, как я вас понимаю.

пятница, 16 декабря 2016 г.

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

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

Антиутопия в трех романах 

Юрий Язев 


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

Центральное место в этом литературном жанре занимают 3 столпа – романа:
1)      «Мы» Евгения Замятина;
2)      «О, дивный новый мир!» Олдоса Хаксли;
3)      «1984» Джорджа Оурэлла;

Именно такой порядок их появления, но я читал в обратном. Начав читать «1984», я сначала не собирался читать остальные, но закончив с ним, меня уже было не остановить. Роман «Мы» был написан в 1920-м году, но издан в СССР много позже смерти автора – в 1988-м. Так как литературные критики узрели в романе злую карикатуру на социалистическое общество.
«О, дивный новый мир!» написан в 1932-м. В нем ощущается влияние романа «Мы», ибо на английском языке тот был опубликован в 1927-м году.
Последний в списке роман написан в 1948-м и так же он испытал влияние «Мы».

Охота рассказать краткое содержание, охота поставить оценки, но это будет бесчеловечно к тем, кто собирается прочесть эти романы. Но все же ради чего-то я начал писать эту заметку.
Сразу отмечу: меньше всего мне запомнился роман «О, дивный новый мир!». Я не нашел в нем индивидуума, за которого я бы переживал. Не спорю: он есть, даже более есть группа людей в резервации, откуда вышел индивид, но переживать за него совсем не хотелось. Мир вполне утопический и никому от этого не плохо. Разве что есть человек, выращенный, как и все из пробирки, но обладающий нестандартными пропорциями вроде маленького роста и потому чувствующий себя не в своей тарелке. Но с приходом к нему популярности он становится счастливым человеком. Проблема №1 элегантно решена. А индивид из резервации не заставляет за него сопереживать. Проблемы мира исчерпаны. Точка. Ах, да, свободные сексуальные связи, таблетки от беременности, дети из пробирок, строгое классовое разделение: альфы, беты, т.д. и другие радости управляемого общества. Все описано очень интересно.

Роман «Мы» написан в виде дневника главного героя. К слову, за него сразу хочется сопереживать. Иногда кажется: Евгений злоупотреблял алкоголем, особенно в спешке дописывая книгу. Мир прекрасен. Работает, как часы. Все предсказано, все своим чередом. Человечество живет в строгом распорядке, никому в голову не приходит, что может быть иначе. Утром подъем, завтрак, дорога на место работы. Так у каждого нумера. Людей нет, есть нумера. Нет индивидуумов, есть «мы». Все материалы в этом мире заменило стекло, дома прозрачные, ничего не скрыто. Дважды в сутки у нумеров есть свободное время – час. Секс по талонам, любой может записаться на любого. Мир нумеров огражден стеной от чуждого животного мира.
Главный герой – математик, строитель Интеграла – космического корабля. Его, как и всех устраивает этот мир. Но в его жизни появляется женщина. В соответствии с новым видением он изменяет свои планы. А плюс ко всему эта женщина является революционером. Сообща с другими людьми по ту сторону стены, она затевает план разрушить стену.

Больше всего мне понравился роман «1984». Он еще больше подвергся влиянию «Мы», чем «О, дивный новый мир!». С самого начала главному персонажу чужд мир, в котором он живет. Этот мир не так прекрасен, как предыдущие два. Где-то идет война. На город, в котором развиваются события, время от времени падают бомбы. Этот мир жесток. За любую оплошность – казнь. Всеобщая любовь к Большому брату, который, как бог неприкосновенен. Серые тона, серый мир. Нет ощущений, нет чувств, все запрещено. Из языка удаляются слова, чтобы люди не могли даже подумать о преступлении. Нет вкусной пищи, заменено кубиками и киселем. В этом мире в отличие от предыдущих вообще нет секса.
Главный герой – простой клерк, обычный работник среднего класса. Есть низший класс, которому принадлежит большинство и внутренняя партия – элита. Главный герой пытается найти партизан, подпольную организацию, которая занимается подготовкой к восстанию. Знакомится с женщиной, склоняет ее на свою сторону. Ох, как описан их роман.
В поисках восстания он выходит не на того человека, рассказывает ему обо всех планах, тем самым попадая в западню. И вот треть книги описываются разнообразные пытки с помощью весьма изощренного оборудования. Наконец, главному герою вправляют мозги, и он отказывается от идей революции и от идеи любви к своей женщине.

По завершению романа видно, что Джордж Оурэлл потерял веру в успех революции. Это так же прослеживается в его предыдущем рассказе «Скотный двор»: свиньи, как люди – люди, как свиньи.

суббота, 19 ноября 2016 г.

Спасибо всем, кто купил мою книгу 
«Волшебство момента вращения»!
Тираж распродан.
А я работаю над вторым изданием, которое скоро выйдет 
в продажу.


воскресенье, 13 ноября 2016 г.

Москва, Щёлково, Медвежьи озера 

Девушка из Медвежьих озер 


Юрий Язев 


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

В первой половине ноября я ездил в Москву не ради какого-то мероприятия или концерта, а для того, чтобы встретиться с Ирой Ч., но она об этом еще не знала. Уже месяц не подавала никаких признаков жизни, не общалась со мной ни по каким средствам связи. Это меня не по-детски пугало: что с ней, как у нее дела? Да, я видел ее активность ВКонтакте, время от времени новые статьи на айфонсе, но мне этого было не достаточно.

Немного подлечив в октябре свои головные боли, в ноябре я поехал в Мск.

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

Так как Ирина не отвечала мне на звонки с Пермских номеров, в Мск я купил новую симку с соответствующим номером – кодом оператора 916. В тот вечер позвонил ей. Она ответила своим веселым, всегда на удивление оптимистичным голосом, очевидно не подозревая, кто на другом конце линии. Я спросил: жива ли она. Не закончив разговор, Ира бросила трубку. Следующие попытки развязать разговор не увенчались успехом.

Так я простоял около автобусной остановки какое-то время. Вконец замерзнув, я стал возвращаться в гостиницу.

На следующее утро заметно похолодало. Я собирался ехать в город Щёлково, находящийся в Московской области с заездом в Медвежьи озера. Когда я туда приехал, был полдень. Я обошел деревню, посмотрел на застывшие озера. Уровень замерзшей воды равнялся высоте причала. Неподалеку от берега ледовой рыбалкой занимался мужик.










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

Пришел на остановку, стал ждать автобус. Хотя в остановочной будке было расклеено расписание автобусов, с вопросом о Щелково я обратился к симпатичной девушке. Она вежливо рассказала мне, как добраться до пункта моего назначения.

Через некоторое время я бесцельно прибыл в Щелково. По советам пассажиров: «ближе к центру», я вышел на остановке «Рынок», находящейся на улице Талсинская. Прошелся по ней. После Москвы Щелково показался миниатюрным аккуратным городом все с теми же строгими зданиями, которыми заполнены города нашей Родины.






Свернул на Пролетарский проспект, откуда вышел на набережную реки Клязьма. Рядом с ней находится гигантское гостиничное здание «Аструм», правда, недостроенное. Вдоль берега на тротуаре находятся металлические скульптуры: Солнечные часы, Человек-часы.









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


Было бы опрометчиво не посетить Щелковский историко-краеведческий музей.


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


















Во втором зале музея во время моего визита проходила выставка картин московской художницы.












В ее коллекции имеются работы, созданные во время пребывания в Черногории. Близкая для меня тема. Рисунки передают атмосферу Балканского полуострова, узнаются улицы, города. И даже не от четкости передачи, а от того, что они похожи от города к городу, от местности к местности. В памяти всплывают увиденные когда-то элементы архитектуры, преломление света, падение тени, пустота улиц днем, их оживление вечером.


В Щёлково я познакомился с фотографом Александром Л., ищущим яркие моменты для своей фотоколлекции. Разговорившись, оказалось, что у нас много общих интересов, начиная от литературных предпочтений, музыки, отношения к творчеству и заканчивая мировоззрением и отношением к жизни. Вот так, едешь из Чусового в Московскую область и совершенно случайно встречаешь человека на одной волне. Когда в своем городе даже не с кем поговорить.

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


Ночью по расписанию я вылетел в Пермь. По стечению обстоятельств у меня было место в 32-м – последнем ряду у прохода. Как только самолет взлетел, без преувеличения, пассажиры всего самолета устремились в туалет. Мимо постоянно проходили люди, не давая начать разговор с девушкой, сидящей от меня на расстоянии вытянутой руки, и которую от меня отделял проход. Началось снижение, туалетная комната была закрыта. Беспрерывный поток людей прекратился. Сидящая напротив девушка умиротворенно играла в 4-х Героев. 4-е Герои, Карл! Heroes of Might and Magic IV – классика жанра, выпущенная в 2002-году, еще до того, как до серии добрался Nival.
– Хардкорный геймер, даже в самолете играешь в Героев, - начал я разговор.
– Просто, ноут без 3D-ускорителя, поэтому приходится коротать время со старыми играми, - с улыбкой ответила девушка.

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

Я вышел на улицу. На термометре было около -20, ощутимая разница с Москвой, где пару часов назад было около 0.

суббота, 29 октября 2016 г.

История развития игровых движков

О разработке игр и становлении игровой индустрии

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

logo.jpg

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

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

Начало

Ситуация начала меняться в 1993-м году после выхода игры Doom от компании id Software. В то время видеопроцессоры были не способны работать с трехмерной графикой, поэтому Джон Кармак (ведущий программист движка, кто не в курсе и с отдаленной планеты) выполнял все необходимые математические вычисления, служащие для манипуляции с трехмерными объектами, светом, затенением, наложением текстур и прочего самостоятельно. В результате, изображение выглядело трехмерным, на самом деле таковым не являясь. Поэтому Doom engine (первая версия id Tech) был не истинно трехмерным, а псевдотрехмерным. Но важно то, что техническая составляющая этой игры задала стандарт для того, что могло называться игровым движком. А именно, движок Doom был модульным, представлял из себя набор подсистем, в нем каждый четко отделенный программный слой отвечал за обработку своей порции данных. Поэтому появление игровых движков относят к середине 90-х годов 20-го века, то есть тогда окончательно сформировалось определение игрового движка.

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

Цели

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

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

Развитие игровых движков происходит вместе или под влиянием развития аппаратных и программных платформ, вместе с появлением новых игровых жанров и изменениями вкусов пользователей. Коротко говоря, развитием игровой индустрии в целом.

Генезис графических систем

В середине 90-х после появления видеопроцессоров, способных обрабатывать трехмерную графику стали появляться программные интерфейсы, упрощающие ее разработку. Вслед за кроссплатформенным OpenGL на сцену в составе DirectX вышел Direct3D для Windows. Эти 2 визуализатора на много лет вперед определили способы графического вывода в играх.

В 1996-м году вышла игра Quake на Quake Engine. Этот движок оказал колоссальное влияние на игровую индустрию.

дерево движков, основанных на Quake Engine

Почти до конца десятилетия на рынке промежуточного программного обеспечения для игр (другими словами, игровых движков) практически единолично ритм задавала id Software. Однако в 1998-м году компания Epic Games выпустила успешную игру Unreal на одноименном движке. Ведущим программистом движка стал основатель Epic Тим Суини. Тим наравне с Кармаком является наиболее значимой фигурой в игровой индустрии. Год спустя от Epic вышла ставшая еще более популярной игра Unreal Tournament.

UT.jpg

В это же самое время конкурирующая компания-разработчик – id Software выпустила мультиплеерную игру Quake 3 Arena (на движке id Tech 3), ровно как Unreal Tournament включающую сетевые баталии.

Quake3.jpg

Эти две игры стали флагманами индустрии, определив ее развитие на годы вперед.

На рынке было не много игроков. Поэтому их продукция была очень дорога, и движки лицензировались единицами.
Ситуация начала коренным образом меняться примерно в середине первого десятилетия 21-го века. Тогда на рынке и в свободном доступе стало появляться большое количество средств для разработки игр. Бизнес промежуточного ПО (middleware) стал набирать обороты. Сначала рынок заполнился графическими фреймворками: Ogre, DarkGDK и др., предоставляющие программисту высокоуровневую прослойку над графическим API. В то же время отличающиеся от игровых движков полным отсутствием внутриигровых редакторов.
Затем на рынок пришли полноценные игровые движки по ценам, уместным для небольшой инди-команды разработчиков, среди них: Torque 3D, Unity 3D, Cryengine, etc.

T3d.jpg
Torque 3D

Следующим трендом игровой индустрии стали казуальные игры.  Эти, по своей сути, незамысловатые, но красочные, не требующие бешеного взаимодействия с клавиатурой и мышкой головоломки с технической точки зрения были проще трехмерных хардкорных шутеров, поэтому для их разработки не понадобилось сильной модификации универсальных движков. Но, зато, в индустрии появились новые игроки, такие как: Torque Game Builder, HGE и другие.

tgb-editor.jpg
Torque Game Builder

В это же время, благодаря World of Warcraft, в игровой индустрии стали очень популярны MMORPG. Многие универсальные движки не смогли предоставить пользователям новую функциональность, поэтому ушли в небытие. Другие движки были адаптированы для мультиплеерного мира путем разработки для них серверных решений, так для Unity 3D были разработаны Photon и SmartFox. Третий тип универсальных движков, изначально являясь клиент-серверным, не почувствовал изменений. К нему относится Torque 3D. Также на рынке появились новые движки, предназначенные для глобальных многопользовательских игр: HeroEngine, BigWorld.

HeroEngine.jpg
HeroEngine

Далее появились социальные сети, от чего у пользователей проснулся интерес к web-играм, которые стали называться социальными. Разработчики универсальных движков: Torque 2D/3D, Unity 3D отреагировали на это довольно оперативно, выпустив плагины для браузеров, которые позволили отображать графику прямо в окне последних. Сначала популярность завоевал визуализатор на основе технологии Flash, которая впоследствии сошла на нет. Поэтому сейчас для  визуализации в вебе используется библиотека для языка JavaScript - WebGL, которая позволяет создавать интерактивную 3D-графику. Однако, из-за недостатков языка, таких как: отсутствие многопоточности, библиотека не может удовлетворить потребности игроделов. Поэтому ее популярность увядает. Ей на смену консорциумом W3C (куда входят: Microsoft, Google, Mozilla и др.) разрабатывается новый низкоуровневый бинарный компилируемый формат WebAssembly. У него не будет недостатков JavaScript, поэтому он будет работать гораздо быстрее него.

webassembly-fastest-browser.jpg
WebAssembly

Под конец первого десятилетия 21-го века случились мобильные технологии. Как гром среди ясного неба появились мобильные устройства по мощности сопоставимые с ПК средней ценовой категории и способные запускать мощные игровые приложения со всеми спецэффектами, которыми обладали низкоуровневые графические интерфейсы. На что разработчики игровых движков ответили в некоторых случаях созданием специализированных конверторов, создающих нативный для конкретного оборудования код (как, например, Unity 3D), а в других — модернизировали свои продукты для кроссплатформенности (к примеру, Torque 2D(http://t2d-dev.ru), Cocos 2DX). Также, на рынке появились новые игроки, предлагающие кроссплатформенные движки для всего парка мобильных устройств, выполняющиеся со скоростью нативного кода. Среди подобных средств: Corona SDK, Marmalade SDK, AGK (App Game Kit).
Corona-SDK-Banner.jpg
Corona SDK

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

Новинки игровой индустрии

Низкоуровневые программные интерфейсы: OpenGL, DirectX развиваются в соответствии с видеоадаптерами. Раз в 1 - 2 года появляются новые версии, которые поддерживают и дают прикладным программистам (разработчикам движков) реализовать всю функциональность железа. DirectX уже достиг 12-й версии. С другой стороны на смену OpenGL пришел Vulkan - новый кроссплатформенный графический api, разрабатываемый консорциумом Khronos Group, куда входят производители железа и софта.

vr.jpg
VR

Последний на текущий момент тренд игровой индустрии - виртуальная/дополненная реальность. Подавляющее большинство современных игровых движков уже обзавелись поддержкой данной технологии, среди них: Torque 3D, Unity 3D, Unreal Engine 4. Чтобы реализовать поддержку очков VR разработчикам движков надо не только добавить визуализацию на второй экран (для второго глаза) с отличным от первого содержимым (так как, первый и второй глаза могут видеть отличающиеся сцены), но и так же добавить поддержку управления с новых устройств ввода, которые различны для разных гарнитур VR и пока не стандартизированы.

Итоги

За годы существования игровой индустрии в ней образовались 5 больших типов игр:

1) Однопользовательские игры
2) Многопользовательские онлайн игры
3) Игры для социальных сетей
4) Мобильные игры
5) Игры для VR

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