Как я ушёл с игровых движков, заблудился в коде и нашёл новые инсайты
Сначала был Phaser JS. Потом я решил, что удобнее использовать Construct 3 с его визуальным редактором. Затем перевёл игру с Event Sheets на TypeScript — больше контроля, меньше ограничений. А теперь… пишу свой движок под конкретные задачи. Вот так получилось. В путешествии никогда не знаешь куда приведет тебя новая дорога.
Мне хотелось лёгкости, мобильности и минимального веса билда. Казалось, что чистый TypeScript — идеальный вариант.
Глубже в рендеринг: когда начинаешь понимать, как браузер рисует игру
За это время я гораздо лучше разобрался в том, как браузер обрабатывает и отрисовывает контент. Теперь вся эта кухня выглядит куда понятнее:
• Critical Rendering Path показывает, как браузер превращает HTML, CSS и JS в пиксели на экране и какие шаги замедляют этот процесс.
• requestAnimationFrame помогает синхронизировать отрисовку с кадровой частотой экрана и избегать лишних перерисовок.
• Event loop управляет выполнением кода, а тяжёлые вычисления в основном потоке легко блокируют интерфейс. Разгрузить его можно с помощью Web Workers и OffscreenCanvas.
Теперь понимаю, где можно оптимизировать работу игры, где прячутся потенциальные проблемы с производительностью. Всё это полезные знания. Но вот факт: игра вообще не сдвинулась. Последнее обновление на площадке было 22 декабря 2024.
Когда вместо фич изучаешь, как их правильно делать
Вместо того чтобы просто добавить адаптивность игры, чтобы выйти на десктоп и настроить локализацию для выхода в других странах, я зарывался в исследования и пытался придумать универсальные решения по оптимизации работы.
Да, теперь у меня есть чёткое понимание, как правильно выстраивать архитектуру и где спрятаны подводные камни, но игра-то не обновляется.
А потом я ещё решил использовать ИИ в разработке. Это добавило интересных инсайтов, но в какой-то момент я так сильно запутал кодовую базу, что проще было начать с нуля, чем пытаться всё разгрести.
Теперь у меня хотя бы есть понимание:
- как строить архитектуру движка и игры без хаоса,
- как не надо работать с ИИ,
- почему промптинг — это отдельный навык, который ближе к программированию, чем кажется.
Игры делают не идеальным кодом, а выпущенными релизами
Весь процесс исследования по-своему увлекателен, и мне интересно разбираться в глубине технологий. Но если цель — делать игры, а не бесконечно оптимизировать процесс их создания, то, возможно, лучше взять готовый движок и сосредоточиться исключительно на результате.
Если хочется пилить HTML5 игры, то берите Construct 3 и не морочьте себе голову. А я пока еще повожусь.
Сначала был Phaser JS. Потом я решил, что удобнее использовать Construct 3 с его визуальным редактором. Затем перевёл игру с Event Sheets на TypeScript — больше контроля, меньше ограничений. А теперь… пишу свой движок под конкретные задачи. Вот так получилось. В путешествии никогда не знаешь куда приведет тебя новая дорога.
Мне хотелось лёгкости, мобильности и минимального веса билда. Казалось, что чистый TypeScript — идеальный вариант.
Глубже в рендеринг: когда начинаешь понимать, как браузер рисует игру
За это время я гораздо лучше разобрался в том, как браузер обрабатывает и отрисовывает контент. Теперь вся эта кухня выглядит куда понятнее:
• Critical Rendering Path показывает, как браузер превращает HTML, CSS и JS в пиксели на экране и какие шаги замедляют этот процесс.
• requestAnimationFrame помогает синхронизировать отрисовку с кадровой частотой экрана и избегать лишних перерисовок.
• Event loop управляет выполнением кода, а тяжёлые вычисления в основном потоке легко блокируют интерфейс. Разгрузить его можно с помощью Web Workers и OffscreenCanvas.
Теперь понимаю, где можно оптимизировать работу игры, где прячутся потенциальные проблемы с производительностью. Всё это полезные знания. Но вот факт: игра вообще не сдвинулась. Последнее обновление на площадке было 22 декабря 2024.
Когда вместо фич изучаешь, как их правильно делать
Вместо того чтобы просто добавить адаптивность игры, чтобы выйти на десктоп и настроить локализацию для выхода в других странах, я зарывался в исследования и пытался придумать универсальные решения по оптимизации работы.
Да, теперь у меня есть чёткое понимание, как правильно выстраивать архитектуру и где спрятаны подводные камни, но игра-то не обновляется.
А потом я ещё решил использовать ИИ в разработке. Это добавило интересных инсайтов, но в какой-то момент я так сильно запутал кодовую базу, что проще было начать с нуля, чем пытаться всё разгрести.
Теперь у меня хотя бы есть понимание:
- как строить архитектуру движка и игры без хаоса,
- как не надо работать с ИИ,
- почему промптинг — это отдельный навык, который ближе к программированию, чем кажется.
Игры делают не идеальным кодом, а выпущенными релизами
Весь процесс исследования по-своему увлекателен, и мне интересно разбираться в глубине технологий. Но если цель — делать игры, а не бесконечно оптимизировать процесс их создания, то, возможно, лучше взять готовый движок и сосредоточиться исключительно на результате.
Если хочется пилить HTML5 игры, то берите Construct 3 и не морочьте себе голову. А я пока еще повожусь.
1👍7☃1🔥1👏1🎄1
Как я снова поверил в движки, выстрадал игру и всё-таки зарелизил
Есть такая книга — «Кровь, пот и пиксели». Книгу не читал, но название просто идеально отражает реальность. Я бы добавил еще слёзы в этот список, потому что это тоже основа геймдева.
Последний месяц был настолько плотным и выстраданным, что даже не сразу понял, как в итоге получилось — но вот она, новая игра. Живая. С багами, конечно, но играбельна.
На моем счету уже четвертая игра, прошедшая модерацию Яндекс. Игра, кстати, классическая 2048. Есть возможность отмены хода через просмотр рекламы. Но вот даже на такой простой игре я так запотел, что не передать.
Пришлось пожертвовать несколькими идеями: адаптивность на все устройства, локализация на разные языки — и про мета-геймплей вообще можно забыть. Сейчас она доступна только на мобильных устройствах в русскоязычном сегменте и только в портретной ориентации телефонов. Сначала все это сделал, запланировал мету, но потом порезал фичи, чтобы выпустить поскорее.
Поиграть можно тут.
Я вернулся к игровым движкам. Взял Phaser.js, с которого начинал свой путь в инди-разработке. Учёл все свои хотелки: TypeScript, Vite, и движок, в котором уже не нужно изобретать велосипед, а просто использовать то, что давно придумано. И вот оно: главное открытие — я не хочу бесконечно разрабатывать движки, я хочу делать игры. Кажется, это важный момент для всех нас, кто прокачивает свои скиллы, а потом забывает, ради чего все эти усилия затевались.
Сначала я подумал обновить старую игру «Детский маджонг». Переезд с одного движка на другой — это как попытаться влезть в старые джинсы, которые давно не носил. Вроде всё знакомо, но они как будто уже совсем не твои. Но я не сдался, думаю: «Ладно, сделаю что-то новое, отвлекусь на пару дней и потом вернусь». Ну и вот, вместо пары дней на решение вопроса — месяц ушёл на новую игру. И да, это база.
Пока что я не планирую каких-то «серьезных» игр. Буду и дальше осваивать базовые механики на простых играх. Надо прокачивать скилл доведения проектов до релиза, а потом уже задумаюсь о серьезном проекте. Возможно какая-то игра малышечка покажет перспективы для развития.
А у вас какие новости?
Есть такая книга — «Кровь, пот и пиксели». Книгу не читал, но название просто идеально отражает реальность. Я бы добавил еще слёзы в этот список, потому что это тоже основа геймдева.
Последний месяц был настолько плотным и выстраданным, что даже не сразу понял, как в итоге получилось — но вот она, новая игра. Живая. С багами, конечно, но играбельна.
На моем счету уже четвертая игра, прошедшая модерацию Яндекс. Игра, кстати, классическая 2048. Есть возможность отмены хода через просмотр рекламы. Но вот даже на такой простой игре я так запотел, что не передать.
Пришлось пожертвовать несколькими идеями: адаптивность на все устройства, локализация на разные языки — и про мета-геймплей вообще можно забыть. Сейчас она доступна только на мобильных устройствах в русскоязычном сегменте и только в портретной ориентации телефонов. Сначала все это сделал, запланировал мету, но потом порезал фичи, чтобы выпустить поскорее.
Поиграть можно тут.
Я вернулся к игровым движкам. Взял Phaser.js, с которого начинал свой путь в инди-разработке. Учёл все свои хотелки: TypeScript, Vite, и движок, в котором уже не нужно изобретать велосипед, а просто использовать то, что давно придумано. И вот оно: главное открытие — я не хочу бесконечно разрабатывать движки, я хочу делать игры. Кажется, это важный момент для всех нас, кто прокачивает свои скиллы, а потом забывает, ради чего все эти усилия затевались.
Сначала я подумал обновить старую игру «Детский маджонг». Переезд с одного движка на другой — это как попытаться влезть в старые джинсы, которые давно не носил. Вроде всё знакомо, но они как будто уже совсем не твои. Но я не сдался, думаю: «Ладно, сделаю что-то новое, отвлекусь на пару дней и потом вернусь». Ну и вот, вместо пары дней на решение вопроса — месяц ушёл на новую игру. И да, это база.
Пока что я не планирую каких-то «серьезных» игр. Буду и дальше осваивать базовые механики на простых играх. Надо прокачивать скилл доведения проектов до релиза, а потом уже задумаюсь о серьезном проекте. Возможно какая-то игра малышечка покажет перспективы для развития.
А у вас какие новости?
1🔥11❤🔥1
Как я неожиданно увлёкся шахматами
Летом прошлого года я просто ради интереса скачал шахматы на телефон. Не думал, что это как-то изменит мой досуг — но теперь провожу за этой игрой по часу, а то и два в день. И, честно говоря, до сих пор удивляюсь, как глубоко можно в это увлечься.
Чем больше играю, тем шире открывается этот мир — словно бездонный колодец идей, стратегий и неожиданных находок. Каждая партия — как новая история: с напряжением, ошибками, маленькими победами и моментами, где всё висит на волоске. Последний раз я чувствовал нечто подобное, наверное, ещё в 2007 году, когда мы с друзьями днями напролёт зависали в Lineage 2. Там тоже было ощущение вовлечённости, почти полного погружения.
Не думал, что шахматы станут для меня таким стабильным хобби. Это произошло как-то без усилий, само собой. Просто шахматы вошли в мою жизнь и прижились. Сейчас не могу представить день без хотя бы одной партии.
А у вас бывало такое — что хобби находило вас само, и неожиданно становилось частью вашей рутины?
Летом прошлого года я просто ради интереса скачал шахматы на телефон. Не думал, что это как-то изменит мой досуг — но теперь провожу за этой игрой по часу, а то и два в день. И, честно говоря, до сих пор удивляюсь, как глубоко можно в это увлечься.
Чем больше играю, тем шире открывается этот мир — словно бездонный колодец идей, стратегий и неожиданных находок. Каждая партия — как новая история: с напряжением, ошибками, маленькими победами и моментами, где всё висит на волоске. Последний раз я чувствовал нечто подобное, наверное, ещё в 2007 году, когда мы с друзьями днями напролёт зависали в Lineage 2. Там тоже было ощущение вовлечённости, почти полного погружения.
Не думал, что шахматы станут для меня таким стабильным хобби. Это произошло как-то без усилий, само собой. Просто шахматы вошли в мою жизнь и прижились. Сейчас не могу представить день без хотя бы одной партии.
А у вас бывало такое — что хобби находило вас само, и неожиданно становилось частью вашей рутины?
3❤5🔥1
Как я случайно попал в геймдев (и не пожалел)
В 2019 году я почти ничего не делал, кроме того, что писал небольшие истории для блога. Просто тексты — про мысли, про жизнь, без особой цели. Работу не искал. Профессии как таковой у меня не было. Умел только писать код и немного разбирался в маркетинге.
Кодинг шёл со школы — иногда подрабатывал, делал интернет-магазины, админки, в общем, типовые задачки. Даже однажды устроился на постоянную работу, но как-то не зацепило. Через 10 месяцев просто уволился — без плана, в туман.
А потом неожиданно приходит приглашение на собеседование: фулстек-разработка на Symfony и Vue. Я согласился, назначил дату и время — и… уснул перед собесом. Просыпаюсь в 17:01, смс: «Вы придёте?». Меня уже ждут в скайпе. Захожу, отвечаю на вопросы — и обратно спать. Как вы поняли, с режимом у меня тогда тоже было не очень.
На следующий день пишу HR: «Ну как всё прошло?» — а меня зовут на следующий этап. Всего было три. Потом оффер. Так я оказался в геймдеве. Не стремился, не планировал — просто как-то само получилось.
С тех пор продолжаю работать. А в прошлом году решил попробовать сделать свою игру. Просто как эксперимент — посмотреть, как всё устроено вне бэкенда и админок, которые я обычно писал. Начал делиться опытом — про процесс, фейлы, маленькие победы. И неожиданно начали подтягиваться люди. Кто-то с проектами, кто-то с опытом, кто-то просто из интереса.
Постепенно начала складываться небольшая тусовка. И это реально круто. Спасибо, что читаете. Заглядывайте в чат где можно повисеть с коллегами👉 https://t.me/codeindiechat
Зовите коллег из гейм дева или просто всех кому интересно. Кто-то, может, захочет вкатиться в геймдев, а кто-то просто понаблюдать за движухой. Обсуждаем актуальное, делимся наработками, поддерживаем друг друга и просто болтаем.
В 2019 году я почти ничего не делал, кроме того, что писал небольшие истории для блога. Просто тексты — про мысли, про жизнь, без особой цели. Работу не искал. Профессии как таковой у меня не было. Умел только писать код и немного разбирался в маркетинге.
Кодинг шёл со школы — иногда подрабатывал, делал интернет-магазины, админки, в общем, типовые задачки. Даже однажды устроился на постоянную работу, но как-то не зацепило. Через 10 месяцев просто уволился — без плана, в туман.
А потом неожиданно приходит приглашение на собеседование: фулстек-разработка на Symfony и Vue. Я согласился, назначил дату и время — и… уснул перед собесом. Просыпаюсь в 17:01, смс: «Вы придёте?». Меня уже ждут в скайпе. Захожу, отвечаю на вопросы — и обратно спать. Как вы поняли, с режимом у меня тогда тоже было не очень.
На следующий день пишу HR: «Ну как всё прошло?» — а меня зовут на следующий этап. Всего было три. Потом оффер. Так я оказался в геймдеве. Не стремился, не планировал — просто как-то само получилось.
С тех пор продолжаю работать. А в прошлом году решил попробовать сделать свою игру. Просто как эксперимент — посмотреть, как всё устроено вне бэкенда и админок, которые я обычно писал. Начал делиться опытом — про процесс, фейлы, маленькие победы. И неожиданно начали подтягиваться люди. Кто-то с проектами, кто-то с опытом, кто-то просто из интереса.
Постепенно начала складываться небольшая тусовка. И это реально круто. Спасибо, что читаете. Заглядывайте в чат где можно повисеть с коллегами👉 https://t.me/codeindiechat
Зовите коллег из гейм дева или просто всех кому интересно. Кто-то, может, захочет вкатиться в геймдев, а кто-то просто понаблюдать за движухой. Обсуждаем актуальное, делимся наработками, поддерживаем друг друга и просто болтаем.
1🔥7
Как попасть в игровую индустрию, не создавая целую игру в одиночку
Игровая индустрия — это целый мир, в котором задействованы тысячи специалистов. Но часто начинающие думают, что чтобы быть частью этого мира, нужно в одиночку сделать игру от и до. Типа: если ты не написал код, не смоделил ассеты, не озвучил персонажей и не выложил на Steam — значит, ты "не разработчик игр".
На деле это совсем не так.
Я начинал с того, что был просто разработчиком — писал бэкенд для игры. Делал игровые фичи и админки для управления игровыми процессами. Обеспечивал работу инвентарей, прописывал логику срабатывания капчи, делал генерацию ботов в игре, допиливал логику завершения матчей, авторизации и прочие «невидимые» штуки. А сейчас я руковожу командой из 10 человек — таких же фулстек-разработчиков, как и я. Мы работаем в большом гейм деве, но делаем очень узкую его часть работы.
И при этом… я почти ничего не знаю о:
- освещении в играх;
- юзер-интерфейсе;
- работе со звуками окружения;
- 3D-моделинге или запекании текстур.
Этими вещами занимаются другие люди. Профессионалы. Каждый фокусируется на своём. Именно так и строится разработка больших игр.
Ты можешь войти в индустрию через свою зону интереса
Не обязательно начинать с «полной» игры. Можно выбрать узкое направление:
- моделить окружение;
- настраивать анимацию;
- писать игровые скрипты;
- собирать уровни;
- делать UI/UX;
- или даже тестировать.
Каждая из этих ролей — полноценная профессия, востребованная и нужная. Ты работаешь над частью большого проекта и, шаг за шагом, прокачиваешься.
Соло-разработка — путь, но не единственный и не самый простой.
Создавать игру в одиночку — это колоссальный объём работы. И это точно не лучшая точка старта. Лучше сначала понять, что тебе ближе всего, и в этом вырасти. Один хороший 3D-модельщик может оказаться важнее для проекта, чем гейм-дизайнер, который не знает, как реализовать свои идеи.
Игровая индустрия — не про героизм, а про командную работу.
Никто из нас не знает всего. И это нормально. Важно понимать, чем ты можешь быть полезен команде и где твоя зона роста.
Игровая индустрия — это целый мир, в котором задействованы тысячи специалистов. Но часто начинающие думают, что чтобы быть частью этого мира, нужно в одиночку сделать игру от и до. Типа: если ты не написал код, не смоделил ассеты, не озвучил персонажей и не выложил на Steam — значит, ты "не разработчик игр".
На деле это совсем не так.
Я начинал с того, что был просто разработчиком — писал бэкенд для игры. Делал игровые фичи и админки для управления игровыми процессами. Обеспечивал работу инвентарей, прописывал логику срабатывания капчи, делал генерацию ботов в игре, допиливал логику завершения матчей, авторизации и прочие «невидимые» штуки. А сейчас я руковожу командой из 10 человек — таких же фулстек-разработчиков, как и я. Мы работаем в большом гейм деве, но делаем очень узкую его часть работы.
И при этом… я почти ничего не знаю о:
- освещении в играх;
- юзер-интерфейсе;
- работе со звуками окружения;
- 3D-моделинге или запекании текстур.
Этими вещами занимаются другие люди. Профессионалы. Каждый фокусируется на своём. Именно так и строится разработка больших игр.
Ты можешь войти в индустрию через свою зону интереса
Не обязательно начинать с «полной» игры. Можно выбрать узкое направление:
- моделить окружение;
- настраивать анимацию;
- писать игровые скрипты;
- собирать уровни;
- делать UI/UX;
- или даже тестировать.
Каждая из этих ролей — полноценная профессия, востребованная и нужная. Ты работаешь над частью большого проекта и, шаг за шагом, прокачиваешься.
Соло-разработка — путь, но не единственный и не самый простой.
Создавать игру в одиночку — это колоссальный объём работы. И это точно не лучшая точка старта. Лучше сначала понять, что тебе ближе всего, и в этом вырасти. Один хороший 3D-модельщик может оказаться важнее для проекта, чем гейм-дизайнер, который не знает, как реализовать свои идеи.
Игровая индустрия — не про героизм, а про командную работу.
Никто из нас не знает всего. И это нормально. Важно понимать, чем ты можешь быть полезен команде и где твоя зона роста.
3👍7🔥3❤1
Как насмотренность помогает делать крутые штуки
Я недавно дочитал «Пост» Глуховского — и снова поймал себя на мысли, как круто он умеет увлекать. Я читал у него роман «Метро 2033» и смотрел сериал «Топи», где он один из сценаристов — у него всегда получается втянуть в атмосферу, заставить поверить в мир и героев.
Ты вроде просто читаешь текст или смотришь сцену — а уже как будто живёшь там.
И вот когда увлечён чем-то таким, невольно задумываешься: в играх ведь то же самое. Хороший сценарий может сильно увлечь игрока. Сделать так, чтобы ему хотелось идти дальше, узнавать, что будет за следующим поворотом.
Но одна только история — это ещё не всё. Игра — это ещё и геймплей, визуальный стиль, звук, детали, которые незаметно складываются в общее впечатление. Всё это вместе создаёт тот самый эффект погружения.
Насмотренность на разные области — книги, сериалы, фильмы, музыку, другие игры — помогает замечать, как устроены сильные штуки. Где тебя затягивает история, где зацепила атмосфера, где понравилась механика или идея. Потом эти наблюдения могут неожиданно всплыть в своих проектах — иногда в самых неожиданных местах.
Когда в голове копится разный опыт, начинают происходить интересные штуки. Идеи начинают пересекаться, сталкиваться, переосмысливаться. Так рождаются новые механики, неожиданные сюжетные ходы, свежие стили и подходы. Синтез идей — это почти всегда результат насмотренности и любопытства к разным мирам.
А вы что последнее такое видели или читали, что прям зацепило? Что захотелось разобрать на детали?
Я недавно дочитал «Пост» Глуховского — и снова поймал себя на мысли, как круто он умеет увлекать. Я читал у него роман «Метро 2033» и смотрел сериал «Топи», где он один из сценаристов — у него всегда получается втянуть в атмосферу, заставить поверить в мир и героев.
Ты вроде просто читаешь текст или смотришь сцену — а уже как будто живёшь там.
И вот когда увлечён чем-то таким, невольно задумываешься: в играх ведь то же самое. Хороший сценарий может сильно увлечь игрока. Сделать так, чтобы ему хотелось идти дальше, узнавать, что будет за следующим поворотом.
Но одна только история — это ещё не всё. Игра — это ещё и геймплей, визуальный стиль, звук, детали, которые незаметно складываются в общее впечатление. Всё это вместе создаёт тот самый эффект погружения.
Насмотренность на разные области — книги, сериалы, фильмы, музыку, другие игры — помогает замечать, как устроены сильные штуки. Где тебя затягивает история, где зацепила атмосфера, где понравилась механика или идея. Потом эти наблюдения могут неожиданно всплыть в своих проектах — иногда в самых неожиданных местах.
Когда в голове копится разный опыт, начинают происходить интересные штуки. Идеи начинают пересекаться, сталкиваться, переосмысливаться. Так рождаются новые механики, неожиданные сюжетные ходы, свежие стили и подходы. Синтез идей — это почти всегда результат насмотренности и любопытства к разным мирам.
А вы что последнее такое видели или читали, что прям зацепило? Что захотелось разобрать на детали?
3👍9🔥1
Почему все сюжеты одинаковы — и как это помогает создать нечто уникальное
Недавно в разговоре с коллегами в нашем сообществе инди-разработчиков я поймал себя на мысли: все сюжеты на самом деле одинаковы. И это совсем неплохо. Более того, именно это помогает создавать истории, которые заставляют нас переживать, задумываться и возвращаться к ним снова и снова.
Посмотрите на классические произведения, которые остаются актуальными веками. Древнегреческие мифы, романтика средневековых рыцарей, современные фильмы о супергероях — всё это вариации одних и тех же архетипов.
В основе большинства историй — знакомая структура: герой проходит через испытания, сталкивается с противником (внешним или внутренним) и возвращается, изменённый. Мы видели это тысячу раз — и всё равно продолжаем переживать, потому что архетипы действуют глубже логики. Они встроены в наш культурный код.
Джозеф Кэмпбелл в «Тысячеликом герое» писал: «Все мифы мира, несмотря на их различия, следуют одной и той же архетипической структуре». И именно благодаря этому, а не вопреки, они трогают нас за живое. Кэмпбелл описал глубинную структуру мифов, основанную на одном путешествии героя с множеством вариаций. Это универсальная схема, которая лежит в основе большинства историй: герой начинает с обычной жизни, сталкивается с вызовами, преодолевает их, сталкивается с кульминационным конфликтом и, в конце концов, возвращается домой, изменённый.
Также следует отметить вклад другого исследователя, Владимира Проппа, который описал структурные элементы сказок и их функции. Пропп выделил 31 функцию, которые часто повторяются в народных сказках. Эти функции могут включать в себя такие элементы, как "герой встречает волшебного помощника" или "герой получает задание", что позволяет создавать довольно стандартизированные и повторяющиеся сюжеты, но с уникальными вариациями.
И вот, когда мы говорим о структуре более крупных сюжетных моделей, стоит упомянуть Кристофера Букера, который обобщил все эти подходы и выделил семь универсальных сюжетных моделей, которые мы видим в самых разных формах искусства. Эти модели включают такие истории, как "путь героя", "из грязи в князи" или "победа над чудовищем". Суть в том, что даже если эти модели кажутся знакомыми, они всегда могут быть интерпретированы по-разному в зависимости от контекста, жанра и авторского подхода.
Дело не в новизне темы. Дело в её подаче. Понимая структуру, ты получаешь мощный инструмент: ты можешь играть с ожиданиями, добавлять нюансы, переосмысливать акценты. Игры, фильмы, книги могут казаться одинаковыми на уровне базовых ходов — но именно детали, атмосфера, акценты делают их уникальными.
В геймдеве это особенно важно: новые способы взаимодействия, неожиданные механики, свежие визуальные решения позволяют знакомую историю воспринять по-новому. Магия — не в изобретении чего-то принципиально нового. Магия — в том, чтобы вдохнуть в старые сюжеты новую жизнь.
Недавно в разговоре с коллегами в нашем сообществе инди-разработчиков я поймал себя на мысли: все сюжеты на самом деле одинаковы. И это совсем неплохо. Более того, именно это помогает создавать истории, которые заставляют нас переживать, задумываться и возвращаться к ним снова и снова.
Посмотрите на классические произведения, которые остаются актуальными веками. Древнегреческие мифы, романтика средневековых рыцарей, современные фильмы о супергероях — всё это вариации одних и тех же архетипов.
В основе большинства историй — знакомая структура: герой проходит через испытания, сталкивается с противником (внешним или внутренним) и возвращается, изменённый. Мы видели это тысячу раз — и всё равно продолжаем переживать, потому что архетипы действуют глубже логики. Они встроены в наш культурный код.
Джозеф Кэмпбелл в «Тысячеликом герое» писал: «Все мифы мира, несмотря на их различия, следуют одной и той же архетипической структуре». И именно благодаря этому, а не вопреки, они трогают нас за живое. Кэмпбелл описал глубинную структуру мифов, основанную на одном путешествии героя с множеством вариаций. Это универсальная схема, которая лежит в основе большинства историй: герой начинает с обычной жизни, сталкивается с вызовами, преодолевает их, сталкивается с кульминационным конфликтом и, в конце концов, возвращается домой, изменённый.
Также следует отметить вклад другого исследователя, Владимира Проппа, который описал структурные элементы сказок и их функции. Пропп выделил 31 функцию, которые часто повторяются в народных сказках. Эти функции могут включать в себя такие элементы, как "герой встречает волшебного помощника" или "герой получает задание", что позволяет создавать довольно стандартизированные и повторяющиеся сюжеты, но с уникальными вариациями.
И вот, когда мы говорим о структуре более крупных сюжетных моделей, стоит упомянуть Кристофера Букера, который обобщил все эти подходы и выделил семь универсальных сюжетных моделей, которые мы видим в самых разных формах искусства. Эти модели включают такие истории, как "путь героя", "из грязи в князи" или "победа над чудовищем". Суть в том, что даже если эти модели кажутся знакомыми, они всегда могут быть интерпретированы по-разному в зависимости от контекста, жанра и авторского подхода.
Дело не в новизне темы. Дело в её подаче. Понимая структуру, ты получаешь мощный инструмент: ты можешь играть с ожиданиями, добавлять нюансы, переосмысливать акценты. Игры, фильмы, книги могут казаться одинаковыми на уровне базовых ходов — но именно детали, атмосфера, акценты делают их уникальными.
В геймдеве это особенно важно: новые способы взаимодействия, неожиданные механики, свежие визуальные решения позволяют знакомую историю воспринять по-новому. Магия — не в изобретении чего-то принципиально нового. Магия — в том, чтобы вдохнуть в старые сюжеты новую жизнь.
1👍5🔥2
Разнообразие сюжетных линий по Кристоферу Букеру
1. Преодоление монстра
Герой сталкивается с чудовищем, и ему предстоит вступить в эпическую битву. Чудовищем может быть не только злое существо или маг, но и внутренний демон героя. Победа над этим «монстром» требует невероятных усилий и стойкости. Пример: «Дракула» Брэма Стокера.
2. Из грязи в князи
Герой начинает с низов — будь то бедность, непризнание или трудности. С помощью своих сил или с помощью друзей, он преодолевает препятствия, получает признание и благосостояние. Это классическая история о преодолении социальных барьеров и достижении успеха. Пример: сказка о Золушке.
3. Квест
Герой отправляется в путь с целью выполнить важное задание. Он встречает союзников, преодолевает множество испытаний и меняется в процессе путешествия. Это история о приключениях и поисках чего-то ценного или спасительного. Пример: «Властелин колец».
4. Туда и обратно
Герой уходит из привычного мира, преодолевает препятствия и возвращается домой. Однако возвращение не означает простого возвращения в старую жизнь: персонаж сталкивается с новыми проблемами, и его изменения позволяют ему успешно преодолеть прошлые трудности. Пример: «Гулливер в стране лилипутов».
5. Комедия
В данном случае комедия не обязательно означает смех, а скорее характеризуется столкновением интересов персонажей, которые запутывают ситуацию, создавая конфликты, а затем разрешают их. Такие истории часто заканчиваются гармонией и примирением. Пример: «Двенадцатая ночь» Шекспира.
6. Трагедия
Ужасные обстоятельства или личные недостатки героя приводят его к неминуемой гибели или разрушению. Это история, где герой, по сути, сам становится причиной своей трагедии. Пример: «Анна Каренина» Льва Толстого.
7. Возрождение
Здесь мы видим героя, который сталкивается с внутренним пороком, и этот порок запускает конфликт. Однако в отличие от трагедии, герой в конце концов осознает свои ошибки, изменяется и находит спасение или любовь. Пример: «Гордость и предубеждение» Джейн Остин.
1. Преодоление монстра
Герой сталкивается с чудовищем, и ему предстоит вступить в эпическую битву. Чудовищем может быть не только злое существо или маг, но и внутренний демон героя. Победа над этим «монстром» требует невероятных усилий и стойкости. Пример: «Дракула» Брэма Стокера.
2. Из грязи в князи
Герой начинает с низов — будь то бедность, непризнание или трудности. С помощью своих сил или с помощью друзей, он преодолевает препятствия, получает признание и благосостояние. Это классическая история о преодолении социальных барьеров и достижении успеха. Пример: сказка о Золушке.
3. Квест
Герой отправляется в путь с целью выполнить важное задание. Он встречает союзников, преодолевает множество испытаний и меняется в процессе путешествия. Это история о приключениях и поисках чего-то ценного или спасительного. Пример: «Властелин колец».
4. Туда и обратно
Герой уходит из привычного мира, преодолевает препятствия и возвращается домой. Однако возвращение не означает простого возвращения в старую жизнь: персонаж сталкивается с новыми проблемами, и его изменения позволяют ему успешно преодолеть прошлые трудности. Пример: «Гулливер в стране лилипутов».
5. Комедия
В данном случае комедия не обязательно означает смех, а скорее характеризуется столкновением интересов персонажей, которые запутывают ситуацию, создавая конфликты, а затем разрешают их. Такие истории часто заканчиваются гармонией и примирением. Пример: «Двенадцатая ночь» Шекспира.
6. Трагедия
Ужасные обстоятельства или личные недостатки героя приводят его к неминуемой гибели или разрушению. Это история, где герой, по сути, сам становится причиной своей трагедии. Пример: «Анна Каренина» Льва Толстого.
7. Возрождение
Здесь мы видим героя, который сталкивается с внутренним пороком, и этот порок запускает конфликт. Однако в отличие от трагедии, герой в конце концов осознает свои ошибки, изменяется и находит спасение или любовь. Пример: «Гордость и предубеждение» Джейн Остин.
2❤🔥4👍2🔥1
Читаю вот сижу про WebGPU. Нарисовал красный треугольник на wgsl. А у вас что нового? 😀
1🔥2
31 Функция Проппа: Путь героя от начала до конца
1. Один из членов семьи отлучается из дома — один из членов семьи уходит или пропадает, что запускает дальнейшие события.
2. К герою обращаются с запретом — кто-то из героев или другого персонажа предупреждает о том, что чего-то делать нельзя.
3. Запрет нарушается — герой нарушает запрет, что ведет к развитию событий.
4. Вредитель пытается произвести разведку — антагонист пытается узнать что-то о жертве, чтобы продумать свои дальнейшие шаги.
5. Вредителю даются сведения о его жертве — враг получает информацию о своей цели.
6. Вредитель пытается обмануть свою жертву, чтобы овладеть ею или её имуществом — враг использует хитрость и обман, чтобы завоевать доверие или что-то украсть.
7. Жертва поддается обману и тем невольно помогает врагу — героиня или герой становятся жертвой обмана, помогая своему врагу.
8. Вредитель наносит одному из членов семьи вред или ущерб — антагонист причиняет страдания или повреждения одному из членов семьи героя.
8а. Одному из членов семьи чего-либо не хватает, ему хочется иметь что-либо — одному из персонажей чего-то не хватает, и он или она стремится получить это.
9. Беда или недостача сообщается, к герою обращаются с просьбой или приказанием, отсылают или отпускают — в героя обращаются с просьбой или приказом, часто это связано с необходимостью выполнить миссию.
10. Искатель соглашается или решается на противодействие — герой решается действовать, начать борьбу или противодействовать злу.
11. Герой покидает дом — герой отправляется в путешествие, покидает дом или место, где он чувствует себя в безопасности.
12. Герой испытывается, выспрашивается, подвергается нападению и пр., чем подготовляется получение им волшебного средства или помощника — герой проходит через испытания, которые готовят его к получению силы или помощи.
13. Герой реагирует на действия будущего дарителя — герой взаимодействует с тем, кто поможет ему, и реагирует на действия этого персонажа.
14. В распоряжение героя попадает волшебное средство — герой получает нечто волшебное или мистическое, что поможет ему в дальнейшем.
15. Герой переносится, доставляется или приводится к месту нахождения предмета поисков — герой отправляется или его отправляют в место, где находится то, что он ищет.
16. Герой и вредитель вступают в непосредственную борьбу — герой сталкивается с антагонистом в прямом сражении или конфликте.
17. Героя метят — антагонист или другие персонажи помечают героя, возможно, как цель или как избранного.
18. Вредитель побеждается — антагонист побеждается, его злодеяния или действия ликвидируются.
19. Начальная беда или недостача ликвидируется — исходная проблема, которая побудила героя начать свой путь, устраняется или решается.
20. Герой возвращается — герой возвращается домой или в место, откуда он ушел, завершив свою миссию.
21. Герой подвергается преследованию — герой сталкивается с преследованием со стороны врага или других персонажей.
22. Герой спасается от преследования — герой спасается от преследования, находит убежище или безопасное место.
23. Герой неузнанным прибывает домой или в другую страну — герой возвращается домой или отправляется в новый мир, но его никто не узнает.
24. Ложный герой предъявляет необоснованные притязания — персонаж, который утверждает, что он заслуживает признания или награды, но это неправда.
25. Герою предлагается трудная задача — герою ставят перед собой задачу, которую он должен выполнить, и она представляется сложной.
26. Задача решается — задача решается, и герой выполняет свою миссию, несмотря на трудности.
27. Героя узнают — герой обнаруживает, что его наконец узнали или признали его заслуги.
28. Ложный герой или вредитель изобличается — персонаж, который был ложным героем или врагом, разоблачается и его истинные намерения раскрываются.
29. Герою дается новый облик — герой приобретает новую личность или внешний вид, что часто связано с его трансформацией.
30. Враг наказывается — антагонист получает заслуженное наказание за свои злодеяния.
1. Один из членов семьи отлучается из дома — один из членов семьи уходит или пропадает, что запускает дальнейшие события.
2. К герою обращаются с запретом — кто-то из героев или другого персонажа предупреждает о том, что чего-то делать нельзя.
3. Запрет нарушается — герой нарушает запрет, что ведет к развитию событий.
4. Вредитель пытается произвести разведку — антагонист пытается узнать что-то о жертве, чтобы продумать свои дальнейшие шаги.
5. Вредителю даются сведения о его жертве — враг получает информацию о своей цели.
6. Вредитель пытается обмануть свою жертву, чтобы овладеть ею или её имуществом — враг использует хитрость и обман, чтобы завоевать доверие или что-то украсть.
7. Жертва поддается обману и тем невольно помогает врагу — героиня или герой становятся жертвой обмана, помогая своему врагу.
8. Вредитель наносит одному из членов семьи вред или ущерб — антагонист причиняет страдания или повреждения одному из членов семьи героя.
8а. Одному из членов семьи чего-либо не хватает, ему хочется иметь что-либо — одному из персонажей чего-то не хватает, и он или она стремится получить это.
9. Беда или недостача сообщается, к герою обращаются с просьбой или приказанием, отсылают или отпускают — в героя обращаются с просьбой или приказом, часто это связано с необходимостью выполнить миссию.
10. Искатель соглашается или решается на противодействие — герой решается действовать, начать борьбу или противодействовать злу.
11. Герой покидает дом — герой отправляется в путешествие, покидает дом или место, где он чувствует себя в безопасности.
12. Герой испытывается, выспрашивается, подвергается нападению и пр., чем подготовляется получение им волшебного средства или помощника — герой проходит через испытания, которые готовят его к получению силы или помощи.
13. Герой реагирует на действия будущего дарителя — герой взаимодействует с тем, кто поможет ему, и реагирует на действия этого персонажа.
14. В распоряжение героя попадает волшебное средство — герой получает нечто волшебное или мистическое, что поможет ему в дальнейшем.
15. Герой переносится, доставляется или приводится к месту нахождения предмета поисков — герой отправляется или его отправляют в место, где находится то, что он ищет.
16. Герой и вредитель вступают в непосредственную борьбу — герой сталкивается с антагонистом в прямом сражении или конфликте.
17. Героя метят — антагонист или другие персонажи помечают героя, возможно, как цель или как избранного.
18. Вредитель побеждается — антагонист побеждается, его злодеяния или действия ликвидируются.
19. Начальная беда или недостача ликвидируется — исходная проблема, которая побудила героя начать свой путь, устраняется или решается.
20. Герой возвращается — герой возвращается домой или в место, откуда он ушел, завершив свою миссию.
21. Герой подвергается преследованию — герой сталкивается с преследованием со стороны врага или других персонажей.
22. Герой спасается от преследования — герой спасается от преследования, находит убежище или безопасное место.
23. Герой неузнанным прибывает домой или в другую страну — герой возвращается домой или отправляется в новый мир, но его никто не узнает.
24. Ложный герой предъявляет необоснованные притязания — персонаж, который утверждает, что он заслуживает признания или награды, но это неправда.
25. Герою предлагается трудная задача — герою ставят перед собой задачу, которую он должен выполнить, и она представляется сложной.
26. Задача решается — задача решается, и герой выполняет свою миссию, несмотря на трудности.
27. Героя узнают — герой обнаруживает, что его наконец узнали или признали его заслуги.
28. Ложный герой или вредитель изобличается — персонаж, который был ложным героем или врагом, разоблачается и его истинные намерения раскрываются.
29. Герою дается новый облик — герой приобретает новую личность или внешний вид, что часто связано с его трансформацией.
30. Враг наказывается — антагонист получает заслуженное наказание за свои злодеяния.
3
Геймдев — это не только «делать игры»
Недавно поймал себя на неожиданном осознании.
Почему-то всегда думал, что геймдев — это только про тех, кто делает игры с нуля: пишет движки, рисует арты, придумывает механики. Всё остальное казалось «вокруг», но не «внутри».
А тут пообщался со старым знакомым — он уже несколько лет делает доработки для серверов Lineage 2.
Пишет скрипты, настраивает баланс, создаёт кастомные механики, управляет своей экономикой, взаимодействует с комьюнити. Играет, по сути, роль геймдизайнера, программиста и продюсера в одном лице.
И вот оно — простое, но сильное осознание: геймдев — это не только создание нового, но и переосмысление старого.
Те, кто работают с модами, кастомными серверами, настройкой старых движков — тоже создают. Не с нуля, но не менее творчески.
Эти люди не просто что-то допиливают — они дают играм вторую жизнь.
Они возвращают интерес, собирают вокруг себя игроков, двигают мету, экспериментируют. Иногда то, что они делают, даже интереснее, чем официальный контент.
Это тоже разработка. Это тоже труд. Это тоже геймдев.
Просто раньше на это не смотрел под таким углом. А теперь — как будто расширилось поле зрения.
Недавно поймал себя на неожиданном осознании.
Почему-то всегда думал, что геймдев — это только про тех, кто делает игры с нуля: пишет движки, рисует арты, придумывает механики. Всё остальное казалось «вокруг», но не «внутри».
А тут пообщался со старым знакомым — он уже несколько лет делает доработки для серверов Lineage 2.
Пишет скрипты, настраивает баланс, создаёт кастомные механики, управляет своей экономикой, взаимодействует с комьюнити. Играет, по сути, роль геймдизайнера, программиста и продюсера в одном лице.
И вот оно — простое, но сильное осознание: геймдев — это не только создание нового, но и переосмысление старого.
Те, кто работают с модами, кастомными серверами, настройкой старых движков — тоже создают. Не с нуля, но не менее творчески.
Эти люди не просто что-то допиливают — они дают играм вторую жизнь.
Они возвращают интерес, собирают вокруг себя игроков, двигают мету, экспериментируют. Иногда то, что они делают, даже интереснее, чем официальный контент.
Это тоже разработка. Это тоже труд. Это тоже геймдев.
Просто раньше на это не смотрел под таким углом. А теперь — как будто расширилось поле зрения.
❤10
Почему ограничения — это суперсила
Иногда кажется, что творчество начинается с чистого листа. Когда перед тобой — полная свобода: делай что хочешь, как хочешь, из чего хочешь. Но мне всё чаще кажется, что такая свобода может не помочь, а наоборот — запутать. Слишком много вариантов, слишком мало опоры.
Начинаю всё больше верить, что настоящая креативность рождается именно из ограничений. В заданных рамках, как ни странно, появляются самые нестандартные и интересные решения.
Когда не можешь просто добавить нужную фичу — приходится крутиться: использовать баг как механику, адаптировать старые системы под новые идеи, обходиться тем, что имеется.
Иногда это похоже на попытку собрать космический корабль из деталей от холодильника. Но если он взлетает — ощущение совсем другое.
Может, дело как раз в том, что ограничения не мешают творчеству, а подталкивают к нему. Кто знает, может это даже интереснее, чем абсолютная свобода.
Иногда кажется, что творчество начинается с чистого листа. Когда перед тобой — полная свобода: делай что хочешь, как хочешь, из чего хочешь. Но мне всё чаще кажется, что такая свобода может не помочь, а наоборот — запутать. Слишком много вариантов, слишком мало опоры.
Начинаю всё больше верить, что настоящая креативность рождается именно из ограничений. В заданных рамках, как ни странно, появляются самые нестандартные и интересные решения.
Когда не можешь просто добавить нужную фичу — приходится крутиться: использовать баг как механику, адаптировать старые системы под новые идеи, обходиться тем, что имеется.
Иногда это похоже на попытку собрать космический корабль из деталей от холодильника. Но если он взлетает — ощущение совсем другое.
Может, дело как раз в том, что ограничения не мешают творчеству, а подталкивают к нему. Кто знает, может это даже интереснее, чем абсолютная свобода.
🔥6💯2❤1
Как игры говорят о важном, не говоря ни слова
Иногда кажется, что важные темы нужно подавать прямо. Говорить вслух, ставить акценты, не давать промахнуться мимо смысла. Но в играх это работает иначе.
Игра — это не лекция. Это не текст с подчёркнутыми строчками. Это опыт. Проживание. Когда ты не просто читаешь о боли, а сам сталкиваешься с утратой. Не просто слышишь про одиночество — а оказываешься в его тишине.
Gris почти ничего не говорит словами, но ты чувствуешь каждую стадию утраты — через цвет, музыку, механику.
Spiritfarer — о прощании, но не грустная. Добрая. Принятие там — не финал, а путь.
That Dragon, Cancer — жесткая, личная история, рассказанная через игру. И она пробирает глубже, чем документалка.
Такие игры не учат — они предлагают почувствовать. Через действия. Через выбор. Через тишину между репликами.
Это не всегда очевидно. Иногда ты уже после прохождения понимаешь, про что на самом деле была история. И от этого она становится ещё сильнее.
Иногда самые важные вещи можно сказать не вслух. Игра — удивительно честный способ сделать это.
Иногда кажется, что важные темы нужно подавать прямо. Говорить вслух, ставить акценты, не давать промахнуться мимо смысла. Но в играх это работает иначе.
Игра — это не лекция. Это не текст с подчёркнутыми строчками. Это опыт. Проживание. Когда ты не просто читаешь о боли, а сам сталкиваешься с утратой. Не просто слышишь про одиночество — а оказываешься в его тишине.
Gris почти ничего не говорит словами, но ты чувствуешь каждую стадию утраты — через цвет, музыку, механику.
Spiritfarer — о прощании, но не грустная. Добрая. Принятие там — не финал, а путь.
That Dragon, Cancer — жесткая, личная история, рассказанная через игру. И она пробирает глубже, чем документалка.
Такие игры не учат — они предлагают почувствовать. Через действия. Через выбор. Через тишину между репликами.
Это не всегда очевидно. Иногда ты уже после прохождения понимаешь, про что на самом деле была история. И от этого она становится ещё сильнее.
Иногда самые важные вещи можно сказать не вслух. Игра — удивительно честный способ сделать это.
👍6❤1👎1
Вот что мне нравится во ВКонтакте — так это то, что в сообществах можно настроить офигенную навигацию. Создал пост с полезными статьями, которые писал ранее, с простым названием:
Бесплатные уроки по HTML, CSS и JavaScript: создаём игры с нуля!
https://vk.com/@codeindie-besplatnye-uroki-po-html-css-i-javascript-sozdaem-igry-s-nul
Некоторые посты вы ещё не видели и даже не знаете об их существовании. Они больше для новичков. Но вот подумал — если вдруг вам это тоже будет интересно, заходите, изучайте с кайфом.
А ещё буду признателен, если вы зайдёте, отлайкаете всё в группе и оставите комментарии — чтобы группа немного ожила. Сюда: https://vk.com/codeindie
Бесплатные уроки по HTML, CSS и JavaScript: создаём игры с нуля!
https://vk.com/@codeindie-besplatnye-uroki-po-html-css-i-javascript-sozdaem-igry-s-nul
Некоторые посты вы ещё не видели и даже не знаете об их существовании. Они больше для новичков. Но вот подумал — если вдруг вам это тоже будет интересно, заходите, изучайте с кайфом.
А ещё буду признателен, если вы зайдёте, отлайкаете всё в группе и оставите комментарии — чтобы группа немного ожила. Сюда: https://vk.com/codeindie
VK
Бесплатные уроки по HTML, CSS и JavaScript: создаём игры с нуля!
Здесь вы найдёте пошаговые гайды по созданию простых игр с использованием HTML, CSS и JavaScript. В этих статьях основы разработки.
👍2❤1
Выложил новый урок: Как создать игру «Память» на HTML, CSS и JavaScript
Пошаговое руководство по созданию простой браузерной игры, в которой игроку нужно находить пары одинаковых карточек с эмодзи.
https://dzen.ru/a/aEvYSETtWQbWc2ky
Пошаговое руководство по созданию простой браузерной игры, в которой игроку нужно находить пары одинаковых карточек с эмодзи.
https://dzen.ru/a/aEvYSETtWQbWc2ky
Дзен | Статьи
Урок: Как создать игру «Память» на HTML, CSS и JavaScript
Статья автора «Инди Код — Уроки HTML и JavaScript, обучение созданию игр» в Дзене ✍: Игра «Память» — это классическая игра, где нужно находить пары одинаковых карт.
1🔥3
Сижу и думаю, как всё-таки здорово, что есть одно простое средство, которое работает всегда — в любую погоду. Устал, вымотался, не знаешь, какой шаг следующий — просто иди спать.
Сон — это не слабость, это перезагрузка. Иногда это и есть тот самый шаг вперёд.
Я — спать. И вам тоже хорошего отдыха. Набирайтесь сил, коллеги. Мы ещё много сделаем. ❤️
Сон — это не слабость, это перезагрузка. Иногда это и есть тот самый шаг вперёд.
Я — спать. И вам тоже хорошего отдыха. Набирайтесь сил, коллеги. Мы ещё много сделаем. ❤️
7👍9❤6🤝2
Когда «просто» — это слишком сложно
Поймал себя на странной штуке: чем больше разбираюсь в разработке, тем сложнее начинаю делать простые вещи.
Если игру — то сразу на своём движке. Если контент — то с глубокой проработкой, сверкой деталей, десятком итераций. Вроде стараешься сделать качественно, а по факту — просто не даёшь себе начать проще.
Сначала это кажется нормой: мол, так же «правильно». Но через какое-то время замечаешь, что простые задачи превращаются в марафон. Всё превращается в проект. А ты сам — в узкое горлышко.
И вот недавно это щёлкнуло: делать просто — тоже навык. Иногда даже посложнее, чем делать сложно.
Сложное — привычно. Простое — требует доверия, скорости, гибкости. Делать «не идеально», но «достаточно хорошо» — это и есть рост. Даже если внутренний критик не в восторге.
Путь к простоте, как оказалось, совсем не простой. Но кажется, я на нём.
Поймал себя на странной штуке: чем больше разбираюсь в разработке, тем сложнее начинаю делать простые вещи.
Если игру — то сразу на своём движке. Если контент — то с глубокой проработкой, сверкой деталей, десятком итераций. Вроде стараешься сделать качественно, а по факту — просто не даёшь себе начать проще.
Сначала это кажется нормой: мол, так же «правильно». Но через какое-то время замечаешь, что простые задачи превращаются в марафон. Всё превращается в проект. А ты сам — в узкое горлышко.
И вот недавно это щёлкнуло: делать просто — тоже навык. Иногда даже посложнее, чем делать сложно.
Сложное — привычно. Простое — требует доверия, скорости, гибкости. Делать «не идеально», но «достаточно хорошо» — это и есть рост. Даже если внутренний критик не в восторге.
Путь к простоте, как оказалось, совсем не простой. Но кажется, я на нём.
1👍8❤2
Создал 26 веб-приложений, 6 youtube-каналов, 4 игры — все провалилось. Что я понял?
Иногда я останавливаюсь. Просто сижу в тишине и позволяю мыслям всплывать — медленно, словно воздух со дна. Кем я стал? Куда пришёл? Куда ещё стремлюсь?
Сегодня в памяти всплыло многое. И я хочу этим поделиться.
Я вспомнил свои шесть YouTube-каналов. Два из них преодолели планку в тысячу подписчиков, один добрался до трёх с половиной. Я делал много видео, но со временем каждый из каналов замолчал. Тогда я не добился успеха, но разобрался: видео — это не про монтаж, а про момент, где зрителю становится интересно.
Я создал двадцать шесть веб-приложений, прежде чем признал: путь SaaS — не мой. Но именно он привёл меня к глубинному пониманию веб-разработки. Каждый проект был не ошибкой — а ступенью, на которую я поднимался с верой и упрямством.
Спасибо написанным девятнадцати трекам, которые не стали хитами. Благодаря им я узнал: музыкантом я не стану, но научился слышать звук — глубоко, точно, на уровне структуры.
Спасибо написанным двадцати рассказам и семидесяти стихотворениям. Мой провальный путь писателя научил меня разговаривать с текстом — не командовать им, а слушать его ритм, чувствовать дыхание и геометрию.
Спасибо четырём играм, выпущенным на Яндекс играх. Они не оправдали ожиданий, но дали понять, насколько важна команда. Геймдев это система, архитектура, компромисс. Компромисс между мечтой и реализацией, между идеей и реальностью.
Все эти попытки не были провалами. Это была тренировка восприятия. Я учился видеть суть — в звуке, в видео, в тексте, в коде.
Когда-то я смотрел на все эти недостроенные башни с горечью. Сейчас я понимаю, что в каждом провале спрятана возможность. Гибкость мышления рождается из экспериментов, которых я не боялся. Понимание своего ритма — чередования вдохновения и отдыха — выкристаллизовалось среди бессонных ночей, срывов, попыток, обучения и долгих прогулок, когда я искал ответ на вопрос: «Почему не взлетает?».
Сегодня я программирую на JavaScript, PHP, Rust и Lua. Собеседую и обучаю людей, отвечаю за проекты на всех этапах: от концепта до продакшна. Системы и компоненты, которые я проектирую, выдерживают серьёзную нагрузку, масштабируются и решают реальные задачи. Также я веду команду разработчиков. Балансирую между технарём и лидером — учусь поддерживать, вдохновлять, направлять. Я работаю в геймдеве, веду блог о гейм деве и делюсь личным опытом — чтобы тем, кто читает, было хоть немного легче.
Я не считаю брошенные и неудавшиеся проекты ошибкой. Для меня это уроки, щедро подаренные жизнью: урок гибкости, урок слушания, урок баланса между рутиной и вдохновением. Каждый из этих уроков стал кирпичиком в фундаменте того, что у меня есть сегодня.
Возможно, умение быть благодарным своим провалам — это главное, что я вообще понял. И когда я смотрю вперёд, я знаю: новые идеи уже стоят в тени, дожидаясь своего часа. И я встречу их — не с тревогой, а с тем же тёплым любопытством, с каким когда-то начал свой путь. С опытом, который я больше не зову неудачами.
Иногда я останавливаюсь. Просто сижу в тишине и позволяю мыслям всплывать — медленно, словно воздух со дна. Кем я стал? Куда пришёл? Куда ещё стремлюсь?
Сегодня в памяти всплыло многое. И я хочу этим поделиться.
Я вспомнил свои шесть YouTube-каналов. Два из них преодолели планку в тысячу подписчиков, один добрался до трёх с половиной. Я делал много видео, но со временем каждый из каналов замолчал. Тогда я не добился успеха, но разобрался: видео — это не про монтаж, а про момент, где зрителю становится интересно.
Я создал двадцать шесть веб-приложений, прежде чем признал: путь SaaS — не мой. Но именно он привёл меня к глубинному пониманию веб-разработки. Каждый проект был не ошибкой — а ступенью, на которую я поднимался с верой и упрямством.
Спасибо написанным девятнадцати трекам, которые не стали хитами. Благодаря им я узнал: музыкантом я не стану, но научился слышать звук — глубоко, точно, на уровне структуры.
Спасибо написанным двадцати рассказам и семидесяти стихотворениям. Мой провальный путь писателя научил меня разговаривать с текстом — не командовать им, а слушать его ритм, чувствовать дыхание и геометрию.
Спасибо четырём играм, выпущенным на Яндекс играх. Они не оправдали ожиданий, но дали понять, насколько важна команда. Геймдев это система, архитектура, компромисс. Компромисс между мечтой и реализацией, между идеей и реальностью.
Все эти попытки не были провалами. Это была тренировка восприятия. Я учился видеть суть — в звуке, в видео, в тексте, в коде.
Когда-то я смотрел на все эти недостроенные башни с горечью. Сейчас я понимаю, что в каждом провале спрятана возможность. Гибкость мышления рождается из экспериментов, которых я не боялся. Понимание своего ритма — чередования вдохновения и отдыха — выкристаллизовалось среди бессонных ночей, срывов, попыток, обучения и долгих прогулок, когда я искал ответ на вопрос: «Почему не взлетает?».
Сегодня я программирую на JavaScript, PHP, Rust и Lua. Собеседую и обучаю людей, отвечаю за проекты на всех этапах: от концепта до продакшна. Системы и компоненты, которые я проектирую, выдерживают серьёзную нагрузку, масштабируются и решают реальные задачи. Также я веду команду разработчиков. Балансирую между технарём и лидером — учусь поддерживать, вдохновлять, направлять. Я работаю в геймдеве, веду блог о гейм деве и делюсь личным опытом — чтобы тем, кто читает, было хоть немного легче.
Я не считаю брошенные и неудавшиеся проекты ошибкой. Для меня это уроки, щедро подаренные жизнью: урок гибкости, урок слушания, урок баланса между рутиной и вдохновением. Каждый из этих уроков стал кирпичиком в фундаменте того, что у меня есть сегодня.
Возможно, умение быть благодарным своим провалам — это главное, что я вообще понял. И когда я смотрю вперёд, я знаю: новые идеи уже стоят в тени, дожидаясь своего часа. И я встречу их — не с тревогой, а с тем же тёплым любопытством, с каким когда-то начал свой путь. С опытом, который я больше не зову неудачами.
50❤16
Цена выживания в геймдеве
В Frostpunk есть день, когда к воротам приходит группа калек и детей. За ними тянется снег, ветер режет лица, а они смотрят на тебя, как на последнюю надежду. Пустишь их — еды не хватит, город ослабнет и не переживёт мороз. Откажешь — они замёрзнут там, за стенами.
В проектах бывает так же. У меня был момент, когда нужно было в одиночку уместить год работы двух человек в четыре месяца. Пришлось оставить только тех «жителей», что могли работать: задачи, без которых проект рухнет. Всё остальное — вырезать, отложить, заменить ИИ. Даже если к каким-то идеям уже успел привязаться, приходилось безжалостно оставлять их за воротами. С пониманием, что они замерзнут навсегда.
В Frostpunk это цена выживания города. В работе — цена того, чтобы довести проект до релиза. И в обоих случаях нельзя спасти всех.
В Frostpunk есть день, когда к воротам приходит группа калек и детей. За ними тянется снег, ветер режет лица, а они смотрят на тебя, как на последнюю надежду. Пустишь их — еды не хватит, город ослабнет и не переживёт мороз. Откажешь — они замёрзнут там, за стенами.
В проектах бывает так же. У меня был момент, когда нужно было в одиночку уместить год работы двух человек в четыре месяца. Пришлось оставить только тех «жителей», что могли работать: задачи, без которых проект рухнет. Всё остальное — вырезать, отложить, заменить ИИ. Даже если к каким-то идеям уже успел привязаться, приходилось безжалостно оставлять их за воротами. С пониманием, что они замерзнут навсегда.
В Frostpunk это цена выживания города. В работе — цена того, чтобы довести проект до релиза. И в обоих случаях нельзя спасти всех.
🎅4❤2
Читеры и вечная война умов
В любой крупной системе рано или поздно появляются те, кто хочет обойти правила. И не всегда потому, что они злоумышленники и хотят системе навредить.
Иногда людям просто не хватает времени на длинные квесты. Иногда — хочется быть лучше других. Но также — потому что видят в этом способ заработать.
Так вокруг игр вырастает целое сообщество читеров. Причин масса, но результат один: обычным игрокам становится тяжелее. Тем, кто просто хочет включить компьютер и спокойно поиграть.
Для меня загадка, а возможно ли победить вообще читеров? Можно строить системы защиты, но где-то уже рождаются инструменты, чтобы их обойти. Это бесконечная гонка умов. Одни придумывают ограничения, другие — способы их обойти. Я с той стороны, кто эти преграды строит.
Некоторые преграды становятся настолько сложными, что через них не перелезет большинство. Чтобы обойти их, нужна компетенция, опыт, время. И именно эти барьеры отсекают случайных, оставляя только тех, кто действительно понимает, что делает.
Я много раз встречался с этим на своём пути. Придумывая новые механизмы защиты, видел как другие умы их обходят. Каждый раз я видел одно и то же: системы становятся умнее, а вместе с ними — и те, кто пытается их обмануть. А некоторые способы защиты настолько сложно обходятся, что это привлекает энтузиастов исследователей, чтобы попытаться это обойти.
И, может быть, именно в этой бесконечной борьбе и есть жизнь любой системы — в противостоянии. В вечной борьбе системы становятся лучше и безопаснее. Может быть эта борьба и двигает рынок в технологическом плане? Ну и как приятный бонус, благодаря читерам — у меня есть идея для этого поста.
В любой крупной системе рано или поздно появляются те, кто хочет обойти правила. И не всегда потому, что они злоумышленники и хотят системе навредить.
Иногда людям просто не хватает времени на длинные квесты. Иногда — хочется быть лучше других. Но также — потому что видят в этом способ заработать.
Так вокруг игр вырастает целое сообщество читеров. Причин масса, но результат один: обычным игрокам становится тяжелее. Тем, кто просто хочет включить компьютер и спокойно поиграть.
Для меня загадка, а возможно ли победить вообще читеров? Можно строить системы защиты, но где-то уже рождаются инструменты, чтобы их обойти. Это бесконечная гонка умов. Одни придумывают ограничения, другие — способы их обойти. Я с той стороны, кто эти преграды строит.
Некоторые преграды становятся настолько сложными, что через них не перелезет большинство. Чтобы обойти их, нужна компетенция, опыт, время. И именно эти барьеры отсекают случайных, оставляя только тех, кто действительно понимает, что делает.
Я много раз встречался с этим на своём пути. Придумывая новые механизмы защиты, видел как другие умы их обходят. Каждый раз я видел одно и то же: системы становятся умнее, а вместе с ними — и те, кто пытается их обмануть. А некоторые способы защиты настолько сложно обходятся, что это привлекает энтузиастов исследователей, чтобы попытаться это обойти.
И, может быть, именно в этой бесконечной борьбе и есть жизнь любой системы — в противостоянии. В вечной борьбе системы становятся лучше и безопаснее. Может быть эта борьба и двигает рынок в технологическом плане? Ну и как приятный бонус, благодаря читерам — у меня есть идея для этого поста.
🔥3👍1💯1