Extension modification etiquette

I’m using several extensions that I have hacked new functionality into, or fixes to make them work with additions to my world model. In some cases the changes are so extensive that the easiest thing for me to do was to copy the source into my story file and go at it. What is the best way to credit the original author? There doesn’t seem to be any way to add more stuff to the text produced by the ‘version’ command, or I haven’t been looking in the right place.

I could copy my modified text into an extension ‘based on X by Y’. (The extension would appear under version as by me)
I could leave it as is, and just add them to my ‘credits’ command.
I could copy my modified text into a new extension and claim it was written by them in the header.
I could create an empty dummy extension that has nothing in it but their name, as author, so they appear under version.


Dealing with the issues of modifying extensions, saying you’ve modified them, crediting all involved in a systematic way, and also just plain old managing the files that result (because if you make a copy of the extension to modify it, it can no longer have the same name and author as it originally did) has been an area of significant pain. I hope the next version of Inform may do something about this.

In the meantime, I’ll tell you what I do, which I think is pretty good. Others can tell you what they do, which they may also describe as pretty good, and then you’ll have to decide which method you like.

First, you can add info to what appears when ‘version’ is typed.

Report requesting the story file version: say "This game uses modified versions of the following extensions:[paragraph break]'Girl Power, Yeah!' by The Spice Girls".
So taking this into account, my overall method of modifying an extension is:

  1. Copy the original extension file.
  2. Change the copy’s author to myself — change its name (both the file and in the extension) to something like 'Exit Lister Hack for (GAME NAME)" (if the extension I hacked was Exit Lister) — add the line ‘Use authorial modesty’ to the extension code so it doesn’t appear at all in the version list with the wrong name and author
  3. Install this hacked copy back into Inform, where it will be filed under my name, authorship wise
  4. INCLUDE it in the game instead of the original.

Now, I need to credit the extension again, because as is, it won’t appear when 'version 'is typed.

So now I add that line I mentioned into my source and list any extensions I modified with their original names and authors:

Report requesting the story file version: say "This game uses modified versions of the following extensions:[paragraph break]Exit Lister by Eric Eve".
Pros: I’ve got a clearly labeled and separate copy of the extension file which I can hack for this game only without interfering with the original copy, or other games which use the original copy. I still credit the original extension and original author. I’ve indicated I altered with it. (People have debated about this part. Some viewed it as credit hogging if I say I modified an extension when maybe all I did was change 1 line. I don’t care about my credit - I’ve listed the original author and I’ve said that I’m not using the extension in its vanilla form. That’s what I’m interested in indicating personally. I don’t go into the magnitude of my changes, or the smallitude.)

Cons: You have to manually write up the extension credits for extensions you treat like this under the ‘Report requesting the story file version’ rule.

So that’s how I handle it. It deals with the attribution side and the practical file management side.

  • Wade

It isn’t necessary to manually rewrite everything to include secondary attributions. If you include a second quoted paragraph beneath the extension blurb, that second paragraph will be appended to the in-game attribution. Example, the header for Flexible Windows:

[code]Version 13/130514 of Flexible Windows (for Glulx only) by Jon Ingold begins here.

“An extension for constructing multiple-window interfaces. Windows can be created and destroyed during play. Facilities for per-window character input and hyperlinks are provided.”

“with contributions by Erik Temple and Dannii Willis”[/code]

This results in the following line in the output for the VERSION command:


Funny that you would chime in, considering one of the extensions in question is your own Inline Hyperlinks.

If you’re not publishing the extension it isn’t necessary to indicate that you’ve modified it. In terms of the Creative Commons Attribution licence, it’s not required even if you do publish the modified version, but it’s helpful for everyone else.

The next I7 release will make this easier as extensions can be stored in the Materials folder.

I just credit the extensions as per usual, even when I modify them. I guess my reasoning is that, as the game’s author, it would be presumed that all the rest of the coding is my own fault (including anything that makes the extension behave differently than it normally does). Anything else (like scraps of code from the forums, here) I credit in the ABOUT/THANKS/CREDITS type strings.

Ahhh, that’ll be handy. And an end to my name and author changing ways. I think…

  • Wade

This sounds particularly handy for archiving purposes (being able to re-create a specific version of a game without as much fuss, etc).

I hope they can still, optionally, be in the same folder they’ve always been, though… there’s a handy tool called iXu that keeps your extensions library up to date by downloading any new extensions, I wouldn’t like to see that nifty thing broken…

Mind you, if they can’t, that’s fine too.

The old extension storage will still work, and will continue to apply to all projects.

Sorta OT but while we’re talking extension shop - who runs the extensions site? I ask because I sent 2 extensions in over two weeks ago. I don’t expect instant results, but the submission link has no info about who or what’s on the other end, and I haven’t heard anything.

  • Wade

Isn’t it Chris Connelly who is the extension librarian who deals with the extensions site?

I thought it was either Mark Musante or Justin de Vesine (vimes on the forum). I believe Justin will be the extension manager in the future if he isn’t already.

I’d be patient. A new Inform 7 release is approximately immanent, and there may be more stuff going on behind the scenes.

Err, if you mean me, that’s definitely not the case. :open_mouth:

Congrats on the promotion! :laughing: