❌

Reading view

Как немножко обмануть сервер

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

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

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

Читать далее
  •  

Дядя Боб написал правила для ИИ‑агентов: разбираем ub‑mode

Автор «Чистого кода» Роберт Мартин aka Дядя Боб взялся за ИИ-агентов. В скилле ub-mode, который Дядя Боб на днях выложил на GitHub, всего около 750 слов. Этими словами Мартин выстраивает работу агента так, будто сам стоит рядом и смотрит на монитор строгим взглядом.

На днях Роберт Мартин aka Дядя Боб, автор «Чистого кода», выложил на GitHub ub-mode — набор правил для ИИ-агентов. Весь скилл — один файл примерно на 750 слов: короткие ёмкие правила, написанные по тем же принципам «чистого кода». Теперь у каждого разработчика будет свой Дядя Боб: он встанет над ИИ-агентом с линейкой и проследит за гигиеной кода.

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

В репозитории ub-mode нет кода: там только README.md и SKILL.md. Второй файл описывает порядок действий, а README отсылает к утилитам, которые меряют сложность кода, ищут дубли и проверяют, ловят ли тесты ошибки. Автор пишет, что частично использовал идеи poteto-mode / pstack.

Правила разбиты на три части: First Make it Work, Then Make it Right и Practice.

Читать далее
  •  

С AI проще форкнуть, чем договориться?

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

Читать далее
  •  
❌