Pull to refresh

Comments 20

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

Это не случайность и не баг, а целенаправленное предупрежденеи человека при открытии консоли о том, что не стоит там лазить 😁
Пока что определяет только с ПК открытие браузера, а вот если открыть консоль в WebApp через приложение Телеграм на ПК, то там уже не сработает предупреждение

Не написано главного - какая монетизация у игры? Есть ли она вообще? Какая статистика? Сколько пользователей всего, одновременно, и прочее?

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

Да, а есть ли современные альтернативы Impact.js? Неужели так всё печально?

А почему у всех таблиц суффикс _kuzb?

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

Монетизация сейчас только через покупку внутренней валюты, а где вы про 2 внутренние валюты для монетизации прочитали я не знаю🤷‍♂️
На подходе обновление, где будет возможность подписываться на партнёров и получать за это плюшки в игре, а так же покупать бонусные месторождения за валюту (Кузбики).

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


Да, безусловно, в дальнейшем я планирую за счёт объёма пользователей получать монетизацию, но, повторюсь, что это не основа моей идеи, я просто стараюсь сделать качественный продукт, в котором есть то, что Кузбассовцам знакомо и которым будут пользоваться люди, вот и весь фокус. Нет никаких подсмыслов.

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

А почему у всех таблиц суффикс _kuzb

Захотелось так, полная уникализация даже в коде 😁

Да, а есть ли современные альтернативы Impact.js? Неужели так всё печально?

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

В начале написано "Игра на 80% сделана с помощью вайб кодинга, но это не так просто как звучит". Понятно что есть свои технические особенности, которые усложнили разработку, спасибо за то что поделились.

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

Конкретно с этим проектом особо нет проблем с ии, я использую Cursor AI, но поначалу когда только знакомился с вайб-кодингом я думал что сойду с ума от его "тупости"🙂

Проблемы есть, но это минимальные недопонимания между мной и нейронкой и, в основном, потому что я где-то элементарную деталь иногда не могу корректно сформулировать и объяснить, вот пример который буквально полчаса назад произошёл, но с другим проектом: у некоторых сайтов есть "хлебные" крошки (breadcrumbs), но по моему большому опыту постоянной работы с DataLife Engine я затупил, потому что там это называется спидбар (speedbar) и вот я потратил больше 15 минут только на то чтобы понять почему не происходит именения в спидбаре, пока нейронка сама у меня не спросила а что такое спидбар, а она всё это время меняла сайдбар... вот элементарный пример из текущего.

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


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

Мои инструкции

Это критичный файл, бесприкословно и обязательно выполнять каждый пункт! Ознакомься с файлом и сохрани у себ в память. Абсолютно перед каждым своим действием и решением обращайся к этому файлу.

