Как начать разрабатывать игры даже если до этого вы были бухгалтером. Иван программист он создает новую компьютерную игру
Инструкция для тех, кто хочет стать программистом с нуля
Начать свой путь к карьере программиста стоит с ответа на вопрос, нужно ли вам программирование вообще? Этот вопрос не относится к тем, кто учится или учился по специальности, близкой к программированию. Если вам в школе математика давалась лучше, чем гуманитарные науки, если вам нравится проводить много времени за компьютером, если вам хочется изучать что-то новое, тогда программирование вам подойдёт.
С чего начать
Есть несколько вариантов развития событий, в результате которых человек становится программистом. Первый — родители-программисты, которые всему научили своих детей. Таким детям даже не нужно идти в университет. Второй вариант — модная профессия программиста. После школы нужно было выбрать, куда пойти учиться, и выбрали модное направление IT, вроде бы понравилось. И последний вариант — хобби, которое переросло в работу.
Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:
- Самообразование. Этот вариант можно использовать как самостоятельно, так и в паре с другими методами. В интернете полно сайтов, книг и приложений, которые помогают изучать различные языки программирования и технологии. Но это самый тяжёлый путь для начинающих.
- Университет. Если вы оканчиваете школу и хотите быть программистом, тогда идите в университет. Если не за знаниями, тогда за корочкой. Она может послужить бонусом при устройстве на работу. Хотя и какие-то знания вы тоже получите. Но не забывайте заниматься и самообучением. К выбору вуза стоит подойти очень ответственно. Внимательно изучите программы обучения и выбирайте лучшие технические вузы.
- Ментор. Будет очень неплохо, если вы найдёте человека, который согласится помочь вам и направит вас в правильную сторону. Он подскажет подходящие книги и ресурсы, проверит ваш код, даст полезные советы. Кстати, мы уже писали о полезном ресурсе, где вы сможете найти ментора. Наставника можно искать среди знакомых программистов, на IT-тусовках и конференциях, на онлайн-форумах и так далее.
- Специализированные практические курсы. Попробуйте поискать в своём городе курсы, где вас обучат какому-нибудь языку программирования или технологии. Я был приятно удивлён количеством таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.
Какой язык, технологию и направление выбрать
Когда вы станете программистом, через годик-другой будете вольны выбирать любой язык, который вам нравится. Но при выборе первого языка программирования новичок должен учитывать следующие критерии:
- Наличие на рынке вакансий. Конечная цель этого пути — найти работу программистом. А это будет трудно сделать, если на рынке вакансий никто не будет искать разработчиков на вашем языке программирования. Проверьте сайты с вакансиями, посмотрите, кого больше ищут, выпишите десяток языков. И переходите к следующему критерию.
- Низкий уровень вхождения. Если вам придётся потратить длительное время на изучение языка, это может отбить у вас охоту к программированию вообще. Почитайте о тех языках, которые вы выбрали выше. Просмотрите литературу, которую нужно будет прочитать, чтобы изучить эти языки. И выберите те, о которых пишут, что они лёгкие, или которые вам показались лёгкими. Такими языками могут оказаться PHP, Ruby, Python.
- Кайф от процесса. Если вам не нравится писать код на выбранном языке, вы не будете получать удовольствия от этого процесса, от работы и от жизни. А оно вам надо? Делайте правильный выбор.
Также вам придётся определиться с направлением программирования. Мобильное, десктопное, игры, веб, низкоуровневое программирование и так далее. Самые популярные и относительно лёгкие отрасли — разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой. То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.
В любом случае изучите веб-технологии. Это язык разметки HTML, стили CSS и JavaScript, который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.
Как получить начальный опыт
Без опыта вы не получите работу. Без работы вы не получите опыт. Замкнутый круг реальной жизни. Но ничего страшного, мы из него выберемся.
Во-первых, не стоит ждать, пока вы прочитаете все книги по выбранному языку программирования. Начинайте писать свои первые строки кода уже после второй главы книги. Выполняйте все задания из книг, перепечатывайте примеры, разбирайтесь в них. Усложняйте примеры и задания из книг своими идеями. Создавайте свои задачи к пройденному материалу. Решайте эти задачи.
Во-вторых, вам нужно найти свои первые проекты. Это, наверное, самый сложный вариант, но рабочий. Вам придётся самому искать заказы, выполнять их, заморачиваться с оплатой. Для новичка это архисложно, но зато затем все остальные варианты покажутся плёвым делом. Выполненные проекты можно будет записать в опыт и показать вашему будущему работодателю. Реальные проекты являются большим плюсом в вашем резюме.
Если вы знаете английский язык, регистрируйтесь лучше на англоязычных биржах. Рынок там больше. Если не знаете английского, учите его. А пока что вам доступны русскоязычные биржи фриланса. Ищите небольшие проекты, которые соответствуют вашему уровню знаний или чуть выше него. Подайте заявку на пару десятков таких заданий. И приготовьтесь получить море отказов. Но если одна-две заявки выстрелят, у вас будет шанс получить реальный опыт.
Ещё одним неплохим вариантом для получения реального опыта является open source. Таким проектам всегда нужны новые люди, пусть даже и новички. Вы можете поискать в проекте баги или посмотреть в баг-трекере и предложить методы их решения. Найти такие проекты легко на GitHub или других сервисах для хостинга кода. Не стесняйтесь задавать там вопросы.
Четвёртый вариант получения опыта — помощь знакомым программистам. Попросите их передать вам маленькие и несложные задания. Если что-то не будет получаться, у вас всегда будет к кому обратиться. И при этом вы будете участвовать в реальном проекте.
Последний способ — собственные проекты, различные хакатоны или работа в коворкинге. Свои проекты сложно начинать самому, лучше поискать знакомых или друзей.
Почему стоит выбрать Python
Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является Python. Я очень советую выбрать именно его в качестве первого языка программирования.
Код программы на Python читабелен. Вам даже не нужно быть программистом, чтобы в общих чертах понять, что происходит в программе. Из-за несложного синтаксиса Python вам понадобится меньше времени для написания программы, чем, например, на Java. Огромная база библиотек, которая сэкономит вам кучу сил, нервов и времени. Python является высокоуровневым языком. А значит, вам не нужно особо думать о ячейках памяти и о том, что там разместить. Python — язык широкого назначения. И он такой простой, что даже дети могут его выучить.
Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.
PHP — ещё один очень популярный язык. И, мне кажется, он даже проще, чем Python. Очень легко найти себе ментора или решение какой-нибудь проблемы на форуме. Всё потому, что в мире существует огромное количество PHP-программистов разного уровня. В PHP нет нормального импорта, есть множество вариантов решения одной и той же задачи. А это усложняет обучение. И PHP заточен исключительно под веб.
Языки C и C# очень сложны для новичка. Ruby — хороший выбор в качестве второго языка, но не первого. JavaScript — очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.
Важен ли английский язык
Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.
Что нужно знать, кроме языка программирования
Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что — зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.
Всем нужно выучить алгоритмы. Попробуйте пройти курс на Coursera или найти подходящую для себя книгу по алгоритмам. Кроме этого, нужно знать одну из баз данных, паттерны программирования, структуры данных. Стоит также познакомиться с репозиториями кода. Хотя бы с одним. Обязательно знание систем версионного контроля. Выбирайте Git, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста — уметь гуглить. Без этого вы не проживёте.
Последние шаги
Вам нужно подготовить резюме. Не просто резюме, а хорошее резюме. Не стоит писать там лишней информации, но и умалчивать о своих умениях тоже не нужно. После того как вас пригласят на интервью, вы должны к нему подготовиться. Пройдитесь по материалу, который указан в вашем резюме. Вы должны быть уверены в своих знаниях. Просмотрите проекты, над которыми вы работали, вспомните технологии, которые вы применяли. И вперёд — к светлому будущему с новой профессией программиста.
lifehacker.ru
Игры для программистов, часть вторая / Хабр
Infinifactory
Ещё одна игра от автора великолепного SpaceChem, с обзора которого начинался мой предыдущий пост. Теперь (фанфары и визги школьниц) — в 3D! В принципе, наличие третьего измерения — наиболее существенное отличие от предыдущей игры. Суть геймплея не подверглась особым изменениям: нужно брать детальки со входа, делать из них другие детальки и отправлять их на выход. Однако нельзя сказать, что Infinifactory сугубо вторична. Наличие гравитации, способы манипуляции с деталями — всё это создаёт совершенно новые задачи, не вызывая ощущения дежавю. Отдельное удовольствие доставляет сюжет. Да, да, сюжет головоломки про создание конвейеров. Практически производственная драма… в космосе. Главного героя похитили могущественные, но довольно тупые инопланетяне, и теперь он работает для них за еду. Сюжет оказывает влияние на то, как именно называются и выглядят совокупности кубиков на входах и выходах конвейера. Думаю, вы никогда не сумеете изгладить из памяти миссию про изготовление китовых консервов. Ещё можно вспомнить прекрасный цинизм, с которым игра заставляет вас налаживать сборку камер-одиночек, полностью аналогичных той, в которой вы находитесь между миссиями. Впрочем, зачем я это пишу? Вы же наверняка уже бросили читать и пошли устанавливать игру.TIS-100
Игра того же разработчика, о которой на Хабре уже есть отдельная статья, но я всё равно напишу о ней своими словами, потому что я люблю писать, а игра того заслуживает. Если коротко, это симулятор примитивного многопоточного ассемблера, на котором вам по сюжету приходится писать разнообразные хеллоуорлды. Возможности его бедны, а в каждую ноду помещается очень ограниченное число строк, из-за чего у программиста возникают трудности, которые (я надеюсь) вряд ли встретятся в реальной работе. А чтобы жизнь не показалась мёдом, общаются ноды между собой асинхронно. Из этих трудностей рождается суть игры: ни одна нода не может целиком реализовывать сколь-нибудь сложный алгоритм, потому приходится разделять его между нодами, иногда жестоким и противоестественным способом.
Human Resource Machine
А вот ещё один ассемблер. Обманчиво простой, с мультяшной графикой и «программированием мышкой». Наверное, не один ребёнок, получив в подарок «детскую развивающую» игру, в ярости сломал об колено клавиатуру, пытаясь оптимизировать решение какой-нибудь дебильно простой задачи, чтобы оно выполнялось на два такта быстрее.
Кстати, раз уж мы заговорили про обучающие игры…
MHRD
После таких низкоуровневых вещей, как ассемблер, почему бы не… опуститься на уровень ниже? MHRD — это игра про логические элементы, в которой игрок своими, можно сказать, руками, собирает из голых NAND полноценный процессор. Причём игра подводит его к этому плавно, без резких скачков сложности. На мой взгляд, прохождение этой игры нужно давать в качестве лабораторной работы к курсам типа «Архитектура компьютера».
«Сюжет» игры незамысловат, как в старом добром немецком кино: игрока нанимает на работу корпорация MicroHard, которая хочет завоевать рынок процессоров, или что-то в этом роде. Соответственно, пока она будет завоёвывать рынок, игрок должен собрать сам процессор. Делается это с помощью своеобразного «языке программирования», на котором описываются элементы и их связи. Однажды собранный элемент можно переиспользовать в дальнейших схемах, не описывая его каждый раз заново.
К сожалению, игре не хватило совсем немного, чтобы стать истинным бриллиантом. «IDE» подтормаживает, нет возможности интерактивно поиграть с собранными элементами. Игра не великолепна, но весьма хороша.
Hack'n'Slash
Порой игроки хакают игры, чтобы упростить себе прохождение. Но что насчёт игры, в которой хаки необходимы для прохождения? Hack'n'Slash начинается с того, что главный герой (сходство которого с Линком из Legend of Zelda, разумеется, совершенно случайно) находит странный меч, оканчивающийся USB-штекером. Тыкая этим мечом в разнообразные игровые объекты, он может изменять их свойства — например, самое банальное, установить свойству «здоровье» монстра значение «0».
В дальнейшем герой находит новые артефакты, делающие другие полезные вещи — например, показывающие collision boxes всех объектов на экране. А для победы над финальным боссом необходимо модифицировать скрипты самой игры, написанные, кстати, на языке Lua. Честно говоря, графика меня немного вымораживает, но с геймплейной точки зрения игра весьма любопытна.И раз уж мы заговорили о графике…
Untrusted —or— the Continuing Adventures of Dr. Eval
Раз уж мы заговорили о графике, то у Hack'n'Slash есть брат близнец, который приятнее мне по трём причинам. Во-первых, он бесплатный и опенсорсный. Во-вторых, он в ASCII-графике, что согревает моё сердце как человека, прошедшего оригинальный Dungeon Crawl. И в-третьих, у него под капотом JS, а не Lua — тут, конечно, дело привычки, но первый для меня уже роднее русского, а со вторым я имел дело лишь при написании мелких модов к Don't Starve.
Игровой процесс похож на то, что происходит в самом конце Hack'n'Slash: игрок получает доступ к самому коду игры и может модифицировать отдельные его участки, что необходимо для прохождения. Игра остроумна и прекрасна; единственный недостаток её в том, что она слишком короткая.
Что ж, пожалуй, на этом всё. До встречи в третьей части, ещё через четыре с половиной года.
P.S. Предвижу, что в комментариях упомянут Shenzen IO. Мне известно о её существовании, но, к сожалению, я не успел ещё в неё поиграть, а потому не стал писать о том, чего толком не знаю.
habr.com
Игры, которые учат программированию / Хабр
Образование стоит дорого. Хорошее образование стоит очень дорого. Но тем не менее возможность получить бесплатное и качественное образование есть у каждого. Компании и корпорации во всём мире вкладывают деньги в создание бесплатных образовательных продуктов. Отчасти, чтобы обеспечить себя квалифицированными кадрами в будущем. Отчасти, для преодоления бедности, предоставления всем равного доступ к качественному образованию.
У каждого есть возможность воспользоваться специально созданной для обучения школьников средой программирования Scratch, которую разрабатывают специалисты одного из самых престижных технических учебных заведений США и мира — Массачусетского технологического института. Или игрой Minecraft, за которую Microsoft год назад заплатила $2,5 млрд и с помощью которой, в том числе, планирует обучать детей программированию. Или обучающими играми, которые создают энтузиасты и добровольцы во всём мире.
Препятствием для использования подобных ресурсов может быть неосведомлённость о их существовании или незнание языка. Действительно, англоязычных ресурсов и игр значительно больше. Но существуют и русскоязычные игры, обучающие программированию. Здесь собраны бесплатные русскоязычные браузерные игры, которые научат составлять алгоритмы и даже писать код. Они размещены в порядке усложнения. Последние из игр в этом списке предназначены для взрослых людей. Вряд ли можно стать программистом только играя. Но можно получить положительный заряд на старте, изучить основные алгоритмические конструкции и логику программирования, приобрести навыки планирования действий при решении практических задач.
Code.org
Ресурс создан для детей от 4-х до 10-и лет, но, как утверждают его создатели, подойдет пользователям всех возрастов. Обучение начинается с самых азов — с обучения использованию мышки. Используется scratch-подобный язык состоящий из блоков. Играя ребёнок разберётся с азами программирования, узнает как алгоритм превращается в JavaScript-код и создаст свою собственную компьютерную игру.
Minecraft
Minecraft — совместный проект Microsoft и Code.org. Игра рассчитана на детей от 6 лет и предполагает решение различных задач при помощи построения алгоритмов. Это позволяет детям освоить основы программирования, понять как работают его базовые механизмы.
Minecraft действительно образовательная игра: она развивает пространственное мышление, математические и логические способности. И ещё игра учит чтению и письму, повышает общую грамотность. Впрочем, не только Minecraft имеет такой эффект, а любая деятельность, которой дети увлечены и которая мотивирует их к приобретению новых полезных навыков.
Скретч
Скретч — специальный визуальный язык программирования, который был разработан в MIT для обучения детей. Изучение Скретч проходит в игровой форме. Скретч развивает логическое и критическое мышление, воображение, дети учатся решать разноплановые задачи, у них появляются новые возможности для самовыражения и творчества. Разумеется, необязательно, что ваш ребенок в будущем станет программистом. Однако, обучение детей элементарным основам программирования поможет им развиваться быстрее и веселее.
Blockly
Blockly, как и Скретч, создаёт программу при помощи соединения блоков. Но если Скретч больше подходит для внеклассных занятий, Blockly можно использовать в школе. Эта игра позволяет создавать учебные задания, компоновать их в модули, проходя которые, ученик постепенно осваивает какую-то тему. Вот, например, как выглядит созданная в Blockly головоломка по странам и флагам:
ПиктоМир
ПиктоМир, разработанный НИИСИ РАН по заказу Российской академии наук, — наш ответ зарубежным аналогам. В НИИСИ РАН уже разработали систему «КуМир», в которой с программированием знакомятся старшие школьники, но игрового элемента в ней нет.
Сюжет игры: на картинке изображен космодром, с которого стартуют космические корабли, и при старте они выжигают покрытие. А поскольку там всё горячее и радиоактивное, то людей посылать восстанавливать покрытие нельзя, и туда посылают робота-вертуна (подозрительно похожего на R2D2). Этому роботу нужно задать программу, чтобы он сам не разбился о бордюрчик (робот в этом случае краснеет) и всё выгоревшее залил защитным составом.
Робот раскрашивает поля, а ребёнок учится составлять алгоритмы. Все подсказки выполнены с помощью графики, поэтому ПиктоМир можно предлагать детям, не умеющим читать, учёные постарались сделать действия понятными даже для малышей.
Первые четыре уровня игры доступны всем, пятый уровень — головоломки для одарённых детей, шестой уровень — головоломки для родителей, чтобы им тоже было интересно.
zesetup напоминает про игру Colobot.
Colobot
Колобот — 3d стратегия, разработаная компанией Epsitec в 2001. Игра призвана обучить детей (от 10 лет и старше) навыкам программирования в игровой форме. Геймплей заключается в создании программ для роботов. Цель — подготовить планеты для заселения и добычи полезных ископаемых.
Особенностью игры является возможность создавать программы, в соответствии с которыми в игре действуют роботы (задавая им алгоритмы самостоятельной работы и заменяя ими монотонные действия, которые может делать и сам игрок), поэтому считается, что игра способствует обучению программированию. Язык программирования, встроенный в игру, похож на C++ или Java, но имеется ограничение на размер программы — не более 20 000 символов, что не позволяет писать серьёзные программы вроде имитации искусственного интеллекта. К каждой миссии прилагается обширная справка с объяснением что необходимо сделать. Также зачастую там есть шпаргалка — готовая программа (или куски программы) с помощью которой можно решить поставленную задачу.
Существует русская локализация игры.
Microsoft Imagine
Microsoft Imagine предлагает средства для обучения и разработки, начиная с самой первой игры или приложения до облачных исследовательских проектов с использованием больших данных. Приложения распределены по уровням сложности. Самые простые из них доступны детям 9-10 лет, более сложные предназначены для старшеклассников и студентов. Использование только некоторых приложений доступно в браузере, для запуска остальных требуется установка бесплатного ПО и операционная система Windows. Ежегодно проводится конкурс Imagine Cup, в котором могут принять участие школьники, студенты и аспиранты из разных стран мира. Главным заданием участников является разработка идеи проекта или игры и создание её прототипа с помощью современных информационных технологий.
JavaRush
JavaRush — изучение программирования на Java в виде онлайн-игры. Каждому уровню соответствует отдельная солнечная система на звездной карте. Лекциям внутри уровня — планеты солнечной системы. Каждая открытая лекция – это перелёт на очередную планету. Когда все лекции открыты, корабль перелетает к следующей звездной системе. Весь курс Java Core на JavaRush состоит из сорока уровней. Первые 10 уровней доступны всем, уровни 11 и выше доступны при наличии платной подписки.
На каждом уровне JavaRush 10-15 мини-лекций, так что 10 бесплатных уровней — это около 140 лекций и где-то 230 задач. Достаточно, чтобы вы определились, подходит вам JavaRush или нет.
Code Combat
Разработчики Code Combat предлагают учиться программированию, захватывая земли и побеждая врагов в лучших традициях RPG.
Начинать играть можно «с нуля», не имея о программировании никакого представления. Пользователь может выбрать язык программирования, который хочет освоить: Python или JavaScript. Уровни игры выстроены как хороший курс программирования с нарастающей сложностью.
Вам предстоит стать волшебником, который c помощью программного кода меняет окружающий мир. На каждом уровне перед игроком ставится определенная задача — например, найти гриб, который поможет победить людоеда, повести в бой солдат или выбраться из темницы. В начале всё просто, вы пишете код и сразу видите на экране, как он будет выполняться. Потом задачи становятся более сложными, и вам приходится думать всё больше и больше.
Игра имеет 80 бесплатных уровней и открытый программный код. Сотни игроков из разных стран приложили свой талант к тому, чтобы CodeCombat стал лучше. Именно благодаря этому мир воинов и магов оказался быстро переведён на разные языки, в том числе на русский.
Нужно научиться программировать? Вам не нужны уроки. Вам нужно написать много кода и хорошо провести время, занимаясь этим. Это сущность программирования. Это должно быть весело. Не в том смысле, когда «уау, бейдж», а в том, когда «нет, мама, я должен закончить уровень». Вот почему Code Combat — это многопользовательская игра, а не курсы. Мы не остановимся, пока вы не сможете остановиться — но на этот раз это действительно хорошо. (из описания на сайте проекта) UPD После 18 уровней в игре появляются две ветки — одна платная, вторая бесплатная. В игре 80 бесплатных уровней. По платной подписке доступны 60 дополнительных уровней.Ещё статьи по теме:12 игр, которые обучают детей программированиюМой опыт обучения детей 8-10 лет программированию на ScratchПриключенческая игра, в которую играют путем изменения её Javascript-кодаFightCode: танковые войны на JavaScriptОбучение программированию через игру или как быстро собрать весь мёдColobot и Ceebot
habr.com
Как начать разрабатывать игры даже если до этого вы были бухгалтером / Хабр
Есть такой стереотип — когда кто-то говорит, что он в разрабытавает игры без команды, все сразу представляют его программистом. На самом деле, стереотип не так далек от правды: скорее всего, разработчик, описанный выше, действительно умеет программировать, но программистом он может себя не считать.
После одного игрового проекта со стримом всего процесса разработки мне часто пишут начинающие разработчики, что-то спрашивают, что-то показывают и на что-то жалуются. Недавно мне пришлось влезть в спор двух ребят, где темой спора было: “Что круче знать 3д-моделирование или программирование, если собираешься разрабатывать игры?”. Влез к ним в спор с предложением сделать первый шаг из схемы, что родилась в процессе участия в игровых проектах и создания своих.
Шаг 0. Станьте разработчиком игр
Именно первый, а точнее даже “нулевой”, шаг сделает Вас сразу разработчиками игр. Это не проекты, которые, может, уже есть у Вас за плечами, не навыки, котороми Вы, может, владеете, а простой, но очень важный шаг: скажите себе, а заодно и всему миру, что вы разработчик игр. Как только у вас уляжется в голове ответ на вопрос, чем вы занимаетесь — разработкой игр, — вы сразу станете для себя и окружающих разработчиком игр.Как это сказать себе и другим?
Уверен, что у вас уже есть какая-то профессия. Также я уверен, что Вы каждый день посещаете сайты/форумы, связанные с вашей профессией, читаете блоги и, может, даже книги. Первое, что надо сделать, чтобы стать разработчиком игр:- Начать посещать сайты, связанные с тематикой игр и разработкой игр.
- Подписаться на блоги разработчиков, творчество которых вам нравится.
- Купить пару книг в “киндл” на амазоне, например, о игровом дизайне.
Все, вы разработчик игр. Действительно, элементарный шаг вам может дать доступ к столь “закрытой” профессии как разработчик игр. Правда, без опыта и регалий, но никто (ни вы, ни окружающие) уже не оспорит, что вы разработчик игр.
Шаг 1. Найдите себе применение как разработчику игр
Теперь, когда Вы смело можете считать себя разработчиком игр, надо найти себе применение. Как писатели могут пребывавать в двух состояниях: ищут идею книги, пишут книгу, — так и разработчики: ищут проект (идею), делают проект. Бывает, конечно, еще и поддерживают проект, но лично я его всегда объединяю с процессом поиска нового.Слова “найти проект” для каждого разработчика игр значат разное, вот список популярных способов поиска проектов:
Выйти из состояния “поиска проекта” нужно как можно быстрее, и желательно выйти в состояние “делаю проект” и делать проект с шансами на успех: релиз и популярность.Этот этап — первая проверка для начинающего разработчика. Сделать выбор при полном отстутствии опыта очень сложно, но, к счастью, любой выбор принесет нам опыт.
Вот некоторые советы для прохождения этого шага:
- Начните что-то свое. Свое от идеи до реализации в одиночку. Даже если у вас есть навыки программирования или вы сносно рисуете, — не вступайте в существующие проекты. Сделайте что-то небольшое, не требующее серьезных навыков. Например, я сделал маме подарок на НГ — 3д-игру по психологической методике: У меня не было опыта разработки на C# и программировать я особо не умел (немного знал python) и никогда до этого не моделил.
- Скажите себе кодовую фразу: “Если кто-то смог, я тоже смогу”. Как бы вы ни были готовы к игровому проекту, всегда будет задача, с которой вы никогда не сталкивались. Например, даже у опытных программистов программного обеспечения, часто нет опыта создания шейдеров. Скажите себе кодовую фразу и учитесь по ходу.
- Найдите себе единомышлеников. Мне в моем развитии очень сильно помогли: скайп-чатик разработчиков социальных игр (теперь уже создатели: Голос Припяти 3D, Tanks Heroes, Contract Wars, Батла и многие другие), а также одногруппники из Scream School по курсу гейм-дизайна. Их успех будет вас подталкивать, а обмен опытом ускорит процесс развития.
- Выберите себе платформу для разработки. Определите платформу, которая вас устраивает. Это может быть, например, Unity — за ее возможности, огромное комьюнити и сравнительно низкий порог входа. Вне зависимости от платформы, станьте ее евангелистом. Это позволит вам наладить коммуникацию с другими разработчиками и быстрее развиваться.
- Не давайте эмоциям взять вверх. Ошибки и неудачи станут вашими спутниками на длительный период, а если вы будете делиться процессом развития с русскоговорящими разработчиками, будьте готовы к тоннам говна большому количеству негативных отзывов. Не позволяйте эмоциям брать вверх: слушайте любые отзывы и предложения, но относитесь ко всему с необходимой критикой. Сохраняйте критичность ума.
Шаг 2. Помогите себе закончить хотя бы ОДИН проект!
Если вы закончили свой первый проект как разработчик игр, скорее всего, вы что-то делали не так. Даже эпилептоид не сможет закончить свой первый проект, а к первому релизу у него в архиве будет пара-тройка (минимум) замороженных проектов. Это нормально. Мы учимся на своих ошибках, а не совершают их только идиоты или те, кто ничего не делают. Но в какой-то момент нужно будет собрать весь свой опыт, полученный из проб и ошибок, и, наконец, сделать свой первый релиз. У каждого разработчика своя история первого релиза, но у меня есть пару советов, которые обязательно вам помогут:- Вгоните себя в экстремальные условия, а выходом из них сделайте релиз. Поставьте себе реальный, но очень сжатый срок на релиз, например, 48 часов или неделю, но спать будете по 4 часа в день. Это даст сильный толчок, заставит оптимально использовать время и сфокусироваться на результате.
- Сжатые сроки Сжимая сроки, не оставляйте себе время на риск. Сжимайте до последнего, пример с 48 часами — хороший.
- Отсутствие сна Полное или почти полное отсутствие сна хороший мотиватор, но не доходите до крайностей. Практика показывает, что даже молодому организму надо давать отдых.
- Менеджмент времени Не стоит выделять много времени на тайм-менеджмент, но не забывайте ставить себе вехи (milestone). Например, скажите себе, что через 5 часов вам надо сделать играбельный прототип.Например, в своем первом 48 часовом марафоне (на нем я только рисовал), я за первую треть времени нашел стиль игры, нарисовал основной, игровой экран и все спрайты врагов. И за оставшееся время сделал 170+ спрайтов анимации и дорисовал интерфейс.
- Конкурсы, особенно мероприятия, типа, HackDays или Ludum Dare, где нет времени на раздумья и надо сразу бросаться в работу, — отличное подспорье для пунктов выше.
- Поставьте себе рамки. Для первого релиза, особено в сжатые сроки, критически необходимо знать рамки проекта. Выпишите себе минимум, что нужен для релиза, и не выходите из него. По необходимости:
- Урежьте список возможностей Было бы здорово сделать возможность летать на самолетах, но если вы делаете шутер про пехоту, сфокусируйтесь на стрельбе.
- Сократите время игры Вероятно, вы рассчитывали сделать синглплеер на 5 часов игры, но вы останетесь победителем с демкой на 20 минут.
- Уберите часть контента Конечно, дополнительная карта не будет лишней для вашего тактического шутера, но релиз останется релизом даже с одной картой.
- Ищите простые пути. Напоминайте себе, что вам необходим релиз, а не шедевр. У вас остается право на ошибку, но вы потеряли право на заморозку проекта.
- Используйте костыли и хардкод Не стоит фокусироваться на универсальности или производительности кода. Оптимизация тоже подождет. Просто идите к результату.
- Копируйте, а не придумывайте Если с ответом на любой вставший перед вами вопрос возникают трудности, копируйте решение коллег.
- Используйте опыт на 150% Учет сделаных ошибок — это, несомненно, хорошо, но пока вы их совершали, вы собрали багаж наработок. Постарайтесь использовать из него что-то.
- Подключите все ресурсы Если у вас есть друзья, готовые помочь, не отказывайтесь, а если у вас есть денежный ресурс — вкладывайте (покупайте готовые решения, контент и рабочие руки). Ваши вложения окупятся в дальнейшем.
Шаг 3. Сделать полноценный релиз
Когда прошлые шаги позади: релиз за плечами и опыт какой-то уже есть, — хочется, чтобы ваше хобби (не приносящий доход род занятий) переросло в настоящую профессию и источник хорошего, постоянного дохода. Каждый разработчик понимает, что для этого ему нужен полноценный релиз, не тот (те), что мы получили из второго шага, а полноценный релиз с шансом на успех. Увы, но релиз из прошлого шага нужен только для ощушения победы, а не успеха.Сделать полноценный релиз — это уже задача с миллионом способов решения, и вы обязательно будете иметь решение к тому моменту, когда у вас появится возможность для его создания. Но вот некоторые советы для настоящих indie (парней, что живут хардкором и разрабатывают свои игры без инвестиций и денег издателя):
- Делайте проект каждый день. У всех начинающих инди есть занятия, с которыми приходится совмещать разработку. Но не забывайте добавлять хотя бы одну строчку кода или новый спрайт в игру каждый божий день. Это очень важно, это пункт номер 1.
- Ставьте себе небольшие задачи и старайтесь выполнять их каждый день. Долго открытая задача, например: “разработать систему инвентаря”, может быстро превратиться в “висяк” с очень низким приоритетом. Поставьте задачу “Интерфейс основного окна инвентаря” и закройте в этот же день, а затем радуйтесь прогрессу.
- Два шага вперед, один в сторону. Какой бы разнообразной вы ни планировали игру, не стоит делать сразу 50 типов врагов и тысячи уровней. Сфокусируйтесь на реализации возможностей игрока, а не способах их проявлений. Делаете слешэр? — Реализуйте возможность рубить врага, а врагов клонируйте.
- Прототипируйте. Когда вы сфокусированы на настоящем релизе, необходимо отдавать себе отчет, что игра должна быть хорошей. Проверить это можно, прототипируя.
- Вы делаете игру. Не стоит делать из своей игры движок или фреймворк. Нет, я не про чистоту кода или возможность его переиспользовать. Работайте хорошо, и результат будет хороший. Не стоит реализовывать возможности до того, как поймете, что они действительно необходимы вашей игре. Например, если вы не уверены, что будет возможность менять цвет одежды героя, не стоит рисовать маску для смены цвета в шейдере. Убедитесь, что ваш дизайн подразумевает наличие предметов перед тем, как создать класс Item.
- И главное… Не бойтесь вернуться на шаг 2. Возможно, еще не время для настоящего релиза.
Удачных вам релизов и быстрого развития.
habr.com
«Я не геймер, мне было интересно создать игру самому» « БНК
Создать игру для мобильного телефона может далеко не каждый. Как пишут на специализированных форумах, для этого нужна целая команда разработчиков. В идеальном варианте, помимо программиста, в процессе должны участвовать сценарист, музыкант и художник. Первой появляется оригинальная идея, затем следуют процесс производства и тестирование, а после - раскрутка. Сегодня мобильные «игрушки» - это целая индустрия, в которой не так-то просто найти свою нишу. Ухтинец Иван Калякин решил пройти весь путь в одиночку. Недавно в сети появилась его игра под названием «Gravitrip» - пластилиновый космический экшн для устройств на платформе android. Ивану 27 лет, увлечение программированием к его основной работе в должности начальника отдела компьютеризации библиотечно-информационного комплекса УГТУ имеет только косвенное отношение. В интервью газете «Молодежь Севера» автор и создатель игры рассказал, чем его детище может конкурировать с тысячами других приложений и игр для «андроидов».
Фото предоставил Иван Калякин
- Это твой первый опыт создания игры?
- Первый серьезный опыт и первая игра, которую я сделал, чтобы в нее играл не только я. До этого были детские зарисовки. Когда мне было лет семь, отец купил старинный компьютер «Spectrum». Тогда писать код на языке BASIC для создания простых элементов на экране было забавой. А когда появился менее допотопный компьютер, стал писать детские игрушки. Все было очень просто, с примитивной графикой. На переменах между уроками информатики развлекал одноклассников. Однажды учительница это заметила и посоветовала мне попробовать другой язык программирования - «Turbo Pascal». Начал писать вещи посложнее, но опять же исключительно для себя. Лет через 10-12 написал несколько приложений под Android, выложил на Google Play. Получилось неплохо. Решил сделать игру. Так появился «Gravitrip».
- Сама игра выглядит довольно интересно - она пластилиновая. Сразу вспоминается классика советской мультипликации.
- Рисовать я не умею, но так вышло, что сносно получается лепить. Пластилиновая графика нетипична для большинства игр. Но если вспомнить, в 90-е годы была пластилиновая игра «The Neverhood». Многие мои друзья вспоминают ее с исключительной теплотой. У нее - своя атмосфера. У каждой фигуры в игре свой характер, потому что она вылеплена руками, есть легкая асимметрия. Графика получается живая, не такая, как векторные рисунки. У меня все элементы игры из пластилина: надписи, герои, планеты. Все делал сам: лепил, фотографировал, обрабатывал, вставлял в игру. И эта работа заняла большую часть времени.
- Сколько всего времени ушло на создание игры?
- Начал больше года назад, в свободное от работы время, но часто делал перерывы, отвлекался на другие приложения. За последние три месяца выполнил большую часть работы. Пластилина ушло коробок десять. Его, к сожалению, нельзя купить отдельным цветом, и когда кончался серый (он был нужен для создания меню), жена приносила новые коробки. Музыка тоже моя. Долго думал, какой она должна быть. Остановился на незатейливой, без претензии на реалистичность. Своего рода легкий реверанс в сторону эпохи восьмибитных игр с их незабываемым звучанием - «SEGA», «Dandy».
- Почему выбрал космическую тему?
- Если честно, не знаю, в голове одновременно рождались и сюжет, и тип управления. Управляется наклоном телефона. Многие гонки созданы по такому же принципу. Оговорюсь, что придумать что-то, чего нигде до сих пор не встречалось, сложно. Новым может быть сочетание элементов. В ближайшее время я сделаю обновление, чтобы играющий мог выбрать тип управления - нажатием или наклоном экрана. И еще мне показалась интересной космическая физика - здесь инерция играет ключевую роль.
- Штудировал учебники по астрономии?
- Нет, в детстве ею увлекался, остаточных знаний хватило. Законы физики, например, гравитация, вносят разнообразие в игру. Мне было интересно объединить управление главным героем и стрельбу по врагам. Стрельба влияет на траекторию движения, и в процессе приходится следить одновременно за несколькими вещами.
- Новых элементов в игре нет, тогда чем она отличается от других, себе подобных?
- В основном игры, которые скачивал, лично мне не очень интересны, потому что сразу видно, какие приемы используют разработчики, чтобы оставить тебя в игре, чтобы ты «кликнул» на рекламу. Там несложный игровой процесс, все сделано так, чтобы у тебя все получалось, тебе дают награды. Основная цель - это монетизация. И это довольно логично. Если бы я руководил компанией, я бы придерживался именно этой стратегии: будет игра интересной или нет - не важно, главное, чтобы она приносила прибыль. А для меня это хобби. Я делал игру, в которую интересно играть и самому, и моим друзьям. Там есть три режима сложности, две части и в каждой - 47 уровней. Изначально я ориентировался на самый сложный вариант и сам многие уровни проходил часами. Начальный уровень одолел мой пятилетний племянник.
Мне хотелось создать нелинейную историю, поэтому в «Gravitrip» можно выбрать, за кого играть: за пришельца, который пытается на своем НЛО перехватить комету, угрожающую Земле, или за комету, которая должна врезаться в Землю и дать жизнь динозаврам. В игре есть четыре главы, у каждой из них свой отдельный мир, и в каждом из них изначально существует конфликт. Во второй главе, например, есть чистильщики, которые убивают крабов, живущих на кометах и мешающих транспортным кораблям. А крабы воюют за свой дом, они жили здесь миллионы лет. И этот конфликт не разрешается, когда миссия пройдена. Нет правых и нет виноватых. Точка зрения зависит исключительно от стороны, за которую ты играешь. Ближе к четвертой главе выясняются подробности истинных мотиваций поступков героев. Я сознательно делал такой сюжет, хотя знал, что 99 процентов играющих не вникает в повествование по ходу игры.
- Ого, целая философия! Ты сам игрок?
- Я не геймер. Пытался поиграть во что-то, но меня не затягивает. Мне было интересно именно создать. Ну и греет душу потенциальная возможность получения прибыли.
- На этом можно заработать?
- Не могу сказать. Загвоздка вот в чем: часто заработок не зависит от качества игры вообще. Конечно, игра должна быть приемлема, качественна, в полную дребедень играть никто не будет. Но если посмотреть на игры в топе, среди них можно найти много весьма посредственных. Продвижением игры и ее монетизацией должны заниматься издатели. Я сознательно решил не публиковаться через них, потому что хочу получить и этот опыт тоже. По мере сил занимаюсь продвижением сам, но это для меня сейчас не первостепенная задача. Продвижение всегда затратно. Надо вкладываться в рекламу, чтобы попасть в топ. Риск «прогореть» довольно высокий, и даже признанные гиганты-авторы тоже не знают секрета успеха, иначе бы они клепали исключительно хиты и не имели бы игр, которые не «выстрелили».
- Когда выкладывал свою игру в маркет, был страх конкуренции?
- Среди игр и аркад конкуренция, наверное, самая большая. Но какой смысл бояться? Выложил игру, и вполне возможно, что у нее не будет успеха, что ее будут мало скачивать, но это как минимум даст мне бесценный опыт, я проанализирую причины и использую новые знания при создании последующих игр. Единственное ограничение: моя игра только на русском и английском, соответственно, конкуренция идет между русско- и англоязычным приложениями.
- В «Gravitrip» ты реализовался, или будут еще опыты?
- В процессе создания игры я узнал много новых вещей, трюков, правил. Очень хочется написать следующую игру, но это гипотетическое будущее.
www.bnkomi.ru
Как «не программист» игру писал / Хабр
Началось всё с того, что ровно год назад меня посетила идея: сделать игру своими руками. Назовите это модным, популярным или трендовым, мол, сейчас многие хотят и делают, но для меня это было, как если б я китайский язык учить решил, да не просто, а так, чтобы с дипломатами китайскими на одном уровне разговаривать. Опыта нет, а к программированию отношусь лишь тем боком, что работаю рядом с сервером и, если спросят, его обслуживаю. Одним словом — эникейщик и чуточку системный администратор.
С чего всё начиналось
А начиналось всё с выбора платформы. С жанром игры я определился ещё давно. Не отнять у меня любви к Tower Defense, как не пытайся. Но сколько игр этого жанра ни пересмотрел, всегда мне чего-то не хватало. И эта нехватка острая и послужила главным толчком: «Да пропадай оно всё пропадом, сделаю всё сам!» Ну раз решил, отступать некуда. Выбирал-выбирал платформу и остановился на флеше, язык Action Script 3.0 (слышал, не любят на хабре флешеров, хотя сам считаю его таким же языком программирования, как и другие). Выбрал я его потому, что у самого дочка подрастает и любит игрушки всякие в социальных сетях рассматривать. Вот, думаю, оценит папину деятельность, когда вырастет.Информация в меня входила довольно шустро. За неделю я прочитал 2 книги, делал записи, конспектировал, рисовал таблицы, чтобы лучше всё запоминалось. Странное стечение обстоятельств или сила свыше, но через неделю я уже сел за свою первую игру. Я мог передвигать по экрану квадраты и треугольники (ну не смейтесь же), отслеживать положение мыши, менять цвета, крутить загогулины. Всё это хорошо, но на таком далеко не уедешь, хотя некоторые умудряются. Главная проблема состояла ещё в том, что я абсолютно не умел рисовать. Я не претендовал на супер-качественную графику в моей будущей игре, но даже элементарные вещи давались мне с трудом. Думаю, многие знают, что в играх жанра Tower Defence необходимы, как минимум, дороги, враги и башни-пушки, по этим врагам стреляющие и основная база, куда враги и стремятся. Ну о каком-либо пейзаже на заднем фоне, я вообще умолчу. Вот макет моей первой разработки:
3ds-max
Так я решил познакомиться с 3-д Максом. Я уже был с ним знаком и до этого, но ничего практического я в нём делать не умел, разве, что совсем примитивы рисовать. Итак, проблему графики в игре можно решить с помощью этой замечательной программы. Мне необходимо было нарисовать какое-то подобие пушек, а так как идея моя немного фантастическая, то и пушки должны быть не настоящие. Да и враги не блещут превосходством отрисовки. Но начало было положено.Шел долгий и, признаться, увлекательный процесс. Все положения, повороты орудий рендерил отдельно, ни о каком 3d-движке в игре речи вообще не шло.
Кстати, о движке
Раз уж я задался целью сделать всю игру от начала и до конца, то решил никаких готовых движков, платных или бесплатных, не брать. Всё сам, благо математику в школе учил. В интернет не подсматривал, чужой код не воровал. Даже когда необходимо было сделать нахождение путей, я честно, чтобы не падать в грязь лицом перед самим собою, два дня как в тумане просидел и придумывал этот алгоритм. Да, изобретал велосипед. Да, пусть и так. Это потом я узнал, что, оказывается, заново «придумал» самый медленный из существующих «Волновой алгоритм». Главное — он работал. Восторг был неописуемый!Пушки уже стреляли, взрывы взрывались, ракеты летали, а некий «замедлитель» замедлял врагов. Вон там вверху база, а враги к ней едут по дороге. А задача игрока, так расставить пушки, чтобы врагам не дать на базу пройти. Пушки, кстати, ставятся только в специальные слоты — зелёные на скриншоте.
Думаю, многих из вас, настоящих или начинающих программистов и разработчиков, посещало то чувство, когда ваше детище вам не нравится, а чтобы переделать, требуется немало сил и энергии. Вот и меня посетило. Ну плоско же как-то, ну совсем не та картинка. Графика объектов ужасная, но её стерпеть можно, а вот эту плоскость — нет, не могу. И принимаю я стратегическое решение переделать всё в изометрию. Почитал, посмотрел. Не трудно, в принципе. Взял да переделал. Перерисовал все объекты, сменил точку зрения, переделал все функции с учётом новой геометрии. Всё-таки намного лучше, хоть и не идеал.
Работа кипела, к общему интерфейсу было добавлено главное меню и окно выбора миссий.
Сами карты я рисовал вручную, цифрами в матрице. 11 — например, дорога, 16 — слот орудия, 23-28 — деревья всякие и т.д. Трудоёмко, но сделать можно. За каждую выполненную миссию я начислял игроку звёзды. Снабдил игру звуками — стало уютнее. Сделал экраны победы и поражения. Добавил самолёты. Решил, что за звёзды можно покупать какие-то улучшения — сделал магазин с этими улучшениями.
Ну, а дальше то что?
Действительно, что делать дальше, я так и не решил. Игра была уже почти готова, когда я задумался на этим вопросом. Где опубликоваться? Я выбрал Вконтакте.ру (да, пинайте), только потому, что там это можно сделать и у меня есть аккаунт этой сети. Просто залил туда, сделал небольшой сервер (для этого пришлось научиться основам PHP) и подал заявку на одобрение и добавление в каталог. Ни о каком зарабатывании денег речь не шла, в игре не было ни социальной составляющей, ни платёжной системы. Я был наивен в своём стремлении. Естественно, игру тут же отклонили с формулировкой «Для прохождения модерации необходима существенная доработка графики».Вежливо. Очень вежливо. Любой уважающий себя разработчик скажет, что мне просто не сказали горькой правды. Ну что ж. Я опустил руки, но не надолго. Мне нужны были люди, способные оценить качество моей работы, да просто геймеры. Хотелось обратной связи.
Первые игроки
Решил я тогда опубликовать свою статью на одном известном сайте развлекательного характера, название которого я здесь разглашать не буду. Знал, что на хабре мне публиковаться не стоит. Опубликовал, рассказал всё как есть и люди пошли. За один день пришло 2500 человек. Знаю, что для игры это немного, но для меня тогда, да и сейчас, это значило немало. Пошли отзывы, очень многим игра понравилась. Честно говоря, несмотря на такую убогую графику, не было ни одного плохого отзыва. Кстати, «весила» игра всего полтора мегабайта, что придавало ей «вес». А что, загружай себе быстро в офисе и играй.Многие воодушевились моей идеей, стали писать разные люди: программисты с хорошими идеями, другие программисты, с идеями в стиле «грабить корованы», люди, разбирающиеся в серверах, и главное — дизайнеры. Через какое-то время статистика игры стала неумолимо падать, ведь новых игроков мне брать было неоткуда. Почти год я скитался в сомнениях, продолжать ли мне развиваться или забросить заниматься гейм-девом. Год пустоты. После, хорошо отдохнув, я всё же решил не останавливаться.
Дизайнер
Одним из тех, кто написал мне, был Александр — дизайнер-самоучка, такой же как я. И так же увлеченный идеей сделать игру. Его я и выбрал. Мы обсудили с ним игродел, помечтали о будущем и решили, что начать можно с того, что возьмём мою игру и перерисуем в ней всю графику. С момента публикации игры прошло немало времени, но человек был заинтересован в игре. Через пару недель мытарств, нами было принято решение не просто перерисовывать игру, а делать всё по новой. Несмотря на рабочий движок, многих функций нам не доставало. Я надеялся на то, что придётся переписать лишь какую-то часть, но нет — переписывал всё «от» и «до».Новая игра
На первый взгляд, может показаться, что функционально она очень похожа на предыдущую, но всё же это далеко не так. Начиная от движка, нахождения путей, движения врагов, слоёв отображения, заканчивая новыми крутыми улучшениями, супер ударами, врагами — всё полностью новое. Теперь за графику можно не стыдиться. Вот скрин нового редактора карт. Сделан для себя, чтобы карты делались приятнее.
Идея для игры — Сирийский конфликт — плод нашей фантазии. Некие неизвестные захватчики напали на Сирию. В шутку мы называем её «Программно-технический комплекс стратегического планирования при предполагаемых военных действиях в условиях альтернативного сирийского конфликта». Заметьте, «альтернативного». В игре нигде не упоминаются страны, принимающие участие в конфликте. За исключением сирийской — защищающейся стороны. Да, игра носит политический оттенок, но об Украине тоже ни слова.
Что нового?
В игре имеется 6 основных видов орудий:
- осадный дом — интересен тем, что в самом начале игры это довольно слабое орудие, в нём сидят солдаты и стреляют только из автоматов, но, по мере прохождения, оно превращается чуть ли не в самое сильное — у солдат появляются гранаты, а потом и РПГ
- пулемет — весьма мощное орудие, тем более что стреляет непрерывной очередью. Но есть одно «но» — уж больно быстро перегревается
- система ПВО — атакует только воздушные войска противника. В самом начале имеет комплект из одной ракеты, а по мере прохождения комплект увеличивается до трёх
- осадный танк — орудие невероятной убойной силы, поражает сразу несколько противников в радуисе взрыва его снаряда. Вот только перезаряжается не быстро
- автозаправочная станция — или, попросту, огнемёт. Поджигает врагов, и они горят ещё некоторое время. Очень мощное орудие, но с ограниченным радиусом действия
- голограмма — голограмма президента одной влиятельной страны. Может не только замедлять врагов, внушая им страх, но и заставляет столбенеть их в ужасе. Интересно, догадаетесь, какую именно влиятельную страну мы имели ввиду?
Это, что касается основных, а есть ещё дополнительные строения: радар, нефтевышка, супер-удар «Тополь-М», мины и т.д. и тому подобное. Есть дополнительные улучшения базы: защита, самолётные удары, самовосстановление, приток ресурсов. Всего и не расскажешь. Главной особенностью игры можно считать ещё и то, что все орудия поглощают накопленные ресурсы (кроме голограммы президента — не положено ему ресурсы отнимать!). Ведь им тоже хочется кушать. А вот зарабатываются ресурс с помощью уничтожения врагов, установок нефтяных вышек. Получается этакая экономика.
Присутствует в игре различная авиация, вертолёты, самолёты-невидимки, и даже парашютисты есть. Есть боссы — довольно крупные и доставляющие много хлопот. Предусмотрены режимы ускорения времени, запуска следующей волны и прочие вкусности. Всё это приправлено системой глобальных улучшений каждого орудия в отдельности.
Итак, новая игра готова. Я воспользовался старой схемой и опубликовал её на VK (пинайте ещё сильнее). Её быстренько одобрили. Предполагаем портацию на другие платформы, например мобильные, и в другие социальные сети. Теперь у игры есть система рейтингов, топовые игроки, топ друзей и всё, что полагается нормальной игре. На новую разработку ушло чуть более 4 месяцев, но это был крайне увлекательный процесс. Наверное, многие могли бы сделать и быстрее, не сомневаюсь. Для меня лично это был очень интересный путь, от полного непонимания вопроса к законченной полноценной игре. Я начинал с того, что хочу, чтобы этот пост послужил мотивацией. Надеюсь, что так и будет. Нет ничего невозможного, теперь я это точно знаю. Дерзайте и никогда не останавливайтесь!
habr.com
разработчики вспоминают первые созданные ими игры / Блог компании Plarium / Хабр
Наверняка многие разработчики игр, будучи детьми, часто слышали критику в свой адрес. Нас упрекали в том, что мы слишком много времени тратим впустую, живем в вымышленной реальности… Однако часы, проведенные за игровыми консолями, оказались весьма плодотворными, а юношеское увлечение, бесполезное на первый взгляд, переросло в настоящую профессию, которая приносит ни с чем не сравнимое удовольствие.
Мы подготовили для вас перевод статьи с ресурса Gamasutra, чтобы вы вместе с нами узнали о первых шагах известных разработчиков в мире геймдева. Каждый геймдизайнер с чего-то начинал: с маленького забавного проекта на Twine, с отрисовки модуля D&D на листке в клетку, с начерченного в ученической тетради нового уровня Mario или с изобретения “домашних” правил Risk и Monopoly.
Все помнят тот ключевой момент, когда они осознали, что могут придумывать свои собственные правила, рассказывать интерактивные истории, создавать системы и виртуальные вселенные.
Редакция Gamasutra связалась с несколькими успешными разработчиками, которые поделились своими историями о создании игр. Нас ошеломили и вдохновили эти рассказы, и мы думаем, что вас они впечатлят не меньше.
Goichi Suda (Killer 7, Let it Die)
Ребенком я играл во множество аналоговых игр. Когда я учился в 3–4 классах начальной школы, была очень популярна военная игра, где требовалось с помощью карандаша атаковать боевые силы противников, передвигая свои танки, авианосцы и реактивные истребители. Картой служила задняя сторона газеты, на которой можно было нарисовать сотни вариантов, так что мы с друзьями каждый день ходили по новому маршруту.После этого я взялся за разработку своей игры с карандашами. Это были гонки. Как и прежде, я ежедневно прокладывал для нашей компании новый курс. Самым большим стал рейсинг с 50 уровнями, но правила оказались настолько сложными и процесс занимал так много времени, что друзья быстро устали и потеряли интерес.
Первые попытки создания собственной игры и истории стали для меня одним из самых счастливых воспоминаний. Вероятно, в моей карьере геймдизайнера это и послужило отправной точкой.
Sam Barlow (Her Story, Silent Hill:Shattered Memories)
Сейчас книги по игровому программированию, изданные Usborne в 1980-е годы, доступны в бесплатном PDF-формате.Я рос в 80-е и своими знаниями в области создания игр обязан распечаткам тайп-инов, которые наше поколение прилежно копировало из журналов. Стоит также упомянуть книги издательства Usborne, на обложках которых красовались затейливые иллюстрации: драконы, рыцари и невероятная магия!
Когда я был подростком, я придумал серию текстовых игр, повествующих о романтических приключениях одного из моих друзей. Сюжет, в равной степени вдохновленный ситкомом “Дно” производства BBC и играми Infocom, которые я обожал, был довольно лихим и слегка непристойным. Как я вспоминаю теперь, основой моих творений являлись некий антагонизм рассказчика и предполагаемой аудитории и своеобразный юмор моих друзей, которые черпали его из неловких ситуаций, когда-то происходивших с ними. Уже тогда я думал о сложных взаимоотношениях создателя и пользователя в интерактивной истории.
А это Social Realism Dizzy, которую я написал для своих друзей на Qbasic, — уморительная пародия на популярные, но ужасные игры Dizzy.
Изображение в полном размере доступно здесь.
Paul Franzen (The Beard in the Mirror, A Stranger Comes Calling)
Изображение в полном размере доступно здесь.Я сделал свою версию Clue (Cluedo), когда учился в средней школе и был тем еще ботаником. Я заменил все комнаты местами типа McDonald’s и Nintendo HQ. Орудия убийства превратились в наковальню, отравленный шоколад и пистолеты-пулеметы (я тогда помешался на Wolfenstein), а вероятными убийцами стали мы с друзьями. Было очень весело! Эта игра хранится у меня до сих пор.
Думаю, именно тогда впервые проявилась моя склонность интегрировать элементы личной жизни в игры, которые я создаю. C более поздней моей работой Cat President была та же история: большинство портретов персонажей представляли собой реальные фотографии кошек моей семьи и друзей.
Частичное изображение карты мира Aetolia.Когда я была подростком, мою маму беспокоило то, что я слишком много времени проводила за видеоиграми (абсолютно справедливо, я думаю), и она вообще лишила меня такой возможности. Она не осознавала, что сама толкнула меня в распростертые объятия многопользовательских игр — текстовых предшественников современных ММО. Я была очарована персонажами, историями и законами жизни этих виртуальных вселенных настолько, что в какой-то момент у меня кончились все игры, и я начала посвящать время тому, что создавала и оживляла свои собственные миры.
Несколько лет спустя, оканчивая колледж, я стала сотрудничать с Iron Realms Entertainment и работать над их коммерческой МПМ Aetolia. В 2005 году я поняла, что давать жизнь новым персонажам и разрабатывать системы мне нравится намного больше, чем просто играть. У меня уже была работа на полную ставку — я преподавала английский язык в Японии, но все же сотни часов напролет я придумывала квесты, локации и предметы, организовывала мероприятия. И оказалось, что у меня неплохо получается. Осознав это, я решила, что нужно приложить все усилия, чтобы построить карьеру в геймдизайне и получать деньги за то, что я готова делать бесплатно.
Свою первую игру я создал на RPG Maker 2000. Она называлась Toby's Adventure. Я уже ничего о ней не помню, кроме того, что музыкальная тема представляла собой wav-файл с моим пением и попытками издать звуки трубы.
Первые впечатления, связанные с играми, я получила, когда мне было около 10 лет. Я очень много времени проводила за компьютером, играя в Worms и Worms: Reinforcements вместе с другом, но вместо того, чтобы в каждом раунде пытаться уничтожить противника, мы создавали базы для подполья наших команд. Суть заключалась в том, чтобы построить защищенную базу за определенное количество ходов, до того как польется уничтожающий ее дождь из воздушных атак. Тот, чья команда держалась дольше, побеждал. Нам нравилось играть именно так: в этом способе было меньше агрессии и соперничества.
Примерно в это же время я увлеклась редактором уровней в Micro Machines 2: Turbo Tournament. И все же, он казался немного ограничивающим: мне хотелось делать свои уровни с нуля. Помню, как чертила треки на бумаге, но тогда это не переросло в полноценный проект.
Когда я был в четвертом классе, меня научили работать в Logo (также известном как Turtle Graphics) на Apple IIGS. Это был простой программируемый инструмент для рисования. Нам дали задание изобразить несколько простых форм, но мне настолько понравился Logo, что я немного вышел за рамки и сотворил целую зимнюю сцену со снеговиками, горами, снежинками и так далее. Я даже попытался создать анимацию, “перерисовав” некоторые участки и заставив их “двигаться” по экрану. Мой учитель был поражен! К сожалению, тогда я не понял, насколько это важно и как вообще относится к программированию и разработке игр. Лишь много лет спустя я снова сделал что-то с помощью компьютерной графики.Редактор игрового движка.
В старших классах я использовал редактор Duke Nukem 3D для создания карты уровня, которая представляла собой план моей школы. Я точно смоделировал все здание. Этот кропотливый процесс отнял у меня массу времени. Подобно многим, я отчаянно пытался представить свою школу как пространство с другими условиями — не теми, в которых нас заставляли существовать. Не то чтобы там было очень плохо, но в тот момент казалось, будто меня заперли в тюрьме.
Сейчас мне хотелось бы, чтобы в то время я занимался чем-то более оригинальным и интересным, но создание моего собственного мира, расширяющего границы возможного, было своего рода способом сбежать из реальности. Очень жаль, что у большинства детей нет такой творческой отдушины. Не хотелось бы рассуждать легкомысленно на столь ужасную тему, но, когда я вижу очередную новость о насилии с применением оружия в школах, я не сильно удивляюсь.
Anna Kipnis (Psychonauts, Broken Age)
Кипнис — вторая слева.Мои родители любили устраивать вечеринки. Их друзья часто приходили со своими детьми, а я, как самая взрослая из ребят, отвечала за досуг и придумывала для нас развлечения. Чаще всего они представляли собой обычные уличные игры с типичной механикой, дополненные интересными сюжетными поворотами.
Одна из таких игр, как я припоминаю, была комбинацией пряток и догонялок. Она начиналась так же, как обычные прятки: все прячутся — один ищет. Отличие заключалось в том, что ищущий был жутким магическим существом (рычание и ворчание поощрялись) и обладал силой, позволяющей превращать прячущегося в ищущего, когда ведущий касался найденных игроков. Такой прячущийся немедленно присоединялся к команде чудища и помогал искать остальных. Прячущиеся, в свою очередь, скрывались в безопасном месте, где ищущие не могли их достать (в зависимости от количества игроков менялось количество таких мест). Ищущие побеждали, если за три раунда находили всех, кто прятался. Если в каком-то раунде спрятавшегося не могли найти в течение 10 минут, одного из чудищ превращали в обычного игрока. Если в каждом раунде не могли вовремя найти хотя бы одного из прячущихся, побеждали прячущиеся. Стоит заметить, что сначала эта игра была значительно проще. Правила с безопасной зоной и тем, что тебя могут превратить в ищущего, и наоборот, появились куда позже.
Интереснее всего было обсуждать с ребятами, какое забавное правило ввести, и испытывать его в действии. Мы живо спорили о том, сколько ищущий должен ждать до начала поисков, как долго должен длиться раунд, как быстро могут двигаться чудовища (может, они будут “медленными”), какими силами должен обладать ищущий и так далее. Было действительно здорово видеть, что дети придумывают механику, черпая вдохновение в образах вымышленных страшных чудовищ, а не исходят из соображений сухого скучного баланса. Мне очень нравилось наблюдать за тем, как они вживаются в роли монстров, даже если это означало, что прячущиеся знали об их приближении.
Право вводить официальные правила принадлежало мне, но изобретали их мы вместе. Каким замечательным было ощущение того, что выдумка, когда-то бывшая смутной идеей в моей голове, становится реальностью. Ребята так воодушевлялись, что у них появлялись вполне определенные мнения по поводу того, как должна развиваться игра, и они даже сочиняли истории о прошлом чудищ-искателей. Нам так и не удалось выровнять баланс из-за разницы в возрасте, но атмосфера царила очень веселая!
Теперь, когда я это перечитываю, кажется, будто игра была про зомби. Но прошу заметить, что в СССР не было кино про зомби, так что мы были скорее фольклорными чудовищами.
Изображение в полном размере доступно здесь.Я сделал свою первую полноценную игру в 13 лет. Это была карточная игра: заламинированные открытки с нарисованными мелками и карандашами лицевыми сторонами и распечатанными рубашками. Она называлась Thriblets и предполагала распределение ресурсов и сражения. Я помню, что, создавая ее, хотел решить проблемы, возникшие с Magic: the Gathering: не все мои друзья могли позволить себе карты Magic, а если у них все-таки получалось их добыть, колоды все равно были хуже, чем у более состоятельных ребят.
Я стремился разработать игру с распределением ресурсов и менее сложными уровнями, чем в Magic, где все обладали бы равными шансами на победу и имели доступ к одинаковым картам. Поэтому я сделал Thriblets. Многие не понимали, зачем мне это, но я чувствовал себя просто потрясающе, играя со своими друзьями. Мы постоянно получали новый опыт и совершенствовались в процессе прохождения уровней. Тогда я еще не знал этого, но каждая наша партия была весьма эффективным тестированием. Мне понравилась идея создания своих собственных систем: это была не моя версия Magic, а игра, которая исправила мои претензии к Magic.
В конце концов я переложил усилия на настольную стратегию с бумажными фигурками: правила Warhammer 40,000 еще сложнее, чем Magic: the Gathering, а денежный барьер еще выше. Я хотел бросить вызов и ей.
Свою первую настоящую игру я сделал в Klik & Play. Предполагалось, что она станет моим ответом в стиле Sonic RPG проекту Super Mario RPG на SNES. Ужасная графика, неподходящая музыка в формате midi и тонна амбиций! Я вообще не понимал, куда иду, но собирался добраться туда быстро.
Самым большим препятствием оказалось то, что у Klik & Play не было простого способа переносить данные по уровням и возможности скроллить экран. Софт поддерживал не более четырех игроков и выдавал им глобальные значения жизней и счета. Я начал исследовать работу системы паролей в Wonderboy III и думать над тем, как их использовать.
В итоге я сделал несколько пазлов и сцен, которые оставались постоянными в восьмизначной системе. Меня увлек этот процесс — я хотел делать как можно больше игр. Именно тогда я обнаружил, что начинаю выходить из своей привычной среды: учебники, занятия в начальной школе и мультики по субботам. Мне требовалось постоянно создавать что-то новое и изобретать миры.
Продолжая использовать инструменты Kilk годами, пока они медленно обновлялись и менялись, я постоянно сталкивался с ограничениями программы, находя обходные пути, как было в случае с системой паролей. Также я увлекся анимацией и комиксами, но концентрировался в основном на разработке игр.
У меня всегда была жажда созидания. Отец неизменно обеспечивал меня бумагой и карандашами, чтобы было куда выплеснуть всю эту энергию. Я очень рад, что родители помогли мне сосредоточиться на своей страсти и давали мне полную свободу действий.
Первая игра, о которой я узнал, называлась GORILLAS. Это была игра на MS-DOS — QBasic, пришедшая в мою жизнь с нашим первым домашним компьютером. Мне тогда было 5 или 6 лет, и я уже пытался что-то с ним делать. Зная, что могу найти игры, я запускал модули, но всегда безуспешно. До тех пор, пока не запустил QBASIC.EXE. QBasic — программная среда для языка программирования QuickBasic, которая шла в комплекте с файлами-туториалами. NIBBLES.BAS — это Snake, а GORILLAS.BAS — нечто наподобие Tanks, только с гориллами. Я посмотрел на код и нажал F5, чтобы его запустить.
Тогда я не умел читать по-английски, но в один прекрасный день все-таки умудрился найти текст главного меню в коде. Я изменил его на R A M I, запустил игру и увидел свое имя вместо обычного меню. С того момента я знал, что компьютеры переводят слова в игры, и я не останавливался, пытаясь понять, как это делается.
Когда я был ребенком, один мальчик из нашей компании позвал всех к себе домой поиграть во что-то новое, что он назвал “консолью видеоигр”. Это была Atari, и почему-то она показалась мне довольно скучной. Лишь годы спустя, впервые увидев аркадный автомат с Phoenix, меня впечатлила видеоигра: одинокий пилот сражался в космосе с гигантскими птицами-пришельцами, и все было настолько опасно и фантастично, что я влюбился.
После долгих лет практики я наконец добил R-Type (с кредитом, так как обычно не получалось продолжать из-за нехватки монет), и благодаря этой невероятно сложной победе я почувствовал в себе достаточно уверенности, чтобы однажды создать свой собственный проект. И я создал… 20 лет спустя!
Я начал делать графику на Amiga 500, используя Deluxe Paint IV, но, увы, после переезда я потерял все свои диски, так что теперь даже не могу проверить, стал ли я лучше.
Свою первую игру я сделал, когда учился в университете. Вдохновленный Up Front от Avalon Hill и другими подобными проектами, я хотел создать простую аналоговую карточную игру. Суть заключалась в том, чтобы собрать банду якудза, принимать туда новых членов, наращивать свое богатство и драться — довольно мрачно, но нам с друзьями нравилось.Alex Schwartz (Job Simulator, Dyscourse)
Развертка Hang 'Em High.Первый признак того, что мне суждено стать геймдизайнером, обнаружился на уроке черчения в старшей школе. Нам нужно было создать планы этажей для архитектурного проекта, открытого для правок, и я решил нарисовать (по памяти) уровень Hang 'Em High из Halo. Именно мой учитель по черчению предложил мне заняться разработкой видеоигр после того, как мы поговорили с ним о будущем. Так что, если вы это читаете, спасибо, мистер Макмиллан!
Мои родители не были теми, кто покупает все, чего попросит их ребенок. Поэтому, если мне очень сильно чего-то хотелось, я пыталась сделать это из имеющихся у меня вещей.Одной из таких “хотелок” была Kirby Super Star. Мне тогда было 7 лет. Помню, как рисовала Кирби на маленьком клочке бумаги и разные уровни в своем скетчбуке. Я двигала Кирби по этим чудовищно легким уровням, а со временем стала добавлять между ними мини-пазлы и даже создавать трехмерные книги, чтобы уровни были интереснее.
Я начала делиться этими развивающими книгами с друзьями и поняла, что мне гораздо больше нравится делать что-то для других, чем играть самой.
С возрастом я перешла на компьютерные игры, узнала про Flash и другие движки. Меня вдохновили работы, которые я увидела на Newgrounds, и я начала бродить по форумам. Тогда-то я и поняла, что хочу заниматься разработкой до конца своих дней.
У меня уже не осталось этих книжек, самое старое из сохранившего — спрайты для Long Gone Days. Аналоговый рисунок 2003 года.
Аналоговая версия (2003).
Цифровая версия (выход игры ожидается в 2018).
Я музыкант. Долгие годы я посылал резюме разным компаниям-разработчикам видеоигр в надежде получить должность композитора.Поиск работы не давал плодов, и я решил: раз не получается найти серьезный проект, для которого нужно написать музыку, я сделаю игру сам! В процессе я понял, что мне очень нравится создавать игры, правила, структуру и код, который дарит им жизнь.
Я занимался релизом своего проекта, и это стало более важной задачей, чем написание музыки. Я закодил собственный shmup-движок, нарисовал спрайты и записал саундтрек. Ранее я работал над такими проектами, как Tintin, Michael Jackson и Just Dance 2, Killer Freaks From Outer Space и ZombiU в Ubisoft. Но Overdriven — первая игра, которую я разработал сам (в Steam сейчас доступна новая версия).
bluesuburbiaЯ начала карьеру в качестве сетевого художника. Мне всегда была интересна эта сфера и то, как интерактивность и искусство в сети могут влиять на появление новых типов выражения творчества, которые еще только предстоит исследовать. По крайней мере, при выборе профессии я руководствовалась именно этим. Когда я стала серьезно творить, а не “малевать”, я уже оканчивала старшую школу и готовилась к колледжу. Это была эра пузыря доткомов. Проводя большую часть времени в библиотеке, я планировала то, что нарисую по возвращении домой, а во время уроков набрасывала эскизы. Мой мир существовал онлайн, и все, чего я хотела — создавать. Никто из друзей не знал о моих увлечениях: я ни с кем не делилась.
Больше всего в то время я работала над проектом под названием BlueSuburbia (в него все еще можно поиграть здесь). Я принялась за создание мира, основанного на интерактивной поэзии, которую вы не просто читаете, но и чувствуете.
Между тем я серьезно задумалась: стоит ли мне посещать колледж. Я не видела своего будущего здесь. Почти все преподаватели советовали держаться подальше от компьютеров и “этих ваших интернетов”, полагая, что они убивают творчество, а я очень хотела быть частью Интернета. Поэтому, положившись на свои художественные способности, я решила играть по своим правилам. Оглядываясь назад, я ни о чем не жалею.
Natalia Figueroa (Fran Bow)
Моя первая игра Fran Bow — она выглядит немного иначе, чем Fran Bow сейчас.Мы с Исааком Мартинссоном изначально интересовались фильмами и анимацией. У нас было долгое прошлое в изобразительном искусстве, написании текстов и композиторском деле. Оказалось, что игры сочетают в себе все, что мы любим: арт, музыку, истории, создание миров и анимацию. Плюс нечто новое для нас: программирование и дизайн. Мы поняли, что сможем учиться, и это была очень сильная мотивация.
После того как мы увидели Indie Game: The Movie, стало ясно, что наша мечта вполне достижима и мы можем сделать игру даже дома — нужно лишь подучиться и узнать, какой софт использовать.
Fran Bow основана по большей части на моей жизни: худшем ее периоде, смешанном с самыми светлыми моментами. Отсутствие отца, сексуальное насилие, медикаменты, которые не помогали, переезд из Чили в Швецию и связанная с этим необходимость адаптироваться к новой культуре — все это стало базой для моего творения. Я думаю, что это была самая лучшая трехлетняя терапия, какую только можно представить.
Когда я учился в средней школе, я создал игру с отлично проработанными уровнями Speed-Ball (давайте не будем останавливаться на этом неудачном наивном названии). Она представляла собой экшн-платформер, который, по сути, был смесью Bonk's Adventure, Sonic the Hedgehog и Super Mario Bros. с щепоткой Mega Man, где нужно было побеждать мастеров-врагов и забирать их силы.Главный персонаж — тот самый неудачно названный Спидбол и его друг Марбл, которые жили в “Супермире Пинбола”, населенном разумными антропоморфными стальными существами со своими характерами и личными музыкальными темами, — я стырил этот концепт у Tron. Spider-ball, Aqua-ball, Ice-ball, Motor-ball… ну, вы поняли. Всего существовало 503 вариации, и я помню, как усердно работал над ними.
Уровни были неоригинальными, и каждая идея представляла собой слегка измененный элемент игр, которые мне тогда нравились. Но сам процесс позволил мне многое узнать о геймдизайне. Копируя эти элементы, я неосознанно брал то, что интуитивно считал лучшим, игнорируя менее впечатляющие части. Если вы посвящаете этому много времени и отдаете свою любовь, вы создаете искусство.
habr.com