Used technology

There is a basic working version out already, so read the source!

XML

The recording is done in plain text with structures written in the Extensible Markup Language (XML). The XML files correspond to the their respective DTD.

There is no Schema instead of the DTD but my XML editor (Xerlin) can't use Schema files yet, so I have no tool set for Schema files.

XML files tend to become very large but today's hard disks are huge, so this is no real problem.

If your favoured editor is not able to edit more than 64KB, it is your problem.

Java

Java will be used to write all necessary additional tools. In this way we get the maximum number of supported systems. My old main project (LMPC) was written in C, yacc, lex and some Perl scripts. I could compile it under Linux for several operating systems (with cross-compilers) but this clumsy approach is not modern any more. The Java developers at Sun already did a good job to hide the systems specific points from the programmer, so why should we recreate the wheel?

If your operating system does not support Java, ask your manufacturer to make it happen or try to port kaffe yourself. Windows XP won't come with Java any more, so this is another reason to stop using such an OS.

Bytecode

The current build system for Q3A supports native shared libraries for Windows and Linux x86 but also the more portable bytecode libraries. The bytecode is fast enough to run a replay server and the client together on a 400MHz Pentium II machine without too much frame drops. The development (symbolic debugging) goes a bit faster with native libraries but all binary distributions of OpenDemo for Q3A should be bytecode only.

The source code for RtCW does not contain all necessary files to compile a working bytecode library so for this game we have to rely on native compilers.

The multi player source code for JK2, SOF2, and STEF is made for QVM compilation only.