Page 1 of 4

What "can" be changed without re-compiling?

Posted: Wed Apr 28, 2010 7:04 am
by Yrol_Denjeah
What "can" we actually modify without changing code and
re-compiling into a new executable? or better said: what "can" we
chang with plists and scripts? how will i know, what part of the code
is reachable by a plist-file or a scriptfile?

I am not sure how to formulate better that question.

Posted: Wed Apr 28, 2010 8:35 am
by another_commander
Well, every part of every plist is reachable by code, so basically the answer would be: You can modify everything you see in the plists and the script files and this will have an effect in the game. The plists are mainly collections of properties, while the script files are, well, scripts that run in the game whenever required. I imagine the best way to see what is changeable and exactly how is browse the wiki's relevant sections and see for yourself what is in the menu. It will take some time to go through all of it, though.

Posted: Wed Apr 28, 2010 8:37 am
by Yrol_Denjeah
Hm, but what about code being reachable by plists or scripts?
That was more what i tried to ask.

Posted: Wed Apr 28, 2010 8:40 am
by another_commander
I would say the answer would be exactly the same ;-)

Edit: Try going through all the plists and scripts in the core game with a text editor. This will give you a good idea what parts of the code are reachable.

Posted: Wed Apr 28, 2010 8:51 am
by Disembodied
It might be easier to list what can't be changed ... here's my attempt at such a list (which of course is only as accurate as my own knowledge and understanding, so I wouldn't rely on it):

1) You can't assign new functions to new keyboard presses.

2) You can't change the fundamental physics of Oolite spaceflight.

3) You can't (directly) give a ship a range of more than 7 light-years in one jump.

4) er ...

5) that's it! (I think)

Posted: Wed Apr 28, 2010 8:59 am
by Diziet Sma
6) you can't give a player_ship more than one forward-firing laser.

Posted: Wed Apr 28, 2010 9:16 am
by Yrol_Denjeah
Oh. this aint about cheats.
For that i just jump into the code and re-compile it.
But thanks.

°grins° I should make meself a macro that automatically compiles
trunk every 5 minutes, much easier than doing it by hand all the time.

Posted: Wed Apr 28, 2010 10:07 am
by Disembodied
Yrol_Denjeah wrote:
Oh. this aint about cheats.
For that i just jump into the code and re-compile it.
But thanks.

°grins° I should make meself a macro that automatically compiles
trunk every 5 minutes, much easier than doing it by hand all the time.
Yes, I realise that – but pretty much anything, not on the above list, can be changed via scripts and plists, including all sorts of finagles and workarounds from clever types like letting players "land on planets", save the game in locations other than a main station, etc. It's just easier to list what you can't do. :)

Posted: Wed Apr 28, 2010 10:39 am
by Diziet Sma
Yrol_Denjeah wrote:
°grins° I should make meself a macro that automatically compiles
trunk every 5 minutes, much easier than doing it by hand all the time.
It's easy to do that.

Assuming you're using Windows, just add this to the end of C:\GNUstep\etc\profile

Code: Select all

echo About to compile Oolite...
export PATH=$PATH:/Local/bin
cd /Local/oolite/trunk
echo Tidying up....
make clean
echo Compiling now...
make -f Makefile pkg-win-snapshot
echo DONE!
Then all you need to do to compile Oolite is launch the GNUstep Shell and it will auto-magically compile a new installer for you.

Also, if you're using the Trunk code and you want to use the same script used to create the Windows nightly trunk build, which is designed to co-exist alongside Oolite 1.73.4 without conflict, and which won't delete your joystick settings every time you update your trunk install, download this customised OOlite.nsi script and save it into C:\GNUstep\Local\oolite\trunk\installers\win32 (Don't forget to back up the original OOlite.nsi first) :lol:

Posted: Wed Apr 28, 2010 11:22 am
by Yrol_Denjeah
Nice, thank you :)
Though i was joking with the "compile every 5 minutes",
this helps quite much. I assume "make clean" means that
everything is recompiled and not only the newly changed files?

Posted: Wed Apr 28, 2010 11:26 am
by Diziet Sma
"make clean" simply deletes all the object files and leftover junk from the last compilation.. the next make command does all the work.

Posted: Wed Apr 28, 2010 1:52 pm
by JensAyton
You shouldn’t need “make clean” very often, certainly not for each compile if you’re fiddling with the code.

As for what can be changed… well, it’s hard to say, because I keep being surprised by what people do. With an extensive scripting model, it’s largely a matter of imagination.

Posted: Wed Apr 28, 2010 2:01 pm
by Diziet Sma
Ahruman wrote:
You shouldn’t need “make clean” very often, certainly not for each compile if you’re fiddling with the code.
Well, I basically put it there so I'd never have to think about it.. :lol:

Re: What "can" be changed without re-compiling?

Posted: Wed Apr 28, 2010 2:01 pm
by Commander McLane
Yrol_Denjeah wrote:
What "can" we actually modify without changing code and
re-compiling into a new executable? or better said: what "can" we
chang with plists and scripts? how will i know, what part of the code
is reachable by a plist-file or a scriptfile?
I already pointed you to http://wiki.alioth.net/index.php/Catego ... _scripting and yes, I was serious when I told you that you should read all pages listed there. Obviously it makes sense to start with things named like "Property list", or "Scripting Oolite with JavaScript", before going into details like "Oolite JavaScript Reference: SoundSource".

And the easiest answer to your question would be: Play Oolite without OXPs. Then insert OXPs. Play again. Notice the differences. That's the things that can be changed without touching the code. Which is: pretty much everything. (That's what "modability" means, isn't it? You don't mod a game by recompiling it.) Ships and their properties, AIs, appearance of systems, ways of becoming clean again after you were a fugitive, the general and special behaviour of practically everything in the game.

Or let me put it in a question to you: What do you want to change? Tell me, and I'll tell you whether and how it is possible. :wink:

Oh, and by the way: It wouldn't make a lot of sense to make changes through recompiling. There is only one Oolite which should contain exactly the same code for everybody. Or else it wouldn't be the same game anymore.

Posted: Wed Apr 28, 2010 6:09 pm
by Yrol_Denjeah
Comannder McLane:
May i ask how i deserve this treatment?
Because i do not like where this seems to be going with us both.
Not everybody is a programmer by heart and just by a slight hint
starts reading 2500 pages of in-comprehensive data or so.

And this is not the place, so i stop.
Just wanted to let you know, that i see it and am not happy about
how you let me stand around here.