Epoch впервые начал самостоятельно изучать игровой мир
Epoch впервые начал изучать игровой мир самостоятельно
Сегодня у меня произошло событие, которое для проекта оказалось важнее, чем кажется на первый взгляд.
Несколько месяцев я работаю над Epoch — системой, которая должна не просто выполнять заранее написанные правила, а постепенно самостоятельно понимать окружающий мир.
Сегодня Epoch впервые получил возможность наблюдать настоящий мир.
Не через API.
Не через документацию.
Не через исходный код.
А через поток данных, который постоянно передаёт игра.
На первый взгляд это выглядит совершенно неинтересно:
UPDATE1B
Player
Long Steel Sword
Witcher Silver Sword
Starting Armor
...
Просто строки.
Но дальше возникла мысль.
Обычно разработчик пишет десятки обработчиков:
если пришёл пакет UPDATE1B — значит это экипировка;
если UPDATE3 — значит характеристики;
если UPDATE4 — значит ещё что-то.
То есть человек заранее объясняет программе, что означает каждое сообщение.
А что если сделать наоборот?
Что если ничего не объяснять?
Пусть Epoch сам наблюдает.
Например, сегодня в одном поле находится:
Long Steel Sword
Через минуту:
None
Потом:
Mastercrafted Steel Sword
Из этого можно сделать гипотезу:
«Похоже, это слот стального меча.»
Никто не прописывает это вручную.
Система сама начинает понимать смысл данных.
Получается примерно такая цепочка:
Поток данных
↓
Наблюдение
↓
Память
↓
Поиск закономерностей
↓
Гипотезы
↓
Понимание
Самое интересное — события перестают быть первичными.
Первично состояние мира.
А событие — это просто изменение состояния.
Например:
State(t)
↓
State(t+1)
Разница между ними уже сама становится событием:
игрок сменил оружие;
игрок начал диалог;
игрок переместился;
игрок получил предмет.
Никто специально эти события не отправляет.
Epoch должен научиться выводить их самостоятельно.
И именно это сегодня впервые перестало казаться красивой идеей на бумаге.
Теперь есть настоящий поток данных, на котором можно учить систему понимать неизвестный мир.
Самое забавное, что весь вечер мы пытались понять, куда внедриться в игру.
А в какой-то момент стало ясно, что правильный вопрос совсем другой.
Не «как вмешаться?»
А:
«Можно ли просто внимательно наблюдать?»
Кажется, именно с этого и начинается понимание.
P.S. Забавно осознавать, что сегодня мы не столько написали новую функцию, сколько впервые дали Epoch возможность открыть глаза.































