ГЛАВНАЯ Визы Виза в Грецию Виза в Грецию для россиян в 2016 году: нужна ли, как сделать

Как создать игру самую простую. Как создать игру самому? Полное руководство для начинающих

Здравствуйте.

Игры… Это одни из самых популярных программ, ради которых многие пользователи и покупают компьютеры и ноутбуки. Наверное, ПК не стали бы так популярны, если бы на них не было игр.

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

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

Под 2D - понимают двумерные игры. Например: тетрис, кот-рыболов, пинбол, разные карточные игры и пр.

Пример-2D игры. Карточная игра: Солитер

1) Game Maker

Сайт разработчика: http://yoyogames.com/studio

Процесс создания игры в Game Maker…

Это один из самых простых редакторов для создания небольших игр. Редактор выполнен достаточно качественно: в нем легко начать работать (все интуитивно понятно), вместе с тем большие возможности для редактирования объектов, комнат и пр.

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

Нельзя не отметить большое разнообразие эффектов и действий, которые можно задавать различным объектам (будущим персонажам) в этом редакторе: количество просто поражает - более нескольких сотен!

2) Construct 2

Сайт: http://c2community.ru/

Современный игровой конструктор (в прямом смысле этого слова), позволяющий даже начинающим пользователям ПК делать современные игры. Причем, хочу подчеркнуть, при помощи этой программы игры можно изготавливать для разных платформ: IOS, Android, Linux, Windows 7/8, Mac Desktop, Web (HTML 5) и пр.

Этот конструктор очень похож на Game Maker - здесь так же нужно добавлять объекты, затем прописать им поведение (правила) и создать различные события. Редактор построен по принципу WYSIWYG - т.е. вы сразу же будете видеть результат по мере создания игры.

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

2. Программы для создания 3D игр

(3D - трехмерные игры)

1) 3D RAD

Сайт: http://www.3drad.com/

Один из самых дешевых конструкторов в формате 3D (многим пользователям, кстати, хватит и бесплатной версии, у которой ограничение на обновление сроком на 3 месяца).

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

Самый популярный формат игр, который создают с помощью этого движка - это гонки. Кстати, скриншоты выше это лишний раз подтверждают.

2) Unity 3D

Сайт разработчика: http://unity3d.com/

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

В пакет Unity 3D входит движок, который полностью позволяет задействовать возможности DirectX и OpenGL. Так же в арсенале программы возможность работы с 3D моделями, работа с шейдерами, тенями, музыкой и звуками, огромная библиотека скриптов под стандартные задачи.

Пожалуй, единственный недостаток у этого пакета - это необходимость знания программирования на C# или Java - часть кода при компиляции придется дописывать в «ручном режиме».

3) NeoAxis Game Engine SDK

Сайт разработчика: http://www.neoaxis.com/

Бесплатная среда разработки практически любых игр в формате 3D! При помощи данного комплекса можно делать и гонки, и стрелялки, и аркады с приключениями…

Для движка Game Engine SDK в сети имеется немало дополнений и расширений под множество задач: например, физика автомобиля или самолета. При помощи расширяемых библиотек вам даже не понадобиться серьезное знание языков программирования!

Благодаря специальному плееру, встроенному в движок, игры созданные в нем могут воспроизводиться во множестве популярных браузерах: Google Chrome, FireFox, Internet Explorer, Opera и Safari.

Game Engine SDK распространяется как бесплатный движок для некоммерческих разработок.

3. Как создать 2D игру в редакторе Game Maker - пошагово

Game Maker. Добавление объекта.

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

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

Добавление событий к объектам.

Game Maker. Для объекта Соник добавлены 5 событий: перемещение персонажа в различных направлениях при нажатии клавиш-стрелок; плюс задано условие при пересечении границы игровой зоны.

Кстати, событий может быть очень много: здесь Game Maker не мелочиться, программа предложит вам много всего:

Задание перемещение персонажа: скорость перемещения, прыжки, сила прыжка и пр.;

Накладывание произведения музыки при различных действиях;

Появление и удаление персонажа (объекта) и т.д.

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

6) Последнее и одно из важных действий - создание комнаты. Комната - это своего рода этап игры, уровень, на котором и будут взаимодействовать ваши объекты. Чтобы создать такую комнату, нажмите кнопку со следующим значком: .

Добавление комнаты (этапа игры).

В созданной комнате, при помощи мышки, можно расставить наши объекты на этапе. Настроить фон игры, задать название окна игры, указать виды и пр. В общем - целый полигон для экспериментов и работы над игрой.

Запуск полученной игры.

Game Maker откроет перед вами окно с игрой. Фактически, вы можете смотреть, что у вас получилось, экспериментировать, играть. В моем случае Соник может перемещаться в зависимости от нажатия клавиш на клавиатуре. Своего рода мини-игра (эх, а были времена, когда белая точка, бегающая по черному экрану, вызывала дикое удивление и интерес у народа… ).

Полученная игра…

Да, конечно, полученная игра примитивная и очень проста, зато пример ее создания очень показателен. Далее экспериментируя и работая с объектами, спрайтами, звуками, фонами и комнатами - можно создать очень даже не плохую 2D игру. Чтобы создавать подобные игры лет 10-15 назад необходимо было обладать специальными знаниями, сейчас - достаточно уметь вращать мышку. Прогресс!

С наилучшими! Всем удачного игро-строя…

Разумеется, современные крупные игровые проекты вроде WoW или StarCraft - это результат многолетнего труда опытных программистов, требующий к тому же весомых финансовых вложений. Чтобы взяться за такой проект, нужно как минимум иметь диплом , определенный опыт и организаторские таланты. Однако сложность проекта - не всегда мера его успеха и не гарантия интереса игроков. А попробовать свои силы в создании игр, пусть менее сложных технически, но зато способных вызвать интерес и пользователей, и, возможно, крупных компаний-производителей игр, может каждый. Для этого даже не обязательно владеть знаниями языков программирования.

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

