Существуют ли вообще одиночные игры про общение, коммуникацию?
L.A. Noire, Disco Elysium?
Кстати, в предыдущем проекте (забросил лет 10 назад), у меня была реализована этакая мини-игра для общения.
На гексагональном поле по углам выставлялись триггеры эмоций/мыслей/реакций: страх, симпатия, гнев, жадность, изумление, безразличие и т.д. На самом поле могли быть препятствия — «тараканы» собеседника. Была возможность добавлять новые препятствия и убирать старые. По центру поля выставлялась фишка, иллюстрирующая текущее состояние ментальной сферы собеседника. После каждого активного действия игрока фишка смещается в сторону той эмоции, чей счётчик выше, при необходимости рандомится между несколькими вариантами, либо выбирает вариант по умолчанию: персонаж может быть гневлив, труслив, равнодушен и т.д. Ну а дальше можно было использовать различные методы для задвигаия фишки к нужному триггеру: взятки золотом, совместное распитие всякого разного, анекдоты с соотв. тегами, козыряние знакомствами и достижениями и т.д. Как загнал — следовала реакция. Скажим со страху собеседник мог выдать какую-то тайну, сбежать, позвать на помощь, смотря что прописано для конкретного персонажа. Будучи злым мог атаковать, ваыставить за дверь, кликнуть охрану, заблокировать вариант прохождения квеста. Удалось добиться лояльности — вот ещё вариант прохождения квеста, допуск в новую локацию и т. д.
В следующем проекте я от этого всего отказался, ибо очень трудоёмко, а полезность сомнительна.
alexyecu_wox2team
прикольная мини игра, типа риторической баталии с использованием манипуляций. чето похожее в обливионе помню, где тыкать в правильную четверть круга
> L.A. Noire, Disco Elysium?
да, в играх это клево сделали. по большей части на уровне визуальной новеллы - просто дерево событий сюжета с заранее прописанными диалогами. это как были книги интерактивные с выбором сюжета и перепрыгиванием на страницу.
Сообщения можно поделить на 3 категории:
1. Утверждение. (восклицание)
2. Команда! (просьба, совет)
3. Вопрос? (предложение)
Можно еще пойти от игровых ситуаций, построенных на нюансах общения. Например, визуальная новелла на частях речи.
Информация как ресурс. Плохой пример:
Герой увидел: (где1) В пещере (где2) на полу (делает) лежит (что1) яблоко (что2) меч (что3) зелье.
НПЦ: Я люблю яблоки.
Предложение для НПЦ: я скажу - яблоко (где)?
НПЦ: ты скажи - яблоко (где?)!
Герой : В замке, на втором этаже лежит яблоко.
НПЦ тебе благодарен дает 10 монет, уходит в замок на второй этаж. Потом расскажет другим НПЦ что герой - врунишка.
Прорабатывая все возможные игровые ситуации и построения фраз, взаимодействия НПЦ между собой. И дальше расширяя, по возможности делая наиболее компактно. Вполне и рогалик можно, с пошаговыми клеточками.
Свойства информации:
1. Ценность (полезность)
2. Достоверность
3. Актуальность
4. Понятность (доступность)
В примере 1 и 2.
ildarin
Проблема в том, что приведённый тобой пример можно сделать намного проще, не закапываясь с головой во всю эту псевдолингвистику. И при этом с точки зрения игрока разница заметна не будет.
Возможно, какой-нибудь симулятор общения с инопланетянами и может что-то подобное включать (как, скажем, примитивные диалоги в The Out There, где надо было угадать значение фразы, из которой понятно одно или два слова и давать ответ да/нет), но в случае рпг/эдвенчуры в этом смысла нет.
И да, та же расстановка тегов по фразам — огромная работа на самом деле. Для десятка случаев на всю игру — оно нафиг не надо так заморачиваться, если ж это прям по всей игре встречается — это очень много работы как-то так. Я как-то так взялся для прошлого проекта анекдоты адаптировать, там по сути все тэги сводились к «общая тематика», «какие фракции/расы/классы выставляют в выгодном свете», «какие в невыгодном» — на первом десятке задолбался и понял, что игрокам на это, в общем-то, будет наплевать. Такие вещи в юмористических попаданческих фэнтези смотрятся хорошо (да и всем давно надоели), а в играх — так себе.
alexyecu_wox2team
> но в случае рпг/эдвенчуры в этом смысла нет.
Еще как есть. Подслушать разговор. Дать полезную информацию/дезинформировать. Настраивать за себя, против кого-то. Узнать что-то. И это не заранее прописанные if else, а процедурно генерируемое и зависимое от игровой ситуации.
alexyecu_wox2team
> огромная работа на самом деле
Не спорю, нужно думать
alexyecu_wox2team
> Для десятка случаев на всю игру — оно нафиг не надо так заморачиваться
Зависит от того, сколько комбинаций ситуаций это создаст. 7 форм в тетрисе достаточно, для неповторимых ситуаций. Если уж и заморачиваться с общением - то это ключевая механика, на которую уже натягивать остальное, опционально.
Можно и все дотошно не реализовывать, через игровые условности. Одна пуля человека убьет или положит, но шутеры допускают много попаданий.
Ключевой смысл тут в том, что нпц между собой взаимодействую через этот механизм. В итоге выходит песочница, которая играет в саму себя, и в нее мы сажаем игрока.
Сложность тут в том, чтобы сделать это компактно и максимально понятно, создав максимальное число ситуаций при минимальном количестве элементов.
В плане коммуникаций между людьми хорошо подходят шпионские фильмы, где пытаются найти стукача, проверяют надежность информаторов. Это в основном цепочки распространения информации, передал одному информацию и смотришь где она всплывет или кто начнет суетиться.
В плане симуляции НПЦ подобная игра может получиться, если хорошо настроить взаимодействие НПЦ.
/A\
Да, хороший пример ситуации. Еще думал про интриги, шантаж, предательство, мошенничество, психические манипуляции.
Правда когда прорабатывал модель - уходило в рекурсии. "Что думает, про то, что думает, про то что думает...", когда "существительное" само может быть "предложением". Может, просто ограничивать по уровню вложенности.
Не играл в Shadows of Doubt - но кмк там есть что-то похожее, в плане процедурности симуляции и логической связности.
Возможно - делать составление предложений не по частям речи, а бОльшими кусками, вроде 2ух составляющих.
Там помимо модели "среды" - нужна еще модель "мышления" нпц. Тоже все не так просто. Нейронки не вариант стартовый, ибо для обучения нужны сэмплы. А если есть сэмплы - то проще руками закодить на параметрах.
Может, вообще двигаться от двух элементов на каждую модель среда/нпц, прорабатывая ситуации (2х2=4). А там уже видно будет.
Вопрос не в том существует ли, а в том готов ли ты потратить время что бы это создать.
PeeKay
Это RND. Не факт, что возможно.
Мб даже не расширение жанра, а создание нового.
Поле: (подготовка, последствия)
НПЦ: (объект, перемещение)
Состояния: (Разведка, Внедрение, Саботаж, Эвакуация)
подготовка+объект=Разведка
подготовка+перемещение=Внедрение
последствия+объект=Саботаж
последствия+перемещение=Эвакуация
Выходит, что-то вроде базы для настолки. Правда про общение тут не особо много, нужно менять сеттинг. Или эти элементы являются кусочками информации. Типа, Внедрение переводит ячейку поля в "последствия", Саботаж - в "подготовка", нужна информация о ячейках поля или действиях.
Хз...
Достоверность информации по соответствию знаниям нпц. "Яблоко est пещера" - согласуется транзитивно. "Пещера est червяк" - противоречит или рекурсия. "Червяк est помидор" - неизвестное "помидор", новая информация.
Помидор est? "Помидор est ящик". Достоверность новых знаний зависит от параметров нпц, вроде "доверие".
А если переместилось - "ящик est озеро", несогласуется, но может быть новое знание. Добавляется актуальность.
К слову.
ildarin
Мне больше нравится на частях речи. Со своим языком.
что находится где. х1 Est х2. Синонимично -
слову содержится.
Яблоко est ящик. Ящик est пещера. Червяк est яблоко. Морковка est озеро.
Вопрос: est яблоко? (Червяк est) Яблоко est? (est ящик)
Свой язык называется Prolog.
Классика жанра!
Пример программы на Prolog:
человек(сократ). человек(платон). смертный(X) :- человек(X). ? - смертный(X). // вопрос смертный(сократ). // ответ смертный(платон). // ответ
Для всех x, если x является человеком,
то x является смертным;
Сократ является человеком;
(следовательно)
Сократ является смертным.
ildarin
Мне больше нравится на частях речи.
Все существующие анализаторы синтаксиса сделаны на Прологе.
https://disk.yandex.ru/d/kMFHX5VS47W46w
Части речи, это уже морфология и к делу относится косвенно, как набор команд процессора к ЯВУ.
flint2
> Prolog
Да, кодили мы на нем курсе на 2ом, та еще ебанина) после императивных мозг сломаешь)
Тут я не на пролог ориентируюсь,а на логику первого порядка. Ну, пролог тож на этом строится.
У меня правда квантор единственности скорее, а не существования. В прологе - квантор всеобщности. Разница: моё яблоко в кармане; яблоко в кармане; яблоко это фрукт.
Но всю логику в игру вообще не хочется запихивать, только необходимый минимум.
Вместо est можно вообще дефис, но латынь люблю.
Знаешь игры в которых используется prolog как элемент механики? Как сделать на этом актуальность информации?
flint2
> Все существующие анализаторы синтаксиса сделаны на Прологе
Нет. Я для своего первого компилятора синтаксический анализатор делал на delphi. Но неважно
ildarin
Нет. Я для своего первого компилятора синтаксический анализатор делал на delphi
"Вы просто их готовить не умеете." ©
Это всё фигня для языков программирования, а вот для реального языка (русского(самый сложный), английского и много много остальных) - это уже не фигня.
ildarin
Знаешь игры в которых используется prolog как элемент механики?
Сразу не вспомню, но в 90-ые много было, когда Пролог модным был. Всё от моды зависит. Когда то и Lua пихали куда не попадя, а сейчас Pyhton - "и это пройдёт" ©.
Те же "Герои Меча и Магии III". Если не ошибаюсь, там AmziProlog встроенный. Могу с названием и ошибиться - столько десятков лет прошло.
flint2
> Сразу не вспомню, но в 90-ые много было, когда Пролог модным был. Те же "Герои Меча и Магии III". Если не ошибаюсь, там AmziProlog встроенный. Могу с названием и ошибиться - столько десятков лет прошло.
Не нашел 😔
Ваще даже чисто программирование на прологе вполне можно игрофицировать, если упростить, навалить прогрессий и пазлов 😏 но это уже немного из другой оперы.
Но в целом - да, типа внедрить нпц какую-то логику и выражения, чтобы они обменивались - было бы прикольно. И для всего этого - минималистичный интерфейс для игрока
ildarin
Не нашел 😔
https://www.amzi.com/
https://github.com/AmziLS/AmziProlog
ildarin
Ваще даже чисто программирование на прологе вполне можно игрофицировать, если упростить, навалить прогрессий и пазлов 😏 но это уже немного из другой оперы.
flint2
А, мы не совсем друг друга поняли) я всмысле игрок в героях пролог юзает, типа для редактора карт) типа jass в wc3. Чтоб это игрок юзал
Но прикольно, не особо интересовался прологом. У меня из декларотивных самый используемый - это sql и regex
Перевод и разные языки, диалекты - тоже возможная механика, на тему свойства доступности информации
ildarin
Чтоб это игрок юзал
Нет, такого я тоже не видел.
Вот чего то похожее по сути механик: https://instead.hugeping.ru/page/metaparser/
https://github.com/instead-hub/metaparser/blob/master/doc/manual-ru.md
https://instead.hugeping.ru/
Но не совсем то.