Как создать игру для iOS без начальных знаний?
Кто не мечтал создать свою игру для iPhone и iPad? Игровая индустрия сейчас развивается стремительными темпами, и желание попробовать себя в данном направлении вполне естественно. Многие боятся стать разработчиками игр, поскольку считают, что дело это непростое, требующее предельной концентрации и богатого опыта. Однако начать свой путь к мечте можно и без навыков программирования.
Один из инструментов разработки двух- и трехмерных приложений и игр — игровой движок Unity. С его помощью создаются приложения как для Windows и OS X, так и для iOS, Android и Windows Phone. Кроме того, движок используют на приставках PlayStation 4, Xbox 360, Wii и других. Unity очень популярен среди таких разработчиков, как Blizzard, EA, Ubisoft, поскольку работа с движком довольно простая, интерфейс удобный и есть бесплатная версия. Редактор легко настраивать, он имеет несколько различных окон, что делает возможным отладку игры прямо в нем.
Сам проект в Unity поделен на уровни, которые также называются сценами — это отдельные файлы с игровыми мирами, содержащими свои наборы сценариев, объектов и настроек. Скрипты при этом взаимодействуют с объектами, которые содержат наборы определенных компонентов. А благодаря поддержке системы Level of Detail высокодетализированные модели заменяются на менее детализированные, если игрок находится на дальнем расстоянии.
Данная профессия имеет оценку сложности 2/5, при этом максимально востребована на современном рынке, а освоить разработку можно всего за полгода. Чтобы приступить к данному курсу, вам не нужны навыки программирования: главное — интерес и желание. При этом перспективы, как мы с вами убедились, впечатляющие — создание игр для iOS, Android, Xbox, PlayStation и других платформ. Средняя зарплата по Москве и МО для разработчика игр составляет 102 тысячи рублей в месяц. Опытные сотрудники запросто увеличивают этот показатель в пару-тройку раз.
Создание игры для iOS. Начало
Меня зовут Марк и я ученик Школы программистов. В этом блоге я расскажу, как создаю полноценную iOS-игру. До сих пор я работал над различными проектами, набивал шишки и получал бесценный опыт, но приложения, прошедшего путь от самого начала и до логического завершения, ещё не делал. Так что в этом и последующих постах я поделюсь своим первым опытом разработки полноценного продукта. Итак, поехали!
Немного об идее.
Вы когда-нибудь играли в Цивилизацию? Скорее всего да, но если вдруг не довелось, попробуйте, это одна из тех немногих игр, в которые поиграть разок-другой абсолютно не зазорно. Моя идея в том, чтобы переосмыслить Цивилизацию и адаптировать под мобильные устройства. Играть в неё можно будет как с ИИ, так и с другими пользователями.
Что необходимо.
1. Разработка под iOS возможна только на macOS, здесь есть два варианта — использовать компьютер Mac или установить macOS на виртуальную машину.
2. Так как мы разрабатываем приложение под iOS, то нам никак не обойтись без специального инструмента для разработчиков — Xcode, он бесплатный.
3. Нам нужен инструмент, в котором мы будем создавать облик наших объектов, в качестве графического редактора подойдут Sketch, Adobe Illustrator, Photoshop, Gimp.
4. Желательно (но не обязательно) иметь устройство для тестирования.
Первые шаги.
Итак, мы разобрались с тем, что хотим создать, обзавелись всем необходимым и уже готовы ринуться в бой. Так давайте творить! Начнем с создания нового проекта в Xcode.
1. Открываем Xcode, нажимаем создать новый проект, выбираем платформу iOS и тип Game.
2. В появившемся окне даем имя нашему приложению, выбираем язык, на котором писать и технологию. В данном случае название — Grasp, язык — Swift, технология — SpriteKit. Done!
3. Последний эта здесь — выбираем директорию, в которую мы сохраним наш проект и готово, проект создан! Однако, нужно провести первый этап настройки.
4. В открывшемся проекте в разделе Deployment Info выбираем минимальную версию iOS, на которой можно будет использовать наше приложение, ориентацию экрана, которая будет поддерживаться в приложении. В данном случае iOS 8 и только Portrait orientation.
Теперь предлагаю сделать несколько первых шагов, которые помогут нам двигаться быстрее в будущем. Создадим файл Useful.swift, в котором напишем несколько полезностей. Для этого в файловом меню нажмите правой кнопкой мыши -> Новый файл, затем выберите swift file.
Открыв только что созданный файл, для начала добавим сокращений. Во-первых, это повышает скорость написания кода, а во-вторых, сильно сокращают длину строчек, тем самым повышается читаемость кода, конечно, при том условии, что строчек не слишком много и они интуитивно понятны. Для этого импортируем несколько полезных библиотек после строчки import Foundation:
Теперь наш файл должен выглядеть примерно так:
В следующих частях блога будем добавлять сюда еще всяких полезных фишечек, пока запомним этот момент и пойдем дальше.
Давайте наведем порядок в нашем проекте.
Откроем файл GameScene.swift и удалим содержимое класса — творить лучше на чистом холсте. После этой несложной манипуляции файл должен выглядеть примерно так:
Аналогичную процедуру проделываем с файлом GameViewController.swift
2) Удаляем файлы Actions.sks и GameScene.sks
3) Настроим иерархию, создадим папки Main, Design, Scenes.
В папку Main поместим файлы AppDelegate.swift, Info.plist, Main.storyboard, LaunchScreen.storyboard и GameViewController.swift
В папку Design поместим файл Assets.xcassets
А в папку Scenes GameScene.swift
После проделанных процедур наш проект должен выглядеть примерно вот так:
Ну что ж, все подготовительные работы проделаны, не забывайте сохранять ваши проекты! Следующая часть
Сделай игру для iPhone за 10 минут. Прямо сейчас
В закладки
В этой статье мы пошагово разберем, как сделать элементарную игру для iOS, ничего об этом не зная!
Вы пройдете путь от создания проекта до просмотра готовой игры на устройстве за 12 шагов и освоите основные принципы создания игр в xCode. Ну а потом решите, продолжать ли учиться разработке под iOS.
На все действия уйдет 10-15 минут.
Нам понадобятся:
- Mac с установленным Xcode;
- Устройство с iOS;
- Изображение цветка;
- Изображение травы.
Шаг 1. Создаем новый проект в Xcode
Запускаем xCode, выбираем пункт меню File -> New -> Project.
Шаг 2. Выбираем тип проекта
На следующем экране выбираем тип проекта – Game.
Шаг 3. Указываем основную информацию о проекте
Указываем название проекта и сверяем остальные настройки с картинкой.
Шаг 4. Выбираем место для папки с проектом
В открывшемся окне Finder указываем папку, в которой будем хранить проект. При необходимости можно воспользоваться кнопкой Create Folder в левом нижнем углу окна.
Шаг 5. Настраиваем игру
Теперь перед нами окно детальных настроек приложения. Снимаем галочку с Portrait в разделе Deployment Info, чтобы игра работала только в горизонтальном режиме.
Шаг 6. Смотрим на стандартный пример игры
Нажимаем на кнопку запуска симулятора в левом верхнем углу. Ждем некоторое время, пока симулятор загрузится. Кликаем на серое поле, чтобы появлялись космические корабли.
Шаг 7. Меняем космические корабли на цветы
В правом меню выбираем пункт assets.wcassets, потом делаем активным объект Spaceship и на место картинки с космическими кораблем перетаскиваем картинку с цветком.
Шаг 8. Смотрим, что изменилось
Снова запускаем эмулятор. Теперь вместо космических кораблей появляются цветы.
Шаг 9. Уменьшаем размер цветка
Уменьшим цветы в пять раз. В правом меню выбираем файл GameScene.swift и находим в нем строчки кода:
Шаг 10. Добавляем траву в коллекцию картинок
Идем в assets.wcassets, находим плюсик (см. картинку), нажимаем на него и выбираем пункт меню New Image Set. Называем новый набор картинок Background (название должно быть точным) и перетаскиваем в него картинку с травой из Finder.
Шаг 11. Добавляем траву в код
Удаляем код, который делает фоновую надпись HelloWorld:
На его место вставляем:
Шаг 12. Тестируем игру на устройстве
Идем в Xcode -> Preferencies -> Accounts и добавляем свой Apple ID:
1. Подключаем iOS-устройство к компьютеру.
2. Выбираем устройство и жмем на кнопку запуска.
3. Если появляется сообщение о проблемах с безопасностью, идем на iOS-устройстве в Настройки -> Основные -> Управление устройством и разрешаем запуск приложений от нужного разработчика.
4. Находим на Spring Board иконку приложения и запускаем его.Теперь устройство можно отсоединить от компьютера и продолжать пользоваться приложением.
Если возникли какие-то проблемы, то обновите iOS и xCode.
В App Store такую игру не примут, но можно развлекаться на своих устройствах. Если проявить немного усердия, из этой основы можно сделать что-то действительно интересное с помощью Google и StackOverflow.
Не разбираясь в программировании, мы создали простую игру и потратили всего 10 минут. Чему же можно научиться за год интенсивного обучения под руководством опытных преподавателей?
Где учиться разработке под iOS?
Лучший вариант — поcтупить на факультет iOS-разработки в онлайн-университет GeekUniversity, созданный GeekBrains и Mail.ru. Целый год несколько вечеров в неделю вы будете изучать программирование под iOS. Занятия проходят в формате вебинаров и учиться можно в любой стране мира.
В GeekUniversity практикуют проектно-ориентированное обучение. За год вы создадите 4 собственных приложения для iOS:
- Погодное приложение;
- Мобильную игру;
- Приложение для интернет-магазина;
- Командный проект.
После года обучения вы получите годовой опыт индивидуальной и командной разработки, примеры реальных проектов для портфолио и знания, достаточные для работы разработчиками. У каждого ученика на курсе есть наставник, который контролирует прогресс и отвечает на все вопросы.
Какие знания вы получите на факультете iOS-разработки?
За год супер-интенсивного обучения ученики усваивают огромный объем знаний:
- Навыки программирования на Swift
- Навыки программирования на Objective C
- Навыки разработки мобильных игр
- Знание алгоритмов и структур данных
- Понимание компьютерных сетей и операционных систем
- Работа в команде
- Методологии разработки: Agile, Scrum
- Умение работать с GIT
- Знание принципов ООП
- Навыки успешного прохождения собеседований и общения с заказчиками
- Навыки проектирования архитектуры, использования шаблонов проектирования singletone, adapter, factory, dependency injection
- Навыки использования IOS SDK, карт, геолокации, push-уведомлений, анимаций и 3d-touch
- Навыки разработки мобильных приложений под iOS
- Навыки написания чистого кода
Это очень мощная теоретическая база, на основе которой можно вырасти в действительно крутого спеца, если не снижать темп и продолжать интенсивное обучение.
Что вас ждет после обучения?
Выпускники получают сертификат об окончании GeekUniversity, гарантированное трудоустройство и год онлайн-обучения английскому языку в подарок.
Узнайте больше о факультете о факультете iOS-разработки и запишитесь на подготовительные курсы здесь.
В закладки
Как два студента сделали игру под iOS и сколько заработали на этом
Ровно год назад мы с другом решили по-быстрому сделать игру под iOS. Что из этого вышло, и сколько нам удалось заработать, я расскажу под катом.
Первые шаги
Вообще мы C++ разработчики и уже раньше пытались сделать кросс-платформенную игру, используя известные нам инструменты — Qt и C++. Тогда мы работали над игрой в жанре Tower Defence в новогоднем сеттинге. Для погружения в атмосферу инди-разработки предлагаю посмотреть пару видео из того времени:
Мы потратили около двух месяцев на создание движка, нормальных элементов управления и решение типичных проблем кроссплатформенной разработки. Разумеется, проект заглох, так как не давал дофамина соразмерно затраченным усилиям.
Второе дыхание
В какой-то момент мы решили изучить нативные инструменты разработки. А именно SpriteKit на iOS. Я накидал демку на Swift, в которой было 1000 движущихся спрайтов с альфа каналом. Она заняла всего пару десятков строк кода и выдавала 60 fps на iPhone 5! Это был просто восторг! Низкий порог входа и бешеные возможности встроенного движка снова разожгли в нас энтузиазм!
На этот раз мы сформулировали основную цель так: Игра должна быть в AppStore! Она просто не может отправиться ко всем остальным недоделанным проектам на задворки гитхаба! Это означало, что игра должна быть настолько простой, чтобы её нельзя было не сделать. Пора начать доделывать дела!
Мы не могли себе позволить вручную создавать уровни, так как после создания игровой механики энтузиазм мог угаснуть. Поэтому думали сделать раннер или платформер с одним бесконечным уровнем. Как Subway Surfers, Doodle Jump, Nyan Cat или Flappy Bird. Также мы хотели минимизировать количество текста, чтобы не возиться с локализацией.
Вижу цель
Так что мы придумали? Беглое изучение инструментов разработки под iOS показало, что встроенный двумерный физический движок просто огонь! Разработка под него выглядит примерно так:
- создать физический мир
- добавить объект мяч в физический мир
- добавить объект пол в физический мир
- включить гравитацию!
Можете представить себе эмоции программиста, который до этого два месяца жонглировал указателями?
Разумеется мы решили использовать физику в качестве основного элемента игры. Какую игру с бесконечным уровнем на основе физики можно сделать с мячом? Чеканку мяча!
По задумке, игрок должен управлять ногой футболиста и чеканить (набивать) мяч. Цель игры — начеканить как можно больше. Считаются отскоки от ступни, колена и головы. При этом, обязательным фактором была монетизация. Хоть какая-нибудь! Тут дело даже не в заработке — нужно познакомиться с инструментами.
Сделаем за неделю
Так, цель мы сформулировали достаточно четко. Пора приступать! Мы забили на пары и ушли в отпуска с работы на неделю. За это время мы планировали сделать меню, сцену с игрой, подсчет очков и рекламу. Думаете, получилось?
Получилось! Мы реально успели сделать игру без дизайна и звуков за неделю. На инструментах, которыми. раньше никогда не пользовались (Swift + SpriteKit). Получилось нечто даже более-менее играбельное, правда с заглушками вместо нормальных текстур.
Да, у нас нет обучения, системы мотивации и еще много чего. Но этого уже достаточно, чтобы художник понял, как будет выглядеть итоговая организация элементов.
Или за месяц
Так, стоп! Художник? Мы что крупная корпорация? Нет, но программисты обычно рисуют не очень. Поэтому было решено отдать это дело на аутсорс. Тем более, что наша неделя на игру подошла к концу.
Мы заказали у знакомой художницы 15 текстур, чтобы все они были в одном стиле, пропорциональны и гармоничны. За деньги. Да, мы инвестировали не только время) Вообще, это был первый опыт работы с фрилансерами. Полезный опыт. Рекомендую.
Постепенно из набросков стал вырисовываться дизайн игры.
Ну или за полгода
План с новым дизайном был такой: просто по одной меняем старые текстуры на новые и вуаля — игра готова. Как бы не так! Все текстуры были немного под другими углами, другого размера, с другими местами стыковки. Это привело к тому, что вся верстка уехала. При этом существенно нарушилась физика ноги и её нужно было отлаживать заново.
Новые текстуры были большего разрешения и при замене в редакторе сцены Xcode постоянно вылетал! библиотеки у Apple, конечно отличные, но IDE мягко говоря могла быть и по стабильнее! Приходилось удалять 10 версию Xcode и ставить 9, чтобы хоть как-то работать с текстурами.
Кстати, на каком-то этапе обнаружился интересный баг с коленом, который мы назвали «Режим кузнечика».
И такие неочевидные проблемы вылезали одна за одной. А релиз все откладывался и откладывался. За следующие несколько месяцев работы по вечерам мы поправили баги, добавили звук и улучшили взаимодействие с пользователем. В итоге игра достигла хоть сколько-то приемлемого уровня и мы решили релизить!
Финишная прямая
Вот у нас готова игра. Что нужно для завершения проекта? Загрузить в AppStore. Всего то. Для этого нужен аккаунт разработчика, политика конфиденциальности, иконки и скриншоты всех размеров, а также описания на языках всех стран, где вы хотите размещаться.
Это все решаемые задачи, но они тоже отнимают время. Регистрация аккаунта разработчика стоит $100, иконки разных размеров делаются в онлайн-генераторах, как и политика конфиденциальности. Побыстрому накидали и перевели глупые описания и отправили на проверку.
Проверка занимает 2 суток. У нас отклонили 1 раз из-за каких-то законов Китая. Мы просто не стали там релизиться, и через двое суток наступил этот долгожданный момент! Игра в магазине! Мы шли к этому полгода! Мы довели проект до конца!
Таки шо по деньгам?
Схема монетизации в нашей игре была выбрана следующая. В момент, когда игрок теряет мяч, он может посмотреть рекламу и продолжить чеканить не потеряв очки. Так можно сделать только один раз. В техническом плане мы использовали Google Rewarded Video Ads.
Игра в магазине полгода. Она бесплатная. Из продвижения — только рассылка в институтские чатики и друзьям. За это время игру установили почти 250 человек. Не могу сказать, что мы довольны или огорчены этим результатом. Главное — это первый завершенный свой проект с монетизацией.
По затратам проект вышел примерно в 150 человекочасов, 2500р оплата художнику и $100 за аккаунт разработчика. Окупилось? Давайте посмотрим в дашбоард Гугл рекламы.
Да, за все время мы заработали $5.41
360 рублей. При затратах в 9000 рублей. Итого, доходность мероприятия: -96%. Да, заголовок немножко кликбейтный, простите)
Что в итоге?
В итоге у нас за плечами есть отличное путешествие от идеи до магазина, рабочее приложение, умение работать с фрилансерами, рекламой и AppStore. А самое главное — мы знаем, что можем доводить проекты до их логического завершения.
А что по поводу того, что заработали мы всего $5? Я вам скажу: Зато не на дядю!