
Два года один пилю MMORPG на CI4: пять багов, за каждым из которых стоял живой игрок
dron88 28 минут назад Два года один пилю MMORPG на CI4: пять багов, за каждым из которых стоял живой игрок Простой 8 мин 755 PHP * CodeIgniter * Разработка игр * Программирование * Ретроспектива Выживший один у пыльного...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Вот важная новость с фронта ИИ: dron88 28 минут назад Два года один пилю MMORPG на CI4: пять багов, за каждым из которых стоял живой игрок Простой 8 мин 755 PHP * CodeIgniter * Разработка игр * Программирование * Ретроспектива Выживший один у пыльного терминала в ночном бункереДва года я в одиночку пилю текстовую MMORPG в Telegram. И знаете, что в этом самое странное? Мир там живёт без меня.
Раз в минуту просыпается крон — и это сердцебиение целой планеты. Пока я сплю, у кого-то достраивается база, списывается налог, бродят NPC, идут бои. К утру 485 выживших разбрелись по карте в 1 000 000 клеток, между ними отгремело часть из 45 296 боёв, а где-то новичок впервые поставил палатку и не понял, что делать дальше.
Технические детали
Я просыпаюсь и читаю логи, как сводку с фронта войны, которую сам же и развязал. Под капотом — CodeIgniter 4 и ~152 000 строк кода, написанных одним человеком по ночам. CRUD-туториалы про CI4 («сделай блог за вечер») такое не показывают.
А живой мир показывает: грабли PHP и фреймворка вылезают не на хелло-ворлде, а когда по ту сторону экрана сидит реальный человек и делает то, чего ты не предусмотрел. Вот пять, на которые я наступил по-настоящему. И за каждой — не абстрактный баг, а чей-то испорченный вечер.
Рубильник, который не выключался: ((bool)"false === trueРубильник опущен в положение «выкл», а лампочка над ним всё равно горитУ соло-разработчика нет QA, нет стейджинга с реальными игроками и нет ночного дежурного. Поэтому первое, что я построил, — рубильники. 486 настроек в админке, и у каждой опасной фичи свой killswitch: если в проде что-то пойдёт не так на глазах у живых выживших, я щёлкну false, и фича уснёт, не успев испортить людям вечер.
Отраслевые последствия
Это мой спасательный круг. И вот включаю новую механику, всё работает. Решаю на ночь выключить — щёлкаю false, сохраняю.
А она не выключается. В базе по-прежнему 1. В этот момент понимаешь две вещи: спасательный круг, который ты так гордо себе сшил, дырявый — и винить, кроме себя, некого.
git blame показывает меня. Код (было)// value приходит из POST-формы админки строкой: "true" / "false" case 'bool': $update = ((bool) $value) ? 1 : 0; break; Виноват тут не CI4, а сам PHP и моя самоуверенность.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





