QML on a server
QML comes in a client- and three server-versions (Windows ASP/ VBScript, and PHP and Python for Linux/ Apache). They're all included in the QML-Package download.
The client-version won't run in every browser, since the
data and script languages that handle it need the Internet Explorer 5+.
The server-version however runs in every browser,
since all data is prepared by another computer before it's send to the browser,
which now only has to understand the language every browser understands.
Preparing data
You don't need to adjust any of your quest files to run them on the server.
The same data will be handled by the server-side code.
You are completely on the safe side if you remove any positioning on your QML-style settings, since
certain browsers like Netscape 4 have buggy CSS support.
Differences to client-version
Restrictions
- There might be no music
- There might be a slightly different design in some browsers
- In very old browsers, there is no design
- Some browsers won't display pictures
- The user can cheat a little more by using the "Back"-button of the browser
Advantages
- Can be used with practically any browser, on any system like:
- Lynx text-based browser
- Netscape Navigator 1 and 6
- Internet Explorer 4
- Opera browser
- Cellular phone with WAP access
- Your quest source is hidden
- Depending on the server hardware, initial file size might be of less importance
QML server-version in Lynx text-browser
QML server-version in Netscape 1
Windows version
The game runs on the IIS (Internet Information Server), using the file
"qml.asp" from the QML Package as entry point.
MSXML needs to be installed. If you're looking for free ASP hosting,
try www.brinkster.com
or find more ASP hosts at ASPCode.net and
free-asp-hosting.com.
To select a certain file, for example "test", the adress has to be given as:
QML1: http://webroot/myfolder/qml.asp?quest=test
QML2: http://webroot/myfolder/default.asp?quest=quest/test
No scripts need write-access.
Apache/ Cross-server version
PHP
The PHP4 port of the QML-interpreter runs on Apache and Windows (if PHP is installed). It doesn't include all features, but most.
To select a certain file, for example "test", the adress has to be given as:
http://webroot/myfolder/index.php?quest=test
This version should cover most of the server market (about 65% Apache, and 25% Microsoft). PHP is installed on about 45% of all Apache Servers.
Python
The Python port is called like the following (the "qml" folder is in the webroot):
http://webroot/cgi-bin/index.py?quest=test
The Python version doesn't use XML XPath, and should be faster on big quest files.
Both the PHP and Python version sends all state data to the client and returns
it by using form method post.
This has good and bad sides: on the one hand,
the user can easily save the quest by saving the HTML file and continue it any time later
on. But, a knowledgeable user might edit the HTML file and change values.