3D Game Maker – один из наиболее популярных движков, позволяющих создать собственную трехмерную игру. Благодаря необыкновенной простоте интерфейса, полноценная трехмерная игра с его помощью может быть создана всего за 10 минут. Выбираем жанр создаваемой игры, определяем количество необходимых уровней (система позволяет сконструировать до 20 различных уровней), среди готовых моделей подбираем главного персонажа. Игру уже можно запустить и опробовать, хотя работа над ней, конечно же, только начата. Ведь игра пока что лишена самого главного, того, что удерживает внимание и интерес пользователя - сюжета. Поэтому необходимо также подобрать противников, продумать прочие необходимые детали. Стоимость этой системы разработки игр составляет $35 - вполне посильная для начинающих создателей игр сумма.

3D Game Studio – мощнейший инструмент создания как 3D-, так и 2D игр, а программирования как такового при этом практически не требуется. Набор всевозможных шаблонных ситуаций, примеров и эффектов дает конструктору игры достаточно широкую палитру инструментов для воплощения своих фантазий. Природные эффекты, зеркальные поверхности, тени, прозрачные поверхности - все эти атрибуты можно в полной мере использовать при разработке игровых интерьеров. Готовые элементы игрового интерфейса также предоставляются разработчику, позволяя стильно и удобно оформить общение пользователя с игрой. Профессиональная версия этого движка обойдется в $900, однако версия для начинающих намного дешевле - всего $70.

Если же трехмерные миры вас не привлекают, обратите внимание на Game Maker – эта программа дает необозримый простор для фантазии, позволяя создать компьютерную игру в формате 2D. Выбираем объекты, продумываем их взаимодействие. Изображения можно нарисовать в любом графическом редакторе и импортировать в систему. Игру можно снабдить звуковыми эффектами и сигналами. Интерфейс предельно прост и логичен, идеально подходит для начинающих.

Эта статья является первой в целом цикле материалов для тех, кто хочет стать создателем игр. Если вы молоды, амбициозны и полны идей, а руки чешутся сделать "убийцу GTA" или "MMORPG типа WoW, но круче", то вы нашли то, что искали - руководство новичка по созданию игр . Моя цель - дать читателю общее представление о том, как же всё-таки выглядит процесс создания игр и развеять те иллюзии, которые могли сложиться на этот счёт, чтобы в последствии вы смогли избежать ошибок, совершаемых многими. Как и в любом деле, половина успеха - это правильная подготовка, поэтому чем полнее вы с самого начала будете представлять себе всю картину - тем большего успеха сможете добиться.

На данный момент цикл статей включает в себя следующие материалы, который со временем будет дополняться:

1. Создание игр для начинающих






Начинающий Разработчик Игр - В Простонародии "Чайник"

Итак, после очередного вечера за вы подумали - а чем я хуже?.. Подумали и решили, что вот он, шанс на всеобщее признание - пора создавать игры своей мечты! Кажется, что в этом нет ничего сложного, но вы заблуждаетесь... серьёзно заблуждаетесь. С этого, пожалуй, мы и начнём.

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

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

Создание Игр - Развлечение?

К сожалению, это далеко не так. Даже если не касаться профессиональной работы в индустрии производства игр, то и любительский проект - это не развлечение в прямом смысле этого слова. Конечно, процесс работы над воплощением своих идей приносит определённое удовлетворение и удобен как средство самореализации, но... Как уже было сказано, самым приятным является момент рождения идеи и её проработка, но затем неизбежно наступают "трудовые будни" с их повторяющимися действиями, нудной кропотливой работой и тем, чем заниматься ну совсем не хочется (а так как создание игр - достаточно разноплановая работа, то такие вещи наверняка будут, особенно если вы работаете в одиночку). В итоге в таком болоте тонет мотивация, а вместе с ней - и желание заниматься своим проектом.

Будьте готовы к тому, что даже относительно небольшой игровой проект может отнять у вас не один месяц времени на его завершение. Подумайте - достаточно ли у вас мотивации, чтобы продолжать работать над воплощением своей идеи даже после того, как начальный азарт угаснет?.. Наверное, не ошибусь, если скажу, что доля проектов, не доведённых до конца и брошенных на разных этапах разработки, стремится к 99%... Вы ведь не хотите пополнить это число своей идеей, правда?

Типовой Портрет Начинающего Разработчика

Да простят меня те, кто узнает себя в этом описании - призываю не обижаться, а продолжить чтение. Сейчас мы попробуем нарисовать типовой портрет начинающего разработчика игр, чтобы лучше понять, с чем нам предстоит иметь дело. Итак, начинающий "игродел" - это чаще всего учащийся школы в возрасте 12-18 лет, внезапно загоревшийся идеей создания игр. Идея приходит спонтанно либо после какого-то толчка к вдохновению, вроде нового фильма или популярной игры. Как правило, сам он ничего не умеет в силу возраста, недостатка опыта и иных причин, поэтому хочет выступать в качестве "руководителя " и/или "сценариста ", "автора идей ". Соответственно, так как самостоятельно с такими навыками сделать ничего хотя бы отдалённое напоминающего игру, нельзя, то нужна "команда", которую данный генератор гениальных идей пытается собрать на одном из тематических форумов.

При ближайшем рассмотрении идея оказывается клоном чего-то популярного и известного, "но лучше". Так как представления о том, чего же, собственно, хочется, и как организовать продуктивную работу, нет, то в команду приглашаются все либо почти все. В итоге такая "команда" складывается из случайных людей, которые в течение недели-двух создают видимость бурного обсуждения "проЭкта", иногда даже что-то пытаются сделать (вроде 3D-модели из набора примитивов), но примерно через это же время былой энтузиазм сходит на "нет", у членов команды появляются неотложные дела/сессия/уроки/бабушка заболела и вся затея благополучно рассыпается как карточный домик. Знакомая картина?..

Разработка Игр - Профессия или Хобби?

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

