Инди Код — Разработка игр HTML5
167 subscribers
40 photos
18 links
Здесь я делюсь своим личным опытом в мире геймдева, рассказывая о пути инди-разработчика: от первых строк кода до создания своих игр. Выкладываю на Яндекс Игры.
Download Telegram
Прошло чуть больше месяца с момента как я начал пилить html5 игры. С одной стороны, я немного разбираюсь в веб разработке. Как мне кажется достаточно хорошо ориентируюсь в бекенде и фронтенде.

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

Как минимум, это всё очень весело.

Примерно 11-12 октября мне пришла идея начать пилить html5 игры. Можно сказать прошло 1,5 месяца моих экспериментов. И вот этот блог, чтобы не потерять настрой и найти единомышленников.
2👍3👏1🦄1
За время моих экспериментов попробовал два движка.

Попробовал:
- PhaserJS - его пробовал без GUI. Просто библиотеку подключаешь через менеджер пакетов и вперед кодить по хукам.
- Construct 3 - тут уже веб GUI приятный, понятный.

Выбор остановился на втором :) Понравилось и больше разобрался. В качестве тренировки переписал первую игру с phaser js на construct 3, вот так и постигаю все нюансы. Нравится.

Пока что ограничиваюсь разработкой в GUI констракта, без IDE и гита, без какой-либо структуры. Все как в старые добрые джуновские времена.

Выпустить удалось три игры. Опубликованы были они на яндекс играх. Пока что продолжаю набивать руку, пробовать реализацию разных механик и постигать безграничный мир гейм дева. 😁
3👍1
Судя по аналитике первая игра вышла 20 октября. Сделал я её на phaser js. Залил на яндекс игры и конечно игра не прошла модерацию с первого раза. Ох, сколько мемов про модерацию яндекса насмотрелся.

Мне вероятно повезло со второго раза игру аппрувнули. Модерация про все ошибки пишет при отклонении сразу. Если их исправить, то со второго или третьего раза модерация проходит. Или может мне так просто повезло во всех трёх играх? 😱

В следующих играх старался не допускать тех же ошибок. Допускал другие 👹

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

Позже эту игру я и переписал на construct 3.

На сегодняшний день в игру поиграло в игру всего 55 человек, а доход на человека составил 0.1 руб.

P.S. Только для десктопа. Управление стрелками влево-вправо https://yandex.ru/games/app/380059
23👍3
Забавная история возникновения идеи для игры

Шел по улице в магазин и переписывался в чатике с друзьями. Друзья рассказывали про свою идею для стартапа и мне прислали на оценку MVP лендинга "обучающие продукты для детей".

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

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

Идея была такая простая: на поле из 16 плиток вперемешку нужно найти пару плиток с одинаковыми изображениями и за это получаешь очки.

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

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

На вторую игру ушла плюс/минус неделя. А название у игры исторически такое: "Детский маджонг"

P.S. Можно поиграть с телефона https://yandex.ru/games/app/383931
4🔥2🎄1🦄1
Детский маджонг 1.0.0.0

Для истории я оставлю скрины как выглядит сейчас версия игры. В будущем очень сильно всё изменится в артах и добавится мета-геймплей.
2🔥21👏1👌1
Почему инди-разработчику лучше начинать с малого

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

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

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

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

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

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

Главное правило для инди-разработчика — не хватать сразу всё, что лежит в поле зрения. Маленькие победы — вот что мотивирует идти дальше, а вот пытаться сделать сразу "шедевр" может закончиться проектом, который так и останется на стадии "мысли". Лучше учиться на простых играх, делать маленькие шаги, и успех точно не заставит себя ждать. Как минимум, я в это верю.
3🤔3👍211🔥1🎄1
Почему одни игры продвигаются Яндекс Играми, а другие — нет

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

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

Теперь о Яндекс Играх. Алгоритмы, которые двигают игры на этой платформе, как строгая училка, которая награждает тех, кто не отвлекается на посторонние вещи на уроке (например, котиков). Если игру любят, если она удерживает внимание, если игроки возвращаются, чтобы поиграть снова — вот она, магия: игра начинает набирать органический охват. Алгоритмы воспринимают это как сигнал, что стоит показать её большему количеству людей. А это — больше удержание пользователя на платформе в принципе, больше показов рекламы, больше дохода, и все счастливы! И разработчику приятно, и платформе.

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

Мой главный вывод: делай игру, которая затянет и не отпустит. Меньше пафоса, больше простоты. Вот это мой секрет и моя стратегия на сегодня.
1👍6🤷‍♂2🤷‍♀1🔥1🤔1
Почему в работе необходим отдых

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

В такие моменты я понимаю, что нужно сделать паузу. Несколько дней без работы помогают освежить взгляд на проект. Отдых — это не роскошь, а неотъемлемая часть процесса. Без перерывов сложно видеть, где действительно есть прогресс, а где ещё нужно работать. Также отдых помогает осознать насколько хорошо проделана работа. Возможно где-то нужно поправить или вообще переделать с новыми силами. Когда я возвращаюсь после короткого отдыха, появляется новая энергия и свежий взгляд на то, что казалось уже застопорившимся.
3👍3🔥21👌1
Что я делаю, чтобы работать быстрее и умнее при разработке HTML5 игр

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

Потом, когда начал добавлять систему обновления фонов в игре, задумался ещё раз. Тоже уже делал такое в другой игре. Быстро прикинул, что пора переходить на «взрослый» режим и завязывать с визуальным программированием. Рутинные действия: клик туда, клик сюда — это большие дыры в бюджете времени, которые порождают неэффективность. Всё, что можно автоматизировать и сделать по алгоритму — желательно автоматизировать. А значит, можно сэкономить кучу времени, а значит, больше времени для создания новых багов.

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

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

Чтобы всё это работало как надо, я поменял подход. Проект в Construct 3 теперь сохраняю в папку с файлами. Эвент таблицы теперь заменены на скрипты с поддержкой TypeScript. Сам проект открыл в IDE и, как настоящий маг, начал программировать там. В констракте делаю лишь запуск проекта и добавление спрайтов. Добавил еще Git для версионирования. А дальше — осталось только переделать уже сделанную игру, но теперь на TypeScript.

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

План на будущее для ускорения разработки:

1. Изучить готовые библиотеки и плагины.
2. Нейросети, чтобы ускорить работу с графикой и кодом.
3. Написать свои шаблоны/плагины для разработки.
4. Настроить CI: тесты, линтеры, минификация и сборка финального билда под конкретную площадку.
5. Автоматизированное сжатие графики и хранение для подгружаемого контента — вес билда из-за графики вообще отдельная больная тема, надо что-то думать.
6. Автоматическое снятие метрик: веса билда, FPS, перфоманса и др.

А ещё думаю купить себе какой-нибудь слабенький андроид для тестов. Вот такие вот размышления. А что вы делаете, чтобы работать эффективнее?
2👍72🔥1
Детский маджонг 2.0.2.0

Продвинулся с прошлой версии. Сейчас глобально работаю над усилением вовлеченности в игру. Чуток добавилась мета, теперь есть куда тратить монетки.

Можно покупать фоны, изменены анимации плиток при новом раскладе и при выборе плитки, добавлена локализация на 3 языка, ревард видео появилось и интерстишл реклама.

Дальше буду еще усилять кор и мету. Советы и идеи принимаются.

Потыкать игру можно с телефона в портретной ориентации на Яндексе:
https://yandex.ru/games/app/383931?lang=ru
32