Page 1 of 1

Compiling with 3.1, Playing with 3.0

Posted: Sat Nov 20, 2004 8:17 am
by Cryptonomic
I may be making an obvious statement here, but I am curious if this is intended. If you write even a simple example, like:

Code: Select all

routine Main
{
   cls
   print "Hello, Sailor!"
   pause
   quit
}
... then compile that with the 3.1 compiler, but play it with a 3.0 engine, you will find that it does not work. This seems to be the case with anything you compile in that fashion.

Posted: Sun Nov 21, 2004 2:18 pm
by Kent
Yeah, that's pretty much the case with any version jump, i.e., from 2.x to 2.y or 3.x to 3.y, etc. Anything that breaks compatibility increases the minor version number. However, things compiled with the same sub-version number are generally compatible, i.e., a game compiled with 3.1.01 is playable on a 3.1.0 engine.

(The reason for this, really, is that true forward-compatibility is pretty tough if not impossible to do. Future versions add behavior, features, and functionality that previous versions have no knowledge of. It's possible to just ignore the "future" features, but that has the effect of potentially throwing a big wrench in the program-running works.)

Basically, I'm hoping that any outstanding ports will upgrade to 3.1 soon; in the interim, it's possible to compile with the '-30' switch if you need to force the ability to run on 3.0 engines. (Note that this shouldn't impair at all your ability to run on 3.1 engines.)

--Kent