Любитель , как правило, имеет иной источник дохода (в случае, если он уже достаточно взрослый человек), поэтому над ним не висит вопрос коммерческой успешности своего проекта. Аналогично для тех, кто учится в школе/ПТУ/ВУЗе - они могут работать над игрой в своё удовольствие, бросить в любой момент, реализовывать любые идеи и вообще испытывают гораздо больше свободы в своих действиях. С другой стороны, они не могут посвятить изучению инструментов и получению новых навыков достаточно времени, поэтому в постоянно меняющемся мире игр всегда серьёзно отстают технологически и качественно.

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

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

Вобрав в себя плюсы профессионального и хобби-подхода, инди-разработка не избавлена от ложек дёгтя в бочке мёда.

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

Цена Идеи для Игры


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

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

Задумайтесь: когда в последний раз вы видели действительно оригинальную идею? "Аватар"? Нет - если разложить идею до уровня концепции, то всё просто: земляне из будущего добывают ресурсы на чужой планете, игнорируя интересы местного населения. Один из землян проникается сочувствием к аборигенам, становится частью их народа и возглавляет борьбу против захватчиков. Просто, не правда ли? Crysis? Классический шутер про элитного спецназовца с супер-способностями, которые ему даёт костюм, и пришельцами из космоса. World of Warcraft? Игра, действие которой происходит в богатой на события и предысторию вселенной, с высокой ролью сюжетной составляющей, разносторонними сложными взаимодействиями игроков и мощной экономической системой.

Во всех этих идеях самое ценное то, КАК они были реализованы. Даже самая простая идея, будучи воплощённой в жизнь на высоком, качественном уровне, с глубокой проработкой, может "выстрелить" и стать хитовой игрой/фильмом.

Таким образом мы приходим к выводу, что для начинающего разработчика вопрос "как" гораздо важнее вопроса "что". Очевидно, что идея создания MMORPG нового поколения (так называемый next-gen) абсолютно бесполезна для большинства разработчиков, так как в силу объективных причин они просто не могут реализовать её в каком бы то ни было виде.

Английский Язык для Разработчика Игр

Отдельного упоминания заслуживает вопрос изучения английского языка. Очевиден тот факт, что игровая индустрия в подавляющем большинстве своём использует английский язык как язык международного общения. Конечно, есть национальные рынки и их разработчики, которые говорят на своём языке (например, Россия и Япония), некоторые из них могут быть весьма крупными и даже огромными (Китай) - но это не отменяет того факта, что инструменты разработки, учебные материалы и документация почти всегда использует английский язык.

Я убеждён в том, что знание английского языка - это критический фактор , который оказывает огромное влияние на тот путь, который предстоит пройти, чтобы стать разработчиком игр. Даже с чисто практической точки зрения способность читать и понимать английские тексты - огромный козырь в борьбе за место под солнцем. Если вы откроете вакансии русских компаний-разработчиков, то в 90 % из них найдетё такой пункт, как "технический английский на уровне чтения и понимания".

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

Спрашивается - зачем довольствоваться каплей, если можно выпить море? Знание и понимание английского - это ваш ключ к огромному массиву полезной и актуальной информации, сам факт доступа к которой даст вам десять очков форы. Компании Digital Tutors и Gnomon Workshop имеют в своём активе тысячи часов обучающего видео по всем областям применения популярных 3D-пакетов, таких как Maya или 3DS Max. Англоязычные сайты кишат статьями о геймдеве, а на форумах могут подсказать решение сложных проблем - просто потому, что количество людей ТАМ несоизмеримо выше с количеством людей ЗДЕСЬ. Берите лучшее из двух миров!

Что делать? Учить языки - оно того стоит, даже если через год вы забросите геймдев. Как? Не спать на уроках в школе, записаться на курсы, использовать самоучители - путей много, было бы желание. Особое внимание стоит уделить лексике - вам совсем необязательно уметь говорить на этом языке, главное - уметь читать и понимать прочитанное. Уже после этого можно будет начать развивать навык восприятия английской речи на слух - и в этом могут помочь видеоуроки по 3D-графике, если вы художник, или аудиоуроки по английскому языку. Ещё раз повторюсь - по ту сторону языкового барьера огромный мир, полный информации. Не иметь к нему ключей - всё равно что учиться по черновику, когда рядом есть библиотека.

Сергей "Treidge" Данченко — автор блога , вольный 3D-художник и разработчик игр, веб-разработчик на Drupal и человек-оркестр с опытом в некоторых других областях. Личное кредо — "хочешь сделать что-нибудь хорошо, сделай это сам". В моменты особого вдохновения пишет стихи и играет в волейбол. Основные профессиональные инструменты — Autodesk Maya, Autodesk Mudbox и Adobe Photoshop. Без ума от индюков и попугаев. Спасибо за внимание, заходите снова!

  • 83413 просмотров

3/4 времени на свою идею, 1/4 на изучение языка - глядишь, и через пару месяцев уже можно будеть понимать написанное, а там и до свободного чтения не так уж далеко... Я вот конкретно движком Unity 3d интересовался, на русском видеоуроков или статей - крохи, а вот на английском - уже десятки часов по всем темам.

Хорошая статься, правда мне кажется эту тему можно раскрывать бесконечно. Я бы добавил обязательное условие, "любить читать" и искать тонны информации в интернете. Если что то найти человек и может в интернете, а вот осилить имеющуюся литературу допустим в 500 страниц, это уже может стать проблемой, а это я считаю основополагающий фактор, читать читать читать, и только потом делать делать делать.
Спасибо, буду читать вас еще:)

Согласен, эта тема была затронута краешком в абзаце про профессионалов. С учебными материалами и правда проблема - желающим доступны просто тонны книг и видеоуроков, чтобы перечитать и пересмотреть которые - не один год нужен. Часто срабатывает инстинкт хомячка - натаскать всего и побольше, и чтобы потом это всё добро лежало и покрывалось толстым слоем пыли (каюсь, тоже таким грешен). Кажется, что сам факт обладания таким объёмом информации делает тебя профессиональнее, но это далеко не так.

В общем, я бы сказал, что нужно читать И делать, и только тогда можно придти к успеху. Помню, в одном из видеоуроков инструктор напоминал - "Люди, вы - не растения! Вы не можете впитывать знания так же, как растения впитывают солнечный свет. Не просто смотрите, но и делайте, экспериментируйте, выходите за рамки того, что я вам показываю.". Очень правильное замечание сделал этот человек.

