https://wiki.alioth.net/api.php?action=feedcontributions&user=Another+commander&feedformat=atomElite Wiki - User contributions [en]2024-03-28T15:35:08ZUser contributionsMediaWiki 1.31.12https://wiki.alioth.net/index.php?title=Normal_and_Specular%2BGloss_Maps_for_Oolite_v1.88%2B&diff=79649Normal and Specular+Gloss Maps for Oolite v1.88+2023-08-18T06:58:40Z<p>Another commander: </p>
<hr />
<div>Retexture pack of Vanilla game ships designed for higher-spec-graphics computers<br />
== About ==<br />
<br />
This OXP is a supplementary texture pack for Oolite v1.88 and later. It adds normal maps (created by Griff) and specular/gloss maps to the default shipset of the game. It is effectively a demonstration of Oolite v1.88's new and improved lighting and materials system, since the default texture set distributed with the game is designed for lower end computers and does not really show what the game's engine is capable of.<br />
<br />
So the really new thing here are the specular + gloss maps. The combination of those two properties on a single texture is very poweful and can lead to multi-material appearance on the same model. The way this was applied on the default shipset was to create the heavy, industrial and worn out look that fits Griff's creations so nicely. You can now see areas of rust on metallic surfaces and the way they reflect light differently to the non-rusty areas, Clean areas, depending on their material, can also reflect light in different ways and different quantities. Overall, this creates the illusion of much more detailed surfaces. An artist knowing how to manipulate material properties properly can create even more impressive results than what is seen here.<br />
<br />
Note that nothing that you are likely to see for less than a fraction of a second for most of the time has been upgraded. So, missiles and q-bombs are deliberately left out. Also, asteroids and police Vipers have only normal maps, since their materials can look acceptable even without specular and gloss textures.<br />
<br />
Hopefully this OXP can inspire others to go ahead and further improve the looks of the game. The engine is up to it. :-)<br />
<br />
<br />
----<br />
''NΟΤΕ: This OXP's assets became part of the core engine on '''17 August 2023'''. If you are using an Oolite version created after that date, you do not need to install it''.<br />
----<br />
<br />
<br />
== Gallery ==<br />
{| align=center width=100% style="background: black;"<br />
| [[Image:AdderNSG01.png |link=http://wiki.alioth.net/img_auth.php/2/24/AdderNSG01.png|200px]]<br />
| [[Image:ThargoidNSG01.png |link=http://wiki.alioth.net/img_auth.php/2/2b/ThargoidNSG01.png |200px]]<br />
| [[Image:FDLNSG01.png |link=http://wiki.alioth.net/img_auth.php/2/21/FDLNSG01.png |200px]]<br />
| [[Image:CorioliswNSG03.png |link=http://wiki.alioth.net/img_auth.php/2/25/CorioliswNSG03.png |200px]]<br />
|-<br />
| [[Image:TransporterwNSG02.png |link=http://wiki.alioth.net/img_auth.php/b/b3/TransporterwNSG02.png |200px]]<br />
| [[Image:PythonwNSGMap03.png |link=http://wiki.alioth.net/img_auth.php/2/27/PythonwNSGMap03.png |200px]]<br />
| [[Image:AspNSG02.png |link=http://wiki.alioth.net/img_auth.php/a/af/AspNSG02.png |200px]]<br />
| [[Image:Cobra3wNormal%2BSpecGloss01.png |link=http://wiki.alioth.net/img_auth.php/f/f6/Cobra3wNormal%2BSpecGloss01.png |200px]]<br />
|-<br />
| [[Image:MorayMEDwNSGMap01.png |link=http://wiki.alioth.net/img_auth.php/9/93/MorayMEDwNSGMap01.png |200px]]<br />
| [[Image:KraitwNormal%2BSpecGloss01.png |link=http://wiki.alioth.net/img_auth.php/8/84/KraitwNormal%2BSpecGloss01.png |200px]]<br />
| [[Image:DodowNSG02.png |link=http://wiki.alioth.net/img_auth.php/f/f2/DodowNSG02.png |200px]]<br />
<br />
| [[Image:Oolite-783.png |link=http://wiki.alioth.net/img_auth.php/4/42/Oolite-783.png |200px]]<br />
|-<br />
| [[Image:Oolite-791.png |link=http://wiki.alioth.net/img_auth.php/f/fb/Oolite-791.png |200px]]<br />
| [[Image:Oolite-793.png |link=http://wiki.alioth.net/img_auth.php/f/f8/Oolite-793.png |200px]]<br />
| [[Image:Oolite-794.png |link=http://wiki.alioth.net/img_auth.php/c/c3/Oolite-794.png |200px]]<br />
| [[Image:Oolite-795.png |link=http://wiki.alioth.net/img_auth.php/1/16/Oolite-795.png |200px]]<br />
|-<br />
| [[Image:AspAtIcowNSG01.png |link=http://wiki.alioth.net/img_auth.php/3/32/AspAtIcowNSG01.png |200px]]<br />
| [[Image:Oolite-799.png |link=http://wiki.alioth.net/img_auth.php/a/ad/Oolite-799.png |200px]]<br />
| [[Image:Oolite-801.png |link=http://wiki.alioth.net/img_auth.php/8/8e/Oolite-801.png |200px]]<br />
| [[Image:Oolite-803.png |link=http://wiki.alioth.net/img_auth.php/7/7f/Oolite-803.png |200px]]<br />
|-<br />
| [[Image:Oolite-777.png |link=http://wiki.alioth.net/img_auth.php/d/d6/Oolite-777.png |200px]]<br />
| [[Image:Oolite-806.png |link=http://wiki.alioth.net/img_auth.php/b/bd/Oolite-806.png |200px]]<br />
| [[Image:Oolite-810.png |link=http://wiki.alioth.net/img_auth.php/1/18/Oolite-810.png |200px]]<br />
| [[Image:Oolite-808.png |link=http://wiki.alioth.net/img_auth.php/0/08/Oolite-808.png |200px]]<br />
|-<br />
| [[Image:Oolite-821.png |link=http://wiki.alioth.net/img_auth.php/e/e1/Oolite-821.png |200px]]<br />
| [[Image:Oolite-814.png |link=http://wiki.alioth.net/img_auth.php/3/34/Oolite-814.png |200px]]<br />
| [[Image:Oolite-817.png |link=http://wiki.alioth.net/img_auth.php/e/ec/Oolite-817.png |200px]]<br />
| [[Image:Oolite-805.png |link=http://wiki.alioth.net/img_auth.php/2/2a/Oolite-805.png |200px]]<br />
|}<br />
<br />
<br />
== Credits ==<br />
Specular+gloss maps by [[User:Another commander|another_commander]].<br />
<br />
Normal maps by [[User:Griff|Griff]].<br />
<br />
== Download and License ==<br />
The expansion pack can be downloaded from the in-game Expansion Manager or from [[media:Oolite.oxp.another_commander.188NSGMaps.1_1.oxz|''this link'']]. It is licensed under [https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0].<br />
<br />
== Tweaks ==<br />
To rejig this OXP from being a "replace" to an "add" read here: http://aegidian.org/bb/viewtopic.php?p=277799#p277799<br />
<br />
== Links ==<br />
*[http://aegidian.org/bb/viewtopic.php?f=4&t=20560&start=15 BB Thread] (2020)<br />
<br />
{{Retextures-OXP}}</div>Another commanderhttps://wiki.alioth.net/index.php?title=Developing_Oolite&diff=78861Developing Oolite2023-04-19T11:27:08Z<p>Another commander: /* Current way to do it */</p>
<hr />
<div>= Overview =<br />
<br />
This page intends to allow you to setup an environment to develop Oolite.<br />
<br />
== Before you begin ==<br />
<br />
If you do not know Objective C, see [http://aegidian.org/bb/viewtopic.php?f=7&t=10525 I want to help develop Oolite] (2011).<br />
<br />
== Cloning or forking? ==<br />
<br />
When developing software, each little modification is tracked independently and assigned a version identifier.<br />
That's called [http://en.wikipedia.com/Software_versioning versioning].<br />
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.<br />
We used to use a svn repository, but this one isn't maintained anymore.<br />
<br />
It is possible either to fork (create a copy of) your own branch on github, or to only clone locally the master branch.<br />
In both cases, you can hack, try, do whatever takes your fancy :-)<br />
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.<br />
<br />
== Installing git ==<br />
<br />
We need git for this. <br />
<br />
=== On Linux ===<br />
<br />
Installing git depends on your distribution. For ubuntu:<br />
<code>sudo apt-get install git</code><br />
<br />
= Getting the code by cloning the master branch =<br />
<br />
The Oolite source is available from github. First do<br />
<br />
<code> git clone https://github.com/OoliteProject/oolite </code><br />
<br />
to retrieve. Then, in the directory this creates, do<br />
<br />
<code> git submodule update --init</code><br />
<br />
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.<br />
<br />
Et voila! You've got the source ready to be compiled and/or tweaked.<br />
<br />
= Getting the code by forking your own branch (alternative to cloning the master branch) =<br />
<br />
The Oolite code is hosted on a git-friendly repository: github.<br />
<br />
== Creating a GitHub account ==<br />
<br />
Go to https://github.com/ and create an account.<br />
<br />
== Creating a branch on GitHub ==<br />
<br />
Fork the [https://github.com/OoliteProject/oolite oolite main branch].<br />
<br />
== Fetching your branch ==<br />
<br />
We now repatriate the code locally: we fetch it.<br />
<br />
=== On Linux ===<br />
<br />
<code>git fetch --help</code><br />
<br />
= Documentation =<br />
<br />
The documentation is automatically generated from the source code.<br />
When generated, it's 700mb heavy !<br />
<br />
== Pre-requisites ==<br />
<br />
Installing Doxygen<br />
<br />
=== On Linux ===<br />
<br />
It depends on your distribution. For Ubuntu:<br />
<code>sudo apt-get install doxygen</code><br />
<br />
=== On Windows ===<br />
<br />
You can download Doxygen binaries from the [https://www.doxygen.nl/download.html ''project's home page''].<br />
<br />
== Generation ==<br />
<br />
The documentation is generated into a html sub-directory.<br />
<br />
=== On Linux & Windows ===<br />
<br />
Just go into your oolite directory and do:<br />
<br />
<code>doxygen Doxyfile</code><br />
Note that this will generate the Mac source documentation by default. For Linux and Windows, you will also have to pass the appropriate defines (e.g. OOLITE_WINDOWS, OOLITE_SDL etc.) to Doxygen.<br />
<br />
If you don't want to install Doxygen, you can download an example early 2018 snapshot of the Windows source code documentation from [http://wiki.alioth.net/img_auth.php/8/8c/Doxygen_OoliteSource.oxz ''here'']. Once downloaded, just change the extension to .zip, unzip to any folder normally and run the '''index.html''' file inside the folder named html.<br />
<br />
= Setting up your development environment =<br />
<br />
== On Linux ==<br />
<br />
Do as you wish :-)<br />
<br />
I use vim + youcompleteme.<br />
<br />
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).<br />
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).<br />
<br />
The only plugin for objective-c on eclipse is discontinued.<br />
<br />
You can see the call hierarchy in the doxygen documentation.<br />
<br />
Some use Emacs.<br />
<br />
= Building =<br />
== On Windows ==<br />
=== Current way to do it ===<br />
<br />
''Let's hear the wise words of another_commander (Updated 18th April 2023)''<br />
<br />
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.<br />
<br />
<br />
The download link to the Oolite Development Environment - Light Edition is this:<br />
https://drive.google.com/file/d/1u1IvBxiQjNvtrFs_2POaRP3IZhAi46N0/view?usp=sharing<br />
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 2.16.2 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. <br />
<br />
<br />
Instructions on how to build an Oolite trunk executable from zero:<br />
<br />
<br />
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.<br />
<br />
<br />
Once unzipped, you must run the msys.bat file, found in <RootOfWhereTheEnvironmentWasInstalled>\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.<br />
<br />
<br />
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:<br />
1) Devlibs -> Devlibs64<br />
2) Mingw -> Mingw64<br />
3) Devlibs32 -> Devlibs<br />
4) Mingw32 -> Mingw.<br />
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.<br />
<br />
<br />
The rest of the steps are:<br />
<br />
''1. Create our working directory:''<br />
* <code> mkdir /d/myoolite </code> - to create a folder called myoolite under D:\. This is where we will check out the code, but instead of D: any available drive letter can be used. We will refer to D: here for simplicity.<br />
*<code> cd /d/myoolite </code> - to enter our working directory.<br />
<br />
<br />
''2. Check out the oolite code:''<br />
* <code> git clone https://github.com/OoliteProject/oolite.git </code> - this will start copying the source code from the repository to your working dir. When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a<br />
* <code> cd oolite </code> to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):<br />
* <code> git submodule update --init </code><br />
<br />
<br />
''3. Build the source:''<br />
* <code> make debug=no </code> - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.<br />
<br />
<br />
''4. Profit:''<br />
Double click the oolite.exe file that resides in your <code>D:\myoolite\trunk\oolite.app </code> folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.<br />
<br />
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then <br />
* <code> cd /d/myoolite/oolite </code><br />
* <code>git pull </code><br />
* <code>git submodule update </code><br />
* <code>make debug=no </code><br />
<br />
<br />
Good luck!<br />
<br />
=== Old Building Oolite from source ===<br />
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''<br />
<br />
'''Acknowledgments and thanks to [[User:Kaks|Kaks]] for providing them:'''<br />
<br />
<br />
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''<br />
<br />
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). <br />
# Google & download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe<br />
# Google & download tortoiseSVN, install. <br />
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].<br />
# Go to the Windows Start menu, navigate to and select ''Start>Programs>GNUstep>Shell''<br />
# At the prompt :<br />
## <code>mkdir /Local </code><br />
## <code>mkdir /Local/oolite </code><br />
## <code>mkdir /Local/oolite/trunk </code>. The first slash & the upper case L are very important! <br />
# From windows, extract the directories inside Local_20090108.zip to <code>C:\GNUstep\Local </code><br />
# Still from windows go to <code>C:\GNUstep\Local\oolite\trunk </code><br />
# It's empty. Right click>SVN checkout. The repository is <code>svn://svn.berlios.de/oolite-linux/trunk </code>. Wait for it to finish. <br />
# From inside the GNUstep shell <br />
## <code>export PATH=$PATH:/Local/bin </code><br />
## <code>cd /Local/oolite/trunk </code><br />
## <code>make debug=no</code><br />
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:<br />
## <code>cd /Local/oolite/trunk </code><br />
## <code>openapp oolite.app </code><br />
<br />
<br />
<br />
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''<br />
<br />
# Download and install the necessary software<br />
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.<br />
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.<br />
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]<br />
## Unzip this file to <code>c:\GNUstep\Local</code><br />
# Get the source and build it (note, the source comes from the oolite-linux project)<br />
## Start the GNUstep command line (<i>Start -> Programs -> GNUstep Development -> MSYS for GNUstep</i>) and issue the following commands:<br />
## <code>cd $GNUSTEP_LOCAL_ROOT</code><br />
## <code>export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin</code><br />
## <code>mkdir oolite</code><br />
## <code>cd oolite</code><br />
## <code>svn checkout svn://svn.berlios.de/oolite-linux/trunk</code><br />
## <code>cd trunk</code><br />
## <code>make</code><br />
# To run the game in the build environment:<br />
## Before running the first time: <code>cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app</code><br />
## <code>openapp oolite.app</code><br />
<br />
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the <code>$GNUSTEP_LOCAL_ROOT/oolite/trunk</code> directory, issue the commands:<br />
<br />
# <code>export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin</code><br />
# <code>svn up</code><br />
# <code>rm -rf oolite.app/Resources; make</code><br />
<br />
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.<br />
<br />
Then use the following script to copy the new files over the existing installation:<br />
<br />
<pre><br />
OA="/c/Program Files/Oolite/oolite.app"<br />
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk<br />
if [ oolite.app/oolite.exe -nt "$OA/oolite.exe" ]; then<br />
echo "Updating oolite.exe"<br />
cp oolite.app/oolite.exe "$OA/oolite.exe"<br />
fi<br />
<br />
for a in AIs Config Images Models Music Sounds Textures; do<br />
for b in Resources/$a/*; do<br />
c=`basename $b`<br />
if [ $b -nt "$OA/Contents/Resources/$a/$c" ]; then<br />
echo "Updating with $b"<br />
cp $b "$OA/Contents/Resources/$a/$c"<br />
fi<br />
done<br />
done<br />
</pre><br />
<br />
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]<br />
<br />
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]<br />
<br />
== Building Oolite-Linux ==<br />
<br />
=== Dependencies ===<br />
<br />
You will need the following components:<br />
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.<br />
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.<br />
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].<br />
* OpenGL development libraries - your distribution will have these.<br />
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]<br />
<br />
The source code for these dependencies is also available at [ftp://ftp.alioth.net]<br />
<br />
You may also want the following optional component:<br />
* espeak, if you want speech (1.73 & later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].<br />
<br />
=== Building ===<br />
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.<br />
<br />
=== Notes about the build process ===<br />
<br />
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.<br />
<br />
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:<br />http://aegidian.org/bb/viewtopic.php?p=42188&highlight=#42188<br />
<br />
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite. Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands. The included Spidermonkey dependency is automatically built as well. For a full list of targets, use 'make -f Makefile help'.<br />
** make -f Makefile debug<br />
** make -f Makefile release<br />
<br />
=== Notes about GNUstep ===<br />
<br />
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent. As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good. The current trunk (gnustep-base1.21.1) appears to also be ok.<br />
<br />
This [http://aegidian.org/bb/viewtopic.php?t=8008&highlight= forum post] details how to build and install gnustep for developing Oolite.<br />
<div style="clear:both"></div><br />
<br />
== Objective-C ==<br />
If you’re familiar with OO design concepts, learning Objective-C is about half a day’s work. If not, maybe a few days. Objective-C is a much, much smaller extension to C than C++ is. Take your choice of introductory documents:<br />
*[http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/index.html The Objective-C Programming Language] – covers OO basics, just about the entire language (including bits not used in Oolite – the Exception Handling and Thread Synchronization chapter in particular) and the runtime library used in Apple’s implementation.<br />
*[http://www.gnustep.org/resources/ObjCFun.html Objective-C is Fun] – covers most of the language in about three pages. (Assumes a knowledge of C.)<br />
*[http://www.otierney.net/objective-c.html Objective-C Beginner’s Guide] – a more hands-on tutorial.<br />
<br />
The biggest roadblock to most people seems to be [http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/index.html the memory management model]. (The chapter “Implementing Object Copy” can be considered an advanced topic in the context of Oolite, and the Core Foundation and Zones bit are of no interest.) The section [http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/Tasks/MemoryManagementRules.html Memory Management Rules] is the really important bit.<br />
<br />
That said, Oolite is not necessarily the best project to start with; taking a look at [http://developer.apple.com/documentation/Cocoa/Conceptual/ObjCTutorial/index.html Apple’s] or [http://www.gnustep.it/pierre-yves/index.html GNUstep’s] tutorials. (The latter appears to be a rip-off– er, adaptation of the former.) These are geared towards GUI apps, though.<br />
<br />
[[User:Ahruman|Ahruman]], 2007 from [http://www.aegidian.org/bb/viewtopic.php?p=32138#p32138 Learning Objective-C]<br />
<br />
== Links ==<br />
* [http://www.aegidian.org/bb/viewtopic.php?p=270121#p270121 Building Spidermonkey (2020)]<br />
<br />
[[Category:Oolite]] [[Category:Oolite Development| ]]</div>Another commanderhttps://wiki.alioth.net/index.php?title=Developing_Oolite&diff=78846Developing Oolite2023-04-18T17:16:05Z<p>Another commander: /* Current way to do it */</p>
<hr />
<div>= Overview =<br />
<br />
This page intends to allow you to setup an environment to develop Oolite.<br />
<br />
== Before you begin ==<br />
<br />
If you do not know Objective C, see [http://aegidian.org/bb/viewtopic.php?f=7&t=10525 I want to help develop Oolite] (2011).<br />
<br />
== Cloning or forking? ==<br />
<br />
When developing software, each little modification is tracked independently and assigned a version identifier.<br />
That's called [http://en.wikipedia.com/Software_versioning versioning].<br />
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.<br />
We used to use a svn repository, but this one isn't maintained anymore.<br />
<br />
It is possible either to fork (create a copy of) your own branch on github, or to only clone locally the master branch.<br />
In both cases, you can hack, try, do whatever takes your fancy :-)<br />
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.<br />
<br />
== Installing git ==<br />
<br />
We need git for this. <br />
<br />
=== On Linux ===<br />
<br />
Installing git depends on your distribution. For ubuntu:<br />
<code>sudo apt-get install git</code><br />
<br />
= Getting the code by cloning the master branch =<br />
<br />
The Oolite source is available from github. First do<br />
<br />
<code> git clone https://github.com/OoliteProject/oolite </code><br />
<br />
to retrieve. Then, in the directory this creates, do<br />
<br />
<code> git submodule update --init</code><br />
<br />
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.<br />
<br />
Et voila! You've got the source ready to be compiled and/or tweaked.<br />
<br />
= Getting the code by forking your own branch (alternative to cloning the master branch) =<br />
<br />
The Oolite code is hosted on a git-friendly repository: github.<br />
<br />
== Creating a GitHub account ==<br />
<br />
Go to https://github.com/ and create an account.<br />
<br />
== Creating a branch on GitHub ==<br />
<br />
Fork the [https://github.com/OoliteProject/oolite oolite main branch].<br />
<br />
== Fetching your branch ==<br />
<br />
We now repatriate the code locally: we fetch it.<br />
<br />
=== On Linux ===<br />
<br />
<code>git fetch --help</code><br />
<br />
= Documentation =<br />
<br />
The documentation is automatically generated from the source code.<br />
When generated, it's 700mb heavy !<br />
<br />
== Pre-requisites ==<br />
<br />
Installing Doxygen<br />
<br />
=== On Linux ===<br />
<br />
It depends on your distribution. For Ubuntu:<br />
<code>sudo apt-get install doxygen</code><br />
<br />
=== On Windows ===<br />
<br />
You can download Doxygen binaries from the [https://www.doxygen.nl/download.html ''project's home page''].<br />
<br />
== Generation ==<br />
<br />
The documentation is generated into a html sub-directory.<br />
<br />
=== On Linux & Windows ===<br />
<br />
Just go into your oolite directory and do:<br />
<br />
<code>doxygen Doxyfile</code><br />
Note that this will generate the Mac source documentation by default. For Linux and Windows, you will also have to pass the appropriate defines (e.g. OOLITE_WINDOWS, OOLITE_SDL etc.) to Doxygen.<br />
<br />
If you don't want to install Doxygen, you can download an example early 2018 snapshot of the Windows source code documentation from [http://wiki.alioth.net/img_auth.php/8/8c/Doxygen_OoliteSource.oxz ''here'']. Once downloaded, just change the extension to .zip, unzip to any folder normally and run the '''index.html''' file inside the folder named html.<br />
<br />
= Setting up your development environment =<br />
<br />
== On Linux ==<br />
<br />
Do as you wish :-)<br />
<br />
I use vim + youcompleteme.<br />
<br />
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).<br />
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).<br />
<br />
The only plugin for objective-c on eclipse is discontinued.<br />
<br />
You can see the call hierarchy in the doxygen documentation.<br />
<br />
Some use Emacs.<br />
<br />
= Building =<br />
== On Windows ==<br />
=== Current way to do it ===<br />
<br />
''Let's hear the wise words of another_commander (Updated 08th December 2016)''<br />
<br />
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.<br />
<br />
<br />
The download link to the Oolite Development Environment - Light Edition is this:<br />
https://drive.google.com/file/d/1u1IvBxiQjNvtrFs_2POaRP3IZhAi46N0/view?usp=sharing<br />
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 2.16.2 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. <br />
<br />
<br />
Instructions on how to build an Oolite trunk executable from zero:<br />
<br />
<br />
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.<br />
<br />
<br />
Once unzipped, you must run the msys.bat file, found in <RootOfWhereTheEnvironmentWasInstalled>\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.<br />
<br />
<br />
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:<br />
1) Devlibs -> Devlibs64<br />
2) Mingw -> Mingw64<br />
3) Devlibs32 -> Devlibs<br />
4) Mingw32 -> Mingw.<br />
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.<br />
<br />
<br />
The rest of the steps are:<br />
<br />
''1. Create our working directory:''<br />
* <code> mkdir /d/myoolite </code> - to create a folder called myoolite under D:\. This is where we will check out the code, but instead of D: any available drive letter can be used. We will refer to D: here for simplicity.<br />
*<code> cd /d/myoolite </code> - to enter our working directory.<br />
<br />
<br />
''2. Check out the oolite code:''<br />
* <code> git clone https://github.com/OoliteProject/oolite.git </code> - this will start copying the source code from the repository to your working dir. When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a<br />
* <code> cd oolite </code> to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):<br />
* <code> git submodule update --init </code><br />
<br />
<br />
''3. Build the source:''<br />
* <code> make debug=no </code> - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.<br />
<br />
<br />
''4. Profit:''<br />
Double click the oolite.exe file that resides in your <code>D:\myoolite\trunk\oolite.app </code> folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.<br />
<br />
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then <br />
* <code> cd /d/myoolite/oolite </code><br />
* <code>git pull </code><br />
* <code>git submodule update </code><br />
* <code>make debug=no </code><br />
<br />
<br />
Good luck!<br />
<br />
=== Old Building Oolite from source ===<br />
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''<br />
<br />
'''Acknowledgments and thanks to [[User:Kaks|Kaks]] for providing them:'''<br />
<br />
<br />
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''<br />
<br />
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). <br />
# Google & download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe<br />
# Google & download tortoiseSVN, install. <br />
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].<br />
# Go to the Windows Start menu, navigate to and select ''Start>Programs>GNUstep>Shell''<br />
# At the prompt :<br />
## <code>mkdir /Local </code><br />
## <code>mkdir /Local/oolite </code><br />
## <code>mkdir /Local/oolite/trunk </code>. The first slash & the upper case L are very important! <br />
# From windows, extract the directories inside Local_20090108.zip to <code>C:\GNUstep\Local </code><br />
# Still from windows go to <code>C:\GNUstep\Local\oolite\trunk </code><br />
# It's empty. Right click>SVN checkout. The repository is <code>svn://svn.berlios.de/oolite-linux/trunk </code>. Wait for it to finish. <br />
# From inside the GNUstep shell <br />
## <code>export PATH=$PATH:/Local/bin </code><br />
## <code>cd /Local/oolite/trunk </code><br />
## <code>make debug=no</code><br />
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:<br />
## <code>cd /Local/oolite/trunk </code><br />
## <code>openapp oolite.app </code><br />
<br />
<br />
<br />
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''<br />
<br />
# Download and install the necessary software<br />
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.<br />
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.<br />
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]<br />
## Unzip this file to <code>c:\GNUstep\Local</code><br />
# Get the source and build it (note, the source comes from the oolite-linux project)<br />
## Start the GNUstep command line (<i>Start -> Programs -> GNUstep Development -> MSYS for GNUstep</i>) and issue the following commands:<br />
## <code>cd $GNUSTEP_LOCAL_ROOT</code><br />
## <code>export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin</code><br />
## <code>mkdir oolite</code><br />
## <code>cd oolite</code><br />
## <code>svn checkout svn://svn.berlios.de/oolite-linux/trunk</code><br />
## <code>cd trunk</code><br />
## <code>make</code><br />
# To run the game in the build environment:<br />
## Before running the first time: <code>cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app</code><br />
## <code>openapp oolite.app</code><br />
<br />
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the <code>$GNUSTEP_LOCAL_ROOT/oolite/trunk</code> directory, issue the commands:<br />
<br />
# <code>export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin</code><br />
# <code>svn up</code><br />
# <code>rm -rf oolite.app/Resources; make</code><br />
<br />
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.<br />
<br />
Then use the following script to copy the new files over the existing installation:<br />
<br />
<pre><br />
OA="/c/Program Files/Oolite/oolite.app"<br />
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk<br />
if [ oolite.app/oolite.exe -nt "$OA/oolite.exe" ]; then<br />
echo "Updating oolite.exe"<br />
cp oolite.app/oolite.exe "$OA/oolite.exe"<br />
fi<br />
<br />
for a in AIs Config Images Models Music Sounds Textures; do<br />
for b in Resources/$a/*; do<br />
c=`basename $b`<br />
if [ $b -nt "$OA/Contents/Resources/$a/$c" ]; then<br />
echo "Updating with $b"<br />
cp $b "$OA/Contents/Resources/$a/$c"<br />
fi<br />
done<br />
done<br />
</pre><br />
<br />
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]<br />
<br />
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]<br />
<br />
== Building Oolite-Linux ==<br />
<br />
=== Dependencies ===<br />
<br />
You will need the following components:<br />
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.<br />
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.<br />
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].<br />
* OpenGL development libraries - your distribution will have these.<br />
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]<br />
<br />
The source code for these dependencies is also available at [ftp://ftp.alioth.net]<br />
<br />
You may also want the following optional component:<br />
* espeak, if you want speech (1.73 & later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].<br />
<br />
=== Building ===<br />
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.<br />
<br />
=== Notes about the build process ===<br />
<br />
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.<br />
<br />
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:<br />http://aegidian.org/bb/viewtopic.php?p=42188&highlight=#42188<br />
<br />
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite. Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands. The included Spidermonkey dependency is automatically built as well. For a full list of targets, use 'make -f Makefile help'.<br />
** make -f Makefile debug<br />
** make -f Makefile release<br />
<br />
=== Notes about GNUstep ===<br />
<br />
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent. As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good. The current trunk (gnustep-base1.21.1) appears to also be ok.<br />
<br />
This [http://aegidian.org/bb/viewtopic.php?t=8008&highlight= forum post] details how to build and install gnustep for developing Oolite.<br />
<div style="clear:both"></div><br />
<br />
== Objective-C ==<br />
If you’re familiar with OO design concepts, learning Objective-C is about half a day’s work. If not, maybe a few days. Objective-C is a much, much smaller extension to C than C++ is. Take your choice of introductory documents:<br />
*[http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/index.html The Objective-C Programming Language] – covers OO basics, just about the entire language (including bits not used in Oolite – the Exception Handling and Thread Synchronization chapter in particular) and the runtime library used in Apple’s implementation.<br />
*[http://www.gnustep.org/resources/ObjCFun.html Objective-C is Fun] – covers most of the language in about three pages. (Assumes a knowledge of C.)<br />
*[http://www.otierney.net/objective-c.html Objective-C Beginner’s Guide] – a more hands-on tutorial.<br />
<br />
The biggest roadblock to most people seems to be [http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/index.html the memory management model]. (The chapter “Implementing Object Copy” can be considered an advanced topic in the context of Oolite, and the Core Foundation and Zones bit are of no interest.) The section [http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/Tasks/MemoryManagementRules.html Memory Management Rules] is the really important bit.<br />
<br />
That said, Oolite is not necessarily the best project to start with; taking a look at [http://developer.apple.com/documentation/Cocoa/Conceptual/ObjCTutorial/index.html Apple’s] or [http://www.gnustep.it/pierre-yves/index.html GNUstep’s] tutorials. (The latter appears to be a rip-off– er, adaptation of the former.) These are geared towards GUI apps, though.<br />
<br />
[[User:Ahruman|Ahruman]], 2007 from [http://www.aegidian.org/bb/viewtopic.php?p=32138#p32138 Learning Objective-C]<br />
<br />
== Links ==<br />
* [http://www.aegidian.org/bb/viewtopic.php?p=270121#p270121 Building Spidermonkey (2020)]<br />
<br />
[[Category:Oolite]] [[Category:Oolite Development| ]]</div>Another commanderhttps://wiki.alioth.net/index.php?title=Running_Oolite-Windows&diff=78845Running Oolite-Windows2023-04-18T17:11:36Z<p>Another commander: /* Building */</p>
<hr />
<div>==Overview==<br />
The Windows port of Oolite is built from the same source as the [[Running Oolite-Mac|Mac OS X]] and [[Running Oolite-Linux|Linux]] versions, and has all the features of those versions.<br />
<br />
All OXPs should be compatible with the Windows port.<br />
<br />
==Building==<br />
<br />
Note that this page is referenced as 'Building' from https://github.com/OoliteProject/oolite however this page does not contain any build information.<br />
<br />
Check out https://wiki.alioth.net/index.php/Developing_Oolite#On_Windows_2 instead.<br />
<br />
==Getting and installing the compiled game==<br />
<br />
The latest recommended release, 1.90 can be downloaded from [http://www.oolite.org/download/ Oolite.org].<br />
<br />
To install, run the installer that you have just downloaded.<br />
<br />
The game has been tested on Windows Vista SP2, 7, 8, 8.1 and 10. This game uses OpenGL, and you are advised to run the latest 3D graphics drivers from your 3D card manufacturer.<br />
<br />
'''It will not run on the DOS-extender versions of Windows''' such as Windows 95, 98 or ME.<br />
<br />
'''For Windows XP, the last version compatible with the OS is 1.84.'''<br />
<br />
===Important note for Vista users!===<br />
<h5>Summary:</h5><br />
DATA LOSS and OXP MALFUNCTION can appear if you install an early version of Oolite (1.65 - 1.72.x) on Vista. '''Oolite 1.73 and later releases have corrected this issue''' by using a different default installation directory, instead of one inside program files, as before.<br />
<br />
<h5>Do This</h5><br />
When asked by the installer, change the Oolite install directory to a different location, one outside C:\Program Files\, like<br />
* C:\Oolite\ <br />
* C:\Games\Oolite\<br />
etc.<br />
<br />
<h5>Don't Do This</h5><br />
It is STRONGLY recommended NOT to use the folder C:\Program Files\Oolite\ or any path including the following:<br />
* %ProgramFiles%<br />
* %ProgramData%<br />
* %SystemRoot%<br />
<br />
<h5>Why?</h5><br />
Vista rearranges some files outside the Oolite folder structure without visible alias/redirects, which completely hides all saved games and causes some OXP add-ons to malfunction. This is because Vista virtualizes files in those locations for legacy processes. You can read more about this problem on [http://aegidian.org/bb/viewtopic.php?t=5610 this Oolite forum thread]. The Microsoft explanation is here: [http://technet.microsoft.com/en-us/magazine/2007.06.uac.aspx].<br />
<br />
<h5>Recovering Your Commanders Saved Under Vista</h5><br />
If you have already installed Oolite on a Vista machine and wish to move your saved games to a new and safer file location:<br />
* Examine location C:\Users\[username]\AppData\Local\VirtualStore\Program Files\Oolite\oolite.app\oolite-saves\<br />
or<br />
* Use Windows Explorer to search for the string " *.oolite-save " with the Windows search option "''include system and hidden files''" checked (turned on).<br />
<br />
<br />
For example, the default commander, if saved, might be found in this path:<br />
C:\Users\[username]\AppData\Local\VirtualStore\Program Files\Oolite\oolite.app\oolite-saves\Jameson.oolite-save<br />
<br />
==Running the game==<br />
Find the Oolite icon in the Start -> Programs menu and click on it. Alternatively double click the Oolite program icon on the desktop. Note that the following key combination will get you out of 'graphics related trouble':<br />
<br />
Shift-Escape: Quit Oolite immediately<br />
<br />
If your game seems to have unreasonably low fps performance (check this in-game by hitting SHIFT-F) it is strongly recommended you visit your graphic cards' suppliers website and download and install the latest drivers.<br />
<br />
===Installing OXPs===<br />
You will need to find where the oolite.app folder is placed: versions 1.65 to 1.72.x should default to C:\Program Files\Oolite, later versions default install is C:\Oolite, to avoid clashes with Vista's virtual folders feature(see above). Create an AddOns folder beside the oolite.app folder. Put OXPs in here. '''NB:''' most OXPs zip files contain a folder with a README file and the actual OXP directory (somename.oxp) as a sub-folder - in this case, it's best to unzip the OXP somewhere else and then copy the unpacked .oxp folder into AddOns.<br />
<br />
===Filming your game===<br />
{{QuoteText|Text=You can record video of the game with the Windows Gamebar shortcut keys. <Windows>+<Alt>+R starts the recording, the same combination stops it. The video gets saved in C:\Users\<YourUserName>\Videos\Captures, with a filename like 'Oolite v1.89 - Jul 23 2020 2020-07-29 19-35-26.mp4'.|Source=([http://oolite.aegidian.org/bb/viewtopic.php?p=275049#p275049 another_commander])}}<br />
<br />
===Notes for amd64 users===<br />
64-bit builds of Oolite for Windows are available and the development environment used defaults to 64-bit executables generation. They are the recommended ones for 64-bit OSes. However, the 32-bit version should run on 64-bit Windows without issues as well.<br />
<br />
==Building from Source==<br />
[[Developing_Oolite#On_Windows]]<br />
<br />
==Links==<br />
[http://aegidian.org/bb/viewtopic.php?f=8&t=17502 Deployment to Test Release updater] (2015)<br />
<br />
[[Category:Oolite]] [[Category:Help pages]]<br />
[[Category:Factual]]</div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-033.png&diff=63172File:Oolite-033.png2021-02-22T21:02:16Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=Developing_Oolite&diff=63091Developing Oolite2021-02-20T08:25:15Z<p>Another commander: /* Documentation */</p>
<hr />
<div>= Overview =<br />
<br />
This page intends to allow you to setup an environment to develop Oolite.<br />
<br />
== Before you begin ==<br />
<br />
If you do not know Objective C, see [http://aegidian.org/bb/viewtopic.php?f=7&t=10525 I want to help develop Oolite] (2011).<br />
<br />
== Cloning or forking? ==<br />
<br />
When developing software, each little modification is tracked independently and assigned a version identifier.<br />
That's called [http://en.wikipedia.com/Software_versioning versioning].<br />
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.<br />
We used to use a svn repository, but this one isn't maintained anymore.<br />
<br />
It is possible either to fork (create a copy of) your own branch on github, or to only clone locally the master branch.<br />
In both cases, you can hack, try, do whatever takes your fancy :-)<br />
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.<br />
<br />
== Installing git ==<br />
<br />
We need git for this. <br />
<br />
=== On Linux ===<br />
<br />
Installing git depends on your distribution. For ubuntu:<br />
<code>sudo apt-get install git</code><br />
<br />
= Getting the code by cloning the master branch =<br />
<br />
The Oolite source is available from github. First do<br />
<br />
<code> git clone https://github.com/OoliteProject/oolite </code><br />
<br />
to retrieve. Then, in the directory this creates, do<br />
<br />
<code> git submodule update --init</code><br />
<br />
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.<br />
<br />
Et voila! You've got the source ready to be compiled and/or tweaked.<br />
<br />
= Getting the code by forking your own branch (alternative to cloning the master branch) =<br />
<br />
The Oolite code is hosted on a git-friendly repository: github.<br />
<br />
== Creating a GitHub account ==<br />
<br />
Go to https://github.com/ and create an account.<br />
<br />
== Creating a branch on GitHub ==<br />
<br />
Fork the [https://github.com/OoliteProject/oolite oolite main branch].<br />
<br />
== Fetching your branch ==<br />
<br />
We now repatriate the code locally: we fetch it.<br />
<br />
=== On Linux ===<br />
<br />
<code>git fetch --help</code><br />
<br />
= Documentation =<br />
<br />
The documentation is automatically generated from the source code.<br />
When generated, it's 700mb heavy !<br />
<br />
== Pre-requisites ==<br />
<br />
Installing Doxygen<br />
<br />
=== On Linux ===<br />
<br />
It depends on your distribution. For Ubuntu:<br />
<code>sudo apt-get install doxygen</code><br />
<br />
=== On Windows ===<br />
<br />
You can download Doxygen binaries from the [https://www.doxygen.nl/download.html ''project's home page''].<br />
<br />
== Generation ==<br />
<br />
The documentation is generated into a html sub-directory.<br />
<br />
=== On Linux & Windows ===<br />
<br />
Just go into your oolite directory and do:<br />
<br />
<code>doxygen Doxyfile</code><br />
Note that this will generate the Mac source documentation by default. For Linux and Windows, you will also have to pass the appropriate defines (e.g. OOLITE_WINDOWS, OOLITE_SDL etc.) to Doxygen.<br />
<br />
If you don't want to install Doxygen, you can download an example early 2018 snapshot of the Windows source code documentation from [http://wiki.alioth.net/img_auth.php/8/8c/Doxygen_OoliteSource.oxz ''here'']. Once downloaded, just change the extension to .zip, unzip to any folder normally and run the '''index.html''' file inside the folder named html.<br />
<br />
= Setting up your development environment =<br />
<br />
== On Linux ==<br />
<br />
Do as you wish :-)<br />
<br />
I use vim + youcompleteme.<br />
<br />
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).<br />
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).<br />
<br />
The only plugin for objective-c on eclipse is discontinued.<br />
<br />
You can see the call hierarchy in the doxygen documentation.<br />
<br />
Some use Emacs.<br />
<br />
= Building =<br />
== On Windows ==<br />
=== Current way to do it ===<br />
<br />
''Let's hear the wise words of another_commander (Updated 08th December 2016)''<br />
<br />
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.<br />
<br />
<br />
The download link to the Oolite Development Environment - Light Edition is this:<br />
https://drive.google.com/file/d/12xoD3sT1D9yDmOBPp0DKJ0HXWD4-dJjd/view?usp=sharing<br />
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 2.16.2 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. <br />
<br />
<br />
Instructions on how to build an Oolite trunk executable from zero:<br />
<br />
<br />
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.<br />
<br />
<br />
Once unzipped, you must run the msys.bat file, found in <RootOfWhereTheEnvironmentWasInstalled>\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.<br />
<br />
<br />
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:<br />
1) Devlibs -> Devlibs64<br />
2) Mingw -> Mingw64<br />
3) Devlibs32 -> Devlibs<br />
4) Mingw32 -> Mingw.<br />
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.<br />
<br />
<br />
The rest of the steps are:<br />
<br />
''1. Create our working directory:''<br />
* <code> mkdir /d/myoolite </code> - to create a folder called myoolite under D:\. This is where we will check out the code, but instead of D: any available drive letter can be used. We will refer to D: here for simplicity.<br />
*<code> cd /d/myoolite </code> - to enter our working directory.<br />
<br />
<br />
''2. Check out the oolite code:''<br />
* <code> git clone https://github.com/OoliteProject/oolite.git </code> - this will start copying the source code from the repository to your working dir. When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a<br />
* <code> cd oolite </code> to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):<br />
* <code> git submodule update --init </code><br />
<br />
<br />
''3. Build the source:''<br />
* <code> make debug=no </code> - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.<br />
<br />
<br />
''4. Profit:''<br />
Double click the oolite.exe file that resides in your <code>D:\myoolite\trunk\oolite.app </code> folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.<br />
<br />
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then <br />
* <code> cd /d/myoolite/oolite </code><br />
* <code>git pull </code><br />
* <code>git submodule update </code><br />
* <code>make debug=no </code><br />
<br />
<br />
Good luck!<br />
<br />
=== Old Building Oolite from source ===<br />
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''<br />
<br />
'''Acknowledgments and thanks to Kaks for providing them:'''<br />
<br />
<br />
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''<br />
<br />
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). <br />
# Google & download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe<br />
# Google & download tortoiseSVN, install. <br />
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].<br />
# Go to the Windows Start menu, navigate to and select ''Start>Programs>GNUstep>Shell''<br />
# At the prompt :<br />
## <code>mkdir /Local </code><br />
## <code>mkdir /Local/oolite </code><br />
## <code>mkdir /Local/oolite/trunk </code>. The first slash & the upper case L are very important! <br />
# From windows, extract the directories inside Local_20090108.zip to <code>C:\GNUstep\Local </code><br />
# Still from windows go to <code>C:\GNUstep\Local\oolite\trunk </code><br />
# It's empty. Right click>SVN checkout. The repository is <code>svn://svn.berlios.de/oolite-linux/trunk </code>. Wait for it to finish. <br />
# From inside the GNUstep shell <br />
## <code>export PATH=$PATH:/Local/bin </code><br />
## <code>cd /Local/oolite/trunk </code><br />
## <code>make debug=no</code><br />
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:<br />
## <code>cd /Local/oolite/trunk </code><br />
## <code>openapp oolite.app </code><br />
<br />
<br />
<br />
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''<br />
<br />
# Download and install the necessary software<br />
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.<br />
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.<br />
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]<br />
## Unzip this file to <code>c:\GNUstep\Local</code><br />
# Get the source and build it (note, the source comes from the oolite-linux project)<br />
## Start the GNUstep command line (<i>Start -> Programs -> GNUstep Development -> MSYS for GNUstep</i>) and issue the following commands:<br />
## <code>cd $GNUSTEP_LOCAL_ROOT</code><br />
## <code>export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin</code><br />
## <code>mkdir oolite</code><br />
## <code>cd oolite</code><br />
## <code>svn checkout svn://svn.berlios.de/oolite-linux/trunk</code><br />
## <code>cd trunk</code><br />
## <code>make</code><br />
# To run the game in the build environment:<br />
## Before running the first time: <code>cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app</code><br />
## <code>openapp oolite.app</code><br />
<br />
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the <code>$GNUSTEP_LOCAL_ROOT/oolite/trunk</code> directory, issue the commands:<br />
<br />
# <code>export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin</code><br />
# <code>svn up</code><br />
# <code>rm -rf oolite.app/Resources; make</code><br />
<br />
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.<br />
<br />
Then use the following script to copy the new files over the existing installation:<br />
<br />
<pre><br />
OA="/c/Program Files/Oolite/oolite.app"<br />
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk<br />
if [ oolite.app/oolite.exe -nt "$OA/oolite.exe" ]; then<br />
echo "Updating oolite.exe"<br />
cp oolite.app/oolite.exe "$OA/oolite.exe"<br />
fi<br />
<br />
for a in AIs Config Images Models Music Sounds Textures; do<br />
for b in Resources/$a/*; do<br />
c=`basename $b`<br />
if [ $b -nt "$OA/Contents/Resources/$a/$c" ]; then<br />
echo "Updating with $b"<br />
cp $b "$OA/Contents/Resources/$a/$c"<br />
fi<br />
done<br />
done<br />
</pre><br />
<br />
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]<br />
<br />
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]<br />
<br />
<br />
== Building Oolite-Linux ==<br />
<br />
=== Dependencies ===<br />
<br />
You will need the following components:<br />
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.<br />
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.<br />
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].<br />
* OpenGL development libraries - your distribution will have these.<br />
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]<br />
<br />
The source code for these dependencies is also available at [ftp://ftp.alioth.net]<br />
<br />
You may also want the following optional component:<br />
* espeak, if you want speech (1.73 & later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].<br />
<br />
=== Building ===<br />
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.<br />
<br />
=== Notes about the build process ===<br />
<br />
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.<br />
<br />
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:<br />http://aegidian.org/bb/viewtopic.php?p=42188&highlight=#42188<br />
<br />
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite. Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands. The included Spidermonkey dependency is automatically built as well. For a full list of targets, use 'make -f Makefile help'.<br />
** make -f Makefile debug<br />
** make -f Makefile release<br />
<br />
=== Notes about GNUstep ===<br />
<br />
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent. As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good. The current trunk (gnustep-base1.21.1) appears to also be ok.<br />
<br />
This [http://aegidian.org/bb/viewtopic.php?t=8008&highlight= forum post] details how to build and install gnustep for developing Oolite.<br />
<br />
<br />
[[Category:Oolite]]</div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Doxygen_OoliteSource.oxz&diff=63090File:Doxygen OoliteSource.oxz2021-02-20T08:12:39Z<p>Another commander: Doxygen generated source code documentation for the Windows port of Oolite.
(Once downloaded, change the extension from .oxz to .zip, then unzip to any folder normally. You can run the documentation on any standard browser by double clicking on the in...</p>
<hr />
<div>== Summary ==<br />
Doxygen generated source code documentation for the Windows port of Oolite.<br />
<br />
(Once downloaded, change the extension from .oxz to .zip, then unzip to any folder normally. You can run the documentation on any standard browser by double clicking on the index.html file).</div>Another commanderhttps://wiki.alioth.net/index.php?title=Developing_Oolite&diff=63089Developing Oolite2021-02-20T08:04:27Z<p>Another commander: /* Documentation */</p>
<hr />
<div>= Overview =<br />
<br />
This page intends to allow you to setup an environment to develop Oolite.<br />
<br />
== Before you begin ==<br />
<br />
If you do not know Objective C, see [http://aegidian.org/bb/viewtopic.php?f=7&t=10525 I want to help develop Oolite] (2011).<br />
<br />
== Cloning or forking? ==<br />
<br />
When developing software, each little modification is tracked independently and assigned a version identifier.<br />
That's called [http://en.wikipedia.com/Software_versioning versioning].<br />
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.<br />
We used to use a svn repository, but this one isn't maintained anymore.<br />
<br />
It is possible either to fork (create a copy of) your own branch on github, or to only clone locally the master branch.<br />
In both cases, you can hack, try, do whatever takes your fancy :-)<br />
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.<br />
<br />
== Installing git ==<br />
<br />
We need git for this. <br />
<br />
=== On Linux ===<br />
<br />
Installing git depends on your distribution. For ubuntu:<br />
<code>sudo apt-get install git</code><br />
<br />
= Getting the code by cloning the master branch =<br />
<br />
The Oolite source is available from github. First do<br />
<br />
<code> git clone https://github.com/OoliteProject/oolite </code><br />
<br />
to retrieve. Then, in the directory this creates, do<br />
<br />
<code> git submodule update --init</code><br />
<br />
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.<br />
<br />
Et voila! You've got the source ready to be compiled and/or tweaked.<br />
<br />
= Getting the code by forking your own branch (alternative to cloning the master branch) =<br />
<br />
The Oolite code is hosted on a git-friendly repository: github.<br />
<br />
== Creating a GitHub account ==<br />
<br />
Go to https://github.com/ and create an account.<br />
<br />
== Creating a branch on GitHub ==<br />
<br />
Fork the [https://github.com/OoliteProject/oolite oolite main branch].<br />
<br />
== Fetching your branch ==<br />
<br />
We now repatriate the code locally: we fetch it.<br />
<br />
=== On Linux ===<br />
<br />
<code>git fetch --help</code><br />
<br />
= Documentation =<br />
<br />
The documentation is automatically generated from the source code.<br />
When generated, it's 700mb heavy !<br />
<br />
== Pre-requisites ==<br />
<br />
Installing Doxygen<br />
<br />
=== On Linux ===<br />
<br />
It depends on your distribution. For Ubuntu:<br />
<code>sudo apt-get install doxygen</code><br />
<br />
=== On Windows ===<br />
<br />
You can download Doxygen binaries from the project's home page: https://www.doxygen.nl/download.html<br />
<br />
== Generation ==<br />
<br />
The documentation is generated into a html sub-directory.<br />
<br />
=== On Linux & Windows ===<br />
<br />
Just go into your oolite directory and do:<br />
<br />
<code>doxygen Doxyfile</code><br />
<br />
If you don't want to install Doxygen, you can download an early 2018 snapshot of the Windows source code documentation from here:XXXXXXXXXX<br />
<br />
= Setting up your development environment =<br />
<br />
== On Linux ==<br />
<br />
Do as you wish :-)<br />
<br />
I use vim + youcompleteme.<br />
<br />
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).<br />
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).<br />
<br />
The only plugin for objective-c on eclipse is discontinued.<br />
<br />
You can see the call hierarchy in the doxygen documentation.<br />
<br />
Some use Emacs.<br />
<br />
= Building =<br />
== On Windows ==<br />
=== Current way to do it ===<br />
<br />
''Let's hear the wise words of another_commander (Updated 08th December 2016)''<br />
<br />
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.<br />
<br />
<br />
The download link to the Oolite Development Environment - Light Edition is this:<br />
https://drive.google.com/file/d/12xoD3sT1D9yDmOBPp0DKJ0HXWD4-dJjd/view?usp=sharing<br />
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 2.16.2 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. <br />
<br />
<br />
Instructions on how to build an Oolite trunk executable from zero:<br />
<br />
<br />
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.<br />
<br />
<br />
Once unzipped, you must run the msys.bat file, found in <RootOfWhereTheEnvironmentWasInstalled>\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.<br />
<br />
<br />
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:<br />
1) Devlibs -> Devlibs64<br />
2) Mingw -> Mingw64<br />
3) Devlibs32 -> Devlibs<br />
4) Mingw32 -> Mingw.<br />
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.<br />
<br />
<br />
The rest of the steps are:<br />
<br />
''1. Create our working directory:''<br />
* <code> mkdir /d/myoolite </code> - to create a folder called myoolite under D:\. This is where we will check out the code, but instead of D: any available drive letter can be used. We will refer to D: here for simplicity.<br />
*<code> cd /d/myoolite </code> - to enter our working directory.<br />
<br />
<br />
''2. Check out the oolite code:''<br />
* <code> git clone https://github.com/OoliteProject/oolite.git </code> - this will start copying the source code from the repository to your working dir. When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a<br />
* <code> cd oolite </code> to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):<br />
* <code> git submodule update --init </code><br />
<br />
<br />
''3. Build the source:''<br />
* <code> make debug=no </code> - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.<br />
<br />
<br />
''4. Profit:''<br />
Double click the oolite.exe file that resides in your <code>D:\myoolite\trunk\oolite.app </code> folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.<br />
<br />
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then <br />
* <code> cd /d/myoolite/oolite </code><br />
* <code>git pull </code><br />
* <code>git submodule update </code><br />
* <code>make debug=no </code><br />
<br />
<br />
Good luck!<br />
<br />
=== Old Building Oolite from source ===<br />
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''<br />
<br />
'''Acknowledgments and thanks to Kaks for providing them:'''<br />
<br />
<br />
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''<br />
<br />
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). <br />
# Google & download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe<br />
# Google & download tortoiseSVN, install. <br />
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].<br />
# Go to the Windows Start menu, navigate to and select ''Start>Programs>GNUstep>Shell''<br />
# At the prompt :<br />
## <code>mkdir /Local </code><br />
## <code>mkdir /Local/oolite </code><br />
## <code>mkdir /Local/oolite/trunk </code>. The first slash & the upper case L are very important! <br />
# From windows, extract the directories inside Local_20090108.zip to <code>C:\GNUstep\Local </code><br />
# Still from windows go to <code>C:\GNUstep\Local\oolite\trunk </code><br />
# It's empty. Right click>SVN checkout. The repository is <code>svn://svn.berlios.de/oolite-linux/trunk </code>. Wait for it to finish. <br />
# From inside the GNUstep shell <br />
## <code>export PATH=$PATH:/Local/bin </code><br />
## <code>cd /Local/oolite/trunk </code><br />
## <code>make debug=no</code><br />
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:<br />
## <code>cd /Local/oolite/trunk </code><br />
## <code>openapp oolite.app </code><br />
<br />
<br />
<br />
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''<br />
<br />
# Download and install the necessary software<br />
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.<br />
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.<br />
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]<br />
## Unzip this file to <code>c:\GNUstep\Local</code><br />
# Get the source and build it (note, the source comes from the oolite-linux project)<br />
## Start the GNUstep command line (<i>Start -> Programs -> GNUstep Development -> MSYS for GNUstep</i>) and issue the following commands:<br />
## <code>cd $GNUSTEP_LOCAL_ROOT</code><br />
## <code>export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin</code><br />
## <code>mkdir oolite</code><br />
## <code>cd oolite</code><br />
## <code>svn checkout svn://svn.berlios.de/oolite-linux/trunk</code><br />
## <code>cd trunk</code><br />
## <code>make</code><br />
# To run the game in the build environment:<br />
## Before running the first time: <code>cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app</code><br />
## <code>openapp oolite.app</code><br />
<br />
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the <code>$GNUSTEP_LOCAL_ROOT/oolite/trunk</code> directory, issue the commands:<br />
<br />
# <code>export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin</code><br />
# <code>svn up</code><br />
# <code>rm -rf oolite.app/Resources; make</code><br />
<br />
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.<br />
<br />
Then use the following script to copy the new files over the existing installation:<br />
<br />
<pre><br />
OA="/c/Program Files/Oolite/oolite.app"<br />
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk<br />
if [ oolite.app/oolite.exe -nt "$OA/oolite.exe" ]; then<br />
echo "Updating oolite.exe"<br />
cp oolite.app/oolite.exe "$OA/oolite.exe"<br />
fi<br />
<br />
for a in AIs Config Images Models Music Sounds Textures; do<br />
for b in Resources/$a/*; do<br />
c=`basename $b`<br />
if [ $b -nt "$OA/Contents/Resources/$a/$c" ]; then<br />
echo "Updating with $b"<br />
cp $b "$OA/Contents/Resources/$a/$c"<br />
fi<br />
done<br />
done<br />
</pre><br />
<br />
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]<br />
<br />
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]<br />
<br />
<br />
== Building Oolite-Linux ==<br />
<br />
=== Dependencies ===<br />
<br />
You will need the following components:<br />
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.<br />
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.<br />
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].<br />
* OpenGL development libraries - your distribution will have these.<br />
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]<br />
<br />
The source code for these dependencies is also available at [ftp://ftp.alioth.net]<br />
<br />
You may also want the following optional component:<br />
* espeak, if you want speech (1.73 & later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].<br />
<br />
=== Building ===<br />
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.<br />
<br />
=== Notes about the build process ===<br />
<br />
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.<br />
<br />
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:<br />http://aegidian.org/bb/viewtopic.php?p=42188&highlight=#42188<br />
<br />
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite. Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands. The included Spidermonkey dependency is automatically built as well. For a full list of targets, use 'make -f Makefile help'.<br />
** make -f Makefile debug<br />
** make -f Makefile release<br />
<br />
=== Notes about GNUstep ===<br />
<br />
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent. As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good. The current trunk (gnustep-base1.21.1) appears to also be ok.<br />
<br />
This [http://aegidian.org/bb/viewtopic.php?t=8008&highlight= forum post] details how to build and install gnustep for developing Oolite.<br />
<br />
<br />
[[Category:Oolite]]</div>Another commanderhttps://wiki.alioth.net/index.php?title=File:OODebugConsole2src.oxz&diff=62674File:OODebugConsole2src.oxz2021-02-09T15:56:29Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=Equipment.plist&diff=62125Equipment.plist2021-01-29T08:00:12Z<p>Another commander: /* Notes */</p>
<hr />
<div>== Using Equipment ==<br />
<br />
Player buyable equipment is stored in a file named '''equipment.plist''' that resides in the Config folder of a OXP. You can add equipment by adding arrays to this plist file. Every equipment array is build of an array of entries.<br />
<br />
== Equipment Structure ==<br />
<br />
The following equipment data are read in by Oolite.<br />
<br />
(<br />
(<br />
1,<br />
300,<br />
Missile,<br />
"EQ_MISSILE",<br />
"Faulcon de Lacy HM3 homing missile, fast and accurate when used in conjunction with standard targetting scanners.",<br />
{<br />
"available_to_all" = YES;<br />
}<br />
)<br />
)<br />
<br />
1) The first entry is an integer that determines the technical level from which the equipment can be bought. A level of 99 has a special meaning. Only this value can be changed by script. ''Please note that the number displayed on the system data screen is one higher than the system's tech level, so to make equipment available at a displayed TL:10 and above in game, enter 9 here''.<br />
<br />
Repairs can take place at tech levels one lower than the purchase level, and occasionally equipment will be offered at systems of a slightly lower tech level than the number given here.<br />
<br />
2) The second entry is the costs of the equipment in tenths of a credit.<br />
<br />
3) This is a string that shows the name of the equipment as seen by the player.<br />
<br />
4) This is a string that shows the name of the equipment that is used by scripting. Must start with EQ_ and endings like _MISSILE or _MINE give it a special handling. <br />
<br />
5) This string gives a short description of the item.<br />
<br />
6) This is a dictionary that can contain several special features like:<br />
<br />
{<br />
"available_to_all" = yes;<br />
"available_to_NPCs" = yes;<br />
"available_to_player" = no;<br />
conditions = (<br />
"systemGovernment_number morethan 3" // note: deprecated and should not be used in new code<br />
);<br />
"condition_script" = "myoxp_conditions.js";<br />
"damage_probability" = 1.0;<br />
"display_color" = "whiteColor";<br />
"fast_affinity_defensive" = no;<br />
"fast_affinity_offensive" = no;<br />
"incompatible_with_equipment" = "EQ_FUEL_SCOOPS";<br />
"installation_time" = 86400;<br />
"is_external_store" = no; // is missile or mine and added to pylon.<br />
"portable_between_ships" = yes;<br />
"provides" = ("EQ_CARGO_SCOOPS");<br />
"repair_time" = 3600;<br />
"requires_any_equipment" = (<br />
"EQ_FUEL_SCOOPS",<br />
"EQ_ECM<br />
);<br />
"requires_cargo_space" = 5;<br />
"requires_clean" = yes;<br />
"requires_empty_pylon" = yes;<br />
"requires_equipment" = "EQ_FUEL_SCOOPS";<br />
"requires_free_passenger_berth" = no;<br />
"requires_full_fuel" = no;<br />
"requires_mounted_pylon" = yes;<br />
"requires_not_clean" = yes;<br />
"requires_non_full_fuel" = no;<br />
"script" = "myCustomScript.js";<br />
"script_info" = {<br />
myCustomProperty = 0;<br />
};<br />
"strict_mode_only" = no; // version 1.77 or earlier only<br />
"strict_mode_compatible" = yes; // version 1.77 or earlier only<br />
"visible" = yes; // listed on the F5 screen.<br />
"weapon_info" = {<br />
range = 15000;<br />
energy = 0.5;<br />
damage = 6.0;<br />
recharge_rate = 0.1;<br />
shot_temperature = 3.2;<br />
color = "yellowColor";<br />
threat_assessment = 0.5;<br />
is_mining_laser = 0;<br />
is_turret_laser = 0;<br />
};<br />
}<br />
<br />
Most names will explain themselves. For detailed explanation look at the corresponding values in [[Oolite_JavaScript_Reference:_EquipmentInfo|EquipmentInfo.scriptInfo]]. In this list the empty/mounted pylons are not necessary when the equipment ends on MINE or MISSILE.<br />
<br />
===Notes===<br />
<br />
* Conditions can contain a single string with one condition or an array of condition strings. Conditions are only checked when the equipment would be available by the other criteria. The condition_script option, available from Oolite 1.77 onwards, specifies a Javascript file which controls the conditions for this equipment. The <code>allowAwardEquipment</code> function in that [[Oolite_JavaScript_Reference:_Condition_scripts|condition script]] will then be tested before the equipment is allowed.<br />
<br />
* <code>available_to_all</code> means all ships can buy the item. When not set it is only buyable when the equipment is defined in the [[shipyard.plist]] under optional_equipment. <br />
<br />
* <code>requires_cargo_space</code> is only used to determine a condition to show an item on the list. Until Oolite 1.76 it uses no cargo space when bought, and except for the core game's passenger cabins has a bug which will sometimes cause equipment to mysteriously vanish when reloading a saved game. Starting with Oolite 1.77, this key will use cargo space for user defined equipment. <br />
<br />
* "<code>script_info</code>" is added with test release 1.74. It contains a directory of custom entries that become properties of [[Oolite_JavaScript_Reference:_EquipmentInfo|EquipmentInfo.scriptInfo]]<br />
<br />
* "<code>script</code>" is added with test release 1.75. It contains a name of a script file used by the equipment. Equipment that contains a script is put on a special list. The player than can cycle through that list by pressing "shift-N". (similar as selecting a missile). The primed script is than the active script. Whenever a player now presses "n", the "this.activated()" event handler of the primed equipment is executed.<br />
this.activated = function ()<br />
{<br />
// your code<br />
}<br />
<br />
In testrelease 1.77 the 'b' key is added to primable equipment. Whenever the 'b' is pressed, the "this.mode()" event handler of the currently primed equipment is executed.<br />
this.mode = function ()<br />
{<br />
// your code<br />
}<br />
<br />
* <code>requires_equipment</code>, <code>requires_any_equipment</code>, <code>incompatible_with_equipment</code> can be a single string or an array of strings.<br />
<br />
* "<code>damage_probability</code>" is added in test release 1.77. It is the relative probability that this equipment will be damaged. It is ignored (and always zero) for missiles and mines, and defaults to 1.0 for all other equipment.<br />
<br />
* "<code>display_color</code>" is added in test release 1.85. This value specifies the color to be used for this item on the F3 Equip Ship screen and the F5 Status screen. Any valid color specifier can be used.<br />
<br />
* "<code>fast_affinity_defensive</code>" and "<code>fast_affinity_offensive</code>" are added in 1.79. These keys are ignored unless the equipment has a "script" file. If the equipment has a script file, then if set these keys make the equipment preferentially assigned to the "fast activation" keys ('0' and 'tab' in the default keys). This automatic assignment only happens if the equipment is bought while the current fast equipment assignment is blank (or is for equipment not currently installed). Generally these keys should only be set for equipment which might need to be activated quickly in an emergency.<br />
<br />
* "<code>installation_time</code>" and "<code>repair_time</code>" are added in 1.81. Value is number of seconds. These override the standard 10 minutes plus one second per decicredit time to purchase an equipment item from the F3 screen. If only <code>installation_time</code> is specified, the repair time will be half of that. If only <code>repair_time</code> is specified, the installation time will be the default from the cost.<br />
<br />
* "<code>provides</code>" is added in 1.81, and is an array of equipment keys. This allows OXP equipment to provide some functionality from core equipment (or in theory other OXP equipment though this would need to be managed carefully between the OXPs). For example, a "navigation computer" might have <code>"provides" = ("EQ_DOCK_COMP","EQ_ADVANCED_COMPASS");</code>, and while this equipment was installed the player would get the benefits of those items even if they were not currently fitted. The default value is an empty array, though equipment is always considered to provide its own equipment key. While any string may be added here, only the following items have any in-game effect in the core game:<br />
** "EQ_ECM": 'e' key can be used to trigger an ECM blast<br />
** "EQ_FUEL_SCOOPS": may scoop fuel from a star<br />
** "EQ_CARGO_SCOOPS": may scoop cargo. Note: there is no such core game item, but the core fuel scoops have this in their 'provides' list.<br />
** "EQ_ESCAPE_POD": may eject with 'escape' key. The item providing this feature will be removed on use.<br />
** "EQ_DOCK_COMP": 'c' key may be used to initiate autopilot. If multiple items provide this, all must be damaged or removed for autopiloting to cease.<br />
** "EQ_GAL_DRIVE": may make a galactic jump with 'g' key. The item providing this feature will be removed on use.<br />
** "EQ_CLOAKING_DEVICE": may remain cloaked. Activation of the cloak via the primable equipment mechanism will not be duplicated simply by providing this item.<br />
** "EQ_FUEL_INJECTION": allows the 'i' key to be used for speed boost<br />
** "EQ_SCANNER_SHOW_MISSILE_TARGET": displays the [[Scanner Targeting Enhancement]] features<br />
** "EQ_MULTI_TARGET": allows independent locking of missiles<br />
** "EQ_ADVANCED_COMPASS": allows tracking of beacons and other objects on the compass<br />
** "EQ_ADVANCED_NAVIGATIONAL_ARRAY": allows route planning on the chart screen<br />
** "EQ_TARGET_MEMORY": allows storing and remembering of previous targets<br />
** "EQ_INTEGRATED_TARGETING_SYSTEM": visual tracking of remembered targets. Note that the core [[Integrated Targeting System]] item requires the Scanner Targeting Enhancement and Target Memory items to be installed before it can be bought, and this must be those specific items, not items providing those functions. ''However'', once installed it is sufficient for items providing those functions to be on board for the item to work.<br />
** "EQ_WORMHOLE_SCANNER": allows targeting and scanning of witchspace wormholes<br />
<br />
=== Creating laser weapons ===<br />
'''Note: this is a 1.81 prototype feature and may change significantly before release.'''<br />
<br />
Laser weapons must have a name beginning <code>"EQ_WEAPON_"</code>, and then should have a <code>weapon_info</code> dictionary describing them. This dictionary has the following keys, all of which can be omitted to keep the default value:<br />
* '''range''': The maximum range in metres, default 12500.<br />
* '''energy''': The energy used per shot, default 0.8.<br />
* '''damage''': The damage done to the target per shot, default 15.0.<br />
* '''recharge_rate''': The time to recharge between shots in seconds, default 0.5. A value of 0.1 will appear to be a continuous beam. Values lower than 0.1 are not recommended as they may cause the weapon's power to vary significantly depending on the frame rate.<br />
* '''shot_temperature''': The amount of heat generated per shot, default 7.0. Lasers will not fire at heat of 217.6 or over.<br />
* '''color''': The default colour of the laser, if the ship it is mounted on has not specified a laser colour. Any valid colour specifier can be used. The colour will be made "bright".<br />
* '''threat_assessment''': The effect having this weapon fitted has on the threat assessment level of the ship, default 0.0. The beam laser is 0.5, and the military and thargoid lasers are 1.0 in the core game. Values significantly outside this range may cause unusual AI behaviour.<br />
* '''is_mining_laser''': If true, the weapon will break up asteroids and boulders into smaller fragments. Default false.<br />
* '''is_turret_laser''': If true, the weapon will automatically aim independently of the ship facing like the thargoid laser. Default false. This is likely to give buggy behaviour if put on a player ship.<br />
<br />
In version 1.89, the following weapon properties can be specified in a <code>weapon_info</code> dictionary:<br />
<br />
* '''fx_shot_miss_name''': Sound played when weapon is fired but does not hit anything (laser weapons only).<br />
* '''fx_shot_hit_name''': Sound played when weapon is fired and hits another ship (laser weapons only).<br />
* '''fx_hitplayer_shielded_name''': Sound played when weapon hits the player ship while shields are up.<br />
* '''fx_hitplayer_unshielded_name''': Sound played when weapon hits the player ship while shields are down.<br />
* '''fx_weapon_launch_name''': Sound played when the weapon is launched (missiles and mines only).<br />
<br />
See also: [[equipment-overrides.plist]]<br />
<br />
[[Category:Updated JavaScript features in Oolite 1.81]]<br />
[[Category:Updated JavaScript features in Oolite 1.89]]<br />
[[Category:Oolite]]<br />
[[Category:Oolite scripting]]</div>Another commanderhttps://wiki.alioth.net/index.php?title=File:InsectPicsOnSysDesc.oxz&diff=61985File:InsectPicsOnSysDesc.oxz2021-01-25T19:34:33Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-941.png&diff=61370File:Oolite-941.png2021-01-04T08:08:12Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-934.png&diff=61369File:Oolite-934.png2021-01-04T08:06:35Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=Tionisla_Is_Mars_8k&diff=60493Tionisla Is Mars 8k2020-12-10T21:04:54Z<p>Another commander: /* Download and License */</p>
<hr />
<div>== About ==<br />
<br />
This OXP showcases the improvements on custom planets that were made available since version 1.89. It converts [[Sector1/Tionisla|Tionisla]] to Mars. It uses 8192 x 4096 textures for diffuse and normal maps. This allows for high details on the surface from any distance to the planet. Obviously, with such texture size, it is recommended that you use this OXP on reasonably powerful systems. Intel graphics cards will have a hard time with it.<br />
<br />
<br />
== Gallery ==<br />
{| align=center width=100% style="background: black;"<br />
| [[Image:oolite-515.png |link=http://wiki.alioth.net/img_auth.php/0/06/Oolite-515.png|200px]]<br />
| [[Image:oolite-519.png |link=http://wiki.alioth.net/img_auth.php/c/c7/Oolite-519.png |200px]]<br />
| [[Image:oolite-522.png |link=http://wiki.alioth.net/img_auth.php/3/33/Oolite-522.png |200px]]<br />
| [[Image:oolite-525.png |link=http://wiki.alioth.net/img_auth.php/c/c4/Oolite-525.png |200px]]<br />
|-<br />
| [[Image:oolite-527.png |link=http://wiki.alioth.net/img_auth.php/b/b4/Oolite-527.png |200px]]<br />
| [[Image:oolite-543.png |link=http://wiki.alioth.net/img_auth.php/e/e6/Oolite-543.png |200px]]<br />
| [[Image:oolite-529.png |link=http://wiki.alioth.net/img_auth.php/7/73/Oolite-529.png |200px]]<br />
| [[Image:oolite-546.png |link=http://wiki.alioth.net/img_auth.php/9/9b/Oolite-546.png |200px]]<br />
|}<br />
<br />
<br />
== Changelog ==<br />
v1.0, 10/08/2020: Initial upload.<br />
<br />
<br />
== Credits ==<br />
OXP created by another_commander.<br />
<br />
The diffuse map used is a reprocessed version of a texture originally from [https://www.solarsystemscope.com/textures/ ''Solar System Scope'']. The normal map is a modified version of a texture originally by FarGetaNik of the Celestia community, used under permission (original texture [https://cdn.discordapp.com/attachments/742039459335241758/742040124896051271/mars-normal-8k.png ''here'']). Changes made to original include the addition of an alpha channel, a swap of red and green channels and inversion of original green channel).<br />
<br />
<br />
== Download and License ==<br />
The expansion pack can be downloaded from the in-game Expansion Manager and from [http://wiki.alioth.net/img_auth.php/f/f4/TionislaIsMars8k.oxz ''this link'']. It is licensed under [https://creativecommons.org/licenses/by-nc-sa/2.5/ CC BY-NC-SA 2.5].<br />
<br />
{{Ambience-OXP}}</div>Another commanderhttps://wiki.alioth.net/index.php?title=Zaonce_is_Venus_8k&diff=60492Zaonce is Venus 8k2020-12-10T21:03:51Z<p>Another commander: /* Download and License */</p>
<hr />
<div>== About ==<br />
<br />
This OXP showcases the improvements on custom planets that were made available since version 1.89. It converts [[Sector1/Zaonce|Zaonce]] to Venus. It uses a 8192 x 4096 texture for diffuse, which is built by combining a surface and a cloud texture into one. Obviously, with such texture size, it is recommended that you use this OXP on reasonably powerful systems. Intel graphics cards will have a hard time with it.<br />
<br />
The OXP can be used with Oolite v1.89 and later, but if you run it on v1.91 and later, you will be able to take advantage of the air_density property, which is used to make the planet's atmosphere really thick.<br />
<br />
<br />
== Gallery ==<br />
{| align=center width=100% style="background: black;"<br />
| [[Image:oolite-992.png |link=http://wiki.alioth.net/img_auth.php/4/4a/Oolite-992.png |200px]]<br />
| [[Image:oolite-993.png |link=http://wiki.alioth.net/img_auth.php/c/cb/Oolite-993.png |200px]]<br />
| [[Image:oolite-995.png |link=http://wiki.alioth.net/img_auth.php/5/5e/Oolite-995.png |200px]]<br />
| [[Image:oolite-997.png |link=http://wiki.alioth.net/img_auth.php/f/f0/Oolite-997.png |200px]]<br />
|}<br />
<br />
<br />
== Changelog ==<br />
v1.0, 10/12/2020: Initial upload.<br />
<br />
<br />
== Credits ==<br />
OXP created by another_commander.<br />
<br />
The diffuse map used is a reprocessed version of two Venus textures combined (surface and clouds), originally from [https://www.solarsystemscope.com/textures/ ''Solar System Scope''].<br />
<br />
<br />
== Download and License ==<br />
The expansion pack can be downloaded from the in-game Expansion Manager and from [http://wiki.alioth.net/img_auth.php/5/53/ZaonceIsVenus8k.oxz ''this link'']. It is licensed under [https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0].<br />
<br />
{{Ambience-OXP}}</div>Another commanderhttps://wiki.alioth.net/index.php?title=Zaonce_is_Venus_8k&diff=60491Zaonce is Venus 8k2020-12-10T21:01:11Z<p>Another commander: /* Download and License */</p>
<hr />
<div>== About ==<br />
<br />
This OXP showcases the improvements on custom planets that were made available since version 1.89. It converts [[Sector1/Zaonce|Zaonce]] to Venus. It uses a 8192 x 4096 texture for diffuse, which is built by combining a surface and a cloud texture into one. Obviously, with such texture size, it is recommended that you use this OXP on reasonably powerful systems. Intel graphics cards will have a hard time with it.<br />
<br />
The OXP can be used with Oolite v1.89 and later, but if you run it on v1.91 and later, you will be able to take advantage of the air_density property, which is used to make the planet's atmosphere really thick.<br />
<br />
<br />
== Gallery ==<br />
{| align=center width=100% style="background: black;"<br />
| [[Image:oolite-992.png |link=http://wiki.alioth.net/img_auth.php/4/4a/Oolite-992.png |200px]]<br />
| [[Image:oolite-993.png |link=http://wiki.alioth.net/img_auth.php/c/cb/Oolite-993.png |200px]]<br />
| [[Image:oolite-995.png |link=http://wiki.alioth.net/img_auth.php/5/5e/Oolite-995.png |200px]]<br />
| [[Image:oolite-997.png |link=http://wiki.alioth.net/img_auth.php/f/f0/Oolite-997.png |200px]]<br />
|}<br />
<br />
<br />
== Changelog ==<br />
v1.0, 10/12/2020: Initial upload.<br />
<br />
<br />
== Credits ==<br />
OXP created by another_commander.<br />
<br />
The diffuse map used is a reprocessed version of two Venus textures combined (surface and clouds), originally from [https://www.solarsystemscope.com/textures/ ''Solar System Scope''].<br />
<br />
<br />
== Download and License ==<br />
The expansion pack can be downloaded from the in-game Expansion Manager and from [http://wiki.alioth.net/img_auth.php/5/53/ZaonceIsVenus8k.oxz ''this link'']. It is licensed under [https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 2.5].<br />
<br />
{{Ambience-OXP}}</div>Another commanderhttps://wiki.alioth.net/index.php?title=File:ZaonceIsVenus8k.oxz&diff=60489File:ZaonceIsVenus8k.oxz2020-12-10T20:59:27Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=Zaonce_is_Venus_8k&diff=60487Zaonce is Venus 8k2020-12-10T20:53:58Z<p>Another commander: Created page with "== About == This OXP showcases the improvements on custom planets that were made available since version 1.89. It converts Zaonce to Venus. It uses a 8192..."</p>
<hr />
<div>== About ==<br />
<br />
This OXP showcases the improvements on custom planets that were made available since version 1.89. It converts [[Sector1/Zaonce|Zaonce]] to Venus. It uses a 8192 x 4096 texture for diffuse, which is built by combining a surface and a cloud texture into one. Obviously, with such texture size, it is recommended that you use this OXP on reasonably powerful systems. Intel graphics cards will have a hard time with it.<br />
<br />
The OXP can be used with Oolite v1.89 and later, but if you run it on v1.91 and later, you will be able to take advantage of the air_density property, which is used to make the planet's atmosphere really thick.<br />
<br />
<br />
== Gallery ==<br />
{| align=center width=100% style="background: black;"<br />
| [[Image:oolite-992.png |link=http://wiki.alioth.net/img_auth.php/4/4a/Oolite-992.png |200px]]<br />
| [[Image:oolite-993.png |link=http://wiki.alioth.net/img_auth.php/c/cb/Oolite-993.png |200px]]<br />
| [[Image:oolite-995.png |link=http://wiki.alioth.net/img_auth.php/5/5e/Oolite-995.png |200px]]<br />
| [[Image:oolite-997.png |link=http://wiki.alioth.net/img_auth.php/f/f0/Oolite-997.png |200px]]<br />
|}<br />
<br />
<br />
== Changelog ==<br />
v1.0, 10/12/2020: Initial upload.<br />
<br />
<br />
== Credits ==<br />
OXP created by another_commander.<br />
<br />
The diffuse map used is a reprocessed version of two Venus textures combined (surface and clouds), originally from [https://www.solarsystemscope.com/textures/ ''Solar System Scope''].<br />
<br />
<br />
== Download and License ==<br />
The expansion pack can be downloaded from the in-game Expansion Manager and from [http://wiki.alioth.net/img_auth.php/f/f4/TionislaIsMars8k.oxz ''this link'']. It is licensed under [https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 2.5].<br />
<br />
{{Ambience-OXP}}</div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-997.png&diff=60486File:Oolite-997.png2020-12-10T20:46:04Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-995.png&diff=60485File:Oolite-995.png2020-12-10T20:44:39Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-993.png&diff=60483File:Oolite-993.png2020-12-10T20:43:15Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-992.png&diff=60482File:Oolite-992.png2020-12-10T20:42:04Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-954.png&diff=60016File:Oolite-954.png2020-11-24T19:34:01Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-955.png&diff=60015File:Oolite-955.png2020-11-24T19:32:54Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:AtmDensityExample.png&diff=59868File:AtmDensityExample.png2020-11-22T14:10:11Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-928.png&diff=59812File:Oolite-928.png2020-11-19T17:04:40Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Asp@FPOLave02.png&diff=59507File:Asp@FPOLave02.png2020-11-05T18:22:43Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Asp@FPOLave01.png&diff=59506File:Asp@FPOLave01.png2020-11-05T18:21:21Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-879.png&diff=59497File:Oolite-879.png2020-11-04T11:45:38Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-037.png&diff=59463File:Oolite-037.png2020-10-31T12:01:15Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-849.png&diff=59416File:Oolite-849.png2020-10-23T16:25:34Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-848.png&diff=59415File:Oolite-848.png2020-10-23T16:25:00Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-846.png&diff=59414File:Oolite-846.png2020-10-23T16:22:45Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-844.png&diff=59365File:Oolite-844.png2020-10-15T12:02:48Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-843.png&diff=59364File:Oolite-843.png2020-10-15T12:01:37Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-714.png&diff=59325File:Oolite-714.png2020-10-03T22:30:01Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-672Moon.png&diff=59324File:Oolite-672Moon.png2020-10-03T22:27:56Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-759.png&diff=59323File:Oolite-759.png2020-10-03T22:22:51Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-762.png&diff=59322File:Oolite-762.png2020-10-03T22:21:41Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-000.png&diff=59299File:Oolite-000.png2020-09-26T17:03:48Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-737.png&diff=59294File:Oolite-737.png2020-09-21T15:24:07Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-735.png&diff=59293File:Oolite-735.png2020-09-21T15:23:06Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-732.png&diff=59292File:Oolite-732.png2020-09-21T15:21:55Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-729.png&diff=59291File:Oolite-729.png2020-09-21T15:20:20Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-728.png&diff=59290File:Oolite-728.png2020-09-21T15:19:28Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-726.png&diff=59289File:Oolite-726.png2020-09-21T15:18:38Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-717.png&diff=59269File:Oolite-717.png2020-09-17T21:17:38Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-721.png&diff=59268File:Oolite-721.png2020-09-17T21:15:32Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-722.png&diff=59267File:Oolite-722.png2020-09-17T21:14:40Z<p>Another commander: </p>
<hr />
<div></div>Another commanderhttps://wiki.alioth.net/index.php?title=File:Oolite-724.png&diff=59266File:Oolite-724.png2020-09-17T21:12:51Z<p>Another commander: </p>
<hr />
<div></div>Another commander