Инди Код — Разработка игр
237 subscribers
56 photos
27 links
Здесь я делюсь своим личным опытом в мире геймдева, рассказывая о пути инди-разработчика: от первых строк кода до создания своих игр. Выкладываю на Яндекс Игры.
Download Telegram
Выложил новый урок: Как создать игру «Память» на HTML, CSS и JavaScript

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

https://dzen.ru/a/aEvYSETtWQbWc2ky
1🔥3
Сижу и думаю, как всё-таки здорово, что есть одно простое средство, которое работает всегда — в любую погоду. Устал, вымотался, не знаешь, какой шаг следующий — просто иди спать.

Сон — это не слабость, это перезагрузка. Иногда это и есть тот самый шаг вперёд.

Я — спать. И вам тоже хорошего отдыха. Набирайтесь сил, коллеги. Мы ещё много сделаем. ❤️
7👍96🤝2
Когда «просто» — это слишком сложно

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

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

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

И вот недавно это щёлкнуло: делать просто — тоже навык. Иногда даже посложнее, чем делать сложно.

Сложное — привычно. Простое — требует доверия, скорости, гибкости. Делать «не идеально», но «достаточно хорошо» — это и есть рост. Даже если внутренний критик не в восторге.

Путь к простоте, как оказалось, совсем не простой. Но кажется, я на нём.
1👍82
Создал 26 веб-приложений, 6 youtube-каналов, 4 игры — все провалилось. Что я понял?

Иногда я останавливаюсь. Просто сижу в тишине и позволяю мыслям всплывать — медленно, словно воздух со дна. Кем я стал? Куда пришёл? Куда ещё стремлюсь?

Сегодня в памяти всплыло многое. И я хочу этим поделиться.

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

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

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

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

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

Все эти попытки не были провалами. Это была тренировка восприятия. Я учился видеть суть — в звуке, в видео, в тексте, в коде.

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

Сегодня я программирую на JavaScript, PHP, Rust и Lua. Собеседую и обучаю людей, отвечаю за проекты на всех этапах: от концепта до продакшна. Системы и компоненты, которые я проектирую, выдерживают серьёзную нагрузку, масштабируются и решают реальные задачи. Также я веду команду разработчиков. Балансирую между технарём и лидером — учусь поддерживать, вдохновлять, направлять. Я работаю в геймдеве, веду блог о гейм деве и делюсь личным опытом — чтобы тем, кто читает, было хоть немного легче.

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

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

В Frostpunk есть день, когда к воротам приходит группа калек и детей. За ними тянется снег, ветер режет лица, а они смотрят на тебя, как на последнюю надежду. Пустишь их — еды не хватит, город ослабнет и не переживёт мороз. Откажешь — они замёрзнут там, за стенами.

В проектах бывает так же. У меня был момент, когда нужно было в одиночку уместить год работы двух человек в четыре месяца. Пришлось оставить только тех «жителей», что могли работать: задачи, без которых проект рухнет. Всё остальное — вырезать, отложить, заменить ИИ. Даже если к каким-то идеям уже успел привязаться, приходилось безжалостно оставлять их за воротами. С пониманием, что они замерзнут навсегда.

В Frostpunk это цена выживания города. В работе — цена того, чтобы довести проект до релиза. И в обоих случаях нельзя спасти всех.
🎅42
Читеры и вечная война умов

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

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

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

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

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

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

И, может быть, именно в этой бесконечной борьбе и есть жизнь любой системы — в противостоянии. В вечной борьбе системы становятся лучше и безопаснее. Может быть эта борьба и двигает рынок в технологическом плане? Ну и как приятный бонус, благодаря читерам — у меня есть идея для этого поста.
🔥4👍1💯1
Проекту «Инди Код» исполнился 1 год. Спасибо вам всем за обратную связь. В частности за комментарии, лайки, просмотры видео. Приятная компания тут собралась. ❤️
🎉9🔥62🥰1👏1
Профессионалы рынка и право на ошибку

Ошибаются все.

Даже те, кого принято называть профессионалами. Особенно они.

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

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

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

Со временем становится ясно: ошибки — не сбой системы. Это и есть её работа. И именно способность признавать их превращает участника рынка в того, кем он себя называет.
🔥31👍1
Заходите в наш уютный чат для инди-разработчиков:
@codeindiechat