20 Ноя, 2011

Очень понравилась статья. Ещё узнал, что автор хочет свою 1-ю игру реализовать. Я рисовать не умею, но разрабатываю движки для игр на Android, Windows, Linux, Mac (при помощи Open Source & Cross Platform Framework LibGdx), знаю box2d, OpenGL. Раньше занимался движками для веба, но последние 2-а года изучаю Андроид платформу. Хочу также как и автор реализовать свою 1-ю игру и выпустить её на Андроид Маркете. Идея уже есть (на физику и логику, 2Д, вид сбоку, сейчас продумываю уровни), но она очень абстрактна ещё, как автор сказал (золотые слова) идею надо ещё реализовать и только тогда будет ясно принесёт она успех или нет;-) Если интересно, то пишите мне на почту... Успехов и Удачи!

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

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

Очень хорошо ваше наблюдение подчёркивает сайт:
https://sites.google.com/site/mysuperpupergame/

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

Вдруг кто присоединиться:)

Для начала постарайтесь определить, к какому направлению у вас могут быть склонности. Может вам нравится рисовать, тогда создание графики - очевидный выбор. Либо же наоборот - рисовать вы не умеете, но сильны в математике и технических науках - тогда программирование может стать удачным выбором. Хотя всему этому можно научиться и не имея каких-то предрасположенностей, другое дело, что работа в "неправильном" направлении не будет доставлять никакого удовольствия и напротив, скорее будет в тягость. Для начинающих хорошо подойдут конструкторы игр типа Game Maker (самый известный). Начать можно с него, ну а далее по потребностям - нужна будет графика для игры, тогда стоит попробовать рисовать, нужны будут скрипты - вот вам и программирование. Главное - начинать с самого простого, типа Понга (это игра такая), арканоидов и т.д., и очень быстро вы сами сориентируетесь, что вам нужно и для чего. Как говорят в таких случаях - Интернет знает всё, нужно лишь поискать ©. Что бы вы не выбрали - в вашем распоряжении будет огромное количество образовательных ресурсов. Дерзайте .

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

11 Фев, 2012 10 Мар, 2012

Блог ну прям с меня списан практически.
С первой частью блога согласна на все 100%. Но вот по поводу иностранного языка, вот тут я "закипела".
Не все люди могут выучить английский язык или вообще любой другой иностранный язык. Не всем это дано. Получается, что если человек не знает английского языка, ему никогда не стать разработчиком игр или просто профессиональным программистом?!
Для того, чтобы выучить английский язык также нужны годы, нужны не только книги и учебники, самоуичтели и аудиоуроки по языку, но свободное время. А его вечно не хватает. По себе знаю, что пока учишь одно, другое забывается. Приходится снова возвращаться к началу. Повседневная жизнь такова, что часто приходится делать "привычную работу". Приходя домой с работы никаких сил уже на иностарнный язык не остается, даже при наличии огромного желания и мотивации! Усталость и нехватка времени сводит все усилия по изучению иностранного языка на нет. Доказано на собственном опыте!
Все же не согласна я с автором блога по поводу иностанного языка. Проблему обучающего материала очень легко решить, а именно переводить книги, газетные и журнальные статьи, и даже теже самые видеоуроки с американских сайтов на русский или любой другой язык. Зачем новичку тратить время на иностранный язык, когда есть другие люди, которые занимаются этим же самым переводом профессионально? Зачем вообще нужны тогда переводчики? Неужели ни в одной из американских крупных компаний по разработке игр нет переводчика? В жизни не поверю в это. К тому же если существуют коллективы, где сотрудники говорят на обоих языках, почему сразу не написать литературу, документацию, статью или видеокурс на двух или трех языках? Все дело в том, что этим надо кому-то заняться из команды разработчиков программного продуктиа, но никто не хочет. Вот в чем вопрос. Банальная лень!!! Трудно написать сразу два документа. Напишу стандартный на английском. А тому кому надо пусть сам мучается с переводом, тратит еще больше времени на поиск информации, прежде чем реально начнется обучаться тому, что ему нужно.

Эх, если бы всё было так просто... Отвечу по порядку.

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

Эта часть моей статьи написана как рекомендация прежде всего тем, кто серьёзно хочет связать свою жизнь с разработкой игр. Я каждый день сталкиваюсь с необходимостью читать и слушать на английском языке и каждый день ощущаю, насколько мне это помогает. И да, я уверен, что стать в полном смысле слова профессионалом без знания языка крайне сложно, причём себя профессионалом я не считаю. Конечно, найдётся достаточно людей из этой области, которые языком не владеют и тем не менее чего-то достигли, но в моём представлении профессионал - это тот человек, который в совершенстве владеет своей профессией, идёт на гребне прогресса, владеет самыми свежими технологиями и получает информацию о них из первых рук, то есть от создателей. Которые в 90 % случаев всю документацию и прочие материалы пишут на английском языке как самом распространённом языке и языке международного общения. Специалист без знания языка получит доступ к таким материалам в лучшем случае с большой задержкой, либо же из третьих рук, а вероятнее всего - вообще никогда. Мне бы не хотелось попасть на приём к стоматологу, который из-за языкового барьера будет выбивать кариес зубилом и молотком, в то время как в соседней стране для этих целей давно используют лазеры.

Тем не менее, проблема перевода любых материалов действительно может быть решена, и я уверен - будет решена в ближайшие годы, может быть 10-15 лет. С развитием информационных технологий любой перевод будет осуществляться на 100 % точно и "на лету", а профессия переводчика со временем канет в Лету. Но пока такие системы не созданы - приходится мириться с текущей ситуацией, ведь простого её решения пока нет.

