Ambrosia Garden Archive
    • Metaplugin libraries


      Let's start a protocol!

      A certain amount of plugin writing can be fairly redunant, and I think some slight portions of the burden could be alleviated by the implementation of recognized standards. That is, preconstructed plugin modules that can be copied as-is into, or used seperately with, other plugins to add functionality thereto. Plugins that do not have any direct effect on the game, but that can affect plugins designed to take advantage of them. I am speaking along the line of C++ libraries, which can be included in other programs to simplify common tasks.

      So far the most useful idea I have come up with for a Nova metaplugin is randomized bits. I made a single crön that fires 100% of the time every day, and on both starting and finishing it randomly either toggles or does not toggle up to 8 NCB's. Then, whenever a plugin author wants a randomly changing bit or bits, they have them ready at hand for a variety of uses.

      In my tests I used bits 1700 through 1707, with 1699 as a pseudorandom dummy bit, and put in the crön's OnStart and OnEnd fields the following:

      R(^b1700 ^b1699) R(^b1701 ^b1699) R(^b1702 ^b1699) R(^b1703 ^b1699) R(^b1704 ^b1699) R(^b1705 ^b1699) R(^b1706 ^b1699) R(^b1707 ^b1699)
      

      This allows for 256 distinct possible patterns of those bits, and it would be a simple matter to expand the crön to randomize any number of bits. To test the effectiveness of these randomized bits, I changed a couple of dëscs. For Earth I wrote,

      Quote

      Earth, {b1700 "via" "with"} the Kane band {b1701 "named after" "so called for"} its designer Omata Kane, is {b1702 "still" "to this day"} the {b1703 "center for" "hub of"} all activity in the core worlds. Most ship {b1704 "keels are laid" "hulls are built"} here, the Federation has its seat of government here, and it is, {b1705 "of course" "obviously"}, a tourist Mecca {b1706 "because it is" "due to being"} the homeworld of humanity. It is said that all roads lead to Sol, and {b1707 "it" "that"} is literally true, as the old Council Hypergate {b1700 "system" "network"} {b1701 "originated" "was based"} her. The Kane band {b1702 "houses" "is home to"} {b1703 "most" "a great part"} of Earth's {b1704 "serious" "commercial"} ship{b1705 "yard" "-building"} activity. There are no greater shipyards {b1706 "anywhere in" "throughout"} known space; in fact, Sigma Shipyards {b1707 "actually" "legally"} owns {b1700 "62%" "nearly two thirds"} of the band surface. The Moon has {b1701 "taken a back seat" "played a lesser role"}, {b1702 "and has" "having"} been strip-mined for {b1703 "centuries" "minerals"}.

      Today's local weather is {b1704 "sunny" "rainy"} with a chance of {b1705 "gale-force winds" "light cloud cover"} this evening. Temperatures are {b1706 "fairly cool" "hot"} for this {b1707 "time of year" "season"}, so dress accordingly if you leave the air conditioned spaceport.

      And for the generic "Ferry Wild Geese Rep" missions from Kerella I made the offer text read,

      Quote

      In his {b1700 "audio" "voice"} {b1701 "clipping" "message"} this passenger {b1702 "informs you" "states"} in an almost lyrical {b1703 "accent" "manner"} that he {b1704 "needs to" "must"} {b1705 "meet" "rendezvous with"} a potential client for the services of the Wild Geese on <DST> in the <DSY> system, and that he {b1706 "is willing to" "will"} {b1707 "part with" "pay you"} 10000 credits for passage.

      Both worked marvelously, with only one slight quirk. Since all of the Ferry Wild Geese Rep missions use the same random bits in the same order, they all read identically, and change daily in a synchronized manner. That can easily be corrected with but slight effort, though.

      Anyway, I'm making this topic to gauge interest in, and generate ideas for, metaplugins. If you can think of anything whatsoever that can be implemented in many plugins through a stand-alone module, please post here detailing it.

    • It's a neat idea, I like the idea of randomized stuff like that. It seems to me that the multipurpose or randomized desc is largely untapped. Anybody got some other interesting ideas?

    • I like your avatar Qaanol where did you get it............. Wait, that's kinda off-topic, isn't it? Oh, that's a great idea, the only problem is I don't really use randomized bits, but I'm sure there are plenty of people out there who do.

    • There used to be a great deal of consternation about the fact that nested random selectors didn't work right. This would go right around that.

      Now, if you could produce a metalibrary plug-in for a BORC or RANC counter, that would be something to have.

      (Edit) Oh, wait... That's what you want the rest of us to do.

      (Edit) Part II

      Qaanol, on Apr 11 2005, 06:00 PM, said:

      In my tests I used bits 1700 through 1707, with 1699 as a pseudorandom dummy bit, and put in the crön's OnStart and OnEnd fields the following:

      R(^b1700 ^b1699) R(^b1701 ^b1699) R(^b1702 ^b1699) R(^b1703 ^b1699) R(^b1704 ^b1699) R(^b1705 ^b1699) R(^b1706 ^b1699) R(^b1707 ^b1699)
      

      If the only possibility for an individual bit is for it to be changed, or for it to remain the same, you don't need b1699. The following will have the same effect:

      R(b1700 !b1700) R(b1701 !b1701) R(b1702 !b1702) R(^b1703 !b1703) R(^b1704 !b1704) R(^b1705 !b1705) R(^b1706 !b1706) R(^b1707 !b1707)
      

      This post has been edited by Eugene Chin : 11 April 2005 - 08:14 PM

    • zapp, on Apr 11 2005, 01:35 PM, said:

      I like your avatar Qaanol where did you get it............. Wait, that's kinda off-topic, isn't it? Oh, that's a great idea, the only problem is I don't really use randomized bits, but I'm sure there are plenty of people out there who do.
      View Post

      The art from my avatar comes from WTF Comics, drawn by Straha Ironscale. The animated GIF was made by Laeiin, a poster on the WTF Comics forums. A collection of such GIF's is in this thread.

      Eugene Chin, on Apr 11 2005, 04:54 PM, said:

      (Edit) Oh, wait... That's what you want the rest of us to do.

      Yes.

      Quote

      (Edit) Part II

      If the only possibility for an individual bit is for it to be changed, or for it to remain the same, you don't need b1699. The following will have the same effect:

      R(b1700 !b1700) R(b1701 !b1701) R(b1702 !b1702) R(^b1703 !b1703) R(^b1704 !b1704) R(^b1705 !b1705) R(^b1706 !b1706) R(^b1707 !b1707)
      

      View Post

      Assuming that you meant to remove all the carets, then you are correct. 🆒

    • should actually be R(^b7000) R(^b7001) and so on. You randomly flip it or dont.