ironchefpython said:
You may have missed the point of my (pseudo) code. It used an engine api to add two new event types to the game. Before the mod was loaded, there was not support for the open and close events, but a mod should be able to create new event types as a way to propagate state changes.
No, I get that. It is what the code doesn't demonstrate that I'm talking about. While the event handling, adding new events, and so forth are a nice backbone, they are meaningless without the functional parts of the API which are not demonstrated, and not described in your existing documentation. Which is a pity because you've missed addressing all of the concerns that make doors an interesting case - them being composed of multiple blocks, consideration of their direction, how they are placed and removed, the interaction between the door and the blocks that compose it. I'm sure you are planning them though and this will come out as part of your proof-of-concept work.
woodspeople said:
This may have become a bit of a side issue as the thread has gone on, but one thought: coders and non-coders can be accommodated in mod development by (somebody) building a capability (via external app or in-game GUI) that does round-trip mod-code generation/editing. Meaning, non-coders can click a bunch of buttons to create variations on normal game behavior (all orcs wear monocles, for example). The capability, call it ModMaker, generates code that makes the mod work. If it's round-trip (meaning, it doesn't destroy what you type by hand) it can act as a teaching system so non-coders can eventually become coders and reach directly into the generated code without needing the crutch. Probably obvious but worth considering...
This is sort of what I was talking about with entity prefab editing earlier - we should have a tool in the game that allows creating and editing entity prefabs. This would include everything that describes the appearance and behaviour of a type of entity - e.g. setting the mesh used to display an item, setting what actions should be performed when it is used, and so forth. Underneath this produces some data that can be saved to binary or JSON as appropriate. This would cover a lot of the basic types of mods - appearance changes, mixing together existing behaviours.
The step beyond that is something like Unreal's Kismet or something of that ilk.