Переводить статьи, книги или уроки, безусловно, можно, но вот только кто будет этим заниматься? Профессиональным переводчикам, как и любым другим специалистам, нужно платить, и платить много. Заниматься переводом узкоспециализированной литературы просто так никто не будет, разве что энтузиасты. Но много ли их, этих энтузиастов? Капля в море, причём такая общественно-полезная нагрузка очень быстро им надоедает. И я категорически не согласен с тем, что новичкам не нужно тратить время на изучение языка. Любителям - возможно, но будущим профессионалам - нет.

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

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

Это - их бизнес. Никто не будет заниматься тратой ресурсов на адаптацию своего продукта (перевод) к рынку, на котором нельзя продать достаточное количество копий своего продукта. В первую очередь переводы получают те языки, доля рынка которых самая большая. В случае с игровыми движками это обычно китайский язык, к которому постепенно подбирается корейский. В сумме эти три языка, наверное, покрывают до 80 % рынка. Русскоязычные покупатели же могут составлять 2-3 % от общего объёма - вот вам и причина, по которой существует дефицит учебников и курсов на русском, производителям просто не выгодно заниматься этим.

И так во всём - производители чего угодно в первую очередь стремятся удовлетворить потребности большинства, и это большинство может принимать разные формы. Например, на корейском языке говорят в 2 раза меньше людей, чем на русском, однако рынок игровых движков там на порядок больше, чем в России. Поэтому документация на корейском для движка UDK есть, а на русском - нет.

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

10 Мар, 2012

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

На "данную тему" можно рассуждать неограниченное количество времени. В России с обучающим материалом действительно напряг. В малоразвитых городах (таком в котором я живу), специальная литература это большая редкость. В основном на полках стоят однотипные книги. У всех книг практическ одинаковое название, единсвенное, что их отличает это картинка на обложке и имя автора. По внутреннему содержанию книги абсолютно идентичны! С таким предложением многому не научишься.

Конечно для саморазвития знать другой язык нужно, пусть даже немного, но лично в моем случае это "гиблое дело". Чтобы выучить, запонить и потом "воспроизводить" английские слова я трачу не один день. Перевод предпочитаю делать вручную старым дедовским методом "словарь"+"ручка"+"бумага". И этот дедовский метод крайне медленен. В день не более одного, двух абзацев. Каждое слово переводишь! А потом еще грамотно собрать переведенные слова в "текст имеющий смысл". Очень тяжелая работенка и таким темпом одну страницу неделю переводить можно:-). И как далеко на этом можно "уехать" в моем случае? Это ни к чему не приводит как правило.
P. S. Переводчики (программы) работают по тому же принципу. Сплошной набор переводов слов, причем не самый точный.

Совсем другое дело, когда находишь в Сети (так как другого источника нет) книгу в электронном виде или учебник в котором все расписано с самого начала, по полочкам разложено, простым и доходчивым языком рассказано. Напрмер книга, которую я сейчас читаю "Как написать игру для ZX Spectrum". Очень интересная и понятная. На русском. Единственное, на что я потратила время, это на поиск эмуляторов операционной системы Спейси и на редакторы для создания игр. Вот на этом реально можно научиться, сразу! Все понятно и время экономит и необходимые, пусть самые базовое знания новичок получит.

Если занимать "изучением" английского языка, то походу поступления информации. Пусть даже методом "тыка" :-|. А иначе можно вообще никогда не достигнуть желаемого результата.

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

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

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

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

Прошу прощения, не прописал ник ранее. Относительно поисковиков: Да, мне знаком такой момент. Тем не менее как я уже замечал - огромное количество сайтов находясь во все тех же поисковиках имеют у себя большое количество материала. Кроме того есть еще и такие общедоступные источники которые, по счету большому, не супротив копирования. Например, Википедия. Но по такой логике получается что и статьи с Википедии в той же мере не поощряются поисковиками?

Да, не поощряется, причём в случае с Википедией это даже более показательно, чем с другими сайтами и их контентом, т.к. содержание сверхпопулярной Википедии гораздо проще использовать в качестве эталона, с которым будет сравниваться контент. Тут логика поисковика очень простая. Ведь если контент общедоступен - зачем его копировать? Правильнее указать ссылку на источник, который поддерживается в актуальном состоянии (т.е. энциклопедические статьи могут часто исправляться и дополняться). Тот же Google, например, заинтересован только в уникальном контенте, т.е. таком, которого нигде больше нет. Конечно, никто не может запретить сделать "зеркало" Википедии и выложить его в интернете, но поисковикам такой сайт в принципе не будет интересен, т.к. им придётся тратить ресурсы и время на индексацию того, что и так уже проиндексировано. Вполне естественно, что зеркалирование контента (копирование) не поощряется, а в некоторых случаях и вовсе наказывается.

Ясно. По большому счету с моей стороны вопрос копирования - это не "злостное копирование всего и вся". Скажем так, существует некоторый материал который, в принципе, переписать можно, но вряд ли получится сильно лучше. "Зачем придумывать велосипед?" так сказать. Уникальные статьи и контент имеют место быть, но... Несколько статей было - таки скопировано.

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

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

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

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


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

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

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

Создание игры

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

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

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

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

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

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

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

С каждым днем игры становятся все сложнее и навороченнее. Ежегодно в Steam они публикуются тысячами. Они распределяются по разным платформам и категориям. Аудитория игроков стремительно растет. Число разработчиков так же стремительно увеличивается. Быть инди, а точнее соло-разработчиком игр стало тяжело. Но романтика независимости заставляет снова и снова начинать разработку инди-игры. В статье мы поговорим, как выжить на этом пути и как разрабатывать классные игры в жестких условиях конкуренции.

Хотя появляются новые технологии для создания игр, с каждым годом их разработка становится все сложнее и сложнее. Есть тройка топовых движков: Unity, Unreal Engine 4, CryEngine 5. О них постоянно говорят, и их используют для разработки самых разных проектов самые разные разработчики. Тем не менее сложность этих инструментов перевалила мыслимый рубеж. Они огромны, их функциональность достигла вселенских масштабов. Все эти возможности могут быть использованы большими студиями, но для соло-разработчика это избыточный стафф, он ему не нужен, поскольку для его реализации нужны дополнительные ресурсы, которых у инди и так нет (для разработки игры мечты он свой дом заложил). И если это не AAA-игра, то реализация этих фич бесполезна.

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

