In an attempt (probably futile) to minimize misunderstanding, what follows is a lengthy build-up to a question that occured to me as one of the first steps in developing a total conversion (TC).
The Escape Velocity Nova game is composed of two primary elements. The first element is the Nova game-engine written by Matt Burch. The second element is the Nova scenario written by the members of ATMOS. Third party developers (you and I) of TC scenarios need to suppress the default Nova scenario in order for their TC scenario to function correctly. There are two general approaches to achieving suppression of the Nova scenario.
Given (for the purpose of the final question only, not applicable to every TC):
1. The contents of the Nova Files folder has been backed-up.
2. The main menu (NewPilot, OpenPilot, Enter, SetPrefs, Quit, AboutNova) is left intact, even though it too could be replaced.
3. This is for a TOTAL conversion. If any Nova scenario resource, excluding the main menu, is used, then its not a TC, its an add-on plug.
Suppression Method 1: the Data Replacement approach - All resources of the Nova scenario are deleted from the Nova Files folder.
-
Files that are entirely deleted: Nova Data 1 thru 6, Nova Ships 1 thru 8, Nova Graphics 1 & 2, Nova Titles 2 thru 4, Race 1 thru 4, Nova Sounds, Nova Music
-
Files that are stripped of scenario resources without removing main menu data: Nova Graphics 3 & Nova Titles 1
-
The third party developer then embarks on the creation of an entirely new universe, placing their TC resources (file creator = Növa, file type = Ndät/NGr/NShď/NTďt/NSńd/Moov/MPEG) in the Nova Files folder.
Suppression Method 2: the Null-Plug approach - Null resources are created in the Nova Plug-ins folder, overwriting the Nova scenario.
-
Key null data resources (3448 of them) that are created: chär(1), gövt(68), jünk(22), mďsn(790), shďp(288), düde(147), öops(19), ränk(31), spöb(411), s˙st(545), crön(125), oütf(241), përs(516), wëap(81), nëbu(4), böom(15), flët(128), röid(16)
-
The third party developer then embarks on the creation of an entirely new universe, placing their TC resources in the Nova Plug-ins folder, taking care that the TC resource plug names appear alphabetically after the null data resource plug(s) and also taking care not to use any Nova scenario dësc, PICT, rle8/D, snd, or STR# resources.
The Question (finally):
What makes the Null-Plug approach creation of over 3000 null data resources (a non-trivial task) worth the effort?
Not to mention the inherent risks involved with inadvertantly making a reference to one of the 2846 dëscs, 346 PICTs, 151 rle8/Ds, 227 sounds, or 226 STR#s still accessible from the Nova scenario. I mean 3000+ null resources created versus 23+ file deletions just doesnt make sense to me, unless theres some real good reason(s) that Im not perceiving. Sure, you can use the null resource plug as a kludge method for keeping track of resource ID numbers used, but if thats the only justification then there are simpler and easier methods to do that as well. Can anybody thats currently developing or has developed a Nova TC justify using the Null-Plug approach to Nova scenario suppression?
Oh ... yes, Im aware that many TCs will want to make use of Nova sounds or Music or Asteroids or something else in that vein. First, I refer you to the line above that says Given, and second, that would only make a difference of degree, not of substance, to The Question.
Thanks in advance for any and all responses.
------------------
"There are no bugs in my code, ... only undocumented features." - corollary #3
Please use the (url="http://"http://www.AmbrosiaSW.com/cgi-bin/ubb/search.cgi?action=intro&default;=9")SEARCH(/url) feature before posting a new question. For EV:Nova development questions, please read the (url="http://"http://www.ambrosiasw.com/cgi-bin/vftp/show.pl?product=evn&category;=guides&display;=name&file;=bible_and_tmpls.sit.bin")EV Nova Resource Bible(/url) first.
Provided by bit-banger Arturo: a (url="http://"http://www.ambrosiasw.com/cgi-bin/vftp/show.pl?product=evn&category;=utilities&display;=name&file;=ResourceInterdependence.hqx")Resource Interdependence table(/url) and the (url="http://"http://www.ambrosiasw.com/cgi-bin/vftp/show.pl?product=evn&category;=plugins&display;=name&file;=ShieldBubbles1.0.hqx")Shield Bubbles 1.0 plug(/url)