Discussion:
(Babel) How to obtain IFID?
(too old to reply)
Fredrik Ramsberg
2007-08-21 19:41:11 UTC
Permalink
I understand Inform 7 generates ID:s automatically, but how do I get a
new, unique IFID for a new Inform 6 game? Seems silly to treat it as a
legacy file, since that would mean each new release gets a new IFID,
right?

/Fredrik
Zylon
2007-08-21 20:51:23 UTC
Permalink
Dunno. You can try this:

http://tads.org/ifidgen/ifidgen

It's for TADS games, but it shouldn't matter if I understand this "Babel"
thing correctly.
Mike Roberts
2007-08-23 03:47:09 UTC
Permalink
Post by Zylon
http://tads.org/ifidgen/ifidgen
It's for TADS games, but it shouldn't matter if I understand this "Babel"
thing correctly.
Correct - IFIDs generated there should be acceptable to any system that
participates in the Babel scheme.

--Mike
mjr underscore at hotmail dot com
d***@gmail.com
2018-07-24 10:49:22 UTC
Permalink
Post by Zylon
http://tads.org/ifidgen/ifidgen
It's for TADS games, but it shouldn't matter if I understand this "Babel"
thing correctly.
I think that's right. Here's some helpful notes on adding an IFID to an online game: http://www.ifwiki.org/index.php/IFID
Arnel Legaspi
2007-08-22 21:56:10 UTC
Permalink
Post by Fredrik Ramsberg
I understand Inform 7 generates ID:s automatically, but how do I get a
new, unique IFID for a new Inform 6 game? Seems silly to treat it as a
legacy file, since that would mean each new release gets a new IFID,
right?
/Fredrik
Inform 6 games have their own IFIDs, something that looks like:

ZCODE-1-050313-BB59

(This one is from previous Spring Thing entry "Flat Feet".)

Per the Babel Treaty, the IFID for the first ever public release
should be treated as the game's IFID no matter how many revisions
there are. (But I do get your point, Fredrik. :)

--Arnel
Eric Forgeot
2007-08-22 23:04:44 UTC
Permalink
Post by Arnel Legaspi
Per the Babel Treaty, the IFID for the first ever public release
should be treated as the game's IFID no matter how many revisions
there are. (But I do get your point, Fredrik. :)
--Arnel
and how can I generate such an IFID number ? how can I be sure it won't
collide with an other I6 game IFID ?
Ben Collins-Sussman
2007-08-23 00:36:24 UTC
Permalink
In the same vein, there appears to be no authority to grant unique IDs
to z-code interpreters either, even though the quetzal spec claims
that quetzal files should contain them. :-/
Arnel Legaspi
2007-08-23 01:57:25 UTC
Permalink
Post by Eric Forgeot
and how can I generate such an IFID number ? how can I be sure it won't
collide with an other I6 game IFID ?
AFAIK (or at least, as far as I understand how the IFID system works
for Z-Code games) the IFID is something generated from the Z-Code game
itself. The 4-digit code on the last part, for example, is something
taken from within the file itself (BB59 from my last post), which is
supposed to be unique for every Z-code file.

--Arnel

PS: L. Ross Raszewski might be the best guy to answer this one :)
Andrew Plotkin
2007-08-23 02:10:14 UTC
Permalink
Post by Arnel Legaspi
Post by Eric Forgeot
and how can I generate such an IFID number ? how can I be sure it won't
collide with an other I6 game IFID ?
AFAIK (or at least, as far as I understand how the IFID system works
for Z-Code games) the IFID is something generated from the Z-Code game
itself. The 4-digit code on the last part, for example, is something
taken from within the file itself (BB59 from my last post), which is
supposed to be unique for every Z-code file.
For Z-code games not generated by the Inform IDE, it's

ZCODE-release-serial-checksum

The combination of the three values isn't *guaranteed* to be unique,
in that you can fake a given value if you really want to. But it's not
going to collide by accident.

--Z
--
"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."
*
If the Bush administration hasn't thrown you in military prison
without trial, it's for one reason: they don't feel like it. Not
because of the Fifth Amendment.
Mike Roberts
2007-08-23 03:44:27 UTC
Permalink
Post by Andrew Plotkin
Post by Arnel Legaspi
AFAIK (or at least, as far as I understand how the IFID
system works for Z-Code games) the IFID is something
generated from the Z-Code game itself. The 4-digit code
on the last part, for example, is something taken from within
the file itself (BB59 from my last post), which is supposed
to be unique for every Z-code file.
For Z-code games not generated by the Inform IDE, it's
ZCODE-release-serial-checksum
That's for Z-code games previously released without an explicit IFID, but if
you were writing a *new* I6 game, you *could* give it an explicit IFID,
couldn't you?

My reading of the Babel spec is that someone working on a new I6 game could
give it an explicit IFID by following the spec manually - roll up a random
UUID, create an iFiction file, and bind it into the compiled game with
Blorb. My impression is that the original poster basically intended to do
this and just needed to know how to come up with the explicit IFID in the
first place.

It seems to me that it's preferable to use an explicit IFID even for new I6
games, since they'll be stable if the game is eventually released in
multiple versions.