Альтернативные движки

Я понимаю, что в настоящее время существуют инди-игры всех жанров на любой вкус (и это на самом деле хорошо), но мы под инди-играми в данном контексте подразумеваем маленькие, двумерные, ориентированные на мобильные устройства, созданные соло-разработчиком творения (которых преобладающее большинство), поэтому использовать Unity, UE4 для создания прототипов будет неоправданно сложно. Существует широкий выбор альтернативных движков, они проще в использовании и позволяют достигать впечатляющих результатов за меньший срок, минус спецэффекты, которые инди бы все равно не стал помещать в свою игру. Порой для создания полноценной игры под все платформы эти движки не требуют написания кода. Особенно меня продвинуло на тему альтернативных движков после участия в московской конференции разработчиков видеоигр White Nights 2017, прошедшей в октябре. Я подходил к инди-разработчикам, демонстрирующим свои проекты, и расспрашивал об используемом инструментарии. Во многих случаях они называли вовсе не Unity, а Construct 2 или GameMaker Studio .

Оба продукта представляют собой конструкторы двумерных игр, не требующие умения программировать (!). В Construct 2 игру создаешь, определяя игровые события и реакцию на них. Итоговые игры портируются под все распространенные платформы. Прога идет с подробной документацией, большим количеством примеров и теймплейтов, так что освоить ее несложно. Покупать советую в Steam, там ее стоимость за персональную версию составляет 6399 рублей.

Как самому создать игру. Construct 2 с открытым проектом

GameMaker Studio представляет собой популярный конструктор игр с двумя возможностями построения игры (подобно UE4): первая - методом drag and drop, вторая - писать код на собственном языке системы. В зависимости от целевой платформы игры, созданные с помощью GameMaker Studio, визуализируются с помощью OpenGL или DirectX с использованием соответствующих шейдерных технологий. Для обработки физики есть поддержка движка Box2D. Поддерживается широкий ряд устройств ввода. Десктопная версия в Steam стоит 1599 рублей, экспортеры для других платформ надо докупать: так, экспортер для web стоит 2579 рублей, для UWP - 6396 и столько же для мобильных систем.

Как создать игру самому. GameMaker Studio

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

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

Где взять арт и прочий стафф?

В случае если ты программист и плоховато рисуешь/моделишь самостоятельно, весь необходимый для прототипа стафф можно купить в сторах топовых и альтернативных движков (например). Арт, звуки, шейдеры и другой стафф также можно найти в Steam. Они стоят не так дорого. Изображений в одном комплекте может быть несколько тысяч, но все они для разных игр, поэтому на прототип тебе их, может быть, и хватит, а вот для полноценного релиза - вряд ли. И тогда, возможно, ты найдешь свободных художников, на которых произведет впечатление твоя игра. И это правильно, ведь, работая с покупным артом, ты вынужден подгонять свой сюжет под имеющийся арт, а не наоборот.

Разработка игры с помощью AGK

Мой выбор пал на AGK по трем причинам:

  • разработка игр основывается на написании кода двух уровней (Tier 1, 2); мне, как программисту, легче освоиться в новом API, нежели в новом интерфейсе редактора;
  • цена демократична;
  • купил я этот движок еще два года назад, все обновления приходят сразу же, как появляются.

Дополнительные фишки: AGK поддерживает множество типов контроллеров, так, кроме геймпадов, он поддерживает контроллер бесконтактного управления Leap Motion. Плюс в AGK включена поддержка VR.

Visual Editor

После запуска AGK мы видим только редактор кода без каких-либо визуальных средств, которыми богаты другие движки. Однако в августе компания The Games Creator выпустила приложение, своего рода аддон для AGK - тулзу Visual Editor. Он покупается отдельно (стоит 899 рублей). Этот редактор позволяет визуально настраивать наполнение сцены и уровня твоей игры, импортировать изображения и 3D-модели, помещать их в сцену как игровые объекты, настраивать положение, размер, угол поворота, цвет и другие свойства с помощью инспектора объектов. Как выглядят сцены на устройствах с экраном разного расширения, можно увидеть, прямо не выходя из редактора. В конце концов, сцену можно сохранить и подключить к AGK. Тот спокойно выполнит код, как будто этот файл создан здесь же. Visual Editor дает возможность строить игры методом drag & drop (не полностью, но частично), подобно другим конструкторам, рассмотренным выше. Но, признаться, это не наш выбор.

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

Как создать игру. Visual Editor

Классические танки

Движок AGK одинаково хорошо подходит для создания 2D- и 3D-игр. Мы остановимся на 2D по понятным причинам: популярность на мобильных - целевых платформах - одна из них.

Мы испробуем AGK на танках, попробуем воссоздать «классические танки» с игровой консоли NES от 1985 года с новой графикой. Кто не в теме, та игра называется Battle City, во многом именно она послужила прототипом для современных игр про танковые войны (World of Tanks, «Танки Онлайн»). Поэтому наш мир также будет двумерным с обзором сверху.

Основы AGK

Разработку мы будем вести на ярусе №1 (Tier 1) - скриптовом языке, похожем на модернизированный для нужд игродела BASIC. Первое, что необходимо помнить о BASIC, - это то, что в конце инструкции не надо ставить точку с запятой. Расслабься и получай удовольствие: никаких указателей и низкоуровневых приблуд, классов тоже нет. Их роли выполняют структуры. Можно создать экземпляр структуры, который закрепляется за числовой константой. В будущем для обращения к этому экземпляру используется закрепленное за ним число. При выполнении функции, чтобы указать, над каким объектом производится операция, надо передать соответствующее число в первом параметре. По сути, в AGK имеется только три типа данных: integer, real, string. По большому счету это все, что необходимо знать перед началом кодирования игр на AGK.

Приступаем к кодированию

Мы не будем использовать Visual Editor, напишем весь код самостоятельно (см. пример в материалах к статье). Я не буду приводить в статье листинги игры, поскольку ты всегда можешь их найти в материалах. Я лишь напишу краткие инструкции по выполняемому коду.
Создадим в AGK новый проект и начнем кодировать. Сначала инициализируем окно вывода: зададим заголовок окна, установим его размер, укажем способность менять размер. Затем установим разрешение, возможную ориентацию устройства, частоту перерисовки, зададим использование всей области экрана, последним действием инициализации включим использование продвинутых векторных шрифтов вместо растровых. Этот код входит в шаблон проекта. Ниже находится основной цикл игры: do … loop. В нем выводится FPS и происходит перерисовка экрана.

После инициализации игры определяется тип данных для танка, неважно, вражеский он или наш, все поля одинаковые. Объявление типа начинается с ключевого слова Type, за ним следует идентификатор типа, в нашем случае TTank. В первую очередь каждому танку нужны координаты. В AGK объявление происходит таким образом: x as float. Заметь, на конце точка с запятой не ставится. Второй способ объявления переменных - это просто описать их. Например, переменную типа Integer можно объявить так:

x = 4 , real : x # = 4.4, string: x$ = "four"

То есть добавляется символ после идентификатора. У типа string для задания строки равноценно можно использовать одинарные или двойные кавычки, главное, чтобы закрывающая была парной для открывающей. Далее задаем идентификаторы для спрайта, для коллизии, для флага определения, чьей стороне принадлежит танк: игрока или ИИ. Скорость, частота стрельбы, количество жизней, флаг поверженности, таймер, измеряющий количество секунд, когда танк стал поверженным, флаг, устанавливающийся, когда танк достиг препятствия (нужен для ИИ), в поворотах танка участвуют две переменные: флаг, устанавливаемый в начале поворота, и номер стороны поворота (нужны для ИИ). Заканчивается определение типа ключевым словом EndType.

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

Создадим два массива: один - для танков, второй - для снарядов. Примерно так: Dim tanks as player. Аналогично и со вторым.

Теперь нам надо загрузить текстуры. Это делается с помощью функции LoadImage, первым параметром передается номер, за которым будет закреплено изображения, а вторым - путь и имя файла. Все игровые ресурсы загружаются из подпапки media папки с игрой. Папка media создается при первой удачной компиляции. Таким же образом загружаем изображение снаряда. В цикле создадим все снаряды. Описание цикла начинается с For makebullets = 1 to 20, а заканчивается инкрементом циклической переменной: Next makebullets. В теле цикла происходит создание спрайта (CreateSprite с параметрами: идентификатор спрайта, номер натягиваемой на спрайт текстуры), установка его позиции (SetSpritePosition), установка слоя глубины (SetSpriteDepth), смещение начала координат для спрайта (SetSpriteOffset).

После этого мы сбрасываем значения всех параметров танков к значениям по умолчанию, это делается нашей функцией resetplayers. Из нее вызывается функция CreateTank. В качестве параметров она получает: номер танка (индекс в массиве танков), координаты, коэффициенты цветов, угол поворота, принадлежность к игроку или ИИ. CreateTank занимается созданием танка, определяет положение, скорость перемещения, частоту стрельбы, угол поворота. Также она создает для танка спрайты, настраивает их цвета, номера слоев. Далее загрузим текстуру фона и создадим для него спрайт, плюс нам понадобится текстура для препятствия. Зададим тип для препятствия - bricks. Он будет содержать только два поля: номер спрайта и активность. Положение задается при создании в расположенном ниже цикле.

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

Далее мы погружаемся в центральный цикл нашей игры, тело которого выполняется 30 раз в секунду (зависит от частоты смены кадров, на PC может быть 60). Здесь первым делом нам надо получить количество миллисекунд (GetMilliseconds), прошедших с момента запуска игры. Затем запускаем цикл по всем игровым объектам - танкам. Если танк не вращается, он не подбит и им можно управлять (для этого вызываем функцию controlplayer), с другой стороны, увеличиваем его угол поворота. Поворачиваем определенный танк в направлении вектора его движения. Если танк вращается более двух секунд и у него закончились жизни, сбрасываем его состояние (resetplayers). Далее обновляются позиции всех снарядов в функции movefire и идет проверка на подрыв любого танка - в tankhit. Она возвращает номер подбитого танка, который начинает вращаться вокруг своей оси, вдобавок проигрывается звук попадания снаряда. Последней вызывается функция обновления экрана.

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

Функция controlplayer, в которую передается номер определенного танка, реагирует на ввод юзера, производя соответствующие действия. Каждой клавише соответствует свой номер в системе ASCII, поэтому сначала нам надо объявить соответствующие клавишам константы:

#constant KEY_LEFT 37

#constant KEY_UP 38

#constant KEY_RIGHT 39

#constant KEY_SPACE 32

Когда игрок нажимает клавишу «Вверх», переменная Forward принимает значение 1, когда «Вправо» - переменная turn принимает 1, «Влево» - она же -1. При нажатии пробела, если танк не вращается, происходит выстрел (вызов функции makefire с передачей номера танка), с учетом того, что танк может выстрелить с интервалом в 500 миллисекунд.

Далее займемся управлением танками ИИ. Если танк противника находится на обозримом расстоянии, наш незамысловатый ИИ просто преследует танк игрока. Приближаясь к цели, он стреляет. Поэтому первым делом надо найти угол между танками. Это выполняется с помощью функции FindAngle. Ей передаются координаты первого и второго объектов. Если второй танк ниже первого, тогда переменная turn принимает значение -2, если выше, то 2. Следующим действием находим разность углов. Потом надо узнать расстояние между танками. Если оно больше 100 виртуальных пикселей, тогда вражеский танк движется к цели. К слову, в AGK измерения ведутся в виртуальных единицах; если после запуска игры их оставить по умолчанию, размер игрового поля составит 100 на 100. Размер можно произвольно менять, в этом случае он будет влиять только на расположение и размер объектов. Вражеский танк ведет стрельбу при следующих условиях: выстрел раз в две секунды, относительный угол между танками меньше 20 градусов, дистанция меньше 500 единиц. Кроме того, в этой функции надо запретить танку выезд за границы игровой области.

