Encyclopedia System

Hello, this is my first time posting, so I apologize if this question is structured incorrectly.

I am planning on making a game similar to the classic King of Dragon Pass and its sequel Six Ages: Ride Like the Wind. These games are, essentially, simulation town management games with roleplaying game elements. The games are primarily text based, with all decisions being made via a text interface with some images to help visualize. You can see the screenshots on their pages if you need an idea of what I’m going for here.

One of its key features is how it handles text. Each “scenario” that plays out often has several links in the text, allowing one to view details about something in a sort of detailed encyclopedia. Essentially, I want to recreate this aspect, but I’m not quite sure how to even get started. Creating a text system with clickable options is simple enough, but is there an effective and modular way to create this? I’d hate to end up having to hardcode every single text link as an individual button, and it would be great if there were a way to parse data from a text file in a sort of markdown-like format.

Sorry again if this isn’t a proper question, and thank you for your time!

Well Unity has a new UI framework called UIElements which is still partially under development. It comes with a UXML parser which is is Unity’s own markup language which is inspired by HTML / XML. It might suite your needs.

Before picking an UI framework, make sure you read the UI overview page carefully

Besides UIElements of course you could roll your own markup language / syntax which could be more suited for your usecase. How you want to implement that or what kind of features you need is entirely up to you. If you just want to have “pages” with crosslinks to other pages that’s of course quite simple. When not using UIElements but just ordinary Unity UI you would simply create the content based on some prefabs / premade layouts. How to actually store your content is completely seperate from how you want to view it. It could be plain text with some markup / markdown syntax or just a more common format like XML.

Of course getting parts of text that should be interactable inlined is quite tricky with Unity UI. This should be much easier with the new UI Elements. Since Unity tries to push forward to make UIElements the main UI solution it’s probably the best choice.