Как начать создавать игры с нуля: как начать делать игры без опыта / Блог компании Нетология / Хабр

Содержание

Разработка игр. С чего начать? | GeekBrains

Что должны учитывать будущие разработчики игр? С какого языка начать обучение? К чему стремиться?

https://d2xzmw6cctk25h.cloudfront.net/post/25/og_cover_image/3fcc2b06afe428005c9026582ebcf7b2

Что должны учитывать будущие разработчики игр? С какого языка начать обучение? К чему стремиться? На кого равняться? И что необходимо сделать в первую очередь?

Большинство любителей рок-музыки рано или поздно берут в руки гитару. Фанаты спорта страстно мечтают о выходе на футбольное поле, баскетбольную площадку или теннисный корт. Ну а те, кто совершил сотни угонов в GTA, провел десятки часов в компьютерных клубах за Counter-Strike или достиг немалых успехов в MMORPG, наверняка задумываются о карьере разработчика игр.

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

К чему стремиться?

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

Правильная постановка цели поможет сэкономить уйму времени и сил. Кроме того, позволит достичь конечного пункта кратчайшим путем. Без риска сойти с дороги или угодить в болото.

Какой язык учить?

Кроме того, от цели зависит и ответ на животрепещущий вопрос: с какого языка программирования стоит начинать?

Так, будущим разработчикам игр вроде Minecraft и мобильных приложений под Android стоит обратить пристальное внимание на Java. Для начала советуем пройти интенсив «Основы Java-программирования». Тем, кто заглядывается в сторону iOS – на Objective-C. Для браузерных игр порой хватает знания Ruby-On-Rails. Для совсем маленьких и простых временами достаточно HTML. В производстве Flash-игр используется ActionScript, а для написания скриптов любой сложности вам понадобится JavaScript или, возможно, не столь распространенная Lua. Для создания же небольших консольных игр требуется знание C#.

Что до наиболее крупнобюджетных игр (так называемого класса AAA), то большинство из них оснащены своим или заимствованным у коллег «движком». Нередко, впрочем, весь «движок» или его большая часть написана на C++. Именно этот язык использовался при создании множества известных «игрушек» – от Doom 3 и Call Of Duty до FIFA и The Sims. В то время как классика вроде Quake была написана на C.

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

Достаточно ли одного языка?

Одна из прелестей программирования – возможность постоянного саморазвития. В разработке же игр (особенно крупных) самосовершенствование, в том числе изучение как можно большего количества языков, – не прихоть, а жизненная необходимость. Так, опытные разработчики, трудящиеся на благо гигантов игровой индустрии, нередко сталкиваются с необходимостью поочередно писать на 7-8 языках. При этом, помимо вышеуказанных языков, им приходится изучать, к примеру, Python либо и вовсе SQL (как вы понимаете, для создания баз данных).

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

С ЧЕГО НАЧАТЬ?

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

Практически все опытные разработчики вне зависимости от регалий и таланта начинали с небольших приложений: настольных игр, вариаций известных «игрушек», простеньких «флэшек». Тогда они не думали о крупных выставках вроде E3, а накапливали бесценный опыт. Почему бы не последовать их примеру? При этом не обязательно писать архисложный код. Для дебюта достаточно использования специальных программ для создания игр (к примеру, Game Maker). Ведь даже благодаря несложному инструментарию вы значительно облегчите себе жизнь. Во-первых, в миниатюре поймете логику и структуру практически любого игрового приложения. Во-вторых, набьете шишки, которые заживут во время перехода к серьезным проектам. Наконец, в-третьих, обогатите портфолио. Ведь даже простая «игрушка» требует массу времени, терпения и творчества для выдумки концепции, написании кода и устранения багов. Кроме того, показывает, что с производством игр вы знакомы не только в сухой теории.

Что брать за ориентир?

Тот, кто мечтает стать писателем, прочитает сотни книг перед тем, как напишет хотя бы одно слово. Мастера игры на фортепиано на зубок знают лучшие произведения Штрауса, Шопена и Бетховена. Известные же художники перед крупными выставками наизусть заучивали историю искусств.

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

Автор: Александр Мороз

Как начать разрабатывать игры даже если до этого вы были бухгалтером / Хабр

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

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

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

Шаг 0. Станьте разработчиком игр

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

Как это сказать себе и другим?

Уверен, что у вас уже есть какая-то профессия. Также я уверен, что Вы каждый день посещаете сайты/форумы, связанные с вашей профессией, читаете блоги и, может, даже книги.
Первое, что надо сделать, чтобы стать разработчиком игр:

  • Начать посещать сайты, связанные с тематикой игр и разработкой игр.
  • Подписаться на блоги разработчиков, творчество которых вам нравится.
  • Купить пару книг в “киндл” на амазоне, например, о игровом дизайне.

Все, вы разработчик игр. Действительно, элементарный шаг вам может дать доступ к столь “закрытой” профессии как разработчик игр. Правда, без опыта и регалий, но никто (ни вы, ни окружающие) уже не оспорит, что вы разработчик игр.

Шаг 1. Найдите себе применение как разработчику игр

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

Слова “найти проект” для каждого разработчика игр значат разное, вот список популярных способов поиска проектов:

Выйти из состояния “поиска проекта” нужно как можно быстрее, и желательно выйти в состояние “делаю проект” и делать проект с шансами на успех: релиз и популярность.

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

Вот некоторые советы для прохождения этого шага:

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

    Например, я сделал маме подарок на НГ — 3д-игру по психологической методике:

    У меня не было опыта разработки на C# и программировать я особо не умел (немного знал python) и никогда до этого не моделил.

  2. Скажите себе кодовую фразу: “Если кто-то смог, я тоже смогу”. Как бы вы ни были готовы к игровому проекту, всегда будет задача, с которой вы никогда не сталкивались. Например, даже у опытных программистов программного обеспечения, часто нет опыта создания шейдеров. Скажите себе кодовую фразу и учитесь по ходу.
  3. Найдите себе единомышлеников. Мне в моем развитии очень сильно помогли: скайп-чатик разработчиков социальных игр (теперь уже создатели: Голос Припяти 3D, Tanks Heroes, Contract Wars, Батла и многие другие), а также одногруппники из Scream School по курсу гейм-дизайна. Их успех будет вас подталкивать, а обмен опытом ускорит процесс развития.
  4. Выберите себе платформу для разработки. Определите платформу, которая вас устраивает. Это может быть, например, Unity — за ее возможности, огромное комьюнити и сравнительно низкий порог входа. Вне зависимости от платформы, станьте ее евангелистом. Это позволит вам наладить коммуникацию с другими разработчиками и быстрее развиваться.
  5. Не давайте эмоциям взять вверх. Ошибки и неудачи станут вашими спутниками на длительный период, а если вы будете делиться процессом развития с русскоговорящими разработчиками, будьте готовы к тоннам говна большому количеству негативных отзывов. Не позволяйте эмоциям брать вверх: слушайте любые отзывы и предложения, но относитесь ко всему с необходимой критикой. Сохраняйте критичность ума.

