1. A number of fields are of a one-to-many relationship. i.e. a resource can be related to one of more other resources. eg. a govt can have up to 4 allies.
I think that is because each government can also have a class, and same-class governments are allied. The class adds another field, but allows you to create one government with different 'arms.' Here's the quote from the EVN Bible:
Class1-Class4: Allows you to assign this govt to up to four different "classes", which are simply arbitrary groupings of govts that you can use to flexibly assign allies and enemies. Two govts of the same class are not inherently allied unless one of them has that same class number set in one of its Ally fields.
Sounds different than I described it, I always found this setup kind of confusing. Really, the goal is to be able to set up a linked government; which in turn is setting up an AI force that gives the appearance of one unified group while actually behaving differently depending on which arm you're dealing with.
2. The EVN game constants are fixed(I believe a plug developer cannot change these, hence constant). Are there any constants I should keep and which constants should be defined by the plug developer?
Here are my initial thoughts:(?-means they shouldn't be constant, but defined by the plug developer)
Those were all engine limitations for performance reasons. If you can increase them and still get good performance across all reasonable platforms, good. The developer should be able to change them up to a max value you set to keep performance reasonable; maybe give them a warning if they go over it so that, if this is as enduring as Nova was, the future devs can change it to be within the performance capabilities of future machines.
3. Should I try to mimic EVN scripting or should I replace it with a modern/standard scripting language? e.g. lua
Not sure what you mean by that, but I liked the plug editing setup in EV/N. If you mean allowing more programming options (maybe make a new AI or something else outside the current bounds), go ahead and maybe someone will use it.
I'd like to be able to edit plugs in a spreadsheet, in addition to in the nicely formatted editor(s) that were/are available (I'm a fan of ResEdit's setup, though it's hard to get a hold of the tools to make that work anymore). Doing large amounts of editing (ala TC's) is tedius in a normal editor, but in a spreadsheet values can quickly be checked against each other and changed globally.