--Mike
mjr underscore at hotmail dot com
L. Ross Raszewski
2007-08-23 03:51:19 UTC
Permalink
Post by Mike Roberts
Post by Andrew Plotkin
Post by Arnel Legaspi
AFAIK (or at least, as far as I understand how the IFID
system works for Z-Code games) the IFID is something
generated from the Z-Code game itself. The 4-digit code
on the last part, for example, is something taken from within
the file itself (BB59 from my last post), which is supposed
to be unique for every Z-code file.
For Z-code games not generated by the Inform IDE, it's
ZCODE-release-serial-checksum
That's for Z-code games previously released without an explicit IFID, but if
you were writing a *new* I6 game, you *could* give it an explicit IFID,
couldn't you?
My reading of the Babel spec is that someone working on a new I6 game could
give it an explicit IFID by following the spec manually - roll up a random
UUID, create an iFiction file, and bind it into the compiled game with
Blorb. My impression is that the original poster basically intended to do
this and just needed to know how to come up with the explicit IFID in the
first place.
It seems to me that it's preferable to use an explicit IFID even for new I6
games, since they'll be stable if the game is eventually released in
multiple versions.
--Mike
mjr underscore at hotmail dot com
Agreed. One thing that no one's quite gotten in this conversation is
that i7 does not do some magical thing that's impossible in i6; i7
*generates inform 6 as an intermediate form*. I7 generates an IFID
using one of the standard UUID algorithms, then pastes the result into
the i6 source.

You'll need to generate a UUID from somewhere. There are numerous
tools on the web to do this if you're in the mood for something
easy. I believe some of the windows developers' toolkits also include
a tool to generate UUIDs. Also, the standard Java library has one
built in.

Once you've got one, you just need to stick it inside a string array
in inform source thus:

Array IFID string "UUID://some-random-numbers-here//";

I've verified that this works, by the way; it's how Moments out of
Time 2 declares its IFID.
Fredrik Ramsberg
2007-08-23 17:27:34 UTC
Permalink
Post by Mike Roberts
My reading of the Babel spec is that someone working on a new I6 game could
give it an explicit IFID by following the spec manually - roll up a random
UUID, create an iFiction file, and bind it into the compiled game with
Blorb. My impression is that the original poster basically intended to do
this and just needed to know how to come up with the explicit IFID in the
first place.
It seems to me that it's preferable to use an explicit IFID even for new I6
games, since they'll be stable if the game is eventually released in
multiple versions.
That's exactly what I figured. I wasn't aware that a UUID was
a standard of its own - I thought it was part of Babel-enabled
tools only.

I used the TADS UUID generator and pasted the result in
as an array in the Inform program. Thanks all who replied.

/Fredrik
Adam Thornton
2007-08-23 02:29:12 UTC
Permalink
Post by Eric Forgeot
Post by Arnel Legaspi
Per the Babel Treaty, the IFID for the first ever public release
should be treated as the game's IFID no matter how many revisions
there are. (But I do get your point, Fredrik. :)
and how can I generate such an IFID number ? how can I be sure it won't
collide with an other I6 game IFID ?
The Linux/Solaris I7 port simply generates a uuid using a
platform-appropriate tool (uuidgen from ext2tools on Linux, and, uh,
something else and I don't remember what on Solaris). The whole point
of a Universally Unique IDentifier is that collisions are very unlikely.

Adam
Eric Forgeot
2007-08-23 10:57:18 UTC
Permalink
Post by Adam Thornton
The Linux/Solaris I7 port simply generates a uuid using a
I meant for I6 games in development, but Andrew already answered below
(ZCODE-release-serial-checksum).

Thank you.
Glenn P.,
2007-08-26 07:25:29 UTC
Permalink
Per the Babel Treaty...
What in the name of all things IF is Babel, and what in the name of
International Law is the Babel Treaty!!!???!!!

-- _____ %%%%%%% "Glenn P.," <C128UserDELETE-***@FVI.Net> %%%%%%
{~._.~} ----------------------------------------------------------
_( Y )_ "Surrender, varlet! Thou art the prisoner of me lance!"
(:_~*~_:) "I art? And whomsoever art thou, in thy cast-iron tuxedo?"
(_)-(_) --The Knight & Bugs Bunny, respectively:
========= "A Connecticut Rabbit In King Arthur's Court".

:: Take Note Of The Spam Block On My E-Mail Address! ::
Rikard Peterson
2007-08-26 14:54:54 UTC
Permalink
Post by Glenn P.,
What in the name of all things IF is Babel, and what in the name of
International Law is the Babel Treaty!!!???!!!
That's already been asked and answered in this very thread. Read it
again and you shall be enlightened. (The same goes for some of the other
things you've posted today - maybe your news server has lost a bunch of
posts? In that case you may want to catch up on Google Groups.)

Rikard
L. Ross Raszewski
2007-08-23 03:43:32 UTC
Permalink
On Tue, 21 Aug 2007 12:41:11 -0700, Fredrik Ramsberg
Post by Fredrik Ramsberg
I understand Inform 7 generates ID:s automatically, but how do I get a
new, unique IFID for a new Inform 6 game? Seems silly to treat it as a
legacy file, since that would mean each new release gets a new IFID,
right?
/Fredrik
Google 'uuid' to find tools for generating them, that will give you an
ID number that is just about guaranteed to be unique.

To attach it to your game, include this line in your source:

Array IFID string "UUID://<your-ifid-here>//";

Babel will correctly identify the IFID you specify.

(This is essentially exactly what the inform 7 IDE does)
Jim Aikin
2007-08-23 04:08:20 UTC
Permalink
Pardon my density, but what's Babel?

--JA
Nikos Chantziaras
2007-08-23 04:32:17 UTC
Permalink
Post by Jim Aikin
Pardon my density, but what's Babel?
http://babel.ifarchive.org
Jim Aikin
2007-08-23 05:17:13 UTC
Permalink
Post by Nikos Chantziaras
Post by Jim Aikin
Pardon my density, but what's Babel?
http://babel.ifarchive.org
Thanks.
Loading...