Шаг 2. Помогите себе закончить хотя бы ОДИН проект!

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

  1. Вгоните себя в экстремальные условия, а выходом из них сделайте релиз. Поставьте себе реальный, но очень сжатый срок на релиз, например, 48 часов или неделю, но спать будете по 4 часа в день. Это даст сильный толчок, заставит оптимально использовать время и сфокусироваться на результате.
    • Сжатые сроки

      Сжимая сроки, не оставляйте себе время на риск. Сжимайте до последнего, пример с 48 часами — хороший.
    • Отсутствие сна

      Полное или почти полное отсутствие сна хороший мотиватор, но не доходите до крайностей. Практика показывает, что даже молодому организму надо давать отдых.
    • Менеджмент времени

      Не стоит выделять много времени на тайм-менеджмент, но не забывайте ставить себе вехи (milestone). Например, скажите себе, что через 5 часов вам надо сделать играбельный прототип.

      Например, в своем первом 48 часовом марафоне (на нем я только рисовал), я за первую треть времени нашел стиль игры, нарисовал основной, игровой экран и все спрайты врагов. И за оставшееся время сделал 170+ спрайтов анимации и дорисовал интерфейс.

    • Конкурсы, особенно мероприятия, типа, HackDays или Ludum Dare, где нет времени на раздумья и надо сразу бросаться в работу, — отличное подспорье для пунктов выше.

  2. Поставьте себе рамки. Для первого релиза, особено в сжатые сроки, критически необходимо знать рамки проекта. Выпишите себе минимум, что нужен для релиза, и не выходите из него. По необходимости:
    • Урежьте список возможностей

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

      Вероятно, вы рассчитывали сделать синглплеер на 5 часов игры, но вы останетесь победителем с демкой на 20 минут.
    • Уберите часть контента

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

  3. Ищите простые пути. Напоминайте себе, что вам необходим релиз, а не шедевр. У вас остается право на ошибку, но вы потеряли право на заморозку проекта.
    • Используйте костыли и хардкод

      Не стоит фокусироваться на универсальности или производительности кода. Оптимизация тоже подождет. Просто идите к результату.
    • Копируйте, а не придумывайте

      Если с ответом на любой вставший перед вами вопрос возникают трудности, копируйте решение коллег.
    • Используйте опыт на 150%

      Учет сделаных ошибок — это, несомненно, хорошо, но пока вы их совершали, вы собрали багаж наработок. Постарайтесь использовать из него что-то.
    • Подключите все ресурсы

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

Шаг 3. Сделать полноценный релиз

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

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

  1. Делайте проект каждый день. У всех начинающих инди есть занятия, с которыми приходится совмещать разработку. Но не забывайте добавлять хотя бы одну строчку кода или новый спрайт в игру каждый божий день. Это очень важно, это пункт номер 1.
  2. Ставьте себе небольшие задачи и старайтесь выполнять их каждый день. Долго открытая задача, например: “разработать систему инвентаря”, может быстро превратиться в “висяк” с очень низким приоритетом. Поставьте задачу “Интерфейс основного окна инвентаря” и закройте в этот же день, а затем радуйтесь прогрессу.
  3. Два шага вперед, один в сторону. Какой бы разнообразной вы ни планировали игру, не стоит делать сразу 50 типов врагов и тысячи уровней. Сфокусируйтесь на реализации возможностей игрока, а не способах их проявлений. Делаете слешэр? — Реализуйте возможность рубить врага, а врагов клонируйте.
  4. Прототипируйте. Когда вы сфокусированы на настоящем релизе, необходимо отдавать себе отчет, что игра должна быть хорошей. Проверить это можно, прототипируя.
  5. Вы делаете игру. Не стоит делать из своей игры движок или фреймворк. Нет, я не про чистоту кода или возможность его переиспользовать. Работайте хорошо, и результат будет хороший. Не стоит реализовывать возможности до того, как поймете, что они действительно необходимы вашей игре. Например, если вы не уверены, что будет возможность менять цвет одежды героя, не стоит рисовать маску для смены цвета в шейдере. Убедитесь, что ваш дизайн подразумевает наличие предметов перед тем, как создать класс Item.
  6. И главное… Не бойтесь вернуться на шаг 2. Возможно, еще не время для настоящего релиза.

Удачных вам релизов и быстрого развития.

языки, движки и все, что нужно знать начинающему разработчику — руководства на Skillbox

Игровая механика — это то, какими способами игрок взаимодействует с миром. Совокупность игровых механик составляет игровой процесс. Например, вы уже реализовали возможность ходьбы и прыжков. Эта игра, скорее, платформер.

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

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

  • если добавить стрельбу, то будет экшн;
  • если игрок будет безоружен, — стелс;
  • если ещё и замки нужно взламывать, то это уже головоломка или пазл.

Будучи программистом, придётся уделять много времени механике.

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

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

Пример анимации двумерного персонажа

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

Анимация в действии

Если брать 3D-модель, то используется скелетная анимация — модель как бы нанизывается на специальный каркас (скелет) с подвижными частями. Движение этих частей прописывается в коде.

На скриншоте видно, как персонаж сгибает руку в местах с точками (вершинами). Таких точек может быть очень много, если требуется сложная анимация — жесты, мимика и так далее.

Создаётся анимация так: прописываются точки координат или захватываются движения реального актера.

Первый способ сложный, но дешёвый, потому что от программиста требуется только прописать движения — сдвинуть точку A1 на координаты (50,240).

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

Инструкция начинающего разработчика игр / Хабр

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

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

И так Вы решили сделать свою игру, о чём Вам нужно подумать…

Думаем – нужно ли это тебе

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

Я перечислю основные ошибки в их представлении:

  • Нет романтики. Многие начинающие разработчики, наигравшись вдоволь в игры, приходят к мысли, что создавать игры также интересно, как и играть, только чуть-чуть сложнее. Это очень частая ошибка. Чем больше и сложнее игра тем, скучнее и безынтереснее процесс её разработки. Романтики совершенно нет.
  • Трудно и даже невозможно. Многие после нескольких (или даже одного) успешного проекта наполняются уверенностью, что написать игровой проект им по силам. На самом деле, игры – это одно из самых сложных направлений разработки. И чем «серьёзнее» игра, тем проект сложнее. В процессе создания игры разработчик может столкнуться с нерешаемыми проблемами, которые убивают на корню энтузиазм даже у самых упёртых.
  • Отвращение к играм. Со временем у каждого матёрого разработчика игр развивается отвращение к играм. Сначала просто они становится менее интересными. Затем начинаешь замечать, что они вовсе не интересны, а интересно только, как они работают. Чем дальше, тем хуже.
  • Конкуренция и качество продукта. Играми занимаются многие студии и независимые разработчики. Существует своеобразный «уровень вхождения» в этот бизнес. Сейчас нельзя сделать успешную игру, нарисованную акварелью (да, такие игры встречались в начале 2000-х). Она просто не выдержит конкуренции. Соответственно, абы что не сделаешь. Тут скрывается важный психологический момент – начинающий разработчик вынужден делать хороший продукт, иначе он будет испытывать постоянное чувство страха неуспешности своего продукта.
  • Время и ресурсы. И самая распространенная ошибка – это то, что ресурсов (время, деньги, знания) им хватит. Чтобы понять объём работ, читайте следующие пункты.

