캐릭터 카드, 컴패니언, TRPG 캠페인, 텍스트 게임을 — 기억・이벤트・에이전트・결과가 있는 살아있는 세계로 바꾼다.
위: 캐릭터 에이전트의 사고. 아래: 월드 에이전트가 플레이어에게 들려주는 이야기.
[turn:73] day3_17:15 split_decision
input: "시간이 좀 빡빡해, 교회 문 닫을 것 같아..."
context:
trust: 94 affection: 91 energy: 67
recent: "혼자 가는 게 좋겠어, 이런 건...스스로 묻고 싶어"
추론:
+ 플레이어가 내가 혼자 가고 싶다고 했던 걸 기억함
+ 이 신뢰가 동행보다 더 깊게 닿는다
+ 교회는 내 일. 술집은 내 안전망.
mood_change: +8 touched, +5 determined, -3 sep_anxiety
action: heading_to_chapel_alone
> 엘레나가 후드를 끌어올린다.
> "...밤에 비취 술집에서?"

> 엘레나가 가볍게 끄덕였다.
"응, 네 말이 맞아.
교회 사람들은 어두워지면 안 받을지도 몰라."
후드를 끌어올리는 손짓이, 스스로를 다잡듯이.
"그럼 나는 교회 쪽. 너는 방이랑 길드."
잠시 멈추고, 목소리를 조금 낮춰서.
"...밤에 비취 술집에서 봐?"
네가 끄덕였다 —— 말은 필요 없었다.
돌아서기 반 초 전에 망설였다.
한 번 더 너를 돌아본다.
"...응, 그럼 갈게."
은빛 뒷모습이 동쪽 거리로. 처음엔 조금 느리게,
열 걸음 정도 지나면, 등이 곧게 펴진다.
너는 그녀가 모퉁이로 사라지는 걸 지켜본다.

이 페이지의 어떤 일도 대본이 아니다. 매 턴 각 캐릭터가 스스로 결정하고, 결과는 상태가 되고, 상태는 기억이 된다. 다음 턴은 그 기억을 안고 이어진다. 왼쪽은 오늘의 턴 기록, 오른쪽은 지금의 세계 상태.
공개하는 것은 "세계가 스스로 나아가게 하는" 층: 개방/폐쇄 스키마, 제안→검증→반영, 이벤트와 분기 — 플레이 방식은 없다. 플레이 방식은 템플릿 팩이 등록하고, 제품은 그저 화면이다. 그래서 엔진을 자기 프로그램이나 Godot에 붙여도 되고, 템플릿 팩만 써도 된다.
| 공개됨 | LudicDynamics/WorldLines — 엔진 neonrp + 셸 worldlines + docs; stoneford-worldlines — 시작 세계(AGPL) |
| 공개 진행 중 | NeonRP 엔진 본체: 이 페이지에서 돌고 있는 편성(문 → 상의 → 청산 → 반영), 개방/폐쇄 스키마, ops 검증 — 청사진대로 단계별 공개 |
| 실행 | pip install worldlines → worldlines(플레이어); pip install neonrp(엔진만, 자기 프로그램에) |
개방/폐쇄 스키마, 제안→검증→반영, 이벤트, 분기만. 플레이 방식은 전혀 없음.
한 가지 플레이를 엔진에 등록: 클래스, 변수, ops, 규칙. rpg와 werewolf 내장.
게시 전 검사: 템플릿, 믹스인, 내용, 슬롯이 전부 해석돼야 계약을 내보내고 Hub에 올림
플레이 UI, 창작 작업대, Lint, Hub 게시.
엔진 · 템플릿과 세계 · 제품 · 마일스톤 — 준비되면 내보낸다, 달력대로가 아니라.