Бэкап базы данных находится в папке /******.sql

1. Ты не на сервере, ты на локалке, но все изменения мгновенно загружаются на сервер по адресу ******

2. Если нужны какие-то манипуляции с базой данных, то пиши об этом мне и я сделаю.

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

4. Если нужны debug и test файлы, то создавай их в папке ../../debug.

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

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

7. К решению абсолютно каждой задачи подходи комплексно и изучай со всех сторон глубоко и детально.

8. Если создаёшь файлы для теста, то жди 10-15 секунд перед их загрузкой на сервер, а потом можешь делать запросы на соответствующий url.

9. Консольный файл ../../console - его я обновляю по твоему запросу.

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

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

12. Вместо "—" используй обычный "-".

13. Не забывай, что делать нужно всё максимально аккуратно и тщательно!
14. Есть версия changelog, куда ты должен добавлять важные изменения, когда я прошу об этом. Она находится в ****.json. Если текущая дата последняя в файле, то объединяй. Никогда не указывай в ченжлоге явные пути к файлам, названия файлов и оригинальные названия функций, потому что это отображается на сайте в разделе kuzbass-empire.ru/changelog. В описании изменения версий используй эмодзи, но умеренно. Не используй эмодзи в основном заголовке изменений, эмодзи только внутри раскрывающегося списка изменений можешь использовать. Не перепрыгивай резко с версии на версию, например с 1.1.2 на 1.2.0 пока я не скажу "Обнови версию в ченжлоге".

Абсолютно перед каждым своим действием и решением обращайся к этому файлу.

2. Каждый день работы с любым проектом нужно начинать новый чат со слов: "Проведи детальный технический анализ проекта, пойми что это за проект. Вычисли все взаимосвязи функций. Как завершишь проведи более глубокий и тщательный аназил своих наблюдений. Инструкции для тебя в файле info.txt, ознакомься и приступай"
И пока он заново знакомится с проектом у меня есть время умыться, налить кофе и прийти в себя перед началом рабочего дня 🙂

3. Общаться нужно как с другом... например надо мне в хедере добавить блюр к фону, я так и пишу: "Найди как формируется хедер, изучи всемсвязанные функции и покажи мне инфу", он разбирается буквально секунд 7-10 и выводит инфу и тут уже говорю, что "давай заменим хедер на адаптивный и сделай заблюреный фон". И в итоге имеем новый хедер какой нужен буквально за полторы-две минуты.

поддержка проекта, рефакторинг уже написанного

Это вообще не проблема, если понять как обращатсья с нейронкой и как именно с ней вести диалог, мне на 99% помогает моя инструкция, которую я выше написал. Но по началу первые недели 3 или 4 я конкретно психовал из-за того, что она не понимает меня, делает одно и по пути ещё решает что-то добавить от себя в функционал, некоторый функционал пообще вырезала, в общем была вседозволенность.
Благодаря правилам, которые я для неё придумал разработка идёт как по маслу, пользуйся на здоровье 😉

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

Понял, спасибо за ответ и конкретно вашу инструкцию! Примерно так же работаю, но были интересны нюансы.

Как думаете, сколько времени вы сэкономили с помощью такого вайб-кодинга? Ну в сравнении если бы вы сами все писали и придумывали

Сэкономил примерно 3-4 месяца это минимум

Подскажите, а почему в качестве бекенда был выбран PHP?

И почему не были использованы фреймворки вроде Symphony или Laravel? Тот же Laravel в базовой комплектации закрывает половину проблем - тот же rate limiting, транзакции с локом таблиц, идемпотентность запросов можно через ключ в заголовке и кэш ключа на сервере на n секунд, ну и так далее. Особенно не нужно думать велосипеды с безопасностью.

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

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

Изначально думал полностью на node.js делать всю игру, но представив заморочки с сервером, в случае переезда, решил сделать на php, с ним работаю с 2013 года, как-то он роднее, чтоли 😏

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

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

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

Интересно наблюдать, на самом деле, как проект живёт, как люди кто с региона приглашают друзей поиграть и те тоже играют))

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

Фреймворк решает архитектурные проблемы в первую очередь, а при разрастании проекта они будут снежным комом накапливаться. Суммарная польза от фреймворка нивелирует все его накладные расходы, особенно решая проблемы, с которыми вы еще не столкнулись. Учитывая контекст вайб-кодинга - можно взять готовый mcp сервер laravel-boost от разработчиков, он прокидывает документацию, практики и ряд команд для агента, разработка идёт быстро и без ошибок, даже на grok-code-fast.

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

Laravel-boost с MCP - отличная подсказка, благодарю, возьму на заметку! Пока всё держится на простоте: пользователи играют, зовут друзей, игра живёт.

Го пилить игруху где из графического интерфейса только таблицы с данными

Нет, меня игры с графическим интерфейсом интересуют.
Если в моей игре убрать интерфейс и графику, то тоже останутся только таблицы с данными

Ну дык это может стать фишкой - как управление самолётом только по приборам, не глядя в окно ))

Не понимаю в чём фишка и как это связано с моим проектом? 🤔

Я увидел идею и помаленьку реализую её в своей игре, что вам мешает начать делать то, что задумали?)

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

Теперь понял, это просто были мысли вслух)))
Хорошего вечера, коллега! 😏

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

Согласен, здесь я спараноил немного с удивления😁
Было, помоему, человек 20 в игре всего лишь и смотрю там уже у одного данные фантастические просто в лидерборде и сразу в моменте какая-то паника напала на меня от этого)))
Надеюсь, что таких инцедентов не будет больше ну или хотябы смешиватсья с людьми будут, а не внаглую с 0 до 9999999 ресурсы себе делать 😁

Sign up to leave a comment.

Articles