Концепция и ТЗ

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

  • Что же такое концепция? Концепция игрового проекта — это документ, описывающий цели, задачи, основные особенности проекта, исследование рынка и целевой аудитории, условия его выполнения. Также, так как проект игровой, обязательно описание игровой механики, игровых понятий, примерный сценарий и концепт-арт. Если Вы ещё рассчитываете делать проект не в одиночку (что весьма вероятно), то понадобится ещё техническое задание (ТЗ) – документ, содержащий описание необходимых работ, сроки и условия.
  • Зачем нужна концепция? Очень хороший вопрос. Зачем заниматься какой-то «писаниной», когда нужно собирать команду и писать код?

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

    Во вторую очередь концепция нужна для того, что бы другие поняли то, что Вы хотите сделать. Все члены команды должны работать над одним общим проектом. Об этом общем проекте члены команды узнают из документа концепции проекта. Это нужно, чтобы не было расхождений в представлениях о конечном результате. Если Вы решили создать игру и для этого собираете команду, то первые вопросы от будущих членов команды будут: «А что предстоит мне сделать? Что в итоге мы должны получить?». Вы должны будете им предоставить концепцию проекта и ТЗ. Без концепции и ТЗ Вы не привлечёте ни одного нормального специалиста.
  • Объёмы. Весьма интересен вопрос объёма концепции. Тут необходимо отталкиваться от сложности игры и её разработки. Если у Вас простая игра, Вы работаете один и Вы способны удержать идею игры в своей голове, то можно вообще не писать концепцию. Если удержать в памяти все моменты нельзя, то необходимо перенести их на бумагу (или другой носитель). Если Вы будете работать в команде или использовать помощь других людей (инвесторы, художники и прочие), то Вам просто необходима развёрнутая концепция и ТЗ для каждого человека. Критерий один – понятность. Нужно чтобы любой человек, ознакомившись с концепцией и ТЗ, представил конечный результат, так же как и Вы.

    Обратите внимание на то, что, если Вы понимаете свою концепцию, то это не значит, что её поймут другие. Написание концепции выполняет роль «лакмусовой бумажки». Если Вы не можете написать понятную концепцию (примерно, 5 страниц для небольшой игры, несколько десятков страниц для большой), то вряд ли Вы закончите в итоге проект.
  • Детальность. В концепции должны быть ответы на все вопросы. После прочтения концепции должно сформироваться полное представление о проекте. Специалисты первым делом смотрят на концепцию, если концепция окажется для них не полной и непонятной, то они не будут с Вами работать.

    Отдельно стоит упомянуть концепт-арт. Он должен быть, хотя бы в простейшем виде. Он является доказательством решения проблемы с контентом, содержимым игры (смотрите следующий раздел).
  • Русский язык. Для многих это серьёзная проблема. Если документ концепции содержит множество грамматических, орфографических и синтаксических ошибок, то ни один специалист не воспримет его всерьёз. Помните: незнание русского языка очень вредит бизнесу.
  • Время. Желательно в сразу в ТЗ указать сроки выполнения работ. Проблема в том, как оценить это время, если никогда подобным не занимался. Точно ответа на этот вопрос Вы никогда не получите, всё придёт с опытом. Я только дам один совет: учитывайте не только время разработки, но и время на исправление ошибок (примерно 50% от времени на разработку).

Контент

Я специально выделил этот раздел, так как он является решающим в процессе разработки игр. Под контентом понимается всё содержимое игры, с которым взаимодействует пользователь. Это графика (растровая, векторная, 3D), музыкальное и звуковое сопровождение, видеоряд, сценарий и текст. Также сюда следует добавить медиаматериалы, используемые для продвижения игры (реклама, банеры и прочие).

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

Разберём основные моменты этого раздела.

  • Сложность. Это самая главная проблема в вопросе контента. Оказывается, в большинстве случаев подготовка контента является самой сложной задачей, сложнее написания программного кода, сложнее тестирования и отладки, и сложнее реализации игры. Естественно, если игра маленькая, то это не так заметно, а если большая, то на долю создателя контента выпадает до 80% работы по проекту.
  • Объёмы. Часто из-за того, что разработчики никогда не выполняли задачи создателей контента, им очень сложно оценить объёмы. Кажется, что там такого ¬– пара десятков картинок и 3-4 звука. Но если посчитать, то получается 40 крупноразмерных изображений, 400 мелких изображений, два десятка звуков (я привел пример среднестатистической BMMORPG). Хорошо, что это всё можно подсчитать при подготовке концепции.
  • Качество. Во-первых, надо понимать, что игроки работают непосредственно с контентом. Во-вторых, надо помнить, что существует огромное количество игр-конкурентов с хорошим контентом. Можно сделать вывод: игра с плохим контентом будет не конкурентоспособна, т.е. контент в игре должен быть высокого качества.
  • Время. Вполне логично, что на подготовку больших объёмов качественного контента уходит очень много времени. Времени уходит больше, чем на все остальные направления вместе взятые (маленькие игры не в счёт). Учитывайте это, когда будете планировать и рассчитывать сроки.
  • Стоимость контента. Хороший контент стоит «хороших» денег. Очень «хороших» денег, которых у начинающих разработчиков игр обычно нет. Многие разработчики питают иллюзорную надежду найти «бесплатного» создателя контента (или дешёвого). Найти можно, но он либо будет создавать низкопробный контент, либо создаст для Вас немного контента, а затем переметнётся к тем, кто будет ему платить. Короче говоря, «бесплатного» создателя хорошего контента Вы никогда не найдёте. Именно по этой причине нет хороших «OpenSource» игр.
  • Воровство. Из-за существования проблемы дорогого контента, иногда появляются разработчики игр, которые его воруют. Мол, что такого?.. возьму-ка я из этой игры десяток картинок, а фоновые изображения найду на DA, а в качестве фоновой музыки поставлю пару любимых песенок Rammstein. Проблема в том, что авторское право контента достаточно легко подтвердить. У «жертвы» воровства есть либо исходные файлы контента, либо документ о передаче контента от его создателя. Для воров контента очень велик шанс нарваться на статью 146 УК РФ.
  • Единый стиль. Ещё один важный момент, о котором часто забывают. Что бы игра смотрелась цельной и продуманной, ей нужно иметь единый стиль. Создатели контента не роботы, поэтому делают работы в своём индивидуальном стиле. Отсюда можно сделать вывод: желательно чтобы содержимое игры создавало как можно меньше человек.
  • Дилемма. После прочтения описанных выше моментов можно построить следующую цепочку: Конкурентоспособная игра требует использование качественного контента. Качественный контент может сделать только профессиональный создатель контента. Профессиональный создатель контента стоит недёшево. Решений данной проблемы всего лишь три:
    1. Не делать игру, то есть отказаться от направления разработки игр.
    2. Найти инвестора. Но тут сразу нас поджидает проблема концепт-арта. Кто будет подготавливать концепт-арт, если нет денег на художника? А без концепт-арта никто не будет инвестировать в Вас.
    3. Решать проблему собственными силами. То есть кто-то из членов команды должен быть создателем контента и должен получать зарплату, даже если все остальные сосут палец.
Программирование

