or you'd be loading it into memory and interpreting it on the fly (which could slow your game down drastically)
Events are already loaded in to memory and interpreted on the fly, so no big problems there.
All in all it's a fairly good idea, but I think its a post-1.0 type of idea, considering weighing up benefits and workload. It wouldn't be particularly easy to code, since you'd have to deal with situations like someone saving an event sheet for their platform game and trying to import it to someone's RTS game.
The main use I see for it is quick patching - if all your events are exported as external files, you can do bugfixes and distribute the small event files as the patch update. Writing mods with this system is trickier since you'd basically need the source .cap to generate a valid event sheet (with the right object names in the right order with the right behaviors and effects etc), which kind of defeats the point - Python would be much better for mods. This patching method also has a number of drawbacks:
- It's not that far off redistributing the main .EXE for a patch, which isn't too difficult usually.
- If you want to ADD an object or something, it's useless - go for a normal patch again.
- If you want to change any of the graphics, effects, behaviors etc, again it's not effective.
- Even with a 200mb EXE with events-only changes that you want to patch... existing patching tools save differences between files only, so chances are good you'd have a tiny patcher still. And this method of patching has none of the above drawbacks.
Nice idea, but I think it needs careful design to get around some of these issues.