Rozwiązałbym twój problem przez porzucenie C# i napisanie twojego programu w Inform7. Inform7 to najbardziej niesamowity język programowania jaki kiedykolwiek widziałem i jest specjalnie zaprojektowany, aby rozwiązać twój problem.
Niesamowitą cechą Inform7 jest pisanie tekstowej przygody w języku przypominającym przygody tekstowe. Na przykład, oto fragment jednego z kodu źródłowego próbki Adventures':
The iron-barred gate is a door.
"An iron-barred gate leads [gate direction]."
It is north of the Drawbridge and south of the Entrance Hall.
It is closed and openable.
Before entering the castle, try entering the gate instead.
Before going inside in the Drawbridge, try going north instead.
Understand "door" as the gate.
Dodaje obiekt do gry - obiekt jest drzwi, nazywa się to «brama żelaza przedawnione». Przez drzwi rozumie się dwa pokoje, w tym przypadku most zwodzony i hol wejściowy. Jeśli gracz spróbuje "wejść do mostu zwodzonego", logika gry będzie wiedziała, że jest to to samo, co "idź na północ", a wtedy logika drzwi ustali, czy drzwi są zamknięte, czy nie. I tak dalej. Sprawia, że pisanie tekstowych przygód jest niezwykle łatwe.
Czy istnieje jakiś szczególny powód, dla którego chcesz używać języka C# zamiast języka specyficznego dla domeny, np. Inform7? Jeśli twoim celem jest nauczenie się pisania kodu C# lub jak zbudować parser lub cokolwiek innego, to zrób to sam. Jeśli twoim celem jest napisanie przygody tekstowej, użyłbym w tym celu języka.
Niektóre „Bazy danych” są lżejsze od innych, jest jakiś powód, coś jak sqlite by ci nie odpowiadał? – Textmode