Обсуждаем геймдизайн, код, маркетинг и просто общаемся.

Добро пожаловать в комьюнити!
🕊2👀1🤗1
Инди Код — Разработка игр pinned «Заходите в наш уютный чат для инди-разработчиков: @codeindiechat Обсуждаем геймдизайн, код, маркетинг и просто общаемся. Добро пожаловать в комьюнити!»
Наш чатик стал поживее. Поделил на топики для обсуждения.

1. Точка входа: Лобби Когтеграда
Флудилка, если не нашлось общего топика.

2. Финансовый протокол
Обсуждаем монетизацию игр: способы заработка.

3. Шум города
Обсуждаем маркетинг и продвижение игр: оформление, набор аудитории, рекламу.

4. Активный контракт
Обсуждаем ваши текущие проекты: прототипы, демки, скриншоты, запросы на фидбек.

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

Чат для инди разработчиков: @codeindiechat
1👍1
Пятая часть документалки про Disco Elysium. Посмотрели с женой на одном дыхании. Это, наверное, самая откровенная документалка про игровую разработку, которую вообще сейчас можно найти в свободном доступе.

Оказывается ZA/UM в своё время прошли самые злободневные красные флаги молодых студий:
- оторванный от производства менеджмент
- тихие увольнения без внятных причин
- адские переработки
- принудительное разделение команды на несколько офисов
- навязывание релокации
- попадание руководства под следствие
- сваливание вины за просроченные дедлайны на программистов, особенно тех, кто работал не на полную ставку
- наркотики, в конце концов

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

В общем, крайне рекомендую к ознакомлению. Это очень откровенно видео о том, как НЕ надо вести разработку. Ни под каким предлогом. Так делать нельзя, даже если вы делаете игру мечты. NoClip обещают ещё одну, уже шестую, часть. Хотят подробнее рассказать про то, кто куда ушёл из ключевых сотрудников и дать более подробный взгляд на вещи с их точки зрения.

#новостиигр #DiscoElysium
Цена релиза

Когда начинаешь делать игру, эмоций слишком много.

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

Но потом ты запускаешь проект десять раз. Двадцать. Тридцать.

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

В этот момент многие проекты умирают.

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

Именно поэтому одного вдохновения мало.

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

А дальше — разбирать этот результат на задачи и двигаться итерациями. Не потому что это красиво звучит «по-менеджерски». А потому что без этого проект начинает растворяться в собственном творческом тумане.

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

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

Потому что проект не становится игрой, пока он лежит в директории. Не становится игрой, пока он в разработке. Игрой он становится только тогда, когда до него наконец доходит игрок.
👏51💯1🤨1😎1
На каком вы этапе в гейм-деве?

Друзья, нужна ваша помощь как воздух.

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

Выберите пункт, который про вас. Это займёт 5 секунд, а мне даст понять, о чём писать в следующих постах.

На каком вы этапе в гейм-деве?
3
12 лет в разработке. Вот с чего я бы начал учиться кодить сейчас

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

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

Кодить нельзя научиться в теории.

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

На практике всё работает иначе.

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

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

Пишешь строку. Запускаешь. Получаешь ошибку. Исправляешь. Снова запускаешь. Видишь результат.
И именно в этот момент код начинает становиться понятным.

Поэтому я сделал бесплатный урок «Рисуем первого героя на JavaScript».

Там не нужно заранее знать весь JavaScript.
Не нужно устанавливать сложные инструменты.
Не нужно готовиться месяцами.

Мы просто шаг за шагом нарисуем кота на Canvas из простых фигур и посмотрим, как обычные строки кода превращаются в персонажа на экране.

Это маленькая задача.

Но именно с таких задач и начинается нормальное понимание программирования.

Забрать бесплатный урок можно здесь
2🔥1
Новички не тупые. Их просто неправильно учат кодить.

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

Они открывают книгу, курс или ролик на YouTube — и сразу попадают в сухую теорию: переменные, функции, циклы, алгоритмы, массивы, объекты, Git, Docker, сборщики, фреймворки, ещё один язык, потом ещё один фреймворк.

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