Как ни странно, создание программного кода для игр не является самой сложной задачей, но в тоже время и не является простой.

  • Команда. В отличие от создателей контента программистов для своей команды найти легко. Это объясняется тем, что при определённом уровне подготовки написание программного кода игры не такая уж сложная задача. Можно найти «бесплатных» программистов, готовых работать ради интереса. А за плату и «имя» (упоминание, как разработчика игры) можно найти программиста, который будет писать хороший годный код. Но… сейчас не начало 2000-х и программисты поумнели. Первым делом адекватный программист попросит разработчика продемонстрировать концепцию и ТЗ. Затем спросит про создание контента или финансирование, которое пойдёт на его создание. Специалисты прекрасно понимают, что незачем вкладывать силы в изначально провальный проект. Если у Вас нет концепции и не решен вопрос с контентом, то нормального программиста Вы не найдёте.
  • Сначала делаем большое, потом маленькое. Достаточно простой совет, но ему чаще всего не следуют. Игровой проект в большинстве случаев сложен и имеет множество зависимостей. Все это сложно просчитать на уровне составления концепции, частенько приходиться что-то менять в планах. Поэтому, чтобы не выполнять двойную работу, сначала необходимо сделать общую работающую конструкцию (прототип), а затем углубляться в детали.
  • Что сначала контент или код? Прочитав раздел про контент, Вы уже, наверное, поняли, что современные игры основаны на контенте, а не на программировании. Отсюда дилемма – код подгонять под контент или контент подгонять под код. Оба подхода имеют место в современном процессе разработки. Если подгонять код под контент, то нагрузка падает на программиста, время разработки увеличивается. Это дешёвый способ. Если контент подгонять под код, то нагрузка с программиста спадает, и при учёте, что контент подготавливают наёмные работники, время разработки сокращается. Это дорогой способ, так как нагрузка падает на наёмных создателей контента. Заранее оцените ситуацию и придерживайтесь одного из подходов.
  • Нерешаемые ошибки. Это даже не проблема, а предубеждение. Разработка игры весьма сложный процесс. Бывает, что разработчик сталкивается с нерешаемыми проблемами (либо решаемыми крайне тяжело) и ему приходиться пересматривать чуть ли не весь проект. Психологически это очень трудно. Многие, даже самые упёртые разработчики, попав в такой «тупик», теряют энтузиазм и закрывают проект. Предубеждение в том, что все считают, что с ними такого не случиться. Совет один: будьте психологически готовы пересмотреть весь проект и выполнить работу заново.
  • Журналы. Совет лично от меня. Ведите три журнала:
    1. Журнал выполненной работы по проекту для отслеживания динамики разработки;
    2. Журнал идей по проекту, чтобы не забыть их и, если возможно, включить в концепцию;
    3. Журнал найденных багов и ошибок, которые необходимо исправить в будущем.

    Эти три журнала помогут избежать ошибок и двойной работы в процессе разработки.

  • Время. При определении времени, которое планируется на написание кода, часто делают одну ошибку – не учитывают затраты времени на исправление багов и отладку кода.
  • Авторство программного кода. Определённый «маразм» наблюдается, у некоторых программистов. Они считают, что обладают абсолютными правами на код, который ими написан, что даже после релиза игры они могут предъявить права на «часть кода» игры. Что бы защитить это «священное» право они могут пойти на всякие низости (программные бомбы, бакдоры, отказ от передачи исходных кодов и прочие). Мой совет прост – остерегайтесь таких неадекватных программистов. Программный код не контент. Доказать его авторство очень сложно. Поэтому нормальный программист сначала договаривается, что он получит за код; затем его пишет; потом передаёт разработчику и получает вознаграждение; после чего уже ни на что не претендует. Также должно быть организовано и в команде.

Тестирование

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

  • Тестирование сторонними людьми. В процессе разработки тестирование проводиться в основном своими средствами. Со временем глаза привыкают к имеющимся игровым моментам, вырабатываются умение работать в данной системе, короче, ошибки становятся менее заметными. Поэтому устраивайте периодические тесты продукта сторонними людьми, которые никогда не видели ваш продукт. Следите за их реакцией на различные игровые моменты, как они воспринимают меню игры и, вообще, расспросите их общее впечатление. Поверьте мне, один такой тест даст Вам очень большой объём полезной информации. Проводите их чаще, прислушивайтесь к обратной связи, и Вы получите на выходе хорошую игру.
  • Женщины. Когда-то я написал неплохую статью про женщин и игры. Смысл в том, что женщины видят всё по другому. Поэтому, желательно, чтобы в тесте игры участвовала хотя бы одна женщина (девушка), даже если игра не рассчитана на женскую аудиторию. Их обратная связь будет невероятно полезна.
Организационные моменты
  • Команда. Как Вы могли догадаться, созданием таких проектов, как игры, лучше заниматься командой. Это обосновано тем, что создание контента совершенно другой вид деятельности отличный от программирования и организации проекта и одному заниматься такими разными видами деятельности сложно. Минимальная команда – это два человека, создатель контента и разработчик. Чтобы не было непонимания, уточню – наёмный работник, по-моему, тоже в какой-то мере член команды.

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

    Собрать команду при наличии финансирования легко – форумы программистов и создателей контента, биржи фрилансеров Вам в помощь. При отсутствии финансирования можно найти только программиста, а вот нормального создателя контента не найдёте – здесь надо надеяться либо на себя, либо на удачу.
  • Юридическое оформление. Здесь всё просто. Хотите иметь с игры деньги и обезопасить себя от рейдерского захвата (когда кто-то внаглую ворует вашу игру), то вам нужно юридическое оформление на уровне индивидуального предпринимателя. Если Вы ещё собираетесь распределять проект по долям, то нужно оформление на уровне ООО. Поэтому если при поиске членов команды Вы обещаете долю в проекте, то не удивляйтесь, что Вас будут просить предъявить реквизиты вашей организации.
  • Контакты. Никогда не пренебрегайте знакомствами. Знакомьтесь с другими разработчиками, общайтесь и обменивайтесь контактами. В будущем, возможно, знакомство с ними принесёт Вам пользу.
  • Реклама. Так как игр на рынке много, то чтобы пользователи выбрали именно вашу игру, нужно привлечь к себе внимание. Делается это при помощи рекламы на различных ресурсах. Логично, что реклама эта требует: во-первых денег, а во-вторых, рекламный контент (банеры, видеоролики, статьи). Возможны и другие способы ¬– связи, спам, рекламные акции и прочие, но они не всегда эффективны.

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

    Чтобы найти инвесторов, собирайте контакты.
  • Сторонняя помощь. Вместо инвесторов можно найти стороннюю помощь (реклама за рекламу, помощь в распространении за процент и прочие). Тут надо ориентироваться по ситуации. Чтобы найти стороннюю помощь, так же собирайте контакты.
Послесловие

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

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

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

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

с чего начать разработку игр?

Разработка игр за последние десятилетия превратилась в полноценную индустрию и сильно видоизменилась. Раньше программисты не знали, с чего начать, из-за отсутствия информации и ресурсов, теперь – из-за избытка. Зарубежные вузы начали открывать соответствующие специальности и курсы. Так что, если хотите разрабатывать новые игровые движки, учите английский и ищите свою программу тут или тут. Однако индустрия меняется такими темпами, что практические навыки могут дважды устареть за время учёбы. Желающим изучить разработку движков самостоятельно помогут наши статьи: учебный план по освоению gamedev или 12 этапов изучения геймдева. Если идея собственной игры уже созрела – начинайте прямо сейчас.

Необходимый минимум

Несмотря на то, что теперь расчетом игровой физики занимаются движки, GameDev – всё еще суровое место. Для успеха теперь требуются не столько технические навыки, сколько упорство и креативность. Вам придется решать сложные задачи использую только свою голову. Даже домохозяйка сможет работать с конструкторами вроде GameMaker или Construct 2. В первом супер простой скриптовый язык, во втором вовсе нет кода. Некоторые из таких игр даже добиваются успеха в Стим, все упирается в идею.

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

Первые шаги

Стартуйте с малого. Рекомендуется первую игру делать уровня Pong-game или Flappy Bird, затем что-то уровня Марио. С гайдами это не займет много времени. Для старта движок неважен. Выбирайте, опираясь на языки, которыми владеете. Я бы рекомендовал брать самый трудный. Эти проекты достаточно малы, чтобы написать их самому даже на С++ и понять основные элементы и паттерны. Если доведёте эти два проекта до победного конца и не потеряете желание продолжать – добро пожаловать в GameDev.

Команда

Готовьтесь 90% работы на первых проектах делать самостоятельно. Для саморазвития этого хватит. А если хотите зарабатывать деньги на постоянной основе – нужна команда. Один человек не сможет хорошо реализовать код, тестирование, игровую идею, арты, музыку, сюжет и продвижение, – что-то обязательно провалится. Отчаиваться не стоит. Заниматься играми хотят не только программисты. Постоянно ищите помощь на тематических форумах типа BuildBox или TIG, есть сообщества на пикабу и реддите, даже довольно крупный сервер в discord.

Выбор движка

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

Разобравшись с финальной идеей, приступайте к движку. Хорошим универсальным выбором будет Unity. Для опытных программистов, незаинтересованных в мобильных платформах, подойдет Unreal Engine. Оба движка используются в профессиональной индустрии, бесплатны для стартапов и имеют большое количество бесплатных ассетов. Как бонус, добившись приличного уровня мастерства, будете претендовать на работу в студиях. Ваша идея может не выстрелить, и запасной вариант не помешает.

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

Небольшой список движков для начинающих:

  1. SFML или Blender – С++.
  2. Unity – С#. В версиях до 2017.1 можно использовать диалект JavaScript, сейчас язык не поддерживается движком.
  3. LIBgdx – Java.
  4. pixijs – JavaScript.
  5. Pygame – Python.

Графика и музыкальное оформление

Важный пункт, о котором забывают молодые разработчики. Еще недавно это был камень преткновения, но рост инди сектора создал огромный рынок. Посмотрите список бесплатных или дешевых ресурсов в магазинах Unity и Unreal Engine, это поможет сориентироваться и вдохновиться. Если вы выбрали другой движок, уверяю вас, запрос в Google “free assets for <ваш движок>” выдаст результат. Есть и универсальные библиотеки, типа cubebrush или sketchfab.

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

С аудио ситуация похожа. Вот отличные сервисы с игровыми звуками opengame, musopen. Для фоновой музыки отлично подойдут bensound или incompetech. Золотой жилой может оказаться soundcloud, но навигации нет, придется переслушать горы хлама.

Продвижение

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

Заключение

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

Дополнительные материалы по теме:

11 доступных движков для тех, кто хочет начать создавать свои игры

Инструменты и ресурсы для разработки игр становятся все более доступными для всех, даже если у вас нет опыта программирования. Часто эти инструменты также доступны бесплатно. Вот список из 11 игровых движков / редакторов. Он облегчит задачу тем, кто хочет начать создавать игры.

Фото: instabug.com

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

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

CRYENGINE

Коммерческий кроссплатформенный 3D-движок, разработанный Crytek. Он использовался для таких игр, как Prey (2017) и Everybody’s Gone to the Rapture.

Фото: store.steampowered.com

Предназначен для разработки: 3D-игр.

Платформы: Windows.

Языки программирования: Lua.

Стоимость: Бесплатный, пока ваш проект не заработает более 5000 долларов в год, впоследствии взимается 5-процентный сбор.

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

Сайт: https://www.cryengine.com/

Начало работы: https://www.cryengine.com/tutorials

GAMEMAKER

Кроссплатформенный коммерческий движок для 2D-игр, разработанный YoYo Games. Он использовался для таких игр, как Undertale, Hyper Light Drifter и Minit.

Фото: kanobu.ru

Для разработки: 2D-игр.

Платформы: Windows или macOS.

Языки программирования: Использует собственный язык сценариев, называемый GameMaker Language (GML), и язык визуальных сценариев, называемый Drag and Drop (DnD).

Стоимость: Бесплатная пробная версия на 30 дней, потом нужно купить лицензию за $39 в год.

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

Сайт: https://www.yoyogames.com/gamemaker

Начало работы: https://www.yoyogames.com/learn

GDEVELOP

2D-движок с открытым исходным кодом, разработанный для удобства использования.

Фото: gdevelop-app.com

Для разработки: 2D-игр.

Платформы: Windows, macOS, Linux или браузерная версия.

Языки программирования: Нет, использует интерфейс Drag-and-drop.

Стоимость: Бесплатно.

Обучение: В вики GDevelop доступно множество руководств и учебных пособий, а также более 80 тестовых файлов о том, как создавать игры определенных жанров и вводить особые игровые функции.

Сайт: https://gdevelop-app.com/

Начало работы: http://wiki.compilgames.net/doku.php/gdevelop5/getting_started

GODOT

Игровой движок с открытым исходным кодом для создания 2D-и 3D-игр. Отличается простотой в освоении и подходит для совместной работы целой команды.

Фото: github.com

Для разработки: 2D- и 3D-игр.

Платформы: Windows, macOS и Linux.

Языки программирования: GDScript, C# и визуальный скриптинг.

Стоимость: Бесплатно.

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

Сайт: https://godotengine.org/

Начало работы: https://docs.godotengine.org/en/stable/getting_started/step_by_step/index.html

LUMBERYARD

Коммерческий кроссплатформенный движок для 3D-игр, разработанный Amazon. Он основан на более старой версии CryEngine. Он был использован для таких игр, как Star Citizen и The Grand Tour Game.

Фото: robertsspaceindustries.com

Для разработки: 3D-игр с интеграцией Twitch и многопользовательских функций.

Платформы: Windows.

Языки программирования: Lua.

Стоимость: Бесплатно.

Обучение: Существует бесплатная серия обучающих видеороликов и видео-бесед о более специфических особенностях движка.

Сайт: https://aws.amazon.com/lumberyard/?ots=1&slotNum=0&imprToken=b4b8be61-641c-cd04-6dc&tag=theverge02-20

Начало работы: https://aws.amazon.com/lumberyard/gettingstarted/?ots=1&slotNum=1&imprToken=b4b8be61-641c-cd04-6dc&tag=theverge02-20

REN’PY

Игровой движок для создания визуальных новелл с открытым исходным кодом. Он использовался для таких игр, как Doki Doki Literature Club, Butterfly Soup и One Night, Hot Springs.

Фото: doki-doki-literature-club.fandom.com

Для разработки: Визуальных новелл.

Платформы: Windows, macOS и Linux.

Языки программирования: Язык скриптов Ren’Py и Python.

Стоимость: Бесплатно.

Обучение: Существует бесплатный текстовый гайд, как сделать простую игру в Ren’Py, и дополнительные текстовые руководства для более специфической настройки вашего проекта.

Сайт: https://www.renpy.org/

Начало работы: https://www.renpy.org/doc/html/quickstart.html

RPG MAKER

Коммерческий игровой движок, разработанный Degica. Он разработан специально для создания классических игр в стиле JRPG без необходимости уметь программировать. Он был использован для таких игр, как Corpse Party и Rakuen.

Фото: medium.com

Для разработки: Ролевых 2D-игр.

Платформы: Windows и macOS.

Языки программирования: JavaScript.

Стоимость: $79.99.

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

Сайт: https://www.rpgmakerweb.com/products/programs/rpg-maker-mv

Начало работы: https://www.rpgmakerweb.com/support/products/tutorials

TWINE

Редактор с открытым исходным кодом для интерактивных текстовых историй. Он был использован для таких игр, как Lionkiller и The Uncle Who Works For Nintendo.

Для разработки: Интерактивных текстовых квестов.

Платформы: Windows, macOS или браузерная версия.

Языки программирования: Собственный язык, но также поддерживает HTML, Javascript, и CSS.

Стоимость: Бесплатно.

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

Сайт: https://twinery.org/

Начало работы: https://twinery.org/wiki/start

UNITY

Кроссплатформенный коммерческий игровой движок, разработанный Unity Technologies. Он использовался для таких игр, как Untitled Goose Game, Ori and Will of the Wisps и Hollow Knight.

Фото: epicgames.com

Для разработки: 2D- и 3D-игр.

Платформы: Windows, macOS и Linux.

Языки программирования: C#.

Стоимость: Бесплатно для личного пользования предоставляется студентам и любителям, а также небольшим компаниям, которые зарабатывают менее 100 000 долларов в год. Помимо этого, существуют годовые планы, начинающиеся с 399 долларов в год или 40 долларов в месяц.

Обучение: Unity предоставляет некоторые бесплатные ресурсы, чтобы помочь новичкам начать работу с движком. Но в рамках программы Unity Learn Premium она предоставляет гораздо больше возможностей, включая курсы, учебные пособия и даже сертификаты. Unity Learn Premium в настоящее время бесплатна до 10 июня 2020 года, но обычно стоит 15 долларов в месяц.

Сайт: https://unity.com/

Начало работы: https://learn.unity.com/tutorial/create-your-first-unity-project

UNREAL

