Need ideas for my narrative authoring tool

I'm currently hitting a mental block here because I rushed the development with little planning.

So far, what you see in this picture below is all what I had planned before.

It is a narrative authoring tool. Which is part of my other plan for a godot-rust extension project. My main goal is to help create a productive environment for narrative games. Letting writers and programmers be able to work independently without having such big compromise when it comes to integration by having the extension enact as a mini runtime narrative engine in itself.

While the tool itself is part of my bigger plans. I've decided to make it be as independent as possible. Outputting the work as a JSON. Which other applications could parse.

I provided the whole context here, because I think I would post more about this in the future.

Anyways, what I would need right now are ideas on what the editor should be, what should it edit, etc. Suggestions are appreciated!

That sounds like a very interesting idea, could you elaborate on what compromises the writters and programmers experience during integration?

If I'm somewhat understanding the issue, that narrative script is compromised when implemented into the actual game, then I believe a tool that contains contextual data for the storyline could be very helpful. Here are a few ideas that come to mind:

  • An area to define characters, levels/ maps, and events.
  • A timeline to place these items onto.
  • Dialog between characters.
  • Names of items (maps, weapons, tools).

It would be awesome if the tool could storyboard these various game elements and then have Godot directly import them so developers could easily pick these items if possible (not familiar with this engine specifically). This might help keep the developer on track with the narrative story.

could you elaborate on what compromises the writters and programmers experience during integration?

This tool's interface is an inspiration from twine. The GDextension and the overall vision I had is an inspiration from the RenPy engine.

The main problem I'm tackling here is, "What happens when the story needs to be changed, refactored, etc.?"

  • In Ren'py most specifically, the dialogs are often hard coded in a py file, so are actions, scene jumps, and so on, along with non-dialog codes. In that case, refactoring the story means you have to find the file and the correct line and modify them, and potentially to refactor some non-dialog codes too, which is a pain in the long run.
  • This tool, along with the GDextension aims to solve that. How? Here's the flow:
> Create Story node 
> Form the dialogs, actions in side Story node 
> Add an optional "gd_signal" widget to signal something (like executing Godot functions)
> Export as JSON
> GDextension parse the JSON
> Programmer wires up signals (and/or assets) through a config file (or automatically)
> Run
> GDextension acts as a mini engine responsible for next dialog, choices during runtime

> Want to change something later? Like changing the story elements, which signals to use and so forth? 
> Just go back to this tool, change things and re-export, programmer only have to reconfigure new stuff, like new signals. 
> Everything else is pretty much set-and-forget. 

"An area to define characters, levels/ maps, and events."

Since this tool is pretty much aimed for game development mainly, I already had plans to dedicate a Characters tab where you can define characters and attach metadata to them. This could provide better quality of life during dialog creation when editing a "Story Node". As for others, not too sure yet.