Inform compiler?

73 views
Skip to first unread message

Scott

unread,
May 11, 2009, 4:07:40 PM5/11/09
to
Does anyone know if a compiler exists for Inform 6 or 7? I'd like to
be able to create standalone game applications that don't require a Z-
code interpreter. Thanks for your help!

Jake Wildstrom

unread,
May 11, 2009, 4:42:13 PM5/11/09
to
In article <8eff50de-a6da-4a2b...@c18g2000prh.googlegroups.com>,

Scott <te...@qa4u.com> wrote:
>Does anyone know if a compiler exists for Inform 6 or 7?

Yup. They're called 'Inform 6' and 'Inform 7' respectively (OK,
technically the compiler part of I7 is called 'ni', but that's another
matter).

> I'd like to
>be able to create standalone game applications that don't require a Z-
>code interpreter. Thanks for your help!

Ah, you want a standalone 'terp-packager. The interpreter is basically
always necessary; Inform source code is not really compilable into
native code for any OS out there (it's probably _possible_ to do so,
but it's much easier, not to mention more user-friendly, to just
compile to Z-code and staple on an interpreter). Some interpreters can
package themselves with Z1-Z8 files; Inform doesn't really figure into
it at all except as the initial generation method for the Z-file. JZip
certainly could do it back in the day, so it certainly isn't too
difficult, and that'd still work although jzip is no longer a
supported project. Depending on what 'terp you want them packaged
into, the capability may or may not be supported (it seems to be a
less popular functionality nowadays; not sure why).

Check the documentation and menus on your favorite interpreter to see
if it supports this behavior -- it should be listed, possibly under
the File menu, as 'package into standalone executable', or
somesuch. Windows Frotz doesn't have it, I know, but some other
Windows 'terp probably does.

Worst case scenario, you could provide a folder with your game, a
'terp, and some sort of launcher app to launch the game in the
'terp. Inelegant, but it'll work.

-Jake

Interfect

unread,
May 11, 2009, 5:03:58 PM5/11/09
to
This wouldn't need to be Inform-specific. You could just create a Z-code
to native binary compiler. Just make a normal interpreter and stick the
Z-code in as a resource or something.
It would be fairly easy to make, but I'm not sure it exists.

Otto Grimwald

unread,
May 11, 2009, 7:31:34 PM5/11/09
to

> Worst case scenario, you could provide a folder with your game, a
> 'terp, and some sort of launcher app to launch the game in the
> 'terp. Inelegant, but it'll work.

I've made such a tool:
http://ifiction.free.fr/fichiers/inf_launcher.zip

It's a 1,5 Mb package which will launch Gargoyle (frotz or glulxe) for
any z5 or z8 game, or any blb or gblorb game you put into a special
subfolder. I think it looks quite decent this way (with a lantern icon)
There are more instructions inside.


Eliuk Blau

unread,
May 11, 2009, 8:13:28 PM5/11/09
to

I write a self-contained IF launcher called DA-Lanzador. It is for
Win32. Uses NSIS free software for compile the launcher. My launcher
plays a sound and splash an image when game is executed. All contained
in 1 only file. The final player just can double click in the file.

(The instructions is in spanish, but is not very difficult to
understand the code.) An example is included.

Download:
http://www.caad.es/eliukblau/misc.html

(find "DA-Lanzador" link)

Sorry for the bad english.

Saludos!
Eliuk Blau.

Paolo Lucchesi

unread,
May 12, 2009, 5:33:28 AM5/12/09
to
Jake Wildstrom wrote:

> Worst case scenario, you could provide a folder with your game, a
> 'terp, and some sort of launcher app to launch the game in the
> 'terp. Inelegant, but it'll work.

Well, if you build it in an installer, with desktop/start menu entries,
uninstaller and nice icons, I don't believe it's so inelegant.
And you can always (please, do it) distribute, alongside with the
installer, the plain story file for non-windows player, and people who
wants to play with their own 'terp.

bye
--
Paolo Lucchesi - pluc...@NOSPAMtin.it

Scott

unread,
May 12, 2009, 12:01:46 PM5/12/09
to
> Paolo Lucchesi - plucch...@NOSPAMtin.it

Thank all of you for your help!

