What "can" be changed without re-compiling?

News and discussion of the PC port of Oolite.

Moderators: another_commander, winston

User avatar
Yrol_Denjeah
Dangerous
Dangerous
Posts: 75
Joined: Mon Apr 26, 2010 8:29 am

What "can" be changed without re-compiling?

Post 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.
(in a cutely insane, electronic, stuttering female voice)
Are you Afraid? What is it you Fear?
The End of your Trivial Existence? Ha!
When the History of my Glory is written,
your Species shall only be a Footnote
to my Magnificence.
I am SHODAN.
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6547
Joined: Wed Feb 28, 2007 7:54 am

Post 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.
User avatar
Yrol_Denjeah
Dangerous
Dangerous
Posts: 75
Joined: Mon Apr 26, 2010 8:29 am

Post by Yrol_Denjeah »

Hm, but what about code being reachable by plists or scripts?
That was more what i tried to ask.
(in a cutely insane, electronic, stuttering female voice)
Are you Afraid? What is it you Fear?
The End of your Trivial Existence? Ha!
When the History of my Glory is written,
your Species shall only be a Footnote
to my Magnificence.
I am SHODAN.
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6547
Joined: Wed Feb 28, 2007 7:54 am

Post 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.
User avatar
Disembodied
Jedi Spam Assassin
Jedi Spam Assassin
Posts: 6876
Joined: Thu Jul 12, 2007 10:54 pm
Location: Carter's Snort

Post 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)
User avatar
Diziet Sma
---- E L I T E ----
---- E L I T E ----
Posts: 6310
Joined: Mon Apr 06, 2009 12:20 pm
Location: Aboard the Pitviper S.E. "Blackwidow"

Post by Diziet Sma »

6) you can't give a player_ship more than one forward-firing laser.
User avatar
Yrol_Denjeah
Dangerous
Dangerous
Posts: 75
Joined: Mon Apr 26, 2010 8:29 am

Post 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.
(in a cutely insane, electronic, stuttering female voice)
Are you Afraid? What is it you Fear?
The End of your Trivial Existence? Ha!
When the History of my Glory is written,
your Species shall only be a Footnote
to my Magnificence.
I am SHODAN.
User avatar
Disembodied
Jedi Spam Assassin
Jedi Spam Assassin
Posts: 6876
Joined: Thu Jul 12, 2007 10:54 pm
Location: Carter's Snort

Post 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. :)
User avatar
Diziet Sma
---- E L I T E ----
---- E L I T E ----
Posts: 6310
Joined: Mon Apr 06, 2009 12:20 pm
Location: Aboard the Pitviper S.E. "Blackwidow"

Post 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:
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
User avatar
Yrol_Denjeah
Dangerous
Dangerous
Posts: 75
Joined: Mon Apr 26, 2010 8:29 am

Post 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?
(in a cutely insane, electronic, stuttering female voice)
Are you Afraid? What is it you Fear?
The End of your Trivial Existence? Ha!
When the History of my Glory is written,
your Species shall only be a Footnote
to my Magnificence.
I am SHODAN.
User avatar
Diziet Sma
---- E L I T E ----
---- E L I T E ----
Posts: 6310
Joined: Mon Apr 06, 2009 12:20 pm
Location: Aboard the Pitviper S.E. "Blackwidow"

Post 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.
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post 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.
User avatar
Diziet Sma
---- E L I T E ----
---- E L I T E ----
Posts: 6310
Joined: Mon Apr 06, 2009 12:20 pm
Location: Aboard the Pitviper S.E. "Blackwidow"

Post 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:
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
User avatar
Commander McLane
---- E L I T E ----
---- E L I T E ----
Posts: 9520
Joined: Thu Dec 14, 2006 9:08 am
Location: a Hacker Outpost in a moderately remote area
Contact:

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

Post 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.
User avatar
Yrol_Denjeah
Dangerous
Dangerous
Posts: 75
Joined: Mon Apr 26, 2010 8:29 am

Post 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.
(in a cutely insane, electronic, stuttering female voice)
Are you Afraid? What is it you Fear?
The End of your Trivial Existence? Ha!
When the History of my Glory is written,
your Species shall only be a Footnote
to my Magnificence.
I am SHODAN.
Post Reply