user9107496

user9107496

Маркетолог, аналитик, программист. Семьянин и любитель приключений
Пикабушник
Дата рождения: 2 сентября
109 рейтинг 1 подписчик 0 подписок 3 поста 0 в горячем

Я не программист. Но два года в одиночку пилю MMORPG в Telegram, и весь её живой мир держится на одной строчке кода

Я не программист...

Я не программист...

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

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

И начну с того, чего сам слегка стыжусь.

Знаете, на чём держится весь «вечно живущий мир» моей игры? Где выжившие крафтят, ходят через карту, строят базы, даже когда давно вышли из чата? На одной строчке. Буквально на одной.

* * * * * php spark tasks:run

План - факт

План - факт

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

Дальше пошли грабли. Те самые, на которых только и учишься.

Первое, что я словил. Дюп ресурсов. Сам у себя. Пока спал. Если скрипт не успевал разгрести всех за минуту, следующий запускался поверх и выдавал награду второй раз. Игроки могли бы плодить патроны из воздуха, а я бы узнал об этом из логов утром. Лечится это одной правильной школьной штукой, про которую все слышали. Но пока сам не наступишь — не прочувствуешь. Я наступил. Теперь прочувствовал.

Второе. Мёртвые кнопки. Буквально пару дней назад. Добавил встречи с бродягами. Подходишь к чужаку и можешь напасть, ограбить, заговорить. Залил на сервер. А кнопки не работают. Совсем. Жмёшь — тишина. Выживший стоит перед бандитом и тупо не может даже замахнуться.

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

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

Ещё за эти два года я с гордостью выкинул из проекта целый язык. Раньше карту мне рисовал Python с умными научными библиотеками, выглядело солидно и по-взрослому. А потом я понял простую вещь. Карта нужна один раз. Сгенерил, она легла в базу миллионом клеток и больше не считается. Зачем ради разовой штуки таскать в проекте вторую экосистему? Выпилил. Меньше деталей — крепче сон.

И вот тут главное, ради чего я это всё пишу.

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

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

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

Если вдруг любопытно глянуть, что это за остров, вот бот: t.me/wildworldrpg_bot

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

Показать полностью 2
5

Я забросил свою игру на полтора года. А в неё всё это время играли

Выживший с винтовкой смотрит на оживающий лагерь из хлама на рассвете

Выживший с винтовкой смотрит на оживающий лагерь из хлама на рассвете

Два года назад я уже рассказывал тут, как в одиночку начал пилить текстовую MMORPG с открытым миром прямо в Telegram. Постапокалипсис, остров, выживание, крафт. Хобби для души. Ссылка на тот пост будет в конце.

А потом я её бросил. Почти на полтора года.

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

А недавно решил заглянуть в базу данных. Просто из любопытства.

И завис.

Люди приходили сами. Всё это время

Пока я не трогал игру вообще, в неё продолжали заходить. Находили бота, создавали персонажа, выживали на острове. Сами. Без меня.

Самый сочный месяц по новым игрокам — январь 2025-го. 113 человек за месяц. Это больше, чем в любой месяц, когда я реально что-то делал. А я в тот момент не открывал проект вообще.

Вот честные цифры на сегодня, без приукрас (график ниже):

Статистика игры

Статистика игры

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

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

И знаете, тяжело хоронить то, что само отказывается умирать.

Почему я вернулся

Причин было две.

Первая — вот эти самые люди. Глупо бросать игру, которую кто-то ищет и в которую играет, когда автор давно забил.

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

В итоге всё совпало. И последние пару месяцев я пилю игру такими темпами, каких в 2024-м не мог себе представить.

Что поменялось под капотом

Если коротко, почти всё, кроме самой идеи. Снаружи это та же текстовая выживалка в Telegram. Внутри уже совсем другой проект.

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

А что там вообще за игра

На случай, если вы сюда забрели мимо.

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

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

Дальше

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

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

🎮 Бот: t.me/wildworldrpg_bot

📜 С чего всё начиналось: Как я начал писать текстовую MMORPG игру с огромным открытым миром

Всем мира и спокойных ночей на острове.

Показать полностью 1
10

Как я начал писать текстовую MMORPG игру с огромным открытым миром

Приветствую!

Начать рассказ о себе без пары слов о прошлом было бы странно. Поэтому коротко и ясно, без лишних подробностей: мне 35 лет, и по меркам нынешней молодёжи, я уже "дед". Последние 10 лет я посвятил маркетингу и рекламе, а в свободное время запустил YouTube-канал по программированию, помогая новичкам осваивать эту невероятную сферу современного мира — IT.

О себе...

Мужчина 35-ти лет, смотрящий на игровой остров, как я в свои 35 смотрящий на будущее моей игры!

Мужчина 35-ти лет, смотрящий на игровой остров, как я в свои 35 смотрящий на будущее моей игры!

Моя семья — это моя опора: супруга и двое детей. Благословен тем, у кого есть время для хобби. Одно из моих — программирование.

Легенда о геймере, который стал создателем игры

Мои годы в играх

Моя молодость пронеслась в мире виртуальных приключений, где я накопил более 10 000 часов в таких играх, как:

  • Dota 2: 2,748.5 часов

  • CS:GO: 931.8 часов

  • RUST: 899.7 часов

  • Miscreated: 1,586.2 часа

  • Age of Empires 2, 3 & 4: примерно 700 часов

  • И множество других...

К 30 годам я решил отказаться от всех игр на ПК и консолях, отдав последние в дар родственникам.

Вдохновение из прошлого

Поворотным моментом стала статья о первых текстовых играх 1980-х. Вспомнив свои опыты с текстовыми играми во времена wap-интернета, я задумался: а что если совместить мои хобби в одном проекте?

Рождение Идеи: Текстовая MMORPG

Первые шаги

Начинал я без понятия о том, как создавать игры. Но теперь я знаю, что такое игровой сеттинг, ЛОР и другие ключевые элементы разработки. Моя цель — создать огромный виртуальный мир, где игрока не сковывает линейность.

Технические детали

Я начал с Python 3 и написал логику для генерации игровой карты размером в 1,000,000 ячеек — это 100 на 100 километров. Создать такой масштаб в текстовом формате было вызовом: каждая ячейка — это 100 на 100 метров.

Примерно через 3 дня стараний я сделал это:

Техническая картинка, которая получена сугубо скриптом Python

Техническая картинка, которая получена сугубо скриптом Python

А в игре для игроков это выглядит красивее и примерно вот так:

По мере прокачки вы получаете больше информации и карта дает ее в том числе

Этапы Разработки

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

  2. Бета-версия: Очень скоро.

  3. Релиз.

  4. Еженедельные обновления.

Что дальше?

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

Присоединяйтесь!

Заключение

Я верю в силу честности и открытости. Поделитесь вашими впечатлениями и помогите мне сделать игру лучше!

P.S. Ради чего пост здесь?

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

  1. Мне нужны игроки в игру

  2. Мне интересно получить мнение со стороны

  3. Мне интересен эффект от этой статьи, как маркетолога

  4. Я верю, кто-то здесь поможет мне в развитии игры, как минимум советами и сюжетом

Давайте так, ваши комментарии и реакции пусть покажут мне, насколько стоит продолжать описания о игре здесь и вообще здешней аудитории это интересно или нет!

А пока вам скрины с телеграмм бота самой игры:

Скрины из самой игры, это примерно 30% того, что уже есть в игре...

Показать полностью 16
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества