Разрабатываю на Rust движок симуляции миров на расширениях
Сап, Reddit! Я хотел сделать удобный аналог SillyTavern, но немного увлёкся архитектурой и пришёл к системе, где миром управляют расширения, а нейронки, как и игроки, лишь взаимодействуют с ним.
Так появилась Rintawa - open-source платформа на Rust для создания интерактивных миров с сохраняемым состоянием.
Я на деюсь по этой схеме хоть что-то понятно? (https://preview.redd.it/gcr7pfuc3sxh1.png?width=3862&format=png&auto=webp&s=76d1627496f84bdb3ffebad7389bfc75b60bda45)
Суть в том, что правила мира тут задают не нейронки а расширения. У мира могут быть собственные правила, сущности и системы, реализованные расширениями. Игрок или AI инициирует действие, а мир уже решает, что действительно произошло, и сохраняет результат.
При этом каждый World может иметь свой набор расширений, состояние и интерфейс. Условно, один мир - чат с персонажами, другой - RPG с инвентарём и боевой системой, третий - вообще 3d и т.д.
Сами расширения тоже планируются гибкими: сейчас используется WASM Component Model с изолированным выполнением, разрешениями и версионированными контрактами. Архитектура позволяет подключать и другие среды выполнения, в том числе Native. Расширения распространяются как .rtw-пакеты, а интерфейс тоже может предоставляться расширениями через Portable UI.
Что уже готово: движок расширений, установка пакетов, сохранение Worlds в SQLite, управление мирами, импорт персонажей Tavern V2/V3 и базовый Chat. Всё пока в dev, полноценный MVP ещё не готов. Сейчас допиливаю связку Chat + AI Provider + Narrator.
(к сожалению из-за сложности архитектуры сейчас оно работает не очень стабильно и расширения могут умирать от любого чиха)
Тут я хочу послушать мнение экспертов касательно этой идеи, а также возможно найти контрибьютеров потому что у меня слишком мало опыта в настолько сложных rust проектах
Также сражу скажу, что значительная часть кода написана с помощью ИИ. Я использую его, чтобы быстрее проверять архитектурные идеи и не тратить полгода только на первый MVP. Это не значит, что я считаю весь код идеальным или готовым к production: проект экспериментальный, и проверка решений, тестирование и рефакторинг остаются важной частью работы. По мере развития проекта хочу уделять этому всё больше внимания.
расширение Package Manager (https://preview.redd.it/y8yq8tnm5sxh1.png?width=2116&format=png&auto=webp&s=c1fc1e50b2db2eeef3ce6220739b223f9c066216)
стандартный CLI (https://preview.redd.it/2wn80mvn5sxh1.png?width=1211&format=png&auto=webp&s=23d01d2754fbe19d16e029b488e3178563094471)
https://preview.redd.it/c6w62nst5sxh1.png?width=1247&format=png&auto=webp&s=cd9240f8439faf21a93944178a30637b27d481e3
любой extension имеет произвольное количество компонентов. Сейчас доступны только WASM компоненты, но позже появятся другие (https://preview.redd.it/0o4533on1sxh1.png?width=1137&format=png&auto=webp&s=ed31a6604aa110cd3178d792671b835252e24fd5)
буду реально очень рад найти людей, которые могут помочь с проектом
https://github.com/martrtr/rintawa
— u/march-taylor
r/RuProgrammers импорт · Reddit
Комментарии
Комментариев пока нет.
Ответить можно в O2.