1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424
|
QTads v1.7 - An interpreter for Tads games.
Written and maintained by Nikos Chantziaras. Based on Mike Roberts'
portable reference implementation of Tads.
This file contains an overview of QTads. Other documentation files in
the distribution include:
AUTHORS
People who wrote QTads' code.
BUGS
A list of known bugs. You shouldn't report them.
COPYING
The GNU General Public License (GPL). QTads is distributed under
the terms and conditions of this license. (Note that this file
might be missing in the Debian distribution; it can be found at
/usr/share/common-licenses/GPL-2 or in the "Help->About" menu of
the program.)
CREDITS
People who contributed to QTads in one way or another. Help me
make QTads better and your name will appear there too!
INSTALL
Installation and usage instructions. The first thing you should
read (after this README file).
NEWS
Contains the list of changes between QTads versions.
PORTABILITY
A list of systems and compilers where QTads is known to run
(few), and also those where it is supposed to run (many).
SOURCE_README
If you want to contribute code, read this.
TIPS
Contains some useful information. Make sure to check it out.
TODO
Features/enhancements that are planned to be added. Help is more
than welcome.
qtads.6.gz
Manual page (compressed with GNU Zip). This won't actually get
installed. It's for people who want to create RPM or Debian
packages for QTads. (If you installed QTads by using such a
package, it might have been installed.)
The newest version of QTads can be downloaded from its homepage at:
http://qtads.sourceforge.net
Previous versions can be found at the project page:
http://sourceforge.net/projects/qtads
About Tads and QTads
====================
QTads is a so called "interpreter" for games created with the Text
Adventure Development System, or "Tads" for short, a C-like object
oriented programming language for authoring Interactive Fiction
(similar to the Infocom or Legend Entertainment games, like "Zork").
Yes, we are talking about text adventures here.
The Tads compiler creates executables for the Tads Virtual Machine (the
"Tads VM"). QTads is an implementation of this Virtual Machine; it
runs Tads VM executables. One can also say that QTads is a Tads VM
emulator. This is similar to Java; the Java compiler creates JavaVM
programs which must be executed with a JavaVM implementation.
Both Tads 2 as well as Tads 3 games are supported. Note that the
Tads 3 support is not complete at this point; QTads lacks banners
(which means there is currently no exit-list below the statusline) and
timed input (Tads 2 timed input works fine). The vast majority of
games will play fine, but some may not. Work is being done to make
QTads feature-complete.
QTads is not written from scratch; it uses Mike Roberts' portable
reference implementations of the two Tads VMs; the T2 VM (written in C)
and T3 VM (written in C++). The portable implementations are intended
to be embedded in applications; they cannot be executed on their own.
They're function libraries that require an external I/O interface.
This external interface (along with other useful things) is implemented
by QTads with C++ using Trolltech's Qt library (this should explain the
"Q" in "QTads").
For more information about Tads, visit its home page:
http://www.tads.org
What is Multimedia Tads?
========================
Multimedia Tads (also known as "HTML Tads") is an extension of Tads
that uses HTML to implement multimedia capabilities. Multimedia Tads
is not an extension of the two Tads languages (Tads 2 and 3), but
rather of their output system. Although QTads doesn't support most of
the HTML extensions (but it supports more HTML tags than most other
text-only interpreters), it *can* execute games that use HTML; on the
binary level, Multimedia Tads and "plain" Tads executables are actually
the same thing. You won't see any graphics nor hear sounds/music, but
the game will play just fine. In Tads 2 games, you also won't see any
banners that the game would otherwise display (Tads 3 games don't use
HTML for banners; hopefully, future versions of QTads will provide full
banner support for Tads 3 games). The vast majority of games don't use
the multimedia extensions though. But as already mentioned, you can
play even those games in QTads.
There's another Tads interpreter maintained by me called "HTML QTads"
that fully supports the multimedia extensions, but it has not been
released yet. (It's one of those "Real Soon Now" projects.) The only
way right now to play Multimedia Tads games on X11-machines is to use a
Windows emulator to run Mike Roberts' "HTML TADS" interpreter (newer
versions of Wine are known to work). I hope I can finish HTML QTads
soon.
Now, you may ask yourself why I released QTads when a full multimedia
interpreter will be available "soon". The answer is that multimedia
interpreters lack one single feature that many players (including me)
consider quite important: text-justification. Being able to
block-justify the game's text is only possible in a text-only Tads
interpreter. It could be that this feature will be added to Multimedia
Tads at some point; until then, QTads will continue to exist. And
besides, most games don't use the multimedia features, or use only a
small subset that is already available in QTads. For those games,
QTads is everything you need.
Features
========
Here's a list of common (and uncommon) features in QTads, in no
particular order:
* Configurable text justification.
* Text-color support for Tads 3 games.
* Margins.
* Font anti-aliasing.
* Full Unicode support for Tads 3; you can play games written in any
language.
* Multimedia Tads character entities, which means that typographical
quotes, dashes and other special characters are available in both
Tads 3 as well as Tads 2.
* Support for Tads 2 character mapping files. Most Unix interpreters
can't run games that use this Tads 2 feature; QTads can.
* Typographical apostrophes and dashes in every game (can be
disabled). This enhances the display of games that don't use
character entities.
* Internationalization support; as of this writting, QTads speaks
English and German.
* Fullscreen mode with removable menu-, tool- and scrollbar.
* Timer on the statusbar (can be disabled). Useful for IF-Comp games
that must be played for two hours.
* Themes; you can save your settings in "Themes" and switch them at
runtime.
* Soft scrolling; game text doesn't just pop-in in the window, but
scrolls (can be disabled).
Is it "TADS", or "Tads"?
========================
Who cares?
Okay, if you *do* care, the author of Tads (Mike Roberts) spells it
"TADS", but since I don't pronounce it as "t, a, d, s," I refer to it
as "Tads", which rhymes with "bads" (not that "bad" has a plural).
Bugs, bugs, bugs
================
(Bugs? What bugs?)
QTads is pretty stable, thanks to the BugFree(TM) reference
implementation that has been improved and maintained by Mike Roberts
for about 10 years now (and still is). Most bugs in QTads are expected
to be in its GUI-code. Please report any bugs to the author's
email-address (see below).
On what systems does it run?
============================
Theoretically, it should run on *any* system for which a Qt-port exists
(many Unices, including MacOS X, Windows, even embedded devices like
cell phones and PDAs using a Linux framebuffer with Qt/Embedded or
X11). But since the world isn't perfect, I guess it runs only on
Unix-systems. No big deal actually, since the whole point is to have a
GUI Tads-interpreter for Unix (note that "Unix" includes MacOS X);
Windoze and pre-X Mac OS already have good interpreters (as for the
cell phones, well, that's another story). But if you manage to make
QTads run on a non-Unix system, I would be *very* interested to hear
about it. For a somewhat half-assed attempt to create a list of
systems where QTads is supposed to run, see the file PORTABILITY.
Note that it's not possible for me to compile QTads for Windows, nor to
release Windows executables of QTads. Sorry, but the Windows port of
the Qt library is not freely available. No freedom (with capital "f"
or not), no QTads. Folks with a commercial Qt license willing to
provide this service to the IF community are more than welcome though.
(In case you wonder, at the time of this writting, a commercial Qt
license costs about $4000; as a friend of mine said, "I might buy two,
in case I leave one in the bus." If you want to donate a license, be
my guest; it's quite cheap <g>.)
QTads is currently being developed on a machine with the following
configuration:
Celeron D 2.40 GHz with 768MB RAM
Linux kernel 2.6.4
GCC 3.3.3
Qt 3.3.1
XFree86 4.3.99.902
Linux Distribution: SuSE Linux 9.1
Before October 2004, the following system was used:
Pentium II 400MHz with 192MB RAM
Linux kernel 2.4.17
GCC 3.2.1 and 2.95.3
Qt 3.1.2
XFree86 4.0.3
Linux Distribution: SuSE Linux 7.2
Before August 2003, the following system was used:
Pentium 133MHz (non-MMX) with 32MB RAM
Linux kernel 2.4.17
GCC 3.2.1 and 2.95.3
Qt 3.1.1
XFree86 4.0.3
Linux Distribution: SuSE Linux 7.2
It ran surprisingly well on the ancient machine, especially with Tads 2
games, and is extremely fast on the Pentium II, but I don't recommend to
use it on something like a 386. Using a text-mode or the XGlk Tads
interpreter is a much better option in this case. (Of course you're
free to try QTads even on a 386, but don't blame me if it won't be able
to move its legs; it won't be much faster than any other Qt application
on such a system, if they run at all). It could be that it runs at an
acceptable speed on a fast 486, but I didn't try it myself. Reports
are welcome. In order to increase speed, you should use small
font-sizes (below 14pt), a low resolution or a small window, disable
font anti-aliasing and use only left-justified text. Using
bitmap-fonts may also help. But as already mentioned, better use the
XGlk or text-mode interpreter in this case.
Who wrote this thing?
=====================
QTads is the work of an Interactive Fiction maniac with the funny and
impossible to spell and pronounce name "Nikos Chantziaras". He's from
Greece (whatasurprise) and wrote QTads because (unlike Windows and
pre-X MacOS) Unix lacks a good GUI interpreter for Tads games. He is
sometimes known for talking about himself in the third person (how
silly that is!) He maintains a small Interactive Fiction related
homepage at:
http://members.lycos.co.uk/realnc/
which is full of banners and pop-ups, gets updated quite less than
often and might disappear at any moment, and his e-mail address is:
realnc@users.sourceforge.net
Bug reports and questions should be sent there. He always answers them
all (but not immediately, since he's using a shared/public computer for
net-access). If you're Greek, please don't use "Greeklish", if
possible, since he finds it hard to read (ti to exoume to Unicode
alwste?) You can also talk to him in German, weil Deutsch rein
zuf�llig seine zweite Muttersprache ist :)
What's Interactive Fiction?
===========================
Well, this is just a poor README file and therefore not the appropriate
place for an introduction to Interactive Fiction. For more information
about Interactive Fiction (or "IF" for short), just go to the Tads page
(see above) and follow some links. Or go to the Google search engine
(http://www.google.com) and search for "interactive fiction"; you'll be
amazed about how many results you'll get. And you'll be even more
amazed about how active the IF community is.
There are two Usenet newsgroups for IF related things. The first is
RGIF, which is short for:
rec.games.int-fiction
where people are talking about IF games in general; things they like in
games, things they don't like, things they hope to see in future games,
requests for hints and solutions, reviews of games, announcements of
new games/software or happenings, flames (mostly funny ones; keep
this in mind when you "flame" ;-). Stuff like that.
The other newsgroup is RAIF, which stands for:
rec.arts.int-fiction
This newsgroup is for everyone who is interested in creating games.
Most IF authors use to hang around there, so this newsgroup is an
excellent place to post questions about IF theory, authorship and
programming.
Where do I find games for QTads?
================================
As I said above, the IF community is a very active one. New games are
released all the time. There's a large repository for IF-related stuff
(with *lots* of games!) called "The Interactive Fiction Archive". You
can access it by HTTP:
http://www.ifarchive.org (very slow)
or by FTP:
ftp://ftp.ifarchive.org (also very slow)
The archive has mirrors that are usually much, much faster, like:
http://mirror.ifarchive.org (faster than light)
Which, at the time of this writing, is the fastest of all. Please use
the mirrors instead of the main archive! You'll save yourself (and
others) quite a few headaches. (The full list of mirrors is displayed
in the main archive's title-page.)
Since the archive is actually just a (huge) bunch of data thrown
together (more or less), a nice fellow has created a site that will
guide you through the archive. The site is called "Baf's Guide to the
IF Archive" and is located at:
http://wurb.com/if
It contains many cool things, like a "Genre Map" for the games
located in the archive along with descriptions, reviews and ratings, as
well as many useful links.
I don't like QTads. It sucks.
==============================
Then help me improve it. Send me suggestions and bug reports, or even
code if you know C++ and Qt. Now! Don't be afraid to do it. Thank
you.
OK, I'll send some code. How do I do this?
===========================================
If you decide to send me code, please read the SOURCE_README file first
(not needed for small amounts of code). Also, drop me a mail to inform
me on what you're working on (this is to ensure that we won't be trying
to solve the same problem or add the same feature).
Files should be compressed with bzip2 or gzip (or even zip or rar)
using the highest compression level and sent to my email address at
SourceForge:
realnc@users.sourceforge.net
You can send whole files or simply diffs created with (guess) the
`diff' utility. I also accept diffs created with `xdelta'. With
`diff', use either the -c or -u option, *not* the default (-e) to
generate the patches. Here's an example, where "qtads-1.7" is the
directory containing the original 1.7 sources, and "qtads-modified" the
directory with your modified sources:
diff -Naur qtads-1.7 qtads-modified > patch
bzip2 --best patch
This will create a file "patch.bz2" containing your modifications. The
general format of the `diff' command is:
diff -Naur ORIGINAL_DIRECTORY MODIFIED_DIRECTORY > PATCH_FILENAME
Do not include a slash ("/") when specifying the directories.
If your code is good (which means: if it doesn't suck the way my own
does ;-), I'll include it in the next version. Note that your code
will be placed under the GPL. Since QTads is a simple interpreter for
Tads games and not a nuclear war simulator, I'm not requesting signed
forms from your boss/school/etc. Just send the damn code, will ya? ;-)
Copyright
=========
QTads is Copyright (C) 2004 by Nikos Chantziaras.
QTads is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your
option) any later version.
QTads is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|