Fantarg
Ну вроде ситуация с кубиками - то же самое, что ты описываешь? Т.е. да, идеально: некоторый набор правил, который порождает различные комбинации ситуаций (состояний мира).
Но упрощенное моделирование событий - лишний отдельный код, который еще и "предзадан" разработчиками; еще и некорректен (автобатлы в героях 3, которые проигрывают беспроигрышные партии). Отложенное выполнение - возможно, это часто используемый прием, мир за пределами взгляда игрока "застывает".
Да и не вижу я пока смысла в этой оптимизации, многие недооценивают возможности пк для честного расчета при грамотной архитектуре ПО. В любом случае - проблемы нужно решать по мере их поступления, а проблемы оптимизации решаются после обсуждений реализации (хотя бы в ТЗ).
Чего не хватает современным играм? Механик взаимодействия неигровых персонажей. Торговец - это просто экран интерфейса игрока с кнопкой в виде 3д человечка. Где-нибудь в космических рейнджерах на это даже натягивают механики дополнительные, вроде: купил - подоражало, и даже какое-то влияние на игровой мир - возможно. Но что если торговец торгует для всех нпц и делает это не просто так?
Вот система, "механика языка", которая потенциально позволяет строить такие правила. Даже кодить взялся, чтобы поразобрать детальнее.
https://gamedev.ru/gamedesign/forum/?id=284928&page=5&m=5937185#m71
Немного ищу, чтобы найти что такое уже реализовано, но, чувствуется - что я первый.
Суть в том, что нет отдельного интерпретатора состояний мира для ИИ (перегонять позицию персонажа в исходный код), изменения состояния мира описывается языком, который понимает НПЦ. Т.е. каждое слово "языка" - это шахматная фигура и перемещение "Е2-Е4" (В данном случае - можно даже без фигуры). Потом, на это сверху натянуть ИИ.
Сейчас пока пытаюсь это представить в виде текстового квеста, чтобы посмотреть, что из этого можно получить.
ildarin
> чувствуется - что я первый
вообще на ResearchGate полно статей по тегу procedural narrative generation
#!
Спасибо, то что искал.
Но кажется, что этот нарратив чисто для игрока. Есть там такое, что сгенерированный нарратив (сами фразы) были сами объектами, для дальнейшего построения нарратива?
Например. "орк1 взял яблоко". А затем из этого "орк2 сказал (орк1 взял яблоко)". Т.е. рекурсивность фраз. Что приходит на ум - системы контроля версий с их склейкой готового результата из последовательности "диффов". В итоге орк (нпц) может в рамках нарратива сам создать рассказ из частей этого нарратива: "орк1 сказал (орк2 сказал (орк1 взял яблоко)))" и т.д. Понимание пока что абстрактное. Суть в том, чтобы объединить в единой взаимосвязанной системе
1) передачу информации между нпц
2) изменения состояния мира
3) передачу информации игроку
?
ildarin
> Т.е. рекурсивность фраз.
это только люди могут создать бесконечную фразу вида Дом, который построил Джек
к сожалению слово token плотно засрано криптовалютчиками, удалось только такое отфильтровать
мотивирующая картинка
вообще сейчас можно уже условно чат-гпт встраивать
https://arxiv.org/pdf/2404.19721
вот пример минимальной реализации
https://github.com/jaymody/picoGPT
ну и если разрабатывать конкретно эту модель субъект - объект - действие
которая потом обрастёт обстоятельствами и прилагательными, то можно отдельную тему
там уже можно будет рассмотреть метрики семантической близости типа такого
http://www.vestnik.vsu.ru/pdf/analiz/2010/01/2010-01-25.pdf
и забацать свой недо-гпт)
#!
Я читал про генеративные текстовые сети (LLM), типа гтп. Там в целом принцип т9, они просто парсят кучу текста и строят продолжение текста так, как оно бы больше подходило под предыдущий текст. Условно ты пишешь "пошел ты на ...", а чат гтп подставляет слово такое, что оно чаще встречается, с некоторым рандомом ("хутор близ Диканьки" или "работу"). Потом то же самое, но уже для полной фразы продолжение: "пошел ты на работу ..."+"утром", и т.д. Т.к. они строят по огромному объему человеческого текста - выглядит так, что может даже пройти Тест Тьюринга. https://habr.com/ru/companies/ods/articles/716918/
Так что в сторону гпт я бы особо не смотрел. Особенно, учитывая что ей токены подкручивают, чтобы она плохого не писала (на острые вопросы она будет писать дефолты). Да и возможность достраивать модель на основе пользователей ей ограничили, а то она плохому учится. Т.е. она откатывается до стандартного состояния, а диалог с пользователем лишь использует локальную версию (это про ограничение токенов для диалога). А то она начинала писать про смерть человекам и повешенье негров (в твиттере такой опыт был).
Подход к модели игрового мира этот - сложный. Может даже слишком. Может проще задавать наборы правил в коде. Просто перевести фокус игрового с "месторасположения" и "предметов" на некоторые социальные аспекты в первую очередь ("авторитет", "доверие", "статус"), а потом уже присобачивать на это яблоки, голод и боевку. Пока что - хз.
ildarin
> Суть в том, чтобы объединить в единой взаимосвязанной системе
> 1) передачу информации между нпц
> 2) изменения состояния мира
> 3) передачу информации игроку
Я тоже думаю над такой системой распространения информации. Нужно еще добавить искажения, чем больше цепочек в передаче, тем больше искажений.
Но нужен глобальный режисер, который не дает игроку слушать одну и ту же историю, чтоб тот не задолбался и не разочаровался в игре)
Fantarg
> Нужен не глобальный режиссер, а набор заготовок. И слои.
Я против заготовок. Режисер нужен чтобы выбирать какую историю будет расказывать нпс, когда рядом проходит игрок. Вот представь есть сотни историй у нпс и рандом выпал так что несколько подряд нпс расказывают одну и ту же историю. У игрока тогда сложится ощущение о заранее заготовленных историях.
Fantarg
> даже используют скрытый файл-сохранок
Опять ты чего-то выдумываешь
Fantarg
> Ты по-настоящему не работал с живыми мирами.
Это переход на личности и оценочное суждение. Ты не можешь фактически знать все мои "по-настоящему работы". Поэтому, логично добавить "я думаю". А зачем мне знать, что ты обо мне думаешь? Т.е. фактически, независимо от посыла и реальных мыслей, это лишь социальный фактор взаимодействия, психология.
Например: "ты пидор" - тоже субьективное оценочное суждение, переход на личности, который вызывает очевидную реакцию: "может это ты - пидор?".
Или это не субьективное оценочное суждение? Или не переход на личности?
В механике социальных взаимодействий, это публичная оценка субъектом. Например, "ты классный" (+10), "ты не шаришь!" (-10). Остается вопрос, зачем это сделанно? Я изучаю этот вопрос с точки зрения психологии, в том числе и рассматриваю возможности применения этого в геймдизайне. Есть несколько различных моделей. Например, это может быть способом снижения фрустрации.
Допустим (рил стори одного чела). Чел проиграл катку. Чел испытывает фрустрацию. Выходом этой фрустрации будет обвинение союзника "ты играть не умеешь!". Таким образом внутренний конфликт разрешается "я играю хорошо"+"мы выиграли"="ложь". Хотя, тут скорее дело не в разрешении логического противоречия, а последствия фрустрации. Например, если человек болеет или испытывает страдания - он скорее будет испытывать фрустрацию и (по каким-то причинам) - произведет перенос через механику "отношений" (этот механизм мне еще не очень понятен).
В твоем случае - это может быть, например, "я по-настоящему работаю с живыми мирами"+"я не могу найти решение"="внутренний конфликт", по аналогии с каткой. Но я не могу точно знать, я лишь знаю основные маркеры социальных механик в речи (языке). Может быть даже, что подобные реакции являются просто закрепленными через повторение. А может быть и то и другое. Может, ты не согласен с каким-то из моих тезисов и т.д.
У социальных животных, если откинуть речь - такое поведение может быть маркером опасности. Если одна обезъяна от чего-то отпрыгнула и закричала - другая лишь по реакции уже делает выводы. И наоборот - если одна курица побежала к кормушке - другая увидев - тоже побежит.
В принципе, в игре тоже можно применить эти механики вместо "голода" и прочих нужд, формируя интересные взаимодействия между нпц.
Можешь объяснить, почему ты решил начать обсуждать меня?
Речь человека состоит из двух составляющих: информативная и социальная. Социальная сильно связанна с животным поведением, вроде груминга и публичной оценки (сурикаты по разному кричат в зависимости от источника опасности - информативность). У человека эти две составляющих переплетаются, но можно выделять одно от другого, оперируя социальными механизмами как информационными.
В целом, можно моделировать игровой мир, с фокусом на механизмы социального взаимодействия стайных животных. Помимо "груминга" - есть еще и механизм "публичной оценки", что является ключевым фактором построения "отношений" в стае и, возможно, самого механизма формирования стай, привычного образа жизни и реакций.
Вопрос о связи фрустрации с социальными механиками - все еще остается открытым.
Fantarg
> Ты любишь писать, а не искать, я правильно понял суть твоего пустого домысливания? Ты пишешь о банальных вещах, но они для тебя не изведаны. Увидел в этом наезд? Твои проблемы. Но ты сейчас столько всего по-написал про пидорства, что смешно же.
Теперь практически все сообщение - обсуждение меня. Фрустрация повысилась, "бомбануло". Понимаешь - почему? Я - понимаю. ПО НАСТОЯЩЕМУ работаю с живым миром.
Понял?
ildarin
> Если одна обезъяна от чего-то отпрыгнула и закричала - другая лишь по реакции уже делает выводы
кстати хороший пример, у животных не так уж и много сигналов
но им хватает самоорганизовываться в группах
может с этого начать?
где-то точно слышал что у обезьян опасность на земле и опасность в воздухе это разные сигналы тревоги
ещё они различают нас больше или их больше
#!
Да, у сурикатов вроде, и у обезьян тоже. Змея и птица - разные крики, ибо земля или небо. Это все и есть пра-язык человека. В принципе, я немного продумываю этот вариант, но в голову лезет только что-то вроде симуляции по принципу "снизу-вверх", т.е. моделирование систем "для наблюдения". Типа, сделать словарь сигналов, дать им нейронки и запустить генетический алгоритм. И мб они там в стаи начнут собираться и как-то еще интересно взаимодействовать. Еслиб кто-нить сделал - интересно былоб, люблю такие. Но самому в голову пока ничего не идет.
А потом еще это как-то довести до игровой ситуации вроде "собрались орки строить деревню" и "всей деревней пошли бить морды соседям". Над думать. Симулировать орков хотя бы на уровне поведения обезьян - уже возможно что-то.
хорошая тема, но тема сдулась ... а все потому, что предпочитаете болтать
tac
> хорошая тема, но тема сдулась ... а все потому, что предпочитаете болтать
по мне так потому, что она чётко не очерчена
с какого уровня надо начинать симуляцию?
может быть вообще со стихий, ветер, дождь, река, потому что это влияет на жрачку
если в реку в узком месте бросить несколько стволов деревьев, что с ней станет?
образуется ли запруда и почему нет? бобры ведь так делают
и тут даже без "живых" неписей уже куча вопросов, а если брать только их, то всё равно надо продумать откуда они берут ресурсы? где и как расположены руды? как быстро и где растут деревья?
т.е. довольно сложно очертить границы где симулируем, а где уже нет, и как это повлияет на всё остальное
клубок таким образом только разрастается и запутывается
а по мне так потому, что ТС начал заниматься ерундой, у него сейчас фикс идея лингвистическая - она провальная полностью ,но он понять этого не может, т.к. не программист вовсе.