Последняя проверка, помещенная в эту функцию, - это столкновение с препятствиями. В цикле перебираем все препятствия, проверяем, чтобы они были активны, и тогда смотрим, была ли с танком коллизия. Если эти условия выполняются, пытаемся найти лучший путь для обхода препятствия. Когда в столкновении с препятствием участвует танк юзера, просто отключаем тягу вперед. При движении или повороте танка, управляемого ИИ, прибавляем значение переменной turn к текущему углу поворота. Поворот танка: положение по X вычисляем, прибавляя к текущей координате X синус угла поворота, умноженного на 32, положение по Y находим через вычитание из текущей Y косинуса угла поворота танка, также умноженного на 32. То есть, когда мы применяем косинус или синус к углу, поворот выполняется в начале координат, и, чтобы сместить его в заданном направление, надо произвести умножение. С помощью функции SetSpritePositionByOffset производим позиционирование танка. Последнее действие выполняется только во время движения: в нем происходит инкремент координат X и Y на синус
и минус косинус угла поворота, умноженного на скорость танка.

Также функция resetPlayers останавливает и делает неактивными все снаряды, выпущенные танками, сбрасывает параметры танков к начальным значениям.

Затем в функции makefire происходит активация, позиционирование, задание вектора движения и скорости снаряда. В начале выполнения игры мы создали 20 снарядов и спрятали их за пределы экрана, сделав их неактивными, чтобы в нужный момент не тратить время на создание и инициализацию снаряда, а, спозиционировав его, сразу запустить. Поэтому в рассматриваемой функции в цикле от 1 до 20 мы проверяем наличие неактивного свободного снаряда. Найденный, он становится активным, в качестве родителя ему присваивается номер выстрелившего танка, снаряд поворачивается так же, как материнский танк, назначается соответствующая танку позиция. С помощью операций с синусом и косинусом ему назначается вектор полета, затем в функции settankfiredest, прибегая к тонкому математическому выражению, мы вычисляем точку приземления снаряда.

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

Функция checkHit проверяет попадание снаряда в любой танк. Внешний цикл перебирает танки, внутренний - снаряды. Первым делом внутри проверяются возможные столкновения снаряда с ячейкой пола, всего их 192, а их нумерация начинается с 200. Если произошло столкновение с ячейкой пола (ракета достигла своего пункта назначения), дальнейшие проверки выполнять не надо, делаем снаряд неактивным. Следующая проверка смотрит, чтобы выпущенная ракета не принадлежала выстрелившему ею танку. Если она проходит, мы делаем проверку столкновения снаряда с вражеским танком. Если столкновение зафиксировано, уменьшаем количество жизней у подбитого танка, останавливаем ракету, помещаем ее в список доступных для очередного выстрела. Данная функция возвращает номер подбитого танка.

Функция makeLevel, судя по названию, формирует карту уровня. Сначала двойным циклом проходим по всем 192 «кирпичам», делая их невидимыми и неактивными. Далее делаем видимыми только некоторые препятствия.

Оставшиеся три функции носят вспомогательный характер. Функция wrapAngle на основе полученного значения угла возвращает эквивалентное ему значение, не выходящее из диапазона 0–360. GetDistance получает четыре параметра - координаты двух точек и возвращает извлеченный корень из выражения, вычисленного по теореме Пифагора; таким образом, функция возвращает расстояние между двумя точками. И наконец, findAngle, получая координаты двух точек, возвращает разность между двумя углами.

Игра готова, код написан, можно запускать на выполнение. Но прежде не забудь скопировать из материалов к статье необходимый арт (из подпапки media каталога с игрой). Арт для игры состоит из семи файлов.

Подготовка билда и распространение

Тестирование на мобильных девайсах

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

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

Как создать игру. AGK Player

Я тестировал на планшете с ОС Android, однако имеется равнозначная версия плеера для iOS. Когда утилита будет установлена, надо подключить девайс к компу (через USB-кабель или по Wi-Fi), запустить AGK Player, а на десктопе в IDE AGK нажать пиктограмму Broadcast. AGK подключится к устройству, передаст данные, а в плеере запустится твоя игра.

Экспорт билда

Когда игра будет протестирована и отлажена, для ее публикации в сторе надо создать билд. Для этого с помощью команды меню File → Export Project «Tanki» → As Android Apk откроем окно Export Android APK, в котором предлагается задать свойства создаваемого пакета.

Как самому создать игру. Export Android APK

В области APK Settings, в ниспадающем списке APK Type предлагается выбрать целевую платформу: Google, Amazon, Ouya. App Name - имя приложения в операционной системе, Package Name - имя пакета, к примеру com.yazevsoft.Tanki. App Icon - иконка для приложения, Notification Icon - иконка уведомления, Oaya Large Icon - иконка в версии Android для игровой консоли Oaya. Ниже задается ориентация и минимально поддерживаемая версия Android. В области Permission задаются разрешения - доступ к компонентам системы, на которой будет выполняться наша игра: запись на внешние носители, доступ к камере, запись аудио, вибрация и прочее. Область Game Google Services/GameCircle Integration позволяет задать идентификатор для использования сервисов Google. В области Output задается путь, по которому будет сохранен итоговый пакет. Область Signing позволяет настроить свойства для подписания пакета для размещения его в сторах: задать версию, файл подписи.

Альтернативные сторы

Под конец статьи добавлю еще, что не стоит упираться и распространять свои приложения/игры только в топовых сторах - App Store, Google Play. Там все места заняли большие издатели, и покупатели в первую очередь смотрят на их продукты.

Обрати внимание на альтернативные сторы: Amazon AppStore, Opera Mobile Store, Яндекс.Стор и многие другие. На них меньше пользователей, меньше трафика, вместе с тем меньше конкуренции. Я не призываю ограничиваться тремя перечисленными, смотри шире. Лидирует платформа Android, между тем, кроме Apple AppStore, есть площадки для распространения iOS-приложений.

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

Заключение

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

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