I guess what I'd like to see is some way of making the development of
interactive fiction commercially viable. If I develop a nice game and
want to distribute it commercially, I don't want the company that
distributes it to be able to "back engineer" it by getting too much
information about how I created it. That includes the use of Inform or
a 'terp. Inform 7 seems to be incredibly easy to use. In this bad
economy, many companies have a "do it yourself" attitude toward things
that they would normally contract out. They may decide they can
develop a similar game themselves in Inform 7, using in-house slave
labor (i.e., employees) and not have to buy my game (or yours). It
would be much better if I could present them with a sample CD that
contains a very short sample game with two installers, Mac and PC.
Maybe by using an app that packages a 'terp with the game and installs
them, my problem is solved? But can the 'terps be freely distributed
with products that are for sale? In other words, can I take someone's
'terp and include it on my CD, which I'll be selling, without paying
royalties for using the 'terp?

So my questions are:
1) Does anyone know of a Windows application that will bundle the game
file and 'terp file in what looks like a single installer file, which
can be installed and uninstalled on Windows PCs?
2) Same question for MacOS.
3) Can 'terp files be freely distributed with games that are
commercially sold, without paying royalties to anyone for use of their
'terp?

Thanks all for your help!
Scott

Andrew Plotkin

unread,
May 12, 2009, 1:18:20 PM5/12/09
to
Here, Scott <te...@qa4u.com> wrote:
>
> I guess what I'd like to see is some way of making the development of
> interactive fiction commercially viable. If I develop a nice game and
> want to distribute it commercially, I don't want the company that
> distributes it to be able to "back engineer" it by getting too much
> information about how I created it. That includes the use of Inform or
> a 'terp. Inform 7 seems to be incredibly easy to use. In this bad
> economy, many companies have a "do it yourself" attitude toward things
> that they would normally contract out. They may decide they can
> develop a similar game themselves in Inform 7, using in-house slave
> labor (i.e., employees) and not have to buy my game (or yours).

Honestly, this is silly. This is like the messages we saw in 1995,
asking "How do I encrypt the HTML on my web site? I put a lot of work
into this HTML, and I don't want anybody to steal it!" Someone who
wants to reverse-engineer your game will do it no matter what.

The only reason to use a bundled-up interpreter is to make the game
setup easier for a new player. That's a fine reason. Stick with it.

> But can the 'terps be freely distributed
> with products that are for sale? In other words, can I take someone's
> 'terp and include it on my CD, which I'll be selling, without paying
> royalties for using the 'terp?

Yes. Take a look at the license statements on the interpreters you're
interested in. Zoom is LGPL; Frotz is GPL. Glulxe is a one-line
license that's (I hope) BSD-style. You can use and distribute any of
them without cost.

--Z

--
"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."
*

Otto Grimwald

unread,
May 12, 2009, 1:28:32 PM5/12/09
to
Scott wrote:

> interactive fiction commercially viable. If I develop a nice game and
> want to distribute it commercially, I don't want the company that
> distributes it to be able to "back engineer" it by getting too much
> information about how I created it. That includes the use of Inform or

Security by obscurity is never good.

You are also supposed to keep the display of the Inform banner, so
people will quickly know how it was made.

> a 'terp. Inform 7 seems to be incredibly easy to use. In this bad
> economy, many companies have a "do it yourself" attitude toward things
> that they would normally contract out. They may decide they can
> develop a similar game themselves in Inform 7, using in-house slave

If you're better than them for writing a full story, I doubt they will
program themselves a game / project in Inform 7. And if they do, it's
just a fair use of available technologies. We can make ourselves good
photos with digital camera, but there are still professional
photographers around.

And I honestly doubt compagny cares about make commercial IF games.

> would be much better if I could present them with a sample CD that
> contains a very short sample game with two installers, Mac and PC.

are Linux, FreeBSD, Amiga and BeOS users not invited to play your game?

>
> So my questions are:
> 1) Does anyone know of a Windows application that will bundle the game
> file and 'terp file in what looks like a single installer file, which
> can be installed and uninstalled on Windows PCs?

I personnaly prefer to unzip an archive (built in functionnally in
windows and mac os x) and run a binary with a single click, rather than
clicking 5 times to run an installer, and search the start menu to find
the software and start it finally from there.

> 2) Same question for MacOS.

Why not showing your game in a webbrowser using flaxo (flash), parchment
(javascript) or zmpp (java) ?

> 3) Can 'terp files be freely distributed with games that are
> commercially sold, without paying royalties to anyone for use of their
> 'terp?

I think so, if the terp is under the GPL you can distribute and sell it,
without paying royalties.