Кроссплатформенный коммерческий игровой движок, разработанный Epic Games. Он использовался для таких игр, как Fortnite, ремейка Final Fantasy VII и Octopath Traveller.

Фото: playground.ru

Для разработки: 3D-игр.

Платформы: Windows.

Языки программирования: C++ и Blueprints Visual Scripting.

Стоимость: Бесплатно, но с 5-процентным сбором от общего дохода игры, если она принесет более 3000 долларов в квартал.

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

Сайт: https://www.unrealengine.com/en-US/

Начало работы: https://docs.unrealengine.com/en-US/GettingStarted/index.html

VN MAKER

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

Фото: gamingtrend.com

Для разработки: Визуальных новелл.

Платформы: Windows, macOS и Linux.

Языки программирования: JavaScript и CoffeeScript.

Стоимость: $69.99.

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

Сайт: http://visualnovelmaker.com/

Начало работы: https://asset.visualnovelmaker.com/help/index.htm#t=Beginner_s_Guide.htm

«С чего начать, если хочу принять участие в создании игр?» – Яндекс.Кью

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

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

— Умение анализировать. Оценивать свой прошлый игровой опыт, перерабатывать его для получения инструментария навыков;

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

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

— Умение видеть проблему в комплексе. Решение каждой проблемы является сложной задачей, потому что любые изменения в проекте затрагивают как правило несколько сфер и нужно учесть, не помешает ли принятое решение разработке новых механик, как это отразится на игроках, сколько времени займет внесение изменения, и так далее, и так далее. И на оценку всех этих моментов у вас, иногда, есть только 1 минута: специалист подошел к вам с вопросом и ждет ответа прямо сейчас.

— Большой игровой опыт. Как и в любой другой творческой сфере, где автор вдохновляется другими авторами, геймдизайнер вдохновляется другими проектами. Любую, даже самую хардкорную механику, можно адаптировать, доработать и переиначить так, чтобы вставить в проект типа «три в ряд». Нужно уметь увидеть эти нюансы и уметь их игрофицировать в своих целях.

Если вы увидели в описании выше себя, то смело можете попробывать себя в области геймдизайна!

Многие начинают свой путь в профессии с создания собственных проектов. Это похвальный способ, но очень трудоемкий: работать без реального фидбека и отклика ментора крайне сложно. К тому же, многие с азартом замахиваются на проекты типа «ММО РПГ, открытый мир, порвем западные рынки» и, естественно, разочаровываются, когда работа идет туго, а коллектив энтузиастов разбегается.

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

Так с чего же нужно начать, чтобы стать геймдизайнером?

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

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

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

Далее необходимо наработать портфолио. Отлично, если вы еще и программист и уже запилили пару простеньких игр в Google Play или App Store. Обязательно указывайте ссылки на них и дайте краткое описание этим проектам. Если же вы не обладаете навыками программинга, то надо брать чем-то другим. Сделайте портфолио, которое будет иллюстрировать все навыки, заявленные в резюме. При этом лучше всего, если это портфолио будет соответствовать реалиям компаний, которые есть на рынке и теоретически могут вас трудоустроить. Я имею в виду, что откликаясь на вакансию младшего геймдизайнера на match-3, не стоит в портфолио писать детальное описание вашего гипотетического мода для Skyrim, понимаете о чем я?

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

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

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

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

На самом деле, ссылки на портфолио можно начать давать уже в резюме, чтобы потенциальный работодатель его не пропустил: умею писать тексты — примеры по ссылке, хорошо знаком с современным рынком игр — анализ лидеров по ссылке, умею считать баланс — пример рассчетной таблицы с поянениями по ссылке, и так далее. Это портфолио нужно хорошо систематизировать, и лучше всего на Google Disk с открытым доступом: никто не хочет качать неизвестные архивы. Разложите все по папкам, дайте адекватные названия документам, отформатируйте текст до читаемого состояния, проверьте и перепроверьте его на ошибки, сократите везде где можно, используйте списки вместо абзацев текста, выделяйте важное жирным и так далее.

Конечно, это колоссальная работа. При этом, никто не гарантирует, что письмо с вашим откликом не будет закрыто после предложения “не имею опыта работы”, или что кто-то найдет время для того, чтобы прочитать, или хотя бы проглядеть ваше объемное портфолио. Тем не менее, шанс, что ваше трудолюбие и желание работать убедят кого-то в том, что вы потенциально хороший геймдизайнер — есть, а значит ради этого стоит попотеть. К тому же, эти усилия не пройдут даром. Поверьте, вы очень многое узнаете и многому научитесь в процессе работы над таким разносторонним и объемным портфолио. Для работы над таким портфолио и решением тестовых заданий на позицию геймдизайнера — рекомендую ознакомиться со статьями в моем блоге https://vk.com/mistle_gamer, они как раз направлены на то, чтобы помочь новичкам стартануть в профессии.

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

Как мне начать создавать новую игру с нуля? :: Source SDK General Discussions

Вместо этого используйте один шаблон мода с разными уровнями. Каждый темплет по 2,6 гига. Это не так эффективно, вместо этого вы можете сделать его так же, как Half-life 2, с разными значками изображений уровней и сделать их размытыми, чтобы ваша подруга не знала, о чем идет речь;) (просто совет!)

You Вам нужно носить с собой свой мод или Half-Life 2 (Или оба не уверены, всего 5,2 гига). Вы можете использовать редактор Hammer без Steam, но игра и файлы должны быть на вашем компьютере! (Или модели и все такое не появится, и вы не сможете проверить свои вещи без них).Если вы собираетесь играть на Mac, вам нужно носить с собой mac os hl2 (или мод, который его поддерживает). Поскольку это для нее, вам нужно найти способ заставить его работать в Mac OS (это сложно, если вы используете Windows, но, возможно, вы можете сделать так, чтобы мод поддерживал оба варианта, не думайте, что люди здесь могут помочь вам именно в этом, только ветераны).

