I found this thread a bit late, but I think you might be interested in knowing that there is a cutting-edge, full-featured IF authoring and playing system written in Java. It’s called the Aetheria Game Engine, it has hit version 1.0 this year after about ten years of alpha and beta development, and there are around ten games for it, and several more in development.
So why haven’t you heard about it until now (probably)? Because at the moment it’s geared towards creating games in Spanish. But the good news is that multilanguage support is coming, as I’ll detail below.
Here is a list of features (not exhaustive, it’s just the features that come to my head):
- Graphical IDE letting you create the static information about the world in graphs and forms rather than code, see screenshot: caad.es/aetheria/doc/lib/exe … ampiro.png
- Advanced behaviour is added using the BeanShell scripting language (just like a dynamic version of Java)
- BeanShell gives you full access to the Java API, so you can use as many Java classes in the standard API (or in files that you provide) as you like. Want to use libsvm to train some classifiers? You can do it. Want to make your game connect to times.com so that the character gets actual news from today in his newspaper? You can do it (now go and do that inside a Z-machine if you can )
- True multiplayer support (no hacks like “there is only one player but we switch it from creature to creature” or things like that). You can use to create multiplayer IF or even potentially MUDs
- Can server games via telnet and IRC apart from dedicated client
- Real-time support. Every game can be switched between “synchronous” (~turn-based, but there are not really turns, it’s a simulation with time units) and “asynchronous” (real-time)
- Sound support: MIDI, MOD, MP3, OGG, AIFF, WAV, SPX
- Raster graphics support: PNG, JPG, GIF, BMP, animated GIF
- Vector graphics support: SVG
- Other presentation features: support for frames, changing margins, changing typography, using custom TTF fonts that you include with the game, colour styles, full screen mode
- Support for playing online in a web browser via Java applet. This includes the full multimedia support, but does have some restrictions concerning saving/restoring games (problems related to signing and certificates). I’m working on a cookie-based system that saves/loads games online without needing a certificate and it already kind of works but needs more polish
- Built-in CRPG features (combat, weapons, armor, skills, training, etc.) because the system was built with that in mind, although it of course can be used for pure IF by ignoring all that
- It’s free software (everything is under a BSD license)
If any of you can read/write Spanish, you can try a good game with multimedia content here: code.google.com/p/aetheria/
Now, about the multi-language support. The system was initially designed for Spanish, but during the last few months I have been making it language-agnostic. Right now, the code does no longer assume Spanish and it should be possible to create games in English, but I need this:
- An English version of the file containing default messages (stuff of the form “you take $1 from $2”, etc.)
- A list of English verbs that could be used in games
With this, it would already be possible for someone speaking Spanish and English to create games in English… and I say “speaking Spanish and English” because the developer documentation is in Spanish: caad.es/aetheria/doc/doku.php - so to make the system accessible for English-speaking developers at large, it would need to be translated as well.
So if anyone would like to see this system working in English, I would need some help, since I don’t have the time to translate this stuff -especially the documentation- into English (maybe not even the skills to do it well, as I’m not a native speaker). If anyone is interested in helping with this, please contact me. And remember that you would be contributing to a free software project, everything (including the language files and the documentation) is under free licenses.