Frotz is under the GPL, Git is under a Mit licence which permit to
distribute and sell them. I don't know about glulxe but it's probably
similar.

My batch file and the launchers given in a previous message are under a
BSD licence so fell free to do whatever you want with them ;)

I still think it's not a very good idea to distribe IF games like this.
Do you distribe every mp3 music files with winamp bundled with it?

You have also files naturally immune to viruses which can get viruses
because of the bundled windows binary.

Ok, I will give you a little trick anyway:

If you really wish to provide an unique binary to bundle the terp and
your game, you can reuse the files above:
http://ifiction.free.fr/fichiers/inf_launcher.zip

get bat2exe: http://www.f2ko.de/English/b2e/index.php

make a batch file (at text file called mygame.bat for ex.) with only
this line in it : frotz.exe mygame.z5

run bat2exe:. In the option select "invisible application" / "temporary
files" delete at exit / "temporary directory".
In the include panel include all the files and dll from my "terp" folder
(minus the gargoyle/git/gluxe if you're only using frotz, to save
space), add a nice icon, and you'll get your game in a single binary.
(I've just tested it, it's working. The window will still display
"frotz" in the title though. If you need more customisation, you can
rebrand and recompile frotz / gargoyle or windows frotz)

You can do something really similar on mac with
http://www.sveinbjorn.org/platypus

Hope this help.

Victor Gijsbers

unread,
May 12, 2009, 2:50:28 PM5/12/09
to
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Scott wrote:

> I guess what I'd like to see is some way of making the development of
> interactive fiction commercially viable. If I develop a nice game and
> want to distribute it commercially, I don't want the company that
> distributes it to be able to "back engineer" it by getting too much
> information about how I created it.

You must use some incredible programming techniques in your interactive
fiction, that it would be worth reverse engeneering it!

> Inform 7 seems to be incredibly easy to use. In this bad
> economy, many companies have a "do it yourself" attitude toward things
> that they would normally contract out. They may decide they can
> develop a similar game themselves in Inform 7, using in-house slave
> labor (i.e., employees) and not have to buy my game (or yours).

What on earth does using a binary game file instead of a game file +
binary interpreter have to do with this? You believe the executives of
this IF-idea stealing company will go: "Oh my god, he used a binary
installer! He must be a programming god! Let's hire him, instead of
making our own program!"

And by the way, you do realise that there is a difference between a
z-code / glulx file and the source code from which it was generated?

And you also realise that your z-code / glulx file will be trivially
extractable from your binary program? (That is at least what I assume: I
see no reason why a packaging program would try to obscure your game
file within the binary.)


Regards,
Victor

P.S. By going the binary route, you are missing out on a lot of
platforms, including Linux, BSD, Solaris, PalmOS, and who knows what
other past, present and future operating systems for which that are or
will be z-code / glulx interpreters.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkoJxPQACgkQoiOrMwvIZLx+sACfaVV+RJfd/MNXLKzItZ9U3tpJ
SxUAn1HdhSidUorfxoyUSODTWBGt5M4b
=e2xn
-----END PGP SIGNATURE-----

Jayson Smith

unread,
May 12, 2009, 2:57:24 PM5/12/09
to
I think someone already mentioned this, but...

If I recall correctly, the license for I6, and so presumably for I7 as
well, requires that Inform somehow be credited during game play. Normally
this would mean just allowing the standard game banner to print. If you were
to mess with that routine, eliminating all references to Inform, your
company would not know how the game was produced, but then you'd be
violating the Inform license. So, if you want to play fair, you're going to
have to credit Inform. No way around it.
Jayson

"Scott" <te...@qa4u.com> wrote in message
news:7a9a1526-3476-4c79...@v23g2000pro.googlegroups.com...

Otto Grimwald

unread,
May 12, 2009, 3:29:40 PM5/12/09
to
Victor Gijsbers wrote:

> P.S. By going the binary route, you are missing out on a lot of
> platforms, including Linux, BSD, Solaris, PalmOS, and who knows what
> other past, present and future operating systems for which that are or
> will be z-code / glulx interpreters.

including also the iPhone, google android phones, the nintendo DS, some
netbooks...

Jesse McGrew

unread,
May 12, 2009, 4:03:56 PM5/12/09
to

So, uh, the big secret is the fact that you're using Inform 7?

The publisher can learn about the state of the art in IF development
by doing a couple Google searches. If they have any interest in IF at
all, they probably already know about Inform (and TADS, etc.).

What makes your game valuable isn't your choice of tools, or even any
programming tricks that you might worry about being reverse
engineered: by the way, even if you compiled the game to native code,
it could still be disassembled. It's the writing, the game design, the
effort put into testing and polishing that will make your game stand
out. And if the only thing stopping someone else from beating you on
those fronts is the possibility that they're temporarily unaware of
how easy it is to use Inform 7, well, you're screwed already, right?

vw

dott.Piergiorgio

unread,
May 12, 2009, 4:52:49 PM5/12/09
to
Scott ha scritto:

> Does anyone know if a compiler exists for Inform 6 or 7? I'd like to
> be able to create standalone game applications that don't require a Z-
> code interpreter. Thanks for your help!

Then you defeat the basic reason d'etre of the IF VMs.... If you have
noticed, a Story file (wichever Z-Machine, Glulx or TADS can be run with
nearby every thing whose has a CPU.....

(And indeed the 99% or so of my bug reporting is around incompatibilies
with my OS of choice....)

Best regards from Italy,
Dott. Piergiorgio.

dott.Piergiorgio

unread,
May 12, 2009, 5:09:42 PM5/12/09
to
Scott ha scritto:

>
> Thank all of you for your help!
>
> I guess what I'd like to see is some way of making the development of
> interactive fiction commercially viable. If I develop a nice game and
> want to distribute it commercially, I don't want the company that
> distributes it to be able to "back engineer" it by getting too much
> information about how I created it. That includes the use of Inform or
> a 'terp. Inform 7 seems to be incredibly easy to use. In this bad
> economy, many companies have a "do it yourself" attitude toward things
> that they would normally contract out. They may decide they can
> develop a similar game themselves in Inform 7, using in-house slave
> labor (i.e., employees) and not have to buy my game (or yours). It
> would be much better if I could present them with a sample CD that
> contains a very short sample game with two installers, Mac and PC.
> Maybe by using an app that packages a 'terp with the game and installs
> them, my problem is solved? But can the 'terps be freely distributed
> with products that are for sale? In other words, can I take someone's
> 'terp and include it on my CD, which I'll be selling, without paying
> royalties for using the 'terp?

mmmmmmmmm........

I can be really sincere ?

The life of a protection system was (and still is) measured in days, if
not hours, and I guess less so if, as you says, you plan to rely on a
simple obfuscating scheme; For a start, the differences between the two
binary parts can be easily identified, applying the basics of the opcode
frequency (a variation of the old cryptanalysis methods) Indeed, IIRC in
past someone here has done a comparision of the opcode usage between
Inform and the ancient Zilch compiler/assembler story files...

The rest of the general reverse engineering procedure is left as a
exercise ;)

As side note, with all my encouragement to the current project in
getting back a commerciably viable IF market, I remain highly sceptical
on the entire idea, to be honest and sincere.

Andrew Plotkin

unread,
May 12, 2009, 5:43:16 PM5/12/09
to
Here, dott.Piergiorgio <dott.Pierg...@kaigun.fastwebnet.it> wrote:
> Scott ha scritto:

>
> > I guess what I'd like to see is some way of making the development of
> > interactive fiction commercially viable.
>
> As side note, with all my encouragement to the current project in
> getting back a commerciably viable IF market, I remain highly sceptical
> on the entire idea, to be honest and sincere.

Okay, I don't want this to turn into a complete negative dogpile.

There was a nice New York Times article on ebook bootlegging today,
which everybody has been linking to, in which Cory "boingboing"
Doctorow says:

> "I really feel like my problem isn't piracy," Mr. Doctorow said.
> "It's obscurity."

And since Cory Doctorow is about five hundred times more famous than
any of us, IF has to have the same problem.

There may be a commercial viable IF market. I'd like to believe it.
DaveC here is in the middle of trying it. But if it happens, it won't
be because we finally solved the problem of IF piracy. That's just not
the blocking issue. The problem is finding people who are eager enough
for IF to pay for it. Once you've got that market, *then* start
worrying about how much effort to put into DRM.

Good luck. I'm interested in any plan which is working. :)

Jayson Smith