Вот как вы можете подойти к этому, сделайте так, чтобы мод поддерживал MacOS (и hl2 тоже предпочтительно, но вы можете декомпилировать все файлы hl2 и выгрузить их в свой мод, сделайте его автономным, что идеально.Создайте свой мод с шаблоном по своему вкусу, как только он будет вставлен на флешку, с файлом readme.txt, рассказывающим ей, как это сделать. (И да, вам нужен Steam, чтобы играть в любом случае!) Всего 4 или 5 шагов, в зависимости от того, как вы это делаете.

Установите steam
Поделитесь своими играми с ее учетной записью или установите tf2 (и, следовательно, необходимость сделать вашу игру автономной)
Заставьте ее установить ее (любая исходная игра, если ваш мод автономный)
и, наконец, поместите папку с модами в Папка sourcemods внутри папки Steam.
перезапустите Steam
play.

Не все так плохо, правда?

Если у вас установлен hl2 или tf2, молоток можно найти в каталоге / bin (только начинайте отображение оттуда! Исходный sdk сломан!) добавить текстуры, это хорошо, это не для царапин (ну доброе не-иш) или что-то еще! (Не думаю, что fps для нее развлечение, может быть?)

Надеюсь, это помогло вам m8, просто следуйте инструкциям и инструкциям, и все будет хорошо.G
удачи!

.

Как я разрабатывал игру с помощью Scratch

Как поклонник игровых джемов и поклонник открытого исходного кода, меня сразу же привлекло октябрьское Open Jam на itch.io.

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

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

Проект Lifelong Kindergarten Group в MIT Media Lab, система кодирования и проигрыватель для Scratch доступны в виде открытого исходного кода на GitHub, хотя Scratch чаще всего используется через его онлайн-версию на основе браузера. Последний также поставляется с облачным хранилищем и веб-сайтом для размещения, воспроизведения, комментариев и любимых проектов. Все опубликованные проекты автоматически выпускаются под лицензией CC-BY-SA 3.0, поэтому, будучи скретчером, вы из первых рук испытаете концепцию открытого исходного кода.Я даже использовал код из другого проекта Scratch для отображения текста в моей игре.

Созданная в соответствии с темой Open Jam «Оставь след», моя игра «Сделай разницу» — это симулятор, в котором игроки отправляются в разные города и влияют на их развитие, лоббируя политические и экономические модели и торгуя с местными торговцами. Идея была вдохновлена ​​увлекательной игрой Сида Мейера «Пираты!», В которой игроки влияют на экономику и политический ландшафт, нападая на города.

Моей игре нужна была карта, которую я создал с помощью инструмента Polygon Map Generator с открытым исходным кодом от Red Blob Games.

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

Наконец, чтобы показать атмосферу парусного корабля, оживленную гавань и зал для аудиенций губернатора, я нашел образцы аудио по лицензии Creative Commons Sampling Plus на таких сайтах, как freesound.org и Ambient-Mixer.ком.

Текущая версия Scratch основана на Javascript, поэтому хорошо работает на настольных компьютерах, ноутбуках, Chromebook и мобильных устройствах.

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


Эта статья была обновлена ​​в марте 2020 года.

,

Как стать программистом: 8 шагов к созданию приложения с нуля

Введение

«Как лучше всего научиться программировать?»

«Как стать программистом»

«Как создать приложение»

Это общие вопросы, которые каждый день задают новички, стремящиеся научиться программировать. Несомненно, вы уже погуглили что-то в этом роде и прочитали достаточно статей / ответов до такой степени, что вам уже надоели «стандартные» советы.

Если у вас нет, или если вы почему-то думаете, что у меня есть что сказать новое, и все равно хотите это услышать (я не знаю), вот короткий и почти бессмысленный ответ (я дам ему SEO-ориентированный клик — название приманки: «3 шага к тому, чтобы стать программистом»):

Шаг 1. Выберите язык

Шаг 2: Изучите язык

Шаг 3: Собирайте материал и продолжайте учиться

Эй, не бросайся в меня. Как бы я ни хотел сказать, что существует универсальный метод обучения программированию, на самом деле его нет.(Позвольте мне добавить Шаг 0: признаю, что все учатся по-разному).

Бесчисленные более подробные ответы на шаги 1 и 2 уже существуют в Интернете, но общий ответ на первый шаг — изучить Python или Ruby в качестве своего первого языка (не слишком зацикливайтесь на языке, вы никогда не получите началось). Если вам нужны учебные ресурсы, мы подготовили несколько руководств, которые вы можете проверить:

Некоторые из вас дойдут до этого момента:

now what

Если у вас есть тот момент, когда вы стали заблудшей овцой, не волнуйтесь, потому что вы не одиноки.

Практически каждый раз, когда вы спрашиваете: «Как мне стать программистом?», Разработчики говорят вам создавать что-то, потому что создание вещей — это то, как вы можете улучшить как программист, и это лучший способ учиться и т.д.

Но как создать собственное приложение?

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

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

Предварительные требования

Большинству приложений потребуется база данных, поэтому, если вы собираетесь создавать собственное приложение самостоятельно (например, интерфейс и серверную часть), вам, вероятно, придется знать язык запросов к базе данных (обычно SQL). Если только вы не создаете что-то, что не требует взаимодействия с базой данных, например, Flappy Bird.

Более того, если вы хотите создать веб-приложение, вам нужно знать некоторые базовые навыки DevOps, чтобы иметь возможность настроить среду / сервер разработки и иметь возможность запускать приложение.

Если вы хотите стать только интерфейсным веб-разработчиком, вы можете отточить свои навыки HTML, CSS и JavaScript в Codepen или JSfiddle. Если вы знаете только JavaScript и не хотите изучать другой язык, вы можете попробовать Node.js, поскольку это платформа JavaScript для внутренней разработки (вы также можете использовать MongoDB в качестве своей базы данных, поскольку она также основана на JavaScript).

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

  • Рубин
  • Python
  • PHP
  • Ява
  • Перейти
  • C #

Если вы хотите создавать игры, вы можете рассмотреть возможность изучения Lua, хотя C # также является очень хорошим выбором благодаря движку Unity 3D и его огромному сообществу.Что касается разработки собственных мобильных приложений, вам необходимо знать Swift / Objective-C для разработки под iOS и Java для разработки под Android.

Без лишних слов, давайте перейдем к созданию приложения с нуля.

Шаг 0: Разберитесь в себе

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

Например:

  • Какие приложения вам больше всего нравятся?
  • Без каких приложений ты не можешь жить?
  • Вы любите играть в игры?
  • Вам нравится конструировать вещи?
  • и т. Д.

Определите свои интересы, чтобы работать над тем, что вам нравится. Так вы с меньшей вероятностью сдадитесь на полпути.

Шаг 1. Выберите идею

Теперь, когда вы, надеюсь, разобрались, пора выбрать идею для воплощения. Старт простой .

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

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

Вот несколько советов, которые помогут вам получить вдохновение:

  • Если вам нравится готовить, возможно, вы захотите создать приложение, в котором люди будут демонстрировать свои домашние рецепты.
  • Если вы всегда хотели знать, как работает Twitter, попробуйте создать суперпростой клон Twitter.
  • Если вы забывчивый человек, который полагается на менеджеров задач, попробуйте создать их самостоятельно.
  • Если вы пристрастились к League of Legends, вы можете попробовать использовать Riot API и создать сайт, который сможет получать и отображать информацию об игре.
  • Если вам нравятся карточные игры, попробуйте собрать простую (например, Блэк Джек).
  • Если вы сидите на диете, попробуйте создать приложение, которое будет регистрировать потребление калорий.

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

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

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

Шаг 2: Определите основные функции

note

Подумайте, что ваше приложение должно уметь делать, и перечислите их.Если вы в конечном итоге перечисляете кучу вещей, присмотритесь и спросите себя, ДЕЙСТВИТЕЛЬНО ли этому приложению требуется, например, вход в Facebook для работы? Неужели для работы ДЕЙСТВИТЕЛЬНО нужно загружать данные в какое-то облако?

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

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

Если у вас нет железной воли или если вы не любите задач , вы будете разочарованы и разочарованы, если ваш первый проект будет слишком сложным. Вы новичок … Дело в том, чтобы повеселиться. Веселье — самый эффективный способ учиться.

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

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

Для образца основной список функций для клона Reddit:

  • пользователи могут создать учетную запись
  • пользователей могут восстановить утерянные пароли
  • пользователей могут менять свои пароли
  • пользователей могут размещать новые ссылки
  • пользователей могут комментировать ссылки
  • пользователей могут голосовать за / против ссылки
  • пользователей имеют профиль, показывающий их историю / активность

Перечисленные выше функции являются основными функциями, на которых вам следует сосредоточиться в первую очередь.Другие функции, такие как:

  • пользователей могут поделиться в социальных сетях
  • пользователей могут удалять комментарии
  • Пользователи могут редактировать комментарии
  • пользователей могут удалить свою учетную запись

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

Шаг 3. Нарисуйте свое приложение

ui wireframe Лицензия CC

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

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

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

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

Шаг 4. Планирование пользовательского интерфейса вашего приложения

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

flowchart (лицензия CC)

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

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

Шаг 5. Проектирование базы данных

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

Если вы создаете клон Twitter, вам необходимо знать идентификатор твита, содержание твита, дату публикации / ретвита твита, количество ретвитов и количество звезд.Вам также нужно будет вести учет ретвитов и звездочек пользователей.

Вы можете нарисовать диаграмму ERM (модель сущности-отношения), чтобы отобразить взаимосвязь данных.

Пример схемы Entity-Relationship Diagram сайта выбора курса Лицензия CC

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

Продвинутый

Если приложение, которое вы планируете, будет взаимодействовать с сервером (например,грамм. если вы создаете полнофункциональное веб-приложение) или если ваше приложение будет взаимодействовать с API (например, вы пытаетесь получить информацию от Yahoo! Weather), то, вероятно, будет хорошей идеей нарисовать диаграмму последовательности для вас, чтобы получить лучшее представление о том, как должны работать процессы.

Из Википедии

Шаг 6. Каркасы UX

Хорошо, у вас запланирована внутренняя часть. А теперь пора спланировать интерфейс.

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

ux wireframes Лицензия CC

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

К счастью, в Интернете существует множество инструментов для создания каркасов и макетов, которые помогут вам спланировать свой UX / UI поток (например, Gliffy, Mockflow, Framebox, Wireframe.cc, Invisionapp).

Шаг 6.5 (необязательно): Разработка пользовательского интерфейса

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

Если вам нравится проектировать, вы, вероятно, все равно создадите приложение еще до того, как начнете — возможно, вы уже разработали его на шаге 2.

Если вы не занимаетесь дизайном, но все же заботитесь о том, как будет выглядеть ваше приложение, подумайте об использовании элементов из наборов пользовательского интерфейса. Вот несколько ресурсов для элементов пользовательского интерфейса:
(Примечание: требуется Photoshop)

free ui elements

UI ​​Cloud
Graphicburger
UI Dock

Для игр:
Spriters Resource

Однако не слишком зацикливайтесь на внешнем виде приложения.Прямо сейчас вам следует сосредоточиться на создании функций приложения.

Шаг 7: поиск решений

Отлично! Вы закончили этап планирования … но как вы должны кодировать все это?

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

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

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

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

Поиск решений

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

Какие вещи вы совершенно не знаете, как построить?

Например, нужно ли пользователям создавать учетную запись? Ваше приложение полагается на обновления в реальном времени? Какие функции вам нужны?

В большинстве случаев рекомендуется просто использовать существующее решение для больших функций, таких как обработка синхронизации в реальном времени (например, Firebase), работа в сети / маршрутизация (например, AFNetworking для приложений iOS), аутентификация и компоненты, связанные с пользовательским интерфейсом ( например, Flipboard или приложение в стиле pinterest).

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

В любом случае, лучший способ начать — это изучить, что другие разработчики сделали до вас, , и изучить логику их решений. GitHub — ваш лучший друг.

Чтобы увидеть реальный пример процесса исследования опытным разработчиком конкретной функции, вы можете посмотреть этот пост о том, как создатель Angular-Plunker создал директивы перетаскивания Plunker’а.

Выбор инструментов для начала работы

Если вы создаете веб-приложение, возможно, вам стоит попробовать Yeoman, поскольку его цель — помочь вам быстро запустить новые проекты, помогая вам настроить структуру вашего проекта.

Если вы создаете приложение React, вы также можете проверить стартовые комплекты и существующие реализации Flux. HTML5Boilerplate и Bootstrap — популярные интерфейсные шаблоны для вашего приложения. Чаще всего шаблоны используют Gulp или Grunt для управления задачами.

Поскольку вы, вероятно, собираетесь использовать некоторые существующие компоненты или решения, вам также следует установить bower для управления зависимостями (npm для тех, кто использует Node.js и CocoaPods для разработчиков iOS). Не волнуйтесь — в большинстве случаев к этим инструментам прилагаются руководства, в которых вы узнаете, как их установить.

Шаг 8: Создание приложения

Да! Теперь вы готовы создать приложение! Вот несколько советов, которые следует учитывать при создании приложения.

Контрольный список

list

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

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

Первая запись тестов

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

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

Тогда это (преувеличение того, что) может случиться:

debug

Или не дай бог:

bug

И это вы, пытаясь исправить приложение:

frustrated

… Более-менее.

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

У вас сейчас не к дедлайну с вилами за спиной менеджера проекта, не так ли?

Советы по шаблонам модульного тестирования можно найти в этой статье. Еще один совет, о котором следует помнить, — не утверждать слишком много банальностей.

На ваш выбор доступны многие инструменты тестирования, такие как Jasmine или Karma для JavaScript, Rspec для Ruby, PyTest для Python, PHPUnit для PHP, Quick как альтернатива xCTest для разработки iOS или любой другой инструмент, с которым, по вашему мнению, будет работать ты.

Кроме того, если вы создаете приложение для iOS или Android, рекомендуется попробовать Crashlytics.

7 шагов для эффективной отладки

Используйте Git

Git — это система контроля версий и полноценный репозиторий с полной историей и полными возможностями отслеживания версий. Хорошей идеей будет начать учиться использовать Git при создании своего первого приложения. Таким образом, вы можете легко исправить свои ошибки, восстановить потерянные данные и многое другое. Кроме того, если вы планируете работать с командой разработчиков в будущем, вам все равно нужно будет использовать git.GitHub — самый популярный сервис хостинга репозиториев Git для проектов с открытым исходным кодом, а Bitbucket — для частных репозиториев.

Если у вас возникнут проблемы при использовании git, вам может помочь этот пост о 10 наиболее распространенных проблемах Git и способах их устранения .

Если вы застряли…

Как новичок, вы будете чаще чувствовать себя этим хомяком.

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

Если и это не помогает, вот несколько способов отклеить себя:

Google

Я упомянул Google-fu на шаге 7, но позвольте мне еще раз подчеркнуть, что изучение работы с Google — важный навык, который необходимо приобрести всем программистам. Если вы столкнулись с ошибкой или не знаете, почему ваш код не работает, это хорошая идея для Google.

Спросите в StackOverflow

Вы, вероятно, заметили, что ваши результаты в Google в основном будут указывать на вопросы и ответы на StackOverflow.Если вы все еще не можете найти решение своей проблемы после того, как погуглили задницу, вы можете попробовать опубликовать вопрос на StackOverflow.

Не забудьте показать, что вы изучили свой вопрос — у вас больше шансов получить ответ таким образом.

Альтернатива: найти наставника

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

Если вы дойдете до грани управления головным убором (или если вы уже руководите работой…), вам не придется злоупотреблять своим лбом (если вы сильно ударите головой, вы просто потеряете мозги).

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

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

Таким образом, вы можете получить помощь от опытных программистов через живые сеансы 1: 1 на Codementor, где ставки наставников начинаются от 15 долларов за минуту. Во время этих сессий вы можете пообщаться в видеочате с опытными разработчиками и поделиться с ними своим экраном / кодом, а наставник научит вас, как исправить ваш код, а также расскажет, что вы сделали неправильно, чтобы вы могли избежать ошибки. в будущем. Вы также можете просмотреть код сеанса или записать сеанс на локальный диск с помощью инструмента видеочата.Зарегистрируйтесь сейчас и попробуйте первые 15 минут бесплатно с наставниками, предлагающими сделку.

Последний совет

Программисты все время делают ошибки, поэтому не расстраивайтесь, если вы не можете пройти даже написанный вами тест или если вы постоянно спотыкаетесь о себе. Я имею в виду, подумайте об iOS9, Android Lollipop или другом приложении, которое вы любите использовать. Конечно, даже в самых зрелых приложениях все еще есть ошибки, поэтому не думайте, что вы сможете создать самое совершенное приложение без ошибок (конечно, это не означает, что вы должны устанавливать для себя низкие стандарты — вы всегда должны стремитесь создавать качественные приложения).

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

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

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

itworks

Удачного кодирования!


Автор Биография

Йи-Джирр Чен || Создание контента и операции
Типичный массивный компьютерщик, который играет и любит науку / технологии. Также издает художественную литературу под псевдонимом, который является псевдонимом по причине 😛

Другие статьи, которые могут вас заинтересовать:

,

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *