Dotnet-IFPlatform

I have a summary of my C# IF Platform endeavors on my IFWiki page

IF Platform C#/.NET Core

I mostly play with C# and building a parser-based platform on top of .NET Core. I’ve iterated through the development process using ChatGPT and have the ongoing results in a public GitHub repository (chatgpt-ifplatform).

Some of the things I’ve set as requirements include:

  • In-Memory Graph Data Structure to store and manage the World Model
    • Includes Edges and Nodes, both with dynamic properties
  • All text emission is contextual through a service
    • This means text is never “printed” but slotted for structured emitting at the end of the turn. This will require language emission rules to allow the author to construct output how they want. We’ll create standard patterns, but this will be wide open for customization.
  • Save state will be a serialized version of the World Model in-memory graph.
  • The player will have a built-in dynamic memory.
  • The Grammar definitions will look familiar to anyone familiar with Inform 6 or TADS (see the in-progress StandardLibrary in the codebase).
  • I’m starting with a traditional footprint (Locations, Compass Movement), but I plan to spin off a Scene-based platform afterwards where the concepts of locations and movement don’t exist.
  • I might delve into the idea of a pluggable movement system and not default to compass directions. This is not trivial.
  • I plan to implement an event management system where the author can define World Model states as triggers for activities.
  • Activities will be similar to Inform 6 daemons, but explicitly rule-based.
  • A lot of built-in meta data. Every time a player sees, hears, smells, arrives at, carries, or encounters something, the system will automatically tally statistics. “You’ve traversed the winding path many times.” > HOW MANY TIMES? “Seven.”
  • Every action and reaction will be stored in a transaction log.

Collaboration

I love monkeying around with IF platform concepts, but it would be nice to have others join in the fun. Feel free to ping me if you want to help out and I’ll add you to the repo and I have a Mattermost (Slack twin) server to have discussions. (Plover Mattermost Server)

3 Likes