Он ещё не написал ни одной нормальной строки кода, но уже чувствует, что отстал.

В голове появляются вопросы:

«А что мне делать со всем этим?»
«Как из переменных и циклов получить игру, сайт или приложение?»
«Зачем мне сейчас Docker, если я ещё не понимаю, как код запускается?»
«Может, я просто тупой?»

Но тупой здесь не человек.
Тупой подход к обучению.

Тем, кто уже умеет кодить, кажется, что всё очевидно. Но новичок видит совсем другую картину: он ещё даже не стартанул, а вокруг уже React, TypeScript, backend, базы данных, нейросети, вайбкодинг и разговоры о том, что программисты скоро вообще не нужны.

И это добивает сильнее всего.

Потому что человек только собрался войти в программирование, а ему уже говорят: «Поздно. Всё изменилось. Теперь за тебя будет писать ИИ».

Нет.

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

Такой, где ты написал код — и он что-то сделал.
Нарисовал объект. Сдвинул персонажа. Поймал ошибку. Исправил. Увидел результат на экране.

Я готовлю большой материал на тему: «Как учиться программировать в эпоху ИИ».

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

Что для вас самое сложное в изучении программирования? Где обычно возникает ступор?

P.S. Если хочется стартануть и за 30 минут получить первый видимый результат в коде — оставлю ссылку ниже.

Забрать бесплатный урок: рисуем первого героя на JavaScript
4
Не используйте ИИ первые полгода, если хотите научиться программировать

Сейчас очень легко начать делать игру.

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

Казалось бы, магия.

Раньше на это могли уйти часы. Нужно было понять, что такое HTML, Canvas, JavaScript, цикл игры, координаты, отрисовка, обработка клавиш. А теперь можно просто написать: «сделай мне игру, где котик бегает по лабиринту».

И ИИ действительно что-то сделает.

Но есть проблема.

Когда ты начинаешь с ИИ, ты очень быстро получаешь результат, но почти не понимаешь, из чего он состоит.

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

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

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

Нужно почувствовать, как строка кода превращается в действие на экране.

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

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

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

С игрой то же самое.

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

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

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

Не потому что ИИ плохой. А потому что сначала нужно научиться думать кодом. Писать самому. Ошибаться самому. Искать баги самому. Понимать, почему программа делает именно это, а не то, что ты хотел.

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

Первые полгода лучше делать маленькие проекты руками. Простые игры. Простые механики. Простые эксперименты. Нарисовать персонажа. Заставить его двигаться. Добавить стены. Сделать ключ. Сделать дверь. Сделать победу. Сделать проигрыш. Сделать рестарт.

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

Это большая разница.

Потому что цель не в том, чтобы получить код.

Цель в том, чтобы научиться создавать.

А создавать невозможно, если ты не понимаешь, что происходит внутри.
👏2💯2👍1👎1
Самый жирный контент о программировании я кое-где спрятал

Да, я начал писать книгу о программировании.

И, кажется, это хороший момент, чтобы наконец-то нормально познакомиться.

Долгое время я вел этот блог анонимно. Мне хотелось, чтобы внимание было не на авторе, а на контенте: идеях, подходах, практике, пользе.

И я хочу продолжать вести блог в таком формате.

Но есть один нюанс.

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

Поэтому в книге я решил начать именно с этого. Со своего опыта. Со знакомства.

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

Войти в ближний круг

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

Сейчас вообще очень странное время в IT.

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

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

Но! ИИ ускоряет тех, кто шарит.

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

А в реальных проектах должно работать стабильно и надёжно. Поэтому моя книга — про другой вход в программирование.

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

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

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

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

Блог я хочу и дальше вести анонимно, чтобы основное внимание оставалось на идеях, а не на моей личности.

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

Для тех, кто хочет — приглашаю.

Войти в ближний круг
3🔥31
У книги уже больше 10 отзывов.
И вот этот особенно точно попал в суть.

Это не книга про «всё просто, бери и делай». Это честная карта местности для тех, кто хочет начать программировать с нуля и не бросить после первой сложности.

Спасибо всем, кто уже читает и поддерживает книгу на этапе черновика.

Сейчас она стоит 149 рублей. Дальше, с новыми главами, цена будет расти.

Получить ссылку на книгу
1