unread,
May 12, 2009, 6:33:04 PM5/12/09
to
Actually I think we're missing the point here. I don't think the original
poster is talking about the public pirating his game. I think he's talking
about the company which markets his game figuring out how it was produced
and creating games of their own which they can then sell, leaving him
completely out of the loop. Back in the old days of commercial IF, that
really wasn't a problem. Anything any amateur could come up with would be
primitive in comparison to the likes of Infocom. The powerful development
tools just weren't available to the masses, simply because the computers of
that day weren't powerful enough to support them, and there was no
world-wide Internet community. E.G. for most of its lifetime, Infocom did
their development on a DECsystem-20 mainframe. Such power simply wasn't
available to the average Jo Adventure-Writer out there.
Now everything has changed. There is an IF community, and computers are
powerful enough to run powerful development tools, many of which exist now,
and are available to anyone who does a Google search or two. So, if anybody
got the wind that a certain game was written in I7, all they'd have to do is
Google it, find it, download it, install it, run it, type "Home is a room."
in the IDE, compile it, and within a precious few minutes, they've got their
very first fully functional game, if a quite boring one.
Jayson

"Andrew Plotkin" <erky...@eblong.com> wrote in message
news:gucqhj$8a3$1...@reader1.panix.com...

Eliuk Blau

unread,
May 13, 2009, 3:07:42 AM5/13/09
to
On 11 mayo, 16:07, Scott <te...@qa4u.com> wrote:

This is an example of self-contained IF launcher in a single file,
with Blue Lacuna of Aaron Reed and Git v1.2.3, compiled using my "DA-
Lanzador" NSIS script (only for Win32):

http://www.caad.es/eliukblau/temp/BlueLacuna-r3.exe

Download "DA-Lanzador":

Saludos!
Eliuk Blau.


Paolo Lucchesi

unread,
May 13, 2009, 3:54:52 AM5/13/09
to
Scott wrote:

> So my questions are:
> 1) Does anyone know of a Windows application that will bundle the game
> file and 'terp file in what looks like a single installer file, which
> can be installed and uninstalled on Windows PCs?

I guess nsis or some other installer packager will do the trick. You can
check the installer release of Beyond or LittleFalls (on our site
<http://www.terradif.net/mc/en/index.html>) to see how it works.

If you still want, there's an app called bundlemonkey (by Lewis Ross
Raszewski, check his website
<http://www.trenchcoatsoft.com/projects.html>) that can be used to pack
a 'terp and a storyfile together. But
- most recent 'terps uses a lot of dlls and other auxiliary files, I
don't believe that they can be backed together with the main exe
- if you plan a commercial release, you probably have to add a manual,
documentation, virtual feelies and other nice stuff; again you cannot
pack them inside the 'terp (well, maybe you can, but I don't think it's
worth the hassle).

> 2) Same question for MacOS.

Pass. I'm not a Mac guy...
Furthermore I'd like to join Otto's and Victor's chorus, and point that
there's a lot of people that use something different from Windows and MacOS.

> 3) Can 'terp files be freely distributed with games that are
> commercially sold, without paying royalties to anyone for use of their
> 'terp?

You've already got some answer. Most of the 'terps are free-as-speech
software. Gargoyle is released under the GPL2 license but you probably
should dike out the terps which you don't use (TADS for example) which
aren't free.

I hope it helps

bye
--
Paolo Lucchesi - pluc...@NOSPAMtin.it

Interfect

unread,
May 13, 2009, 4:39:14 PM5/13/09
to
I think just bundling it so it looks polished should be sufficient to
discourage the company from trying to cut you out. Honestly, you don't
even need that. It's true that a new IF developer can get started pretty
quickly, but if you are all set up and come off as competent, and aren't
asking too much money, it's almost certainly cheaper for a company to
pay you for your game than to pay someone to learn Inform, become a good
writer, and then write their own game.

Fredrik Ramsberg

unread,
May 22, 2009, 4:56:52 AM5/22/09
to

Leaving all the other discussion aside, if what you really need is a
way to build an installer/uninstaller
for Windows, which installs your game along with a terp and shortcuts
in the start menu and on the
desktop, have a look at Spoon Installer. It does that, and it's
wonderfully easy to use. You could
seriously build your first installer in maybe 30 minutes without
having seen the tool before.

Put your game files in C:\Program Files\MyGameName and say Gargoyle in
C:\Program Files\MyGameName\Gargoyle
Then start Spoon, mark all the files that should be included (Ctrl-A
selects all the files in a directory), add a start menu shortcut
to the project, save and build your installer. You can also add
additional shortcuts, a copyright notice and other tasks.
Each task can be made optional, so the user will get a question ("Do
you want to add a desktop shortcut?).

/Fredrik

Reply all
Reply to author
Forward
0 new messages