Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Awesome! That would help :).

I've thought of other things that might make quest development nice. The biggest one--and I admit it's a very tall order--would be some sort of control-flow primitives.  This might look like

"Events" : [
    {
        "If Block" :  {
            "Condition" :  {
                "Predicate" : "HasItem",
                "Arguments" : ["Player" , "poem" ]
            },
            "True Event" : ...,  # can be any event, including other if blocks
            "False Event" : ...  # likewise
    }
]

My current solution for this (which I still haven't tested) involves spawning multiple NPCs, having each give the player a quest with different conditions, and then despawning the other NPCs (if that's possible). This will leave the incomplete quests hanging around, but that's fine.

Less drastic, but still very helpful, would be some documentation about the semantics of the various JSON objects. Even just BNF grammars, e.g.

<QUEST> ::= <QNAME>, <QID>, <QTYPE>, <QGIVER>, ..., (optional) <QEND_DIALOGUE>, ...
<QNAME> ::= "Name" : /.*/
<QID> ::= "ID" : <REFERENCE>
...
<REFERENCE> ::= /[a-zA-Z0-9]+/
...
<FLAG> ::= "Flag" : ( "Can_Enter_Power_Plant" | "Can_Enter_Ensis" | "Break_Prisoner_Inhibitor" | ... )

Again, I'm asking for a lot--completely understandable if this stuff is infeasible.

I'll fix up some bugs and include that change in the next hotfix hopefully tomorrow. 

Yeah, thats quite a tall order, and something I was hoping to port over to Lua or some other runtime scripting language. I'll see what I can do though, even if it's not as flexible as you propose. It would be nice to create wholly new functions and logic statements without recompiling. 

As for the documentation, that I can do. I had that in older versions, But with sudden changes, it was quite the task to keep it updated. Now that things are more solid, I could certainly add that again. One of the changes I've been meaning to add was to swap the enums of quest flags, locations, etc to string values read from the json file itself.