Aegidian devlog

From Elite Wiki
Aegidian's developer's log, first entry.

Oolite (progress). "A log of the progress on my traditionally styled space sim game, Oolite", by Aegidian.

The following is a transcription of the developer's log entries between April 2004–October 2006 published on This text is essentially identical to the original, with the addition of a few wikilinks, and indications of since missing images and dead links.

A navigable index of dates is located in the bottom section.



April 7th, 2004

Oolite - WTF? [Apr. 7th, 2004|10:03 am]

[Current Mood | accomplished]

Oolite is a traditionally styled space sim game, written for Mac OS X in Objective C using Cocoa and OpenGL.

It was written as my response to the withdrawal of Elite - The New Kind from the internet. Although inspired by the work of Christian Pinder, following David Braben and Ian Bell, the work is an independant reverse-engineered interpretation of the original game.

The game and source-code will be offered for free under the GNU GPL. As one of my priorities for development was to separate the game engine from the game materials (graphics, models, AI, text-strings and such) I might additionally reserve the right to offer additional game materials (bonus-packs) as shareware.

Questions and queries about the state of development are very welcome, as is anyone who would like a binary for beta-testing (URLs for these will only be made available via email, I won't post them here until a release is ready).

Today's progress: [Apr. 7th, 2004|10:13 am]

Squished a bug or two in the unimplemented parts of buying equipment, which will be the next and final part of the GUI for me to complete.

Tweaked the save/load game interface and the ship-kills to rating routine.

Screenshot of the day: rogue cobras attack with plasma cannon. [image]

April 8th, 2004

Colour [Apr. 8th, 2004|10:09 am]

Keyed the planet colours (land, sea, polar land, polar sea) for procedural texturing into the legacy pseudo-random number generator. Happily, Lave gets a sea with a slight tinge of pinkish/purple.

TODO: - add procedural clouds and cut out the early popping of the atmosphere when flying to/from the planet.

TODO: - add a pauseAI function to the standard AI suite.

Picture of the moment: Lave, a few seconds after launch. [image]

April 14th, 2004

Oooh my head spins... [Apr. 14th, 2004|03:33 pm]

[Current Mood | exhausted]

I've spent too much of the last 48 hours on this.


More gauges (all working), working missiles, working witchspace jumps, improved pirate AI (including the pauseAI directive), atmosphere effects (removing the early 'pop' as you enter the system from witchspace).

Also struggled to deal with memory allocation/deallocation problems as some poorly thought out programming lead to objects that recursively deallocated each other. That really sent my poor synapses into collapse!

Picture of the Day: Approaching Zaonce. [image]

AI [Apr. 14th, 2004|09:10 pm]

[Current Mood | accomplished]

Sort of a FYI update.

I'm using a simple state-machine implementation for ship AI. The state machines are stored as xml property lists:- a dictionary (associative array) of states, each state comprising a further dictionary of responses to messages the state machine can respond to while in that state. The messages 'ENTER' 'EXIT' and 'UPDATE' are standard for each state, and the responses to them occur when the state is entered, left, or the AI is requested to update (currently about 8 times a second). The state machine has a standard state it begins in called 'GLOBAL'.

The responses correspond 1:1 with methods for the ship objects within the game, which made implementing the state machine based AI a piece of cake.

Here's a simple example of this, the AI for a simple homing missile, not in xml but described as an ASCII property list: ( cut for screen width with pre-formatted code )

   "ATTACK_SHIP" = {
       "DESIRED_RANGE_ACHIEVED" = ("setStateTo: EXPLODE"); 
       ENTER = ("setDesiredRangeTo: 20.0", performIntercept); 
       EXIT = (); 
       "TARGET_DESTROYED" = ("setStateTo: EXPLODE"); 
       "TARGET_LOST" = ("setStateTo: EXPLODE"); 
       UPDATE = (); 
   EXPLODE = {
       ENTER = ("setDesiredRangeTo: 250.0", dealEnergyDamageWithinDesiredRange, becomeExplosion); 
       EXIT = (); 
       UPDATE = (); 
   GLOBAL = {
       ENTER = ("setSpeedFactorTo: 1.0", "setStateTo: ATTACK_SHIP"); 
       EXIT = (); 
       UPDATE = (); 

As you can see, this AI never has to respond to an 'UPDATE' message, relying entirely on messages sent to it as a result of its behaviour eg. when it passes within the desired range set for the performIntercept behaviour that method sends the AI the 'DESIRED_RANGE_ACHIEVED' message.

April 15th, 2004

Painting... [Apr. 15th, 2004|02:39 pm]

[Current Mood | artistic]

Programming was sapping my will, so I thought I'd take the opportunity to improve the art.

First off, I'd messed up my original mapping of texture onto the dodecahedron I was using as a sky box, so I grabbed some graph paper and remapped the texture. Which worked up to a point - now the edges of the dodecahedron were all too obvious. It became clear I'd have to replace the stock space background (courtesy of idevgames) with one of my own. I grubbed out my graphics tablet and fired up the Gimp.

Bah. I didn't have time to learn a different interface, no matter how free.

So I dug out Corel Painter and worked from there with an airbrush or two and a mask generated from OmniGraffle for my texture map. The result was a little too bright, but retouching brightness, contrast and sharpness in Graphic Converter did the trick.

I think I'm going to have to do another seven of these, one for each of the galaxies in trad-Elite.

Picture of the day: Space scape background. [image]

April 16th, 2004

Whoof... [Apr. 16th, 2004|04:57 pm]

[Current Mood | chipper]

I was testing programming the laser routines and tidying up stuff when I chanced to laser away a ship upon which I had already launched a missile. Kabloom. We crashed.

Not good, but thinking about it I had a revelation. I was making a mistake when I decided to use absolute references to objects for things like a missile or ship's target, owner, last-aggressor, that sort of thing.

Because I can't check from a simple pointer if the object at that memory location has been deallocated!


This has been causing me many headaches, but there was a simple solution. Keep an index of the objects in the universe referenced by an independent and unique id for each object, updated whenever an object gets added to or removed from the universe. Then I can store that id rather than the pointer for targets, owners etc., and dereference when necessary through the grand index. Thus, instead of a pointer to a block of memory that may be inaccessible, if an object has gone from the universe, a null pointer is returned instead. And I can (and already do) check for null pointers.

Yay! And *kicks brain for not having thought of this earlier*.

Lasers [Apr. 16th, 2004|11:37 pm]

Oh yeah, I'd forgotten how feeble I made those plasma cannon I had as a test weapon. Pulse lasers are far more unforgiving, and now the pirates have missiles too, my test flights aren't always a sure victory. Time to write in the ECM systm.

April 19th, 2004

Minor progress made. [Apr. 19th, 2004|10:26 pm]


ECM, expanded cargo holds, weapon purchasing (TODO: weapon refunds), experiments with the procedural cloud effects (unproductive), added stations and navigation buoys to list of a-la-carte ships, wiped out a few more direct references causing crashes.


Routine to extract base cargo space for a given ship model. Routine to extract base price for a given weapon (for weapon refunds). Left, Right & Rear weapon activation. More a-la-carte ships, routines to place them at suitable locations in space, routines to vary the planet/station/sun locations.

Too tired for a screenshot today.

April 20th, 2004

Wootage [Apr. 20th, 2004|02:09 pm]


  • Weapon refunds (including the dictionary routines).
  • Weapons firing to all four available aspects (Forward, Aft, Port, Starboard).
  • Player base ships added to the ship database.

UPDATE: Added some more screenshots to the website.

Soundclip of the day: ECM activation sound [dead link] (done with SoundBuilder)

April 21st, 2004

Good work [Apr. 21st, 2004|07:31 pm]

[Current Mood | pleased]

Got the intro screens working (the ones that show first your ship, then a selection of other ships from the game).

This prompted me to get the texture-map importing from Meshwork working.

Which lead to further debugging - including getting the reusability of Entity objects up to par, which should lead to more efficient use of objects in future.

Picture of the Day: Star spangled Adder. [image]

April 22nd, 2004

Today, I has been mostly... [Apr. 22nd, 2004|05:29 pm]

[Current Mood | artistic]

Making sure the legal_status of the player works fine. As ever, which of the freely configurable commodities are illegal gets an xml plist.

Then painting cobbling together skins for the Viper, Asp, Anaconda, etc. Some of them work better than others, trying to convey a sense of scale for the larger ships is difficult. Putting a label on's barrel was fun though. [image]

Incidentally, the tools I'm using for this are:

Meshwork, to set the initial texture uv points, a quick window-grab from the 'Display Texture' window (command-shift-4 space-bar mouse-click) then provides a rough outline.

The meshwork model is run through a droplet I made with DropScript which levers a python script to convert the .mesh file to a .dat elite-style file Oolite can read.

Graphic Converter is used to trim the top and bottom off the window grab to cut and paste into...

OmniGraffle: taking the imported texture map as a guide, I then apply custom shapes in a variety of colours and colour gradients. The final composition is then exported as a png for use in Oolite. Possibly getting a further tweak from Graphic Converter.

With the files all in place I check out the ship in Oolite's second intro screen.

For amusement value [Apr. 22nd, 2004|05:54 pm]

An early pic from when I was testing the flight engine in March: [image]

April 23rd, 2004

Changes under the hood [Apr. 23rd, 2004|02:52 pm]

[Current Mood | relieved]

Some stuff was left over from early full-screen OpenGL experiments I was doing, and it seemed to be coming back to bite me with odd unexplained crashes relating to my somewhat customised main runloop. So I canned all that code and replaced it with a simple, old-fashioned GameController object working a timer off the main runloop. Ten minutes work, a few moments fervent prayer, and success. Rar!

April 24th, 2004

Minor progress [Apr. 24th, 2004|11:05 pm]

[Current Mood | tired]

Energy bomb implemented.

Despite my changes to simplify things, there are still some occasional, inexplicable crashes in the main runloop. I'm guessing it's something to do with the timing of when objects get deallocated. Time to bring in the developer power tools...

April 25th, 2004

Rats! [Apr. 25th, 2004|01:07 am]

[Current Mood | annoyed]

A memory leak, and it's not even my fault goshdarnit.

I was using glutSolidSphere to draw the sun and its 4-layered corona. Looks like this implementation of glutSolidSphere mallocs some memory and doesn't clear up nicely afterward. This could be the cause of the intermittent crash. I'll replace it with a simple circle drawing routine, cached in a display list, and see how that affects the memory usage.

UPDATE: Profiling suggests that using the glut routines is a drag. Definitely time to cut my losses on these (at one time convenient) routines and move to my own home baking.

Leak update [Apr. 25th, 2004|10:52 am]

[Current Mood | uplifted]

Yup. That nailed it down nicely.

D'y'know, it felt good to comment out the '#import <OpenGL/glu.h>' and '#import <GLUT/glut.h>' lines too. Makes me feel I've taken a big step away from my early proof-of-concept days with this.

And I got a nice email from Christian Pinder yesterday, encouraging me for my work so far.

That sort of stuff really helps when 1.00 am brings memory leaks to battle.

UPDATE: Intensive testing has shown a great improvement in stability: NO more crashes (yet!) and no whirring from the hard drive as pile upon pile of virtual memory are released when the game is quit. w00t!

Progress crawls on... [Apr. 25th, 2004|08:19 pm]

[Current Mood | listless]

Implemented sun-skimming with the fuel scoops.

Implemented, and then had to über-debug, Entity recycling. Not sure if this is really worth the candle, but it can stay for now.

Pics of the day: Approaching a planet again, four pictures that show the Level-of-Detail code working to generate finer and finer detail on the planet's surface. [image]

April 26th, 2004

[Apr. 26th, 2004|05:02 pm]

Slightly frustrated today. I wanted to get the Escape Capsule routines all working, but couldn't seem to get into the creative groove.

  • Debugged the entity recycling routines further, this time checking the ref-count for the objects to make sure they were on the point of being deallocated when checked in for recycling
  • Skinned and modelled the escape capsules, which are tiny!
  • Killed a bug where missiles were remaining targeted on ships that had already been killed
  • Added escape capsules to other ships (not the player) and have them eject and be collected as slaves, they get the homeAI.plist which flies them slowly to the planet otherwise.

I suppose that's really not bad for a day when I felt like I wasn't getting going. I'll complete the escape sequence tomorrow then.

April 27th, 2004

Abandon ship! [Apr. 27th, 2004|10:12 am]

[Current Mood | accomplished]


Got the player escape capsule launch and dock sequence done.

UPDATE: Also the Galactic Hyperdrive is now done.

With all the main systems in place, I now have to think about creating and maintaining the population of a system. Specifically, I want action to continue while the player is in the space station (which means NOT removing all the other entities while this happens) and to create the great variety of ships and AI's necessary to fill space.

UPDATE++: Gah, whenever I get self congratulatory remind me to check for bugs. One simple retain/release problem in the second intro screen code had me frazzled all afternoon!

Picture of the Day: Whoops. [image]

April 28th, 2004

AI and schtuff... [Apr. 28th, 2004|02:14 pm]

Implemented a routine to dump cargopods one at a time.

Working on the station AI, it's bright enough to ignore getting shot once, but getting shot twice within a certain timeframe will raise its alert level enough to activate the launchPolice routine against the aggressor. It also scans for debris (escape pods, cargo, and later alloys as well) and will send out a scavenging ship if there's none within range.

Also implemented a routine to allow the AI's to switch their own stateMachines, so once a scavenger has filled its hold its AI can switch to the standard dockingAI rather than duplicate the code across several files. I guess I'll be writing a small suite of standard routines for common activities like these.

Progress and testing... [Apr. 28th, 2004|07:00 pm]

Got the station AI working so that it'll launch a Viper at sufficiently naughty attackers.

I also got an email from my first potential alpha/beta/rc tester. In my reply I laid out what I expect from people testing stuff for me and I think it'd be useful to copy it to here.

First off, I'll need to know about the computer(s) you'll be running Oolite on. Oolite is Mac OS X only and uses OpenGL a lot, nevertheless I'd still expect it to run on an old G3 iMac, albeit slowly.

I need to know what machine you have, its processor type (G3, G4 or G5), its speed (400MHz,1.6GHz, whatever), how much memory you have, the version of Mac OS X you are using (10.1, 10.2, 10.3), and ideally the type of graphics board your machine has (GeForce FX 5200 or whathaveyou).

All this information can be found in System Profile by clicking the 'More Info...' button on the 'About This Mac' display from the Apple Menu, and the easiest way to get the information to me is to choose 'Export -> Rich Text...' option from System Profile's 'File' menu (this will take a few seconds) and attach the resulting .rtf file to an email to me.

Next, I'll send you in response to your email telling me about your computer, a URL for the latest version of Oolite, probably as a .dmg file for you to download. This URL will probably be valid for a few days, after I send it, but I can't guarantee it: things are moving fairly swiftly.

Read any 'readMe' file I send with the game. You'd be surprised how many people don't do this. I'm assuming that you know how to play Elite, but Oolite's key layout is a bit different and information about how to play will be in the 'readMe' file.

Run the game. If it doesn't run, let me know. If it crashes, then I'd like to know as much detail about how it crashed as possible. This information is going to be in a crash log located in your home file area at ~/Library/Logs/CrashReporter/Oolite.crash.log, attach this to the email you send me explaining what you were doing in the game when it crashed and I'll be very grateful. If it runs okay, let me know about that too.

Next, if I'm at a particular stage of testing I might have some particular things I want you to do, particular questions about the game that need answering.

At this stage I need general information, particularly what frame rates the game is getting on your system. The FPS (frames per second) is currently displayed at the top left of the screen, if you could let me know the highest rate you get (most likely in the station at the start of a game) and the lowest (most likely viewing a planet close to, or when lots of ships are on-screen). Again email me the info, I won't be annoyed to get lots of emails.

Finally, let me know what you think of the game so far, let me know about things that do and don't work. Some stuff I'll already know about, check the online journal at for what has and hasn't been implemented yet.

Right then. I look forward to getting your email with your computer's set-up and sending you the URL for the very first alpha of Oolite-test in response.

Progress Snapshot [Apr. 28th, 2004|07:27 pm]

What's done:-

Pretty much everything that's in Elite is working now, with the exceptions noted below...

In addition, conversion utilities for converting between .dat files (used by Oolite and some other Elite clones) and .mesh files (used by the lovely Meshwork 3d modelling program) are very usable.

Some additional functions have been added to the control of the players ship (most notably the dump-cargo button).

AI, ship descriptions, planet descriptions and lot more of the game text are all in external files, capable of being augmented or replaced by add-on bundles.

What's incomplete:-

  • Still haven't worked through populating systems with space-craft. Which means not all the models have been textured and tested yet. Instead, the same three evilly equipped pirates lurk just outside the station in each system. This will probably change in the next few days of programming, it's my biggest TODO.
  • Missions are missing. They are hard-coded into the previous versions of Elite and I want to avoid that if possible, so they'll have to be recoded as some form of script, not too difficult but definitely on the back-burner at the moment.

Full screen support: we're currently running at 640x480 in a window. I want to add support for full-screen play in different resolutions.

  • OpenAL: This will replace the current use of NSSound as soon as the game is running with populated systems.

How's work going, when can I play?:-

On a good day I get a few hours of programming done. Most days see some progress. The current state of the application is testable now, so anyone wanting a URL for it should get in touch.

April 29th, 2004

[Apr. 29th, 2004|12:16 am]

Wrote the first ReadMe file, copied the development build and readme file into a disc image. Posted URL to interested parties.


Fixed bug with cursor coordinates not being updated after loading a saved game. Ah well, at least it wasn't a showstopper.

It's a bug-hunt! [Apr. 29th, 2004|10:54 am]

Fixed a crashing bug when ships switch AIs by synchronising the process. This bug is reproducable in oolite-test1 by letting a Viper shoot you dead, whereupon it tries to switch to the dockingAI and crashes.

Ships emerging from the station are now queued so that multiple police ships can be launched.

Ships can be selected by the roles they can play so multiple types or set-ups of police ship (for example) could be selected to be launched.

UPDATE: Also implemented effects on legal_status of shooting ships with the role of 'police', and remembered to put in the 'Right On, Commander' message at every 256 ship kills. Also replaced hard-coded references to the scanner range limit with macros.

Picture of the Day: Oo's been a naughty boy den? [image]

SO very cool! [Apr. 29th, 2004|05:01 pm]

[Current Mood | jubilant]

It's like watching feeding time at the zoo!

I implemented having the stationAI launch scavenger ships when it detects nearby debris. Then to test I took out a Cobra full of food cargo pods and scattered them around. I have a grin so wide the top of my head might fall off if I move too quick.

Picture: An Adder docks after scavenging... [image]

April 30th, 2004

Tweaks [Apr. 30th, 2004|12:37 pm]

Tweaked the Adder's speed and manouvreability. The lollipop sticks of the scanner get a 0.33 alpha value to avoid confusing stick-clutter. Stations don't launch ships when other ships are on approach. Got a compliment for being 'eco-friendly' by having scavengers to clear up space debris.

Today's progress [Apr. 30th, 2004|09:38 pm]

Much more work on the AI subsystem. AI's now stack, so that advanced navigation routines can call upon each other to work out simple courses around obstacles.

Much of this work came from refinements to the traffic-control routines for the space stations. It made no sense to me, in the original Elite, that shuttles would appear in your path while you were on automated approach. To avoid this some simple traffic control has been implemented avoiding the launch of civilian vehicles during the approach of other traffic, and (TODO) aborting and diverting the approach of oncoming traffic if Vipers need to be launched.

It could be argued (by the impatient) that tweaking like this is inessential, however refinements to the AI subsystem and bug-fixes to collision behaviour have directly benefited from this work.

Picture: Interstellar litterbug! [image]


May 1st, 2004

Taking a rest day... [May. 1st, 2004|08:16 pm]

Work on Oolite confined to some art (Boas and Pythons) and some scribbling into notebooks ideas about adding exhaust plumes, and possibly a zoom option for the main viewer.

Picture: Sometimes the graphics engine throws up a beautiful gem of a planet, this is Sobite in Galaxy 2... [image]

May 3rd, 2004

Tomato skins [May. 3rd, 2004|06:04 pm]

Despite swearing off hard work for the weekend, some more progress happened.

Code for stations has been rationalised so that future systems with multiple planets and stations will work okay. This should also let me present Rock-Hermits as a rudimentary sort of space station. And (with gratitude to Jannah) write an expansion script to drop a clapped out Coriolis station into the Diso system.

Also skinned a Cobra Mk 1, while I was bored. Hence the Starsky and Hutch Tribute paintjob: [image]

May 5th, 2004

The statistics of heuristics: [May. 5th, 2004|12:32 am]

Work progressed rapidly this morning:

Entities (ships and stuff) now persist outside the station. Missile targetting now works in all view directions. Ships on approach are auto-docked before the player ship launches. More work was done on ships' basic AI routines to cope with multiple stations or planets.

This afternoon I added timed shuttle services between a planet and its space station, then began work on the hazard-avoidance navigation by having the planet's shuttle always launch from the far side of the planet.


My first few attempts worked up to a point - the point usually being when either my machine settled into an infinite loop, or the shuttle settled into a smouldering crater on the planet.

In the end I had to try new ideas for heuristics to break up and divert the flight around obstacles. My final divide and conquer algorithm triumphed, semi-circumnavigating the globe using only two waypoints and 20 minutes flight-time.


ZZZZZzzzzzzzzzz..... thud!

Score.. [May. 5th, 2004|02:39 pm]

[Current Mood | tired]

Heuristics 3 : Sleep nil.

But the latest routines works well, I'd made some bad assumptions in the previous ones. Now they're resolved it's just a bug-hunt.

Progress Entries [May. 5th, 2004|05:52 pm]

[Current Mood | tired]

Smart navigation routines tested and debugged. This took a blinking age and involved many pages of graph paper plotting out courses as the AI's reported waypoints. The final planet/hazard avoidance routines break the journey from the far side of the planet into a smooth curve with six waypoints.

Shuttle rising from planet AI written.

Shuttle descending to planet AI written.

Timed shuttle services from planet and station working (TODO: load rising shuttle with cheap produce and descending shuttle with expensive imported supplies).

Some refactoring so ship data files are only loaded once per ship type. Some debugging messages in thoroughly tested code commented out.

Picture: Yes, this Adder has come from the other side of the world. [image]

May 6th, 2004

Minor work. [May. 6th, 2004|02:04 pm]

Some further tidying to smart navigation.

Added cargo to shuttles according to their destination.

Revised how the scanner determines if a ship is hostile.

Added salvagable alloy plates thrown out by exploding ships (carbon scoring optional).

May 7th, 2004

Flying planets [May. 7th, 2004|12:25 pm]

Rewrote the set_up_space routines to place planets, suns and spacestations randomly within the system. It works like this: you always exit witchspace with the planet approximately ahead of you. The sun is a fixed distance (in terms of planetary radii) from the planet, as is the station.

There have been knock-on effects in other parts of the code where assumptions were made about these locations, but I think I've got them sorted now.

One major effect is that there's a 50% chance the station will be behind the planet when you arrive in a system. Finding it may require some extra flight. However as these positions are keyed to the pseudo-random number generators they are fixed for each system and can be learned.

May 8th, 2004

Apologies [May. 8th, 2004|02:39 pm]

[Current Mood | stressed]

I'd intended to get oolite-test3 out this Friday. As it was I implementing the population of space with traders, pirates and such and rather overdid things. FPS dropped to under 10, even on my super-fast machine, and some unacceptable waits crept in around exiting stations/witchspace.

I'm reworking the relevant routines now...


Memo to self - unnecessarily crashing several huge cargo ships into the planet will create clouds of debris that takes the processor a lot of time to deal with. D'oh!

May 9th, 2004

oolite @ aegidian . org [May. 9th, 2004|11:19 am]

[Current Mood | angry]

My ISPs at are letting me down dreadfully at the moment and all email to my usual address is bouncing.

I hope to have this resolved today. It's just not good enough!

Progress check. [May. 9th, 2004|04:35 pm]

[Current Mood | accomplished]

Populate space routine working. I was a little confused at some black lines popping up every so often, but these turned out to be laser battles going on in the far distance. I adjusted the viewable distance for lasers accordingly.

I seem to be getting 50FPS even with 35 ships making their individual ways around the system, which is a speed I'm happy with. The testers will have to see how well it works on slower machines.

Pirates scan-for-merchantmen routine debugged (Python flying pirates would attack each other!).

Missiles properly lose target when it moves off the scanner.

Cargo containers are only loaded as necessary, not as routine.

Some extra sanity checking on Station's traffic control.

Extra AIs written and adjusted for traders.

TODO: maintain the number of traders in the system. Have traders leave the station and warp out. Have traders warp into the system. Add bounty hunters and cop patrols to the population.

Picture of the day: Eclipse. [image]

Post test3 bug-check [May. 9th, 2004|07:02 pm]

Okay, pirates now have appropriate bounties set for them. Whoops.

May 10th, 2004

Post test3 feedback... [May. 10th, 2004|11:27 am]

[Current Mood | calm]

  • Laser entities have been adjusted to be properly invisible at long ranges (instead of showing up as strange flashing black lines).
  • A similar tweak has marginally improved the appearance of the space-dust effect.
  • The numbers of traders/pirates/law ships have been allowed to randomly vary.
  • Trader AI adjusted to allow them to retaliate when attacked.

  • still down. still unresponsive. Rats!

Grrrrrrrrr... [May. 10th, 2004|04:59 pm]

[Current Mood | aggravated]

Re: Email to bouncing.

Despite a detailed request to their sales team to note my change of address and email, closed down because of outstanding invoices - emailed to my old yahoo account (inactive for over two years!). I finally got through to them today and gave them bloody hell for it, but was persuaded to give them my credit-card details for renewal too. Email should return shortly.

May 11th, 2004

Today [May. 11th, 2004|08:05 pm]

[Current Mood | relaxed]

I've mostly been playing and tweaking while waiting for to return (it hasn't yet).

Added the Worm and Transporter ships to the lists of available shuttles. And played with the laser line entities until they behaved to my satisfaction. Also removed more debugging output (from the recycle routines). Still have to add asteroids, rock hermits, bounty hunters and galcop patrols, so still no illegal mining yet.

May 12th, 2004

This morning's work: [May. 12th, 2004|12:03 pm]

Implemented docking-abort-all at station viper launch.

Ceased to keep universal references for particle entities (no point in keeping target id's for things that can't be targetted, removes a lot of book-keeping).

Added regular launching of traders en-route to other systems from stations. (TODO: when they warp out have other traders warp in, witnessing one means the other won't be witnessed and this will maintain a balance among the ships in-system).

Adjusted atmospheric LoD to keep pace with planet LoD, avoiding multiple 'blinks' as we go from one LoD to the next.

Sanity checked cargo_flag on scooping canisters.

Increased the blur sprite's resolution 8 fold (from 32x32 to 256x256 for less-blocky explosifications).

Increased the specularity of the sea. Decreased the range at which ships can appear hostile.

UPDATE: Picture of the day: Biramabi, Galaxy 1. [image]

May 13th, 2004

A morning's work [May. 13th, 2004|11:40 am]

Specular experiment deemed a failure, although the specular highlight on the planet seas looked great the specular shadows created at the same time showed up the granularity of the planet model. Not good. Hey Ho.

Fixed a bug where the sun wasn't mass locking hyperspeed.

Revised the lasers again. Now they're drawn as two quads (effectively a beam .5m wide and 10km long), with no culling and in an emissive only material, this looks way better and deals with ALL the distance problems I was having.

Pretty happy with the random encounters the space populating routines are throwing up. It's nice to watch distant battles and see sudden clouds of debris appear. The interactions between AIs looks good.

Textured and added the gecko, couldn't get the texture quite like the manual illustrations, but close!


  • Fixed a bug where salvageable alloys were being identified as commodity type -1 rather than as Alloys.
  • Beefed up some of the ships, adding more energy, faster energy recharging and heavier-energy-delivery lasers while trying to remain within the spirit of the ship descriptions in the manuals. I felt I wasn't getting enough of a combat challenge.
  • Scaled up the scanner by 25% and increased its resolution.

Picture of the day: Gecko, echo echo! [image]

Bouncing Boas! [May. 13th, 2004|07:03 pm]

Yikes, watching some traders come in I realised that some ships are simply too big to dock at the stations, even with scaling the stations to 1km across.

Now I'm going to have to write something far more complex: Parking a large cargo-carrier close to a station and having shuttles perform the cargo transfers!


  • In addition I discovered the old plasma cannon weren't working properly. They've been eliminated for NPC ships, being replaced with pulse or beam lasers.
  • Fixed bug where captured escape craft yielded Alloys rather than Slaves.

May 14th, 2004

And hurrah! [May. 14th, 2004|02:02 pm]

[Current Mood | relieved] is back online!

Implemented the bounty hunters and police patrols now.

Added an interceptAI designed for reuse across other AIs.

Debugged AI stacking as a consequence, there was a retain/release problem with restoring a previous statemachine.

If destroying a police ship earns you 64 points worth of illegality, what amount should I assign for merely shooting at one: 64 points for attempted custodicide!

Picture of the day: Leestian coppers ahoy! [image]

post test4 tweaks [May. 14th, 2004|05:53 pm]

This next week, in addition to bug-fixing, I'm giving time to adding little effects: engine exhausts, witchspace entry/exit displays, and tweaks to the main game engine.

First off is the implementation of smooth shaded models for objects like asteroids (done).


And I'll probably do the Fer-de-Lance model too.

May 15th, 2004

[May. 15th, 2004|11:15 am]

  • Did the Fer-de-Lance.
  • Fixed a bug where enemy ECM wasn't triggering the appropriate noise.
  • Chatted more about Oolite on a.f.e

May 17th, 2004

Monday, monday [May. 17th, 2004|06:27 pm]

[Current Mood | hot]

Added the krait this weekend, and more rocks for when mining gets implemented.

Worked today mostly on making engine exhaust flares look right. This has taken a fair bit of fiddling with colors and alpha values, but I think I'm mostly there. Next I have to find a neat way to add engine flare positions and shapes into the ship database.

May 18th, 2004

Oh dear, he's getting self-congratulatory again! [May. 18th, 2004|12:27 pm]

[Current Mood | accomplished]

Implemented exhausts for all the ships I've done so far. Some fiddling and tweaking was necessary to match up the exhaust flares with the engines drawn in the textures (which in turn were based on the bits from the old models which indicated engines).

The flares' colour and size are affected by the throttle of the ship and, in addition, as ships are damaged their engines begin to flicker and change colour.

I have to admit, this looks pretty damn cool now.

Plus, now it's easier to track your missiles by following their large exhaust plume.

UPDATE: Attacked vessels now send out distress calls to nearby bounty hunters and police ships, which they respond to if they're not engaged in combat elsewhere.

UPDATE2: Adjusted the ECM system, which now kills missiles in an expanding radius from the triggering point. This uses a temporary entity, effectively an ECM-Mine to do so.

UPDATE3: I am a doofus. Finally implemented data cacheing through the obvious use of Class objects. D'uh.

UPDATE4: Definitely a doofus. Found memory problems lurking in lots of ShipEntity AI behaviours, closed them down, then managed to have ships actually notice their targets blowing up rather than having them be told about it by the universe, which kinda saved a lot of code!

Pictures of the day: Looking at the rear ends of things... [3 images]

May 19th, 2004

Cruft removal [May. 19th, 2004|12:43 pm]

Spent some time removing old code that was inactive from the project. Tweaked the AIs some more and played lots - in particular observing ai-on-ai interactions.

Later I spent some time looking at how to make the game run full-screen, which is going to be an interesting exercise. My first major problem is how to present an interface for choosing a full-screen mode and then switching between full-screen and windowed modes.

Further tweakage... [May. 19th, 2004|06:21 pm]

Removed some code from my custom OpenGLView that was never being called.

Had the station consider ships in the launch queue while deciding if to launch scavengers.

Reviewing code for the explosions and laser shots to encourage the use of more colour.

May 20th, 2004

I see you baby, shaking that Asp... [May. 20th, 2004|10:22 am] [Current Mood | cheerful]

More work on the approach to going full-screen. Tested that the graphics engine could cope with views in different resolutions (it seemed remarkably robust), and added the necessary controls to the menu and tidied a lot of code in my game controller and OpenGLView objects.

I also added new, more cheerful, buying and selling confirmation sounds.

Implemented a neat way of controlling ships' laser color from the ship database, I supply the key: laser_color with the value:equal to one of NSColor's factory methods (redColor, greenColor, magentaColor etc).

Added the Sidewinder, Mamba and the Moray, three more pirates to shoot down. Only fourthree ships to go now and the initial ship list will be complete.

UPDATE: Added the orbital shuttle - just the thargoid ships to go now. Then to write the orbital mining and witchspace encounters.

Caught a bug in the pirate AI where if pipped to scooping up loot, a ship would go into an infinite loop (both the programming glitch and the manouvre).

Set up a subdomain at for Oolite's eventual homepage, and uploaded a bunch of 3dmf format models (you'll need Quesa) for folks to have fun with.

Pictures of the day: Moray mince, Moray mince, too good to hurry mince... Continuing to add code to support full-screen play.

May 21st, 2004

Getting there... [May. 21st, 2004|11:13 am]

[Current Mood | work-avoidant]

Still slowly adding code to support switching to full-screen, the resolution and refresh selector is now working on the options screen, now I have to do the actual switch to running full-screen.

I don't know if I'll have fullscreen done in time for version 1.0a5, but at least you'll have all my new pretty graphics to play with.

Configured a phpBB bulletin board for Oolite on my site and, as part of general work avoidance, produced a bunch of oolite ship icons for it.

UPDATE: released Oolite v0.1a5 publicly for testing. After all, how can I avoid work if I don't have umpty-dozen emails asking for a Windows version to answer?!

And relax... [May. 21st, 2004|07:10 pm]

Switching into and out of full-screen is working (almost). It nicely dives back into windowed mode to access the OS's load and save windows. What it doesn't do yet (because I haven't coded it yet) is switch resolutions.

This has been a hard grind. I expect to have it all neat and tidy by Wednesday. Now to relax, have a drink, and curl up with my girl for the night.

UPDATE: The cat threw up all over the bed, the girlfriend has the remaining clean covers, so I returned to the computer.

Resolution switching works now too! And (bonus) speed is up significantly.

Now I need to update the graphics: some things just don't work that well at the increased scale. In particular my skybox is too low-res and the scanner needs better lollipops at the higher resolutions.

May 23rd, 2004

Update... [May. 23rd, 2004|11:05 pm]

Refigured the planet subdivision thresholds to work across a variety of screen resolutions.

Slowed traders down a little to avoid lengthy waits while you overtake them.

Added and debugged access to market prices while in flight.

Thanks to asrana for her help as an Elite newbie in testing today.

May 24th, 2004

More... [May. 24th, 2004|03:42 pm]

[Current Mood | blahblah]

Allowed apple-Q (quit) and apple-F (switch out of full-screen) commands from full-screen mode.

Cross-hairs are now drawn rather than pasted as a picture.

Extended the station's aegis, so it appears sooner.

Thargoid model done and textured, although I'm not wildly happy with it yet.

May 25th, 2004

Up close and personal [May. 25th, 2004|02:21 pm]

Rewrote some of the collision detection routines to allow for better collision detection (comparing relative bounding boxes rather than bounding box vs bounding sphere). This means laser fire will have to be somewhat more accurate in future!. Updated missile targetting to match, which will hopefully eliminate the missile-targetting-missile bug.

Testing shows this allows much closer manouvreing, whee!

Collision detection overview:

  • 1. Compare whether entities can collide.
  • 2. Compare bounding spheres.
  • 3. Compare relative bounding boxes.
  • 4. Compare convex hulls (not implemented, probably too much detail for this round).

UPDATE: Improved the Thargoid Warship model a little by increasing the poly count.

May 26th, 2004

Resting [May. 26th, 2004|06:56 pm] Pretty much been taking today as a rest day, but I answered a post of JonnyCuba's on the bulletin board about modding Oolite that might be of interest:-

Skinning Ships in Oolite [Deleted BB thread link]

Conflict resolution [May. 26th, 2004|10:55 pm]

[Current Mood | tired]

Added scavenging for cargo pods to the AI for bounty hunter behaviour post combat.

Tested full-screen at resolutions from 640x480 up to 1600x1200, usually with the FPS maxing out at the screen refresh rate on my 2x1.8 G5, but dropping to 44 FPS at 1600x1200 with 40 or so objects in view. These figures bode very well for rates on lesser machines.

There have been fewer screenshots of late because of all the work occuring full-screen. Must rectify that soon.

In other news, I managed (eventually, after wrangling with recalcitrant servers) to download and install v1.2 of xtools, which may improve my workflow, minimally.

May 27th, 2004

Bug hunting again. [May. 27th, 2004|05:04 pm]

[Current Mood | mellow]

More debugging on the full-screen switching, which happened to swich back and forth too fast if the resolution chosen was your current screen resolution. Fixed by discarding events and resetting the 'pressed-keys' array on entering fullscreen.

Added some more sound feedback to the gui screens. Hopefully not too irritating.

Finally nailed the missile-targetting-missile bug down to a missing line in the routine to calculate collision radii, this also cures the missile-that-explodes-into-70-pieces-of-alloy problem.

Pictures of the day: That new Thargoid skin...

May 28th, 2004

Post Alpha Six Posting [May. 28th, 2004|04:46 pm]

[Current Mood | thirsty]

Just a reminder, please either email your comments and details to me. Or post them to the relevant forum of the bulletin board.

If you're new to the way I like to run alpha testing, please read this.

Got the station AI working so that it'll launch a Viper at sufficiently naughty attackers.

I also got an email from my first potential alpha/beta/rc tester. In my reply I laid out what I expect from people testing stuff for me and I think it'd be useful to copy it to here.

First off, I'll need to know about the computer(s) you'll be running Oolite on. Oolite is Mac OS X only and uses OpenGL a lot, nevertheless I'd still expect it to run on an old G3 iMac, albeit slowly.

I need to know what machine you have, its processor type (G3, G4 or G5), its speed (400MHz,1.6GHz, whatever), how much memory you have, the version of Mac OS X you are using (10.1, 10.2, 10.3), and ideally the type of graphics board your machine has (GeForce FX 5200 or whathaveyou).

All this information can be found in System Profile by clicking the 'More Info...' button on the 'About This Mac' display from the Apple Menu, and the easiest way to get the information to me is to choose 'Export -> Rich Text...' option from System Profile's 'File' menu (this will take a few seconds) and attach the resulting .rtf file to an email to me.

Next, I'll send you in response to your email telling me about your computer, a URL for the latest version of Oolite, probably as a .dmg file for you to download. This URL will probably be valid for a few days, after I send it, but I can't guarantee it: things are moving fairly swiftly.

Read any 'readMe' file I send with the game. You'd be surprised how many people don't do this. I'm assuming that you know how to play Elite, but Oolite's key layout is a bit different and information about how to play will be in the 'readMe' file.

Run the game. If it doesn't run, let me know. If it crashes, then I'd like to know as much detail about how it crashed as possible. This information is going to be in a crash log located in your home file area at ~/Library/Logs/CrashReporter/Oolite.crash.log, attach this to the email you send me explaining what you were doing in the game when it crashed and I'll be very grateful. If it runs okay, let me know about that too.

Next, if I'm at a particular stage of testing I might have some particular things I want you to do, particular questions about the game that need answering.

At this stage I need general information, particularly what frame rates the game is getting on your system. The FPS (frames per second) is currently displayed at the top left of the screen, if you could let me know the highest rate you get (most likely in the station at the start of a game) and the lowest (most likely viewing a planet close to, or when lots of ships are on-screen). Again email me the info, I won't be annoyed to get lots of emails.

Finally, let me know what you think of the game so far, let me know about things that do and don't work. Some stuff I'll already know about, check the online journal at for what has and hasn't been implemented yet.

Right then. I look forward to getting your email with your computer's set-up and sending you the URL for the very first alpha of Oolite-test in response.

Next week's plan is to tackle asteroids, mining, thargoids and witchspace.

The week after, I'd like to get the mission scripting working.

Then I'll concentrate on fine-tuning, de-bugging, and coding for add-on packs.

For the end of June I'd like to be at a point where I can do a v1.0 release.

May 29th, 2004

Thargoids... [May. 29th, 2004|07:04 am]

Added the Tharglet ship, so that's all of them now, except for the Constrictor from the missions.

Also added the tharglet and thargoid AIs and support for them in the main ShipEntity behaviours.

Now I have to add witchspace and the witchspace cheat, (I favour the maximum-climb as you go to warp version).

May 30th, 2004

Initial response to Alpha Six bug reports. [May. 30th, 2004|03:41 pm]

Flash of screen garbage at start up, fixed. Thanks Nigel.

Vertical distortion on map screens, fixed. Again, thanks Nigel.

Default full-screen mode now chosen to be compatible with your display (which prevented switching to full-screen if you hadn't chosen a display mode and your display could not support 640x480 at 75Hz). Thanks Ian.

Big Pics [May. 30th, 2004|08:44 pm]

[Current Mood | accomplished]

[Current Music | Sonic Mayhem - Pressure Zone]

Fixed a bug where some multiple explosions would crash the game.

Added the ability to take screenshots:

Picture of the day: Leesti (1600x1200 image!) [image]

May 31st, 2004

Tweaking... [May. 31st, 2004|06:42 pm]

Adjusted the skybox textures and colors, which is now suited to higher resolutions and also now varies slightly from system to system.

Begone distracting green blur!

Picture of the day: When Asp and Cobra Meet (1600x1200)... [image]


June 1st, 2004

"I'm being attacked by crusty pie dishes!" [Jun. 1st, 2004|01:41 am]

Added the forced and random witchspace misjumps. And had to debug the laser firing routines as a result - they were causing the Tharg's to go translucent, scary!

While scooping up Alien Items, another bug became apparent, one I thought I had noticed when earlier collecting escape pods: the relevant cargo in the ship's manifest wasn't being updated properly. That needed a two line fix.

Then I went and altered the routines determining when ships fire missiles or tharglets, just to make things slightly less predictable.

UPDATE: Fixed a crashing bug in the snap-shot code which was reading one line past the buffer for each color. Whoops!

UPDATE: Implemented launching a previously saved game by double-clicking or opening the saved game file.

Sleepy now, aegidian go ZZZzzzzzz.

Wow! [Jun. 1st, 2004|03:34 pm]

I'm in the process of adding asteroid mining as the Thargoid menace is now pretty much ready.

Speaking of which I just witnessed a battle between a Thargoid warship and SIX Viper patrol boats. They got the buzzy little bugs eventually!

Picture of the day: Three in a row, (1600x1200)... [image]

Breaking Rocks [Jun. 1st, 2004|06:59 pm]

[Current Mood | accomplished]

For pleasure and profit, asteroid mining is now implemented. I had to fix the splinter model (was inside out), and debug the scanForOffenders routine used by bounty hunters and police ships so that they didn't just attack every asteroid they saw.

That's all the population of a system sorted now, with the exception of rock-hermits, colony ships and special mission vehicles.

Yay. Now I go to eat Anniversary Bolognese!

June 2nd, 2004

Onwards... [Jun. 2nd, 2004|02:39 pm]

[Current Music | Melanie C - Lose Myself In You]

Fixed a bug where scooped up goods could change their contents mysteriously during flight (containers were being recycled while they were in the hold).

Fixed a bug where scooped escape pods registered as Alloys rather than Slaves.

Fixed a targetting bug where a target directly behind an aggressor was being considered as on-target.

Tidied up the cargo scooping routines.

Added a variety of asteroid, boulder and splinter models. And modelled a rock-hermit for later use, *Hehe*.

UPDATE: Fixed a dumb bug where weapons on facings other than front were broken.

June 3rd, 2004

This week's goals met! [Jun. 3rd, 2004|02:07 pm]

[Current Mood | accomplished]

Fixed a bug where accelerating while at hyperspeed caused an instant drop to normal maximum speed.

Added ring special effects to big craft explosions and for witchspace entry and exit. Which, by the way, look SO good!

Traders and pirates exiting a system are now matched by similar ships entering the system. Part of the code for that wil help towards the mission scripting (namely having ships appear under 'trigger' circumstances).

Picture: When piloting your Adder, you should be cautious of tailgaters!

June 4th, 2004

Alpha Seven [Jun. 4th, 2004|02:58 pm]

[Current Mood | rushedrushed]

At this stage, all that's missing are the missions and umpty-thousand hours of debugging...

Available here: [dead link]

June 6th, 2004

Oog Texture hell (post Alpha 7) [Jun. 6th, 2004|12:20 am]

As some (8Mb) graphics cards are having problems with the 1024x1024 background image for starfields, I redesigned the starfield to sit on an icosahedron rather than a dodecahedron and reduced the starfield image size to 512x512 for the next release. With luck, this should nail it. (registration with the bulletin board required to access the download link)

New Sky Thinking [Jun. 6th, 2004|02:39 pm]

After some suggestions from [dead link] I've replaced the sky box in favour of painting in each star texture separately. This should save a fair bit of memory in the main app and make things run a bit nicer for those with less powerful graphics cards.

June 7th, 2004

Tweaks [Jun. 7th, 2004|01:00 pm]

Made some changes to the AI base class while I try to get my head right to work on the scripting.

ALSO: Increased the size of the Alloy flotsam by x2 and duplicated the working of the function keys on the ordinary number keys (for iBook/PowerBook users).

June 8th, 2004

Too darned hot. [Jun. 8th, 2004|12:41 pm]

[Current Mood | hot]

It's too hot to think, let alone work today. Sorry folks, no progress today.

UPDATE: Spoke too soon. Prompted by Nigel I managed a few lines of code that mean that ships now jink and twist as they try to get away from their pursuers.

June 9th, 2004

Slow, slow, slow [Jun. 9th, 2004|01:57 pm]

Still mentally churning the scripting questions. Looks like there might have to be an Alpha 7.5 in the interim.

In the meantime, some graphics changes: the space dust gets smaller and more colourful and the messages now scroll up the screen if further messages come in to avoid losing info.

A small bug-fix in the collision/scraping damage routines avoids blowing stuff up several times for each collision. Collision damage has also been increased way up from its debugging levels, ships are no longer effectively indestructible in collisions.

June 10th, 2004

This week's goal unmet, but I'm not disheartened. [Jun. 10th, 2004|08:25 pm]

[Current Mood | thirsty]

Well, I wanted to work up the mission scripting, but it's been too hot to think as hard as that.

I'm satisfied with the progress made from Alpha 7 to Alpha 7.5 though, a large number of minor problems have been ironed out, and I'm expecting my brain to be a bit more refreshed and ready when I get back from my little holiday on Tuesday.

See you on the flipside!

Picture of the week: Dogging a Krait during combat AI testing [image]

June 15th, 2004

Back chasing scripting: resource management [Jun. 15th, 2004|12:33 pm]

I realised I had to do some work on resource management as part of scripting so this morning I've refactored resource handling to cover loading all materials (plists, sounds, images, model files).

This enables Oolite to search a variety of paths for these files, and can allow files to get merged or replaced according to their placement.

By default Oolite searches within its application bundle first looking for files in then it will search named subfolders if they are relevant (for example, Resources/Models, Resources/AIs, Resources/Textures, Resources/Images, Resources/Sounds) then it will search in any folder named 'AddOns' located in the same folder as the game application, then any relevant subfolders (eg. AddOns/Models).

Later, when I experiment with expansion packs, I'll let it check inside any folders it finds within 'AddOns' that have an extension like '.oolite_expansion_pack' or '.oxp'.

UPDATE: It now also searches within any folders (and named subfolders) within 'AddOns' that have an extension of '.oolite_expansion_pack' or '.oxp'.

June 16th, 2004

Scripting - a long haul [Jun. 16th, 2004|04:19 pm]

[Current Mood | devious]

The basic design is set now: a plist consisting of dictionaries (one per mission) of arrays of couplets of a 'conditions' array and a 'do' array.

If all the items in the 'conditions' array are met, the actions in the 'do' array (which either correspond to PlayerEntity method selectors, or are further 'conditions':'do' couplets) are called.

Thus the constrictor mission begins like this:

   "constrictor_hunt" = (
           conditions = (
               "status_string equal STATUS_DOCKED", 
               "galaxy_number lessthan 2", 
               "mission_conhunt undefined", 
               "score_number greaterthan 255"
           do = (
               "showShipModel: constrictor", 
               "addMissionText: constrictor_hunt_brief1", 
                   conditions = ("galaxy_number equal 0"); 
                   do = ("addMissionText: constrictor_hunt_brief1a"); 
                   conditions = ("galaxy_number equal 1"); 
                   do = ("addMissionText: constrictor_hunt_brief1b"); 
               "set: mission_conhunt 1"

I've begun adding this to the PlayerEntity implementation.

Tweaks: • I removed the FPS display, setting shift-F as the toggle to display/hide it in future. • I made some crude optimisations to the planet procedural subdivision routines.

UPDATE: Fixed a graphics glitch where newly launched ships caused a momentary blip on the scanner.

June 17th, 2004

Getting there [Jun. 17th, 2004|07:17 pm]

[Current Mood | determined]

Good progress on adding missions today, many additions to PlayerEntity including the mission briefing screen and the means to add text and display objects on it from the given scripts.

This is proving to be a fairly big deal to get done, and slow to test to boot.

I do hope no-one's getting too impatient for Alpha 8!

June 18th, 2004

Missions: [Jun. 18th, 2004|08:41 am]

Working on them, honestly!

UPDATE: Added launch_actions and death_actions to the ships' dictionaries. These will be used to set script variables and do other things when certain ships are launched or destroyed.

FURTHER UPDATE: Much more work added, still more needed, but that's it for today. I'm knocking off!

YET FURTHER UPDATE: Okay, so I couldn't let it lie. Alpha 8 is now available, visit the bulletin board for the download link.

Evidence of the week: Carruthers sez... [image]

June 21st, 2004

Not today, Josephine! [Jun. 21st, 2004|11:54 am]

[Current Mood | avoidant]

Yesterday I took five minutes to experiment with having the in-flight messages spoken by the speech synthesizer, it's pretty cool, but I soon had to add an OFF switch!

Today I have been mostly updating JewelToy as a result of a request for and with a better Japanese localisation. I'll get back to work on Oolite tomorrow.

White Knight and Space Ship One are away! [Jun. 21st, 2004|02:51 pm]

Oh yeah, and good luck Mike Melvill and all trying for space today!

Rum-tumpty-Tum-DUM! [Jun. 21st, 2004|05:55 pm]

[Current Mood | musical]

Implemented the code to play the Oolite Theme Music™ on the Intro and Mission screens.

The Oolite Theme music is currently being polished by the altogether wonderful Nigel, who kindly provided me with an early snapshot of the music that I could use for testing.

June 22nd, 2004

Kapow. [Jun. 22nd, 2004|05:15 pm]

Nailed the mission ship display bug.

June 24th, 2004

Rock hermits [Jun. 24th, 2004|10:45 am]

[Current Mood | blahblah]

I've been working on the rock hermits.

Because I've implemented them as mini-space stations there's been a few tweaks I had to make to stations in general to accomodate having more than one in a system.

For the time being, although you can dock with rock hermit asteroids, you can't do anything there!

Picture of the week: Rock hermit launches a Cobra III. [image]

June 25th, 2004

"My ghu! It's full of rocks" [Jun. 25th, 2004|11:36 am]

Still tweaking the populateSpace routines. Visiting Oninriar (far galactic NE of chart 3), it's full of (46) asteroids and (7) rock-hermits!

I think I'll turn the chances of rocks down a bit...

Relevent Picture: Spotty [image]

June 26th, 2004

Tweakage [Jun. 26th, 2004|04:34 pm]

Much tweaking going on adding to populateSpace.

A rewrite of the station detection systems so that the station becomes the compass target as you approach close to the planet (within 3.0 planetary radii) and the station aegis symbol (S) appears when within communication range of the station.

Pirates now also prefer player craft when scanning for nearby targets.

More speech translation: Fer-de-lance gets spoken as 'Fairdehlauns'!

Final version of music included.

TODO: Rewrite missions and incorporate them into the main app bundle before alpha 9 on Monday.

June 27th, 2004

I saw a mouse. Where? There on the stair... [Jun. 27th, 2004|05:51 pm]

[Current Mood | blahblah]

Added mouse control. Primarily because I know people are going to ask for it, I don't like it myself but there you go.

Also noted an occasional bug where the engine believes a key is being pressed when it has been released. One workaround is to switch between full-screen and windowed mode and then back again. This is what comes of not wanting to take a month to implement HID code in Cocoa. Maybe for version 1.1?

UPDATE: Fixed a bug in auto-docking where you would be auto-docked with a rock-hermit if it happened to be closer to you than the coriolis station. Thanks to asrana, whose testing turned this one up.

June 28th, 2004 problems [Jun. 28th, 2004|07:58 am]

I've noticed the site's been unreachable at times this past weekend (and is unreachable as I write, 8.00am BST London).

Although we're close to our bandwidth limit this month due to the enthusiastic response to a new version of my other game JewelToy, Name-Hog's other sites are also down, which makes me suspect a larger problem...

Latest... [Jun. 28th, 2004|11:01 am]

Added more scriptable methods:

- (void) setLegalStatus:(NSString *)valueString;
- (void) awardCredits:(NSString *)valueString;
- (void) awardEquipment:(NSString *)equipString;  //eg. EQ_NAVAL_ENERGY_UNIT
- (void) messageShipAIs:(NSString *)roles_message;
- (void) addShips:(NSString *)roles_number;
- (void) set:(NSString *)value;
- (void) increment:(NSString *)missionVariableString;
- (void) decrement:(NSString *)missionVariableString;
- (void) checkForShips: (NSString *)roleString;
- (void) resetScriptTimer;
- (void) addMissionText: (NSString *)textKey;
- (void) showShipModel: (NSString *)shipKey;

Restored the constrictor mission to its proper length and beefed up the constrictor's shields to match the mission profile. Then rolled the mission into the main package bundle so I can begin again with the thargoid mission as an external pack (TODO for Beta 1.0).

Rewrote the code dealing with energy units which necessitated a change in the saved game file.Old files should still work and will automagically update to the new system.

Added the Blue Danube, but it doesn't play during docking yet (TODO for Beta 1.0)

Alpha Nine [Jun. 28th, 2004|01:51 pm]

Available here.

That's probably the last Alpha. Pretty much everything I want to put in the first release version is in there now (barring the Thargoid mission and the Blue Danube).

Next release will be 1.0 (Beta), no doubt swiftly followed by 1.01, 1.02, etc. until all the buglets are ironed out. I'll have to sort out the source releases too!

June 29th, 2004

Ook [Jun. 29th, 2004|12:45 pm]

Rewrote, with some difficulty, market price generation routines to facilitate trading in-system between rock-hermit bases and the main station.

Each type of station has to have their own list of price/economy information, so that rock-hermits, for example, will have little to sell except for cheap minerals and gemstones.

UPDATE: Whoah!

That lead to a bumper update of the trading system, with stations now maintaining their own local economies instead of a system wide economy attached to the player.

Much code has been chopped!

This also means that space becomes live (with NPC ships busy about their business) from the instant the game is fully loaded.


That also lead to some more rethinking, leading to adding separate 'mask' and 'eco-adjust' values for commodities' price and quantity. This lets me eliminate the special pleading for Alien items from my code and instead place a base-quantity of zero and mask-quantity and eco-adjust-quantity values of zero into the commodities data. Hurrah!

Searching.... [Jun. 29th, 2004|10:13 pm]

Added a search function to the long-range chart (really, this was essential to the missions, so I had to do it).

Since you're typing away on that screen it made no sense for lasers to fire or drives to be triggered by you pressing the relevant keys, so they are disabled except for typing while you're viewing the long-range chart screen. Pilot beware!

June 30th, 2004

Ah. [Jun. 30th, 2004|08:23 am]

I realised I was over-aggressively hiding the mouse cursor, which lead to the cursor being lost on returning from full-screen mode. Commented out a few lines and it works a whole lot better now.

Zap the beetles! [Jun. 30th, 2004|12:03 pm]

Thargoid plans mission scripted and being tested.

Anarchy systems do seem considerably more dangerous now (the Thargoid plans mission starts at an Anarchy) and fighting is TOUGH.

Rocks and Bugs [Jun. 30th, 2004|09:39 pm]

Trading with rock-hermits is now working and pretty much debugged. It should provide an alternative source of income for those people who prefer to trade their way to victory.

Still debugging elements of the thargoid plans mission. This has meant upgrading the Thargoid AI amongst other enhancements.


July 1st, 2004

Blah [Jul. 1st, 2004|12:37 am]

Okay, copied the latest project folder, archived all of June's work into one backed-up zip file.

TODO: complete debugging/testing thargoid plans mission. Roll thargoid plans mission into main app. Add music playback during docking sequence. Begin stripping debugging code.

Yawn. Sleep now, zzzzzzzzzzzzzzzzz...............

Checklist. [Jul. 1st, 2004|10:35 am]

Blue Danube playing during docking - check.

Rev AI for pirates and thargoids to allow them to switch targets mid-fight instead of blindly pursuing one ship - check.

Warning klaxon on detection of of hostile ships/thargoids/incoming missiles - check.

Dagnabbit!! [Jul. 1st, 2004|11:38 am]

Rats and further cussing!

The original Elite often rounded down distances between planet, rounding say an unnavigable 7.1 light years to a navigable 7.0 LY.

Unfortunately, my code is more accurate and doesn't have rounding errors. So the planet Birare, the goal planet for the Thargoid plans mission is unreachable on any route from the start of that mission!

I think I'm going to have to scale down distances somehow!

Similar information here. [dead link]

UPDATE: Fixed, for the moment by substituting in a version of the original inaccurate calculation for interplanetary distances.

Phew - *mops brow* [Jul. 1st, 2004|02:03 pm]

[Current Mood | accomplished]

Thargoid mission debugged - check.

That's about it, next I need to go through the code taking out inessential NSLog() calls ('inessential' meaning placed there for debugging purposes rather than for logging actual errors).

Then I'll have what is essentially the v1.0 beta release candidate. This will go out for testers to download this weekend, then in about a weeks time, assuming no major bugs make my life difficult, I'll do a public release of Oolite and its source code.


*exhaustion.. face->keyboard*

July 2nd, 2004

Towards 1.0 [Jul. 2nd, 2004|12:45 pm]

Debugging messages 99% removed - check.

Space station responds to distress messages from nearby ships by launching a police interceptor.

Picture of the week: Blue Planet [image]

Beta Version 1.0 [Jul. 2nd, 2004|02:50 pm]

[Current Mood | accomplished]

This is the release-candidate beta version.

More details: here [dead BB link]

July 3rd, 2004

Fixes to v1.0b [Jul. 3rd, 2004|10:21 am]

  • Improved the speed of the in-system jump-drive from x20 to x32 maximum speed.
  • Fixed a freezing bug on the second demo screen.
  • Added a pause button ('p').
  • Added automatic pausing when the mac it's running on goes to sleep.


  • Added custom key configuration, quietly uploaded v1.01b.

Oolite lite [Jul. 3rd, 2004|03:04 pm]

[Current Mood | blahblah]

Added code to support midi as well as mp3 music.

Oolite looks for music in the app bundle (at '' and '') and the 'AddOns' folder in the same folder as the application and in 'AddOns/Music/'.

It currently looks for 'OoliteTheme.mp3' and 'BlueDanube.mp3', but future versions will, if they don't find them, go on to look for 'OoliteTheme.mid' and 'BlueDanube.mid'.

July 4th, 2004

Towards the release candidate... [Jul. 4th, 2004|09:39 am]

[Current Mood | awake]

More debugging code commented out.

Slightly more random variance in the layout of systems.

Experiments carried out with a zoomable scanner, working on how to present the zoom.

In other news:

I uploaded the remaining ship models to as .3dmf models, and took pictures of them to fill up the remaining ship avatars at the bulletin board.

Zoom! [Jul. 4th, 2004|05:09 pm]

[Current Mood | calm]

Okay, implemented out a nice way to do the 'zoomable scanner'

A new definable key key_scanner_zoom has been added to 'keyconfig.plist' and has been set to 122, the ASCII value for the key 'z'.

'z' cycles from 1:1 through 2:1, 3:1 and 4:1 to a 5:1 zoom which makes it much easier to catch and collect flying sheets of alloy, escapepods, cargo canisters and other space flotsam and jetsam. The zoom resets to 1:1 on docking/launching from a station.

Evidential Picture: Scanner zoom ratio indicator on HUD. [image]

Jumpspeed [Jul. 4th, 2004|07:09 pm]

[Current Mood | amused]

This is a change I've kept meaning to make, but it's not been at the top of my todo list until now.

  • Implemented the jumpdrive key as an on/off toggle.


  • Beefed up the police a little by making them more maneuverable and giving them better lasers.
  • Fixed the bug where the game-over message persisted into a new game.
  • Fixed the bug where arrival in empty witchspace would be announced as arrival at the destination planet. Also adjusted where exactly you *are* after a misjump.

July 5th, 2004

Groough! [Jul. 5th, 2004|02:18 am]

Fixed a major bug that meant the player data wasn't being loaded from shipdata.plist, it is now!

Tidied up and sanity checked a lot of code in the process.

Lite switch [Jul. 5th, 2004|09:54 am]

  • Fixed a bug with Oolite lite where the game would crash after loading a replacement midi file. The NSMovie wasn't being retained, gah.

Steamlined my work flow by writing a five line build script I can run from the terminal whenever I need to build a deployment version.


  • Fixed a minor bug in the constrictor mission where the wrong message would appear at a certain planet.
  • Fixed a game play bug where ships exiting witchspace weren't showing up on the radar.

July 7th, 2004

Version 1.02b released [Jul. 7th, 2004|12:01 pm]

[Current Mood | accomplished]

Refactored how the Sun is drawn, which now works properly (ie. as if the sun were a sphere NOT a disk).

Fixed a few more bugs.

Added laser feedback, speeded up laser cooling, added different crosshairs for each laser type.

You can find version 1.02b via the Testing and Bug reports forum.

Space Oddity [Jul. 7th, 2004|02:37 pm]

[Current Mood | Mystified]

Something I changed in version1.02b woke up some code from a long while ago.

The space station is supposed to be at a random geostationary point around the planet, but for the longest time those points seem to be confined to a ring around the planet that faced the witchspace exit point.

Now, unexpectedly, they're random again.

WTF? Huh?

UPDATE: A quick fix has been added to ensure the station is placed on the side of the planet that faces the witchpoint.

I just knew there'd be more... [Jul. 7th, 2004|08:47 pm]

[Current Mood | relieved]

Fixed a major bug that where the universe's idea of what system the player is in wasn't reset to Lave after game over.

Fixed the details of my revised Sun routines, the new billboarding routine makes the sun-skimming work properly at last. Previously, the coronal effects (coloured rings) moved oddly as you approached closely to the sun because my routines assumed that you'd always view the sun from a distance. Now the billboarding is more accurate, tracking the player's position exactly rather than relying on the player's orientation in space.

UPDATE: Uploaded v103rc with the fixes included.

July 8th, 2004

Tweakage [Jul. 8th, 2004|12:42 am]

(v104) Equipment list on status screen now shown as two columns (will allow room for 'extra' equipment in later versions).

(v104) More debugging comments removed.

(v104) Textures fixed on Alloy (was partially transparent due to misplaced texture coordinates).

[Jul. 8th, 2004|10:07 am]


(v1.04) Fixed a bug where the port radius (determining where the docking port is) on a station wasn't being correctly reset if a StationEntity got reused.

Picture of the week:

Commander Aegidian, already Elite, at Lege in Galaxy Three, half way through the Thargoid Plans mission. [image]

More release version tweaking [Jul. 8th, 2004|05:09 pm]

Expansion packs (folders with extensions .oolite_expansion_pack and .oxp) have been registered with the app as file packages (effectively hiding their content and making them much neater to distribute) and get their own icon.

Added an alternate Cobra Mark 1 as the Starsky and Hutch version was wearing a bit thin as a cool idea.

July 11th, 2004

More fixing and finishing [Jul. 11th, 2004|09:39 pm]

Sorting out some bugs to do with scripting. Also added the ability to choose a piece of music (or 'none') to accompany a mission briefing, and a picture (or 'none') as a backdrop for a mission briefing.

Also sorted out the nitty-gritty for a Bittorrent download of the release version to help out both my bandwidth and slower, dial-up users downloads.

July 12th, 2004

Released version 1.06 [Jul. 12th, 2004|11:17 am]

[Current Mood | accomplished]

Visit the website


July 13th, 2004

Post Release Stuff [Jul. 13th, 2004|02:50 pm]

Turns out I made one slight omission from the readMe file.

And the built version was also incompatible with Mac OS 10.2.

I have corrected both these problems and will see about a minor release tomorrow.

UPDATE: Compatibility with Mac OS X 10.2 is a bigger problem than anticipated as several sweeping changes have to be made. This may now have to wait for v1.07.

July 15th, 2004

And onwards we go... [Jul. 15th, 2004|06:17 pm]

[Current Mood | chipper]

(1.07) Fixed bug with music continuing past demo screens.

(1.07) Introduced check for version number in expansion packages.

(1.07) Added starchart dump as a hidden option on the long range chart (press '!' for a picture and star list).

July 16th, 2004

Stars [Jul. 16th, 2004|11:33 am]

(1.07) Added communications from scripted ships to the player.

Picture of the week: The star-routes of Galaxy One [key] [dead link] [image]

Enabling more scripting [Jul. 16th, 2004|11:30 pm]

(1.08) Added the ability to set overrides for system data: planetinfo.plist contains a dictionary of planets for which you wish to set custom data, each keyed by a string consisting the galaxy number (0..7) followed by a space and then the planet number (0..255). Each of the following properties can be set (but, notably, not the location, which is hard coded into the system seed value):

<key>0..7 0..255</key>
   <integer>0..67 </integer>
   <integer>1000 </integer>
   <integer>3000..7000 </integer>
   <string>The planet's name</string>
   <string>Small Blue Frogs .. Human Colonials</string>
   <string>Really, anything you want to say about the place!</string>

UPDATE: Extending this now..

   <string>0.0..1.0 0.0..1.0 0.0..1.0</string>
   <string>0.0..1.0 0.0..1.0 0.0..1.0</string>
   <string>0.0..1.0 0.0..1.0 0.0..1.0 0.0..1.0 0.0..1.0 0.0..1.0</string>

July 19th, 2004

Heterogeneity [Jul. 19th, 2004|09:53 am] In order to ensure the same results can be had across platforms (hush, yes there are some moves afoot to port Oolite), I replaced the standard rand() and srand() functions with an implementation of Abner Fog's RANROT algorithm.


I had to rejig this so it returned random integers in-line with rand(). Caused some very odd bugs until I did!

legacy_random.c (extract)
// an implementation of RANROT
// pseudo random number generator
unsigned int m_high;
unsigned int m_low;
void ranrot_srand(unsigned int seed)
	m_low = seed;
	m_high = ~seed;
int ranrot_rand()
	m_high = (m_high<<16) + (m_high>>16);
 	m_high += m_low;
	m_low += m_high;
	return m_high & 0x7FFFFFFF;


  • Added the 'home' key for use on chart screens.
  • Added key_map_home and key_map_dump to keyconfig.plist. The 'home' key is assigned the arbitrary code 302.
  • Added declaration of incompatible mission packs during intro screen 1.

July 20th, 2004

Sweating small stuff [Jul. 20th, 2004|11:11 am]

Reimplementing sub-entities (small ships or part of ships hung off of larger ships) to allow for some stuff I want to script.

This should enable some simple Level-Of-Detail work that (for example) would keep the docking corridor from showing through the space-station at high resolutions and long distances (an artefact of poor z-buffer granularity).

It would also allow collision detection by use of convex hulls on ships that have a more complex (partially concave) structure (like space stations and Kraits).

Picture of the week: Belatedly for Jannah [image]

July 23rd, 2004

Small stuff sweated! [Jul. 23rd, 2004|06:38 pm]

[Current Mood | accomplished]

Finally got sub-entities working the way I want. It meant refactoring a lot, and making a special case for active (status == STATUS_ACTIVE) subentities, as opposed to decorative (non-moving) subentities, but now I can get on with scripting more stuff.

July 24th, 2004

[Jul. 24th, 2004|11:45 am]

(1.08) Caught a crashing bug on the Ship Outfitting screen, wher if you were at a TL:1 station and had bought all your fuel, pressing return to buy freezes the game. No range-checking y'see, fixed for next release.

July 25th, 2004

Bugs kersquished [Jul. 25th, 2004|06:02 pm]

(1.09) Fixed a couple of major bugs pointed out by Steve Sims, for which much thanks!

(1.09) Implemented 'Fuel Injection' a ship upgrade that permits short bursts of speed by injecting witch-drive fuel into the exhaust stream.

(1.09) Implemented mouse selection on the chart screens.


(1.10) Implemented range limit on missiles, ie. they can be avoided as they run out of fuel after 30km.

July 26th, 2004

v1.10 Released [Jul. 26th, 2004|01:02 pm]

Visit the website for download links, information, sporks...

Onwards then.. [Jul. 26th, 2004|05:53 pm]

(1.11) Adjusted ranges for lasers. And fixed what I think was an unnoticed bug in the laser combat routines.

July 27th, 2004

Combat revisited [Jul. 27th, 2004|05:06 pm]

(1.11) With revised laser ranges I overhauled the combat behaviour to take account of afterburners and the new ranges.

FWIW I've given the Asps, Kraits and Fer-de-Lance's afterburners of varying limited duration.

Big Shout Out [Jul. 27th, 2004|09:41 pm]

[Current Mood | grateful]

I just want to say how very proud I am of the small group of enthusiasts on the Oolite Bulletin Board and elsewhere who are helping make it a very much better game than I could have managed on my own!

In particular: No Sleep Nigel, Jonny Cuba, Steve Sims, Capn Hack and others I don't have the time to list here.

Thanks for helping me make a game I love playing!

July 28th, 2004

More work on 10.2.7 compatibility [Jul. 28th, 2004|02:34 pm]

(1.11) Replaced all the implicit value setting and getting, and did away with NSSpeechSynthesizer - replacing it with some simple Carbon calls in Universe.m

That should do it. I think.


(1.11) Changed the way extra equipment is recorded for the player. Supplementing the old flags for ecm/energy units/etc. is a new dictionary with the equipment accrued so far as keys. This should allow for greater flexibility adding new equipment in enhanced versions of Oolite.

(1.11) test released here: [dead link]

Picture of the week: Capn Hack's Oolite - Modified Krait [image]

Cheers, Capn Hack! [Jul. 28th, 2004|08:22 pm]

(v1.12) Barrels are now chosen randomly from any definitions in 'shipdata.plist' with an entry in <key>roles</key> for 'cargopod'


(v1.12) I just broadened this, eliminating all hard-chosen ships:

For: cargo containers, role: cargopod metal fragments, role: alloy missiles, role: missile tharglets, role: tharglet escape pods, role: escape-capsule

10.2.8 compatibility [Jul. 28th, 2004|10:39 pm]

By George!

I think I've done it! [dead link]

July 30th, 2004

Too-fast key repeat problem on GUI screens... [Jul. 30th, 2004|04:08 pm]

(1.13) I put in a throttle on the key-repeat for going up and down lists on the GUI screens (Load/Save and Options, Ship Outfitting, and the Commodity Market). You can either hold down the up or down key and it'll repeat every 1/5 of a second, or tap it repeatedly to move faster.

July 31st, 2004

HUD [Jul. 31st, 2004|09:21 pm]

(v1.14) Workking on the configurable HUD. Implemented a HUD class and replaced all the code from Universe.m


August 2nd, 2004

Fig buxxed! [Aug. 2nd, 2004|11:57 am]

(1.14) Fixed the bug in the mission showShip routine where the ship displayed on the mission screen could end up in an odd position.

Work on HUDs progressing...

Progress [Aug. 2nd, 2004|03:09 pm]

HUD work pretty much complete.

The default hud is as standard.

(1.14) An extra-equipment list now works solely from the new code, and the available hud elements can include a check for required extra equipment.

(1.14) As a test case I implemented a lock-on reticle (a 'Scanner targetting enhancement' that 'Adds a visible indicator around the target currently locked into your targetting computer.' and is available at TL 13 stations) that floats around the object targetted by your computers, the hud element for it requires the key 'EQ_SCANNER_SHOW_MISSILE_TARGET'.


(1.14) Fixed bug where script actions allocated to one ship were being recycled by other ships. This bug occasionally affected the Constrictor Hunt mission.

August 3rd, 2004

Bugs and Pursuit ships [Aug. 3rd, 2004|10:21 am] (1.16) More bugs fixed in handling extra equipment. (1.16) High Tech-Level systems get new police Viper Interceptors.

UPDATE: (1.16) Fixed bug in long range chart where systems with a coordinate equal to zero could not be found by using the find function.

Also updated the F.A.Q. and added the Interceptor to the 3dmf models and available bb avatars.

Picture of the week: Viper Interceptor (going slowly) [image]

Edging towards support for ship buying/selling [Aug. 3rd, 2004|03:56 pm]

[Current Mood | working]

(1.16) Maximum missiles (aka the number of missile pylons) implemented as a variable for the player ship. This gets set by the integer 'max_missiles' key in a shipdata.plist entry.

(1.16) HUD choice implemented as a variable for the player ship. This is controlled by the string 'hud' key in a shipdata.plist entry that gives the filename for the hud description plist in /Config . The basic hud description plist is 'hud.plist'.

Implementation plan:

Ships will be available for purchase on the 'Ship Outfitting screen', the current idea is to show the base ship (bare of any extras) and a trade-in value for your current ship (including extras). You'll have to buy new extra equipment for your new ship. This means I'll have to include all the playable ships as new entries in shipdata.plist, but thats not too much work.


(1.16) Updated ratings from old geometric progrssion, to lumpier version from

Faster! Faster! Kill! Kill! [Aug. 3rd, 2004|11:11 pm]

(1.17) Fixed bug where pressing 'speed up' while the fuel injection system is working would reduce your speed while still burning fuel!

(1.17) Fixed bug with self-annihilating Thargoids in witchspace.

August 4th, 2004

Tweakage [Aug. 4th, 2004|03:04 pm]

Too hot for real work... tweaked the afterburner combat routines and bounty messages.


Begun laying out work for escort ships.

(1.17) Fixed bug where target reticle was being drawn when not on the main view screens.

August 5th, 2004

Research Day [Aug. 5th, 2004|02:11 pm]

Too hot for more than a couple of hours of coding this morning. Escort formations stuff... Also, tweaked the existing missions slightly.

This afternoon, I finally took a look at the developers notes and stuff for ArcElite. The mission stuff was VERY interesting, the stuff about formations and AI less amazing. Oolite's emergent behaviour is actually rather better (IMHO, of course).


(1.17) Fixed equipment bugs on loading old saved games.

(1.17) Changed the scheme which decides where you end up after a Galactic Hysperspace jump to one that picks a system close to your coordinates in the galaxy you left, but connected to the main network of planets.

August 6th, 2004

Meta development [Aug. 6th, 2004|12:41 pm]

Backed up all files. Downloaded and installed XCode 1.5. Oolite (1.18) builds and runs okay. Cool.


(1.18) Formation flying code is beginning to be tested.

Picture of the week: An Anaconder with four Sidewinder escorts in formation. [image]

August 7th, 2004

Convoys [Aug. 7th, 2004|04:06 pm]

Work on escorts is progressing, but it's making me think about AI in new ways and there have been numerous refinements to the AI for ships as a consequence.

The major paradigm shift is the idea of ships acting in groups, not only trader-escort combinations but pirate wolfpacks, police formations and trader-trader convoys. Some AI messages have to transfered from ship to ship within a group depending on its set-up or control heirarchy. For example, an attack on an escort has to be trated as an attack on the trader-escort group, or specifically an attack upon the trader, whereas an attack on a pirate in a wolfpack could be treated as an individual attack OR an attack on the entire pack (probably randomly selected for each attack). An attack on a police-ship most definitely receives priority treatment from any police ships in the same group!

Lots of food for thought here.

Much work later [Aug. 7th, 2004|08:26 pm]

(1.18) After cycle upon cycle of Tweak-Debug-Test-Debug-Test-Tweak-etc. trader escorts are working as I'd like them.


Set aside copies of traders with escorts as separate entries in shipdata.plist (1.19) Not needed.

Only have escorted traders in systems where they are at risk. (1.19) Done.

Create proper groups for pirate wolf-packs. (1.19) Done.

Have pirates consult group-leader and check the ship to ship odds before committing to an attack. (1.19) Done.

Create police formations, VIC 3's and VIC 5's, to patrol in high government level systems.

Add Naval Asp's in counter-Thargoid formation patrols in Human Colonial systems.

Somehow do most of this and get v1.20 out the door!

August 8th, 2004

Clarity [Aug. 8th, 2004|10:41 am]

(1.19) Grouped a lot of code only used by ship AIs from ShipEntity.m into a new separate file ShipEntity (AI).m This is because that code was getting harder and harder to deal with all in two megacephalic files.

I'll try to be a neater coder in future :-/

Escapology [Aug. 8th, 2004|02:05 pm]

(1.19) Debugged the escape sequence.

(1.19) Added an experimental emergency hyperdrive (a one-shot get-you-home unit).

Note, escape capsule ejection mechanisms will not work in systems with out a space station capable of making a rescue.

Try out the new stuff [Aug. 8th, 2004|11:49 pm]

Test 1.19 uploaded: [dead link]

Looking at releasing v1.20 Tuesday or Wednesday depending on feedback from this test.

August 9th, 2004

Fixes... [Aug. 9th, 2004|10:17 am]

(1.20) Implemented fixes to bugs reported by Steve Sims (escape pod, hyperspace cursor problems, equipment screen).

(1.20) Altered emergency hyperdrive behaviour to jump to nearest system that's NOT the current system.

(1.20) Added afterburner sound effects.

(1.20) Fixed bugs in equipment set up after loading saved game reported by No Sleep Nigel.


(1.20) Removed emergency hyperdrive after rethinking how this should work.

(1.20) Tweaked the trader AI to react to AEGIS distance messages.

August 10th, 2004

v1.20 Released [Aug. 10th, 2004|11:32 am]

[Current Mood | accomplished]

See the website for download links:

Vacation time. [Aug. 10th, 2004|02:24 pm]

Right, with that I'm going to relax a little, not be so intense about fixing bugs immediately and try to calm down in time to pack my bags for Falkirk.

See you all in a week and a bit!

Picture of the week: The Galcop display team execute a beautiful VIC 7 formation [image]

August 11th, 2004

Patch work [Aug. 11th, 2004|07:08 pm]

Today was spent trying to find a way to patch oolite to version 1.21 without a huge 20Mb download.

I looked hard at packagemaker and iceberg with the intent of making a .pkg file for patching Oolite, but instead settled on a favourite tool of mine, DropScript.

DropScript lets me package a simple shell script into a 'droplet' application (you drag the file you want to do something to onto the application, and it goes and does it, Stuffit Expander is a classic droplet.)

The upshot is DropUpgradeOoliteTo121. Simply drag your Oolite application onto it and it should be upgraded automagically to v1.21.

Here's the shell script used:

# EXTENSIONS  : "app"               # Accepted file extensions
# OSTYPES     :	"APPL"				# Accepted file types
# ROLE        : Editor				# Role (Editor, Viewer, None)
for file; do
   echo "`date`" >> ${outputlog}
   echo "<- Drop Upgrade running ->" >> ${outputlog}
   # check the information about the file handed us
   errorinfo="No error."
   if test -e ${file}/Contents/PkgInfo >> ${outputlog}
       fileinfo="`cat ${file}/Contents/PkgInfo`"
       fileinfo="Not Found"
       errorinfo="Not the right sort of application."
   if chmod -R +w ${file} >> ${outputlog}
       echo "Can write into" >> ${outputlog}
       echo "Could not write into" >> ${outputlog}
       fileinfo="Not Found"
       errorinfo="Could not change the permissions of"
   if test -e ${0%script}toc >> ${outputlog}
       echo "Found table of contents at ${0%script}toc" >> ${outputlog}
       echo "Could not find table of contents at ${0%script}toc" >> ${outputlog}
       fileinfo="Not Found"
       errorinfo="With no toc, no upgrade can proceed."
   echo "File info is '$fileinfo'" >> ${outputlog}
   if [ "$fileinfo" = "APPLOol8" ]
       echo "File info matches. Upgrading ..." >> ${outputlog}
       # now to do the actual copying of files
       for item in `cat ${0%script}toc`
           if cp -f ${0%script}Upgrade$item ${file}$item >> ${outputlog}
               echo ".. copied $item okay" >> ${outputlog}
       # write protect the file again
       chmod -R -w ${file} >> ${outputlog}
       echo "Done" >> ${outputlog}
       echo "$errorinfo No upgrade performed." >> ${outputlog}
   echo "<- Drop Upgrade finished ->" >> ${outputlog}
   echo "" >> ${outputlog}

August 12th, 2004

Ph33r my 1337 scripting ski11z [Aug. 12th, 2004|12:57 am]

Recoded the DropUpdate script as a general purpose update script and added a read-me file and an icon. And I documented how to use it from the developers side, in case my brain fails, again.

With care, this will be good for all minor point updates from here out.

Final Pre-holiday post [Aug. 12th, 2004|04:39 pm]

You were right and I was wrong.

I've been revisiting all the comments made about Oolite being too slow. And I ran a test, increasing the player-ship's speed.

And I think you're right, Oolite's ships need a speed boost.

When I get back from holiday, I'll revise shipdata.plist completely. Each ship's speed will be set to a factor based on the listed speed in the manual (eg. if the manual says the Adder does .24 lightspeed, its max_flight_speed in shipdata.plist will be set to 240, and its thrust 24: currently the Adder's max_flight_speed is 145).

This'll deliver up to a x2 speed boost for most ships over the current settings. DustEntity.m will have to be adjusted so the dust scale is larger (by about 1.5x).

Sorry to have dragged my heels on this issue. It'll be a major change, but I feel it'll be a positive one.

August 21st, 2004

Back to the bit-face. [Aug. 21st, 2004|08:44 pm]

Docking procedures updated, ships spaced further apart. Ships no longer accept escorts while docking.


Updated the update script to cope with spaces in the paths used.

August 22nd, 2004

Alert! [Aug. 22nd, 2004|11:16 pm]

(1.23) Revised the way alert_condition is generated, setting some alert flags (for example. docked, mass_lock, low altitude, high cabin temperature, low energy) instead of setting the condition directly. Then implemented an alert status indicator light for the HUD.

August 23rd, 2004

Textured Quads with ascii characters [Aug. 23rd, 2004|06:02 pm]

(1.23) Worked out the details for presenting text next to the enhanced target reticle.

(1.23) Created a CD distribution for those people mailing me for a CD version of Oolite.

August 24th, 2004

Pulsing jets! [Aug. 24th, 2004|09:26 am]

(1.23) Tweaked the combat behaviours to take account of the increased approach speed when using afterburners.

(1.23) Made the status light pulse according to the alert level (slow green, medium yellow, fast red), partly as an aid for the colorblind, mostly because it looks cool.

Distractions [Aug. 24th, 2004|11:01 pm]

While RL has taken upmost of today, I took some time this evening to explore operating iTunes from Oolite (an option already named ootunes). This works very well.

Here's my proposed way of controlling stuff:

I shall include an option on the options screen: iTunes integration : ON/OFF

With ootunes ON Oolite will play random selections from particular playlists at particular stages of the game:

Playlist "Oolite-Docked" plays when docked.

Playlist "Oolite-Docking" plays during the docking sequence, replacing the standard docking music.

Playlist "Oolite-Inflight" plays during flight.

If a playlist doesn't exist then no music will play at that stage of the game. "Inflight" music should continue during docking.

August 25th, 2004

Boons and toons [Aug. 25th, 2004|09:49 am]

(1.23) Corrections made to mission equipment awards (was old-system).

(1.23) iTunes integration (ootunes) implemented.

August 26th, 2004

[Aug. 26th, 2004|04:47 pm]

(1.23) Fixed bug where fuel injection could remain engaged during the automated docking sequence.

(1.23) Decreased the pause in the pirate and patrol ships AIs so they react faster to nearby merchantmen/criminals (given the increased speed this was necessary).

(1.23) Some changes made to the sound system when the player's ship is being hit.

(1.23) Type and range of ship targeted displayed next to target reticle with advanced scanner enhancement, price bumped up accordingly.

Revision thing [Aug. 26th, 2004|10:30 pm]

(1.24) Adjusted ootunes to choose a random track from the playlists rather than the first track.

(1.24) Adjusted font graphics for scanner enhancement for better legibility.


(1.24) Fixed long standing bug where some parts of the HUD display would be clipped at certain screen resolutions.

August 27th, 2004

[Aug. 27th, 2004|06:54 pm]

(1.24) Adjusted mass-lock distance from the sun to cope with increased velocities.

(1.24) Fixed fuel scoops being initially inactive after purchase (thanks Sven Schröder).

August 28th, 2004

On target [Aug. 28th, 2004|04:15 pm]

(1.25) Fixed a niggle where if you were fast approaching a static object (a spaces station or asteroid) with missile targetting on, it would sometimes lock-on and then immediately lose the missile lock.

Airbrush Art [Aug. 28th, 2004|09:17 pm]

[Current Mood | creative]

The star field backdrop has been looking a bit samey ever since we lost pre-rendered backdrops back before the first public release. I've been planning to jazz them up a bit and the first results are here. I added a pseudo-random airbrushing of pseudo-random color here and there in clusters. I think it looks good; I hope it's subtle as well as effective.

(1.25) Added pseudo-random blur-blobs to sky backdrop.

Picture of the week: painting with light [image]

August 29th, 2004

Stay—on—target! [Aug. 29th, 2004|11:20 pm]

Much experimenting with targeting systems.

Switching from missile staton to missile station assigning muliple targets looks good.

Using a missile station for an ident system, does not look so good - I think this may be something to keep separate, switching the missile display over to some target info or something instead.

Tired now...

August 30th, 2004

More targetting [Aug. 30th, 2004|09:32 am]

Dropped the idea of a separate ident system upgrade.

Instead I supply an ident system as standard.

(1.26) Implemented a ship identification system.

This is tied to 'key_ident_system' for keyboard control and set set to 'r' by default.

(1.26) Changed how missile target control works.

You no longer need to 'safe' missiles before selecting a new target.

't' ('key_target_missile') switches on missile targeting, but now, once a missile has locked on, pressing target-missile a second or further time clears the current missile target and begins targetting again.

'r' ('key_ident_system') switches on target identification. While this mode is active missiles cannot be targeted or launched. The current identified target is displayed on the the missile display and pressing ident-system again clears the current target and begins again.

'u' ('key_untarget_missile') - if target identification is active, this switches it off and returns missile targetting (previously locked missile targets are preserved); if target identification is not active, all missile targets are reset and missile targeting deactivated.

(1.26) Implemented a multi-targeting missile system.

'y' ('key_next_missile') - if the ship has a Multi-Targetting System, this selects the next missile, which may be targeted if it has no current target or launched if a target has been locked for this missile. Switching missiles also switches the Enhanced Scanner reticle to the target for the missile selected.

Check! [Aug. 30th, 2004|01:24 pm]

Missile targetting working as I like it, just testing and debugging now.

(1.26) Added a direction indicator tick to the crosshair on the enhanced scanner display.

Docking manouevres [Aug. 30th, 2004|11:36 pm]

(1.27) Refactored the docking system, which wasn't coping with large numbers of ships and ship-vs-station collisions well.

August 31st, 2004

I want the world to work this way! [Aug. 31st, 2004|03:27 pm]

(1.27) Much tinkering with the AI for docking (and other ares) and with other simulation based items last night and today. Finally I have it pretty much as I want it.


(1.27) Minor bugs in targeting squished.

(1.27) sky_blur_cluster_chance, sky_blur_alpha, and sky_blur_scale (all real values) added to planetinfo.plist parsing.


September 1st, 2004

Check up [Sep. 1st, 2004|10:31 am]

Periodically, I check that the latest build has no memory leaks and run Shark over it to check where it's slow.

Today's check showed no memory leaks, so I'm reasonably certain there should be no unexpected crashes from that quarter.

Profiling had me look at collision-checking again (always computationally expensive), where I managed to make a reasonably significant speed improvement in a couple of lines of change.


Work on content: I did some work revising the coriolis model to take advantage of the new feature (subentities and LoD). This lead to some debugging to get sub-entities working properly and some improvements to the calculations which determine the vanishing distance for models.

Not quite happy with the Coriolis yet, but it's getting there. Then on to revise the dodec, icos, and rock hermit models.

(1.28) Revised Coriolis station model.

Sun shine [Sep. 1st, 2004|08:06 pm]

(1.28) Revised how suns are drawn, making them much brighter with new colour and corona effects that tie into the sky colors for the given system. This eliminates the old cartoon-yellow sun.

Picture of the week: Star shine on a new station for Lave.[image]

September 2nd, 2004

Graphics enhancements continue [Sep. 2nd, 2004|06:12 pm]

The reworked space stations continue to get done, with the revised dodo and icos station's base models complete.

I also implemented routines to lose the stars and other objects in space to atmospheric fogging as you enter the lower atmosphere. This looks very cool indeed. Especially if you're intent on losing some pusruing police around the planet's horizon.

September 3rd, 2004

Change log... [Sep. 3rd, 2004|11:59 pm]

(1.28) Added routines and ships thatcan fire aft lasers during combat.

(1.28) Added atmosphere effects on descending to the planets.

(1.28) Revised how sun-scooping works, radically, to improve the simulationand prepare for sun-skimming AI.

September 4th, 2004

Towards the next release... [Sep. 4th, 2004|12:19 pm]

Incorporated new models into the main build.

(1.28) Removed a graphics glitch where edges between sides of ships became transparent allowing the sun or whatver was behind to shine through.

The fix draws a flat shaded version of the object first (not writing to the depth buffer) and then the textured version. The flat shaded version joins up better at the edges than the textured version, so the gaps are filled.

Quik-E-Fix [Sep. 4th, 2004|10:38 pm]

(1.28) Fixed "Jester's Get Rich Quick Scheme", local markets are now saved when the game is saved and reinstated on loading.

(1.28) Fixed zero-speed bug in combat behaviour.

September 6th, 2004

1.28 [Sep. 6th, 2004|11:17 am]

(1.28) Rolled in Jester's changes to the speech system.

Resizing and fixing... [Sep. 6th, 2004|02:51 pm]

(1.29) Fixed a niggle in the speech translations.

(1.29) Enabled resizing of the view in windowed mode (was previously disabled until I could fix wide-screen mode).

September 7th, 2004

Adjustments [Sep. 7th, 2004|11:45 am]

(1.29) Enhanced scanner now shows an indication of the target's legal status, but the price has increased to 450 credits.

(1.29) Model loading code tidied up a bit, and more error-checking added. This should help solve the 'invisible ships' problem where model data is being lost.

Through the square window [Sep. 7th, 2004|05:44 pm]

Window resizing had a knock-on effect on a lot of code. I think I've fixed it all now.

September 8th, 2004

Skewed perspectives [Sep. 8th, 2004|10:04 am]

1.30 Fixed bug where screenshots from windows (with widths not a multiple of four) were skewed.


1.30 legal_status now reset properly to Clean after escape pod used.

1.30 Made fixes to AI and behaviours so that ship groups respond better to attacks.

1.30 Fixed bug where market screen was blank after restarting from game over with a new player.

1.30 Fixed info screens to have a black background when the craft is in the atmosphere.

1.30 Added a 'reduced detail' setting for older, slower macs. It cuts out the sky nebulae and extra detail from ships and space stations.

September 9th, 2004

Mad Dan's Mad Bug Finding.. [Sep. 9th, 2004|10:58 am]

More bug fixes

(1.30) In-combat collision avoidance and friendly fire avoidance improved.

September 10th, 2004

Longstanding bug, toppled! [Sep. 10th, 2004|10:47 am]


(1.30) Key modifier bug, that caused odd behaviour when a shifted key was pressed, but an unshifted one released (or vice versa), fixed.

(1.30) Switching from ident system to missile system with a locked target now locks a missile onto that target.

September 11th, 2004

Oolite has been updated to version 1.30. [Sep. 11th, 2004|09:20 am]

[Current Mood | accomplished]

Version 1.30 offers much more intense gameplay with huge improvements to the game speed and the AI and also significantly enhanced graphics. It also fixes issues with wide-screen Macs and introduces iTunes integration to add your own soundtrack to the game.

Oolite and its source-code are offered for free under a modified BSD license.

Changes to Version 1.30 from version 1.20

  • Ship speed increased significantly.
  • Many important bug fixes (thanks to Jester, Mad Dan Eccles, and others)!
  • Much improved AI.
  • iTunes integration.
  • Multi-targetting and scanner upgrades.
  • More detailed graphics.
  • Windowed game mode is now resizable.

Download links:

Update Patch (v1.2x -> v1.30): 550.5 Kb

Full disk image: 21.46 Mb

Lite Version (midi music): 10.06 Mb

Source code: 36.75 Mb

September 19th, 2004

What's giles been doing... [Sep. 19th, 2004|12:43 pm]

In between fitfully trying to get Subversion version control working for Oolite, I've been revisiting collision avoidance and docking routines. Nothing major yet, but there have been a few advances.

On the bulletin boards ( there've been some advances in documentation for modders and a create your own ship tutorial.[see transcribed material]

September 22nd, 2004

Subverting the masses [Sep. 22nd, 2004|02:13 pm]

SVN getting there. You can now view the project files at [dead link] and I've even made a few early revisions from the 1.30 code.

SVN has to be done from the command line on the Mac, but it's not too much of a hardship.

I'm not sure about anonymous checkouts of the code. In theory you should be able to do something like

svn checkout svn:// oolite

but I haven't tested it yet.


I tested it, it works!

September 24th, 2004

v1.31 [Sep. 24th, 2004|06:08 pm]

The current plan is to begin implementing everything that will be needed once the player is allowed to own other types of ship.

The main thing here will be a move to include passenger and freight contracts, outside of the limited free market system. These contracts will be time sensitive, so a game clock has to be implemented (done), and a screen to list the cargo, passengers and live contracts written (partially done). Then a passenger and contract system will have to be created, generating the random contracts in a similar fashion to the local market.

A 5t passenger compartment will be implemented as a cargo upgrade (5t = life support, accomodation and an individual escape capsule), you should be able to buy this until you run out of cargo space, so a Cobra Mark III will carry 4 paying passengers (7 if the cargo hold is expanded and turned over to passenger compartments).

You'll be expected to transport large cargos and passengers within a certain time limit. Witchjumps are achieved in zero-time for the player, but take several hours in the game (due to strange relativistic effects the journey takes d2 hours where d is the distance travelled in light years).

September 26th, 2004

After surfing a bit... [Sep. 26th, 2004|07:54 pm] [Current Mood | cheerful]

Oolite has the best fans!

Thanks everyone.

I'll get right to work on v1.31 tomorrow, with a view to release on Friday (yup, it's back to 'test-release-friday's)

September 29th, 2004

Latest commit messages: [Sep. 29th, 2004|02:27 pm]

[Current Mood | accomplished]

  • sound a klaxon and eject the player ship from a space station that's being blown...
  • checks for fuel-out more often (avoid runaway krait syndrome)
  • adjusted the time between scans for offenders to 10s
  • added global 'debug' flag, plus debugOn and debugMessage: methods in PlayerEntit...
  • minor cleanup of scanForOffenders
  • now logs commsMessage's to console
  • Added dying curses from Thargoid pilots.
  • Station now assigns a docking start position on the side of the station *nearest...
  • Added a 'manifest' screen (f9 or 9) which will also eventually show passenger an...

So, some bugs addressed (what to do when a docked station is blown up), some additional scripting resources, some fun stuff.


October 1st, 2004

Blech [Oct. 1st, 2004|09:20 pm]

No work on Oolite today, just not feeling well enough, sorry.

October 3rd, 2004

Blech - further [Oct. 3rd, 2004|09:18 pm]

[Current Mood | hot]

I've got a nasty head-cold which is making me feel drained, feverish and occasionally very head-achey. Which means I need to take the odd day off from working on Oolite. However, today I wanted to take a hard look at docking procedures, which I've managed to improve somewhat. If I'm up to it I'll put out a v1.30 -> v1.31 patch tomorrow.

October 4th, 2004

1.31 (dev) nears readiness [Oct. 4th, 2004|12:33 pm]

[Current Mood | sick]

Still feeling washed out, but I managed to tidy some stuff up this morning, and I ought to log and explain some of the recent changes.

1.31 Docking procedure with autopilot updated.

The initial approach to the station is faster, but if there are many ships docking then you may be kept on-hold for a while as the station now regulates access to the docking 'pipeline' — maintaining the distance between docking ships. The initial approach also performs hazard avoidance during the approach, this is smart stuff — you can even use the docking computer from directly behind the station's rear wall and it navigates slowly around and docks without bumping.

1.31 Shuttles approaching the planet lever the same hazard avoidance routine (which was buggy in 1.20 -> 1.30), to avoid the navigation buoy.

1.31 The after-burner-sound-continues-when-docked bug's squished.

1.31 Screenshots are now saved as .png's, (about 15% the size of the previous .tiff's with no loss of image quality).

In addition I've improved the upgrade script to perform better version checking.

October 8th, 2004

Yes, I'm alive [Oct. 8th, 2004|08:04 am]

For those of you not following the more technical commit messages to the SVN repository, I'm alive and working on passenger compartments, and passenger contracts — for which a lot of code can be reused in cargo contracts.

Once those are up and testing, I can write the Ship Market screen and do the other things to allow the player to own ships with more than 35t cargo capacity.

October 11th, 2004

Some progress today... [Oct. 11th, 2004|12:17 am]

Got A* route finding working for choosing routes passengers might want to take.

Implemented flashing lights. These will work as beacon lamps, running lights on police craft, approach lights for the docking slit etc.

Implemented passenger and cargo contracts in the saved games.

Many more minor tweaks under the hood associated with these changes.

Flasher! [Oct. 11th, 2004|10:51 am]

Picture of the week: I stuck a bunch of flashing lights onto the nav buoy to test the code... [image]

Movie time [Oct. 11th, 2004|06:43 pm]

I'm playing with SnapzProX 2 (considering registering it if I can find the $$), and thought you might like to see what those docking lights look like: (2.4Mb mp4 movie, 320x240, no sound) [dead link]

October 12th, 2004

Quicksave [Oct. 12th, 2004|10:32 am]

Someone asked for the option to quick save the game without dropping out of full-screen, I can't recall who or where.

Anyhoo, it's implemented and works great in my latest build.

Still progressing towards the ship yard. The plan looks something like this:-

1. Implement passenger (& eventually cargo) contract market (press f8 twice).

Passengers will pay a small fee at departure and a large one on arrival if they arrive within a certain time.

Cargo contracts will have to be *bought* (paying for the raw materials etc.), and will pay a large fee (the amount paid for the contract plus delivery pay) on being delivered within the specified time.

2. Implement the passenger compartment ship upgrade (medium tech).

This will convert 5t of cargo space into a one-berth passenger compartment (life-support, entertainment, etc). Passengers should pay more (on average) than carrying 5t of low-profit cargo the same distance.

3. Implement the ship-market screen (press f3 twice).

You'll be able to buy ships according to the economy and tech level of the station, and according to your funds and the trade-in value (base cost plus upgrades) of your current ship, and you'll only be able to own one ship at a time.

October 13th, 2004

Fortschritt [Oct. 13th, 2004|04:38 pm]

[Current Mood | amused]

In the interests of fairness AI lasers now occasionally overheat.

Also I began a file for dealing with passenger and cargo contracts [PlayerEntity (Contracts).m] [dead link] [image]

(Yikes! just got Skype'd by a schoolkid from Germany - mein Deutsch ist nicht so gut. Heh.)

October 15th, 2004

Rar! [Oct. 15th, 2004|11:39 am]

Passenger list generation is beginning to come together (this is a hard act, they have to be pseudo randomly generated in such a way as they rarely repeat, and can be keyed to a name, so the same passenger soesn't appear on a list once he/she/it's been picked up).

And, bonus, upgrading the server's subversion version (say that three times fast!) to 1.1.0, now means I have to do less maintenance on the repository. Huzzah!

Released to the wild... [Oct. 15th, 2004|05:26 pm]

Version 1.32

This version represents an interim build of Oolite, not a finished product.

  • Many bugfixes.
  • Quicksave (press f2 or 2 then press return, done).
  • Passenger lists dumped to console during market screen.
  • Docking and running lights on police and space stations.
  • Manifest screen (experimental, key changed to pressing f5 or 5 twice)
  • In the interests of fairness, AI lasers now occasionally overheat.

Get it from the forums

October 17th, 2004

Contractual obligations... [Oct. 17th, 2004|06:02 pm]

Fairly hefty progress on the passenger and cargo contracts scheme today, culminating in a fully-mocked-up GUI for browsing the top five passenger and cargo contracts available.

This isn't looking too shabby! [2 images]

October 18th, 2004

Latest commits... [Oct. 18th, 2004|10:40 am]

  • Added accurateDistanceBetweenPlanetPositions() routine.
  • Freezing bug during demo-screen fixed.
  • Better error checking on importing .plist files (should give better feedback to modders).


  • Added a five minute time penalty for using speed-docking and a ten minute loading and un-docking period.

October 19th, 2004

Note to self... [Oct. 19th, 2004|07:58 pm]

Need to keep track of passengers and contracts picked up even after they've been delivered, so the same contracts aren't offered twice. Keep the expiry dates in a dictionary so keys can be quickly checked, and remove them when they expire.

Route to W00t [Oct. 19th, 2004|11:00 pm]

[Current Mood | accomplished]

Passenger contract routines fully implemented.

Cargo and Passenger manifest screen problems (not enough room for more than 10 sorts of cargo) sorted.


Passenger berth equipment upgrade.

Cargo contract implementation (much already done in parallel with passengers).


Ship market GUI.

Buy/Sell ship routines.


Re-examine turret routines.

October 20th, 2004

[Oct. 20th, 2004|11:36 am]

Implemented Passenger Berths as extra equipment.

The Passenger and Cargo Contract Screen now can only be accessed within the main station of a system.

Passenger carrier reputation working better.

Now testing... [Oct. 20th, 2004|07:42 pm]

The cargo-contracts routines...

[2 images]

Note to self: set PlayerEntity speed_delta to thrust * 5 and reduce the thrust listed in shipdata.plist so that it is inline with the other ships.

October 21st, 2004

Heh! [Oct. 21st, 2004|02:03 pm]

Y'know, you really notice the speed difference between flying a Cobra III and flying a Python!

October 22nd, 2004

Patch to 1.33 released [Oct. 22nd, 2004|12:00 pm]

Included in this upgrade is a test saved game I've been playing, where I'm using a Python.

October 24th, 2004

[Oct. 24th, 2004|03:26 pm]

Implemented short mission description: script-definable one-line descriptions of the current stage of current missions, to appear on the ship's Manifest screen.

Gah! [Oct. 24th, 2004|10:13 pm]

Darn. I'd been seeing empty passenger and cargo markets for a few trips, when it began to look like less of a coincidence and more of a bug I went back to the code to determine the contracts. There were several bugs. Fixed for v1.34, but I'll have to spend many more game-days testing to be sure I've nailed this one.

October 25th, 2004

Onwards... [Oct. 25th, 2004|05:31 pm]

  • Fixed a sleeping-policeman bug.
  • Fixed bug with target lock on docked-station after launch.
  • Fixed bugs with times on contract/passenger generation.
  • Added missiles to the Moray.
  • Wrote entires in shipdata.plist for all initial player-available ships, and did initial version of shipyard.plist.

October 26th, 2004

One careful owner... [Oct. 26th, 2004|04:39 pm]

Working on the ships-for-sale generator. Here's an example of the output for Zaonce (note, ship prices and standard equipment not finalised at this stage).

( click here for the example output )

[Oct. 26th, 2004|10:06 pm]

Implemented Peter Bagnall (Cmdr. Drayton)'s changes to the scanner, and then realised his suggestion of simply drawing the scanner with OpenGL was better (faster, more efficient) than the cack-handed images I created for it. So I reimplemented his changes that way.

Then I found the two lines that have been getting people stuck between near systems in witchspace, smacked my forehead firmly on the keyboard, and fixed it.

Today I have also made progress by small increments on the shipyard.


Also fixed a behaviour problem with the return key when buying/selling very large quantities of commodities (station will only take up to 127 units of any commodity).

October 27th, 2004

Come buy my birds... [Oct. 27th, 2004|03:14 pm]

[Current Mood | drained]

Completed the first run at the ship[yard GUI, next I have to implement actually buying one of these! [image]


Also implemented the resizable scanner for the HUD. Now to design huds for Adders, Morays, Pythons, etc...

October 28th, 2004

Right then... [Oct. 28th, 2004|11:38 am]

That's buying ships implemented. Time for a quick road-map post...

v1.34 (Tomorrow)

Will include all the fixes listed here and mentioned as being fixed on the bulletin board. I'll try to include the ships you've sent me (like the Medical Moray).

This release will be to the bulletin board only, as a DropUpgrade patch, with the intention of catching all the bugs I've undoubtably missed in the new routines.

v1.35 (Next week or the week after)

This will be a public release, taking into account the bugs fixed between v1.34 and this release.

Versions 1.36 - 1.40 (into the new year)

These will concentrate on adding some more chrome, increasing the complexity of the simulation (sun-skimming AI ships, pirate traps, unusual rock-hermit's, space-dredgers etc.), optimising the OpenGL engine behind the graphics and fixing the inevitable bugs.

Versions 1.41 - 1.50

Don't know what I'll do with Oolite as this progresses. I'm beginning to have desires to start a new game project, so I imagine Oolite may eventually be pushed to a back-burner. Or maybe, just maybe, I'll get the Multi-player option working...

October 29th, 2004

v1.34 [Oct. 29th, 2004|10:09 am]

[Current Mood | tired]

Patch released.

Version 1.34

This version includes all the features for the next release. If you encounter any odd begaviour from this version, please let me know ASAP.

  • Ships can now be purchased, press f3 from the Ship Outfitting screen.
  • Splash screen at game start-up.
  • Scanner now drawn rather than a pasted picture. It can also be resized from hud.plist.
  • Text legends now possible in hud.plist.
  • Mission descriptions can be seen on the Manifest Screen (f5 from the Status screen).
  • Scanner 'sight-lines' now change according to the view.
  • Ship data altered. The big winner here is the Boa, although many ships also gain missiles, the Boa is faster and much more manoevreable than before realising its position as being more advanced than the Python.
  • Missile display altered to provide a better visual indicator of the active missile.
  • Medical Morays included.
  • Better behaviour on the Commodities market when the station refuses to take more than 127 units of a commodity.
  • Witch-drive bugs ("stuck-in-witch-space") squished.
  • Afterburner bugs squished.
  • AI bugs ("sleeping-policemen") squished.


November 2nd, 2004

Ow ow ow ow ow ow [Nov. 2nd, 2004|01:41 pm]

No progress today. I'm in the grips of a cold which has got into my limbs and it actually hurts to type.

Hopefully I can get some rest then still be on-schedule to release 1.35 this Friday.

November 4th, 2004

[Nov. 4th, 2004|05:32 pm]

Feeling a little better, although I feel like Thargoids have infested my mouth.

Some progress chasing bugs in Oolite though - see the latest commit messages for details. Still on for a release tomorrow. Huzzah!

November 5th, 2004

Gunpowder, Treason and Oolite v1.35 released! [Nov. 5th, 2004|12:20 pm]

Oolite has been updated to version 1.35.

Oolite is a space sim game, incorporating trade, battles with pirates, bounty hunting, secret missions and more. It features high-quality sound and smooth, fast three dimensional graphics, written specifically for Mac OS X using Cocoa and OpenGL. And it's free.

Oolite was written by Giles Williams, who was inspired by the work of David Braben and Ian Bell with Elite, however this work is an entirely independent interpretation and expansion of the original game. Oolite has benefited immensely from the responses of the many people who volunteer their time and skills to test the game and to suggest and make improvements to this open-source project.

Version 1.35 goes beyond simple emulation: it offers the player the opportunity to fly a variety of craft, to carry passengers and enjoy lucrative cargo contracts. Numerous issues from previous versions have been resolved, and the whole is a smoother, more intense hit of retro-styled space gaming.

Oolite and its source-code are offered for free under a modified BSD license.

Oolite home-page:

Bulletin Boards:

Giles Williams:

Changes to Version 1.35 from version 1.30

  • Different ships can now be purchased.
  • Many bug fixes (thanks to Peter, Steve, Mad Dan et al. at
  • Improvements to HUD graphics.
  • Further improvements to the AI.
  • Passenger and Cargo contracts available to the player.
  • Quicksave.
  • Police and space station graphical improvements.

Update Patch: 700 Kb

Full disk image: 20.90 Mb

Lite Version (midi music): 10.48 Mb

Source code: Subversion Repository

November 10th, 2004

ISP problems [Nov. 10th, 2004|08:37 am],'s hosting service seems to be down at the moment. Normal service should be resumed within a few hours.

November 12th, 2004

Progress, sort of... [Nov. 12th, 2004|10:18 am]

[Current Mood | calm]

Well things have slowed down a bit post 1.35. The optimisations I want to do involve a air amount of research and trial and error, rethinking the fundamentals at the heart of Oolite's graphics.

The scale of that plus the recuperation-from-the-flu-from-Hell means the rate of progress on Oolite is not as frantic as it can sometimes be. But progress is being made...

Rewriting the SkyEntity to use vertex arrays (as yet from unaccelerated memory) seems to have speeded things up slightly. PlanetEntity is the big target here, since it eats the most cycles, and is a clever hack for the most part. Once that can be drawn from vertex arrays then we should be cracking the 20FPS limit on early machines again. Once hardware vertex array range optimisations get added in, machines with better graphics cards should see a further boost.

But, as noted before, I'm taking it gently — no point losing sleep when I'm fragile.

November 13th, 2004

Terraforming [Nov. 13th, 2004|12:19 am]

[Current Mood | thoughtfult]

Some progress rewriting PlanetEntity, most of the heavy number crunching now need only be done once per universe.

Arrays of vertex colors have to be set at planet creation time, but these can be mapped much faster now, and kept 'one per Planet'. Arrays of normals and triangle indices can be kept static (one per PlanetEntity Class). Still unsure whether to scale the planet at draw-time (with a uniform GLscale) or at creation time...

November 14th, 2004

Huzzah! [Nov. 14th, 2004|09:40 pm]

Brilliant progress refactoring PlanetEntity today. This is now being drawn using Vertex Arrays, which gives a small speed boost and should lead on to a significant speed boost (once the other optimisations are done).

Plus, I finally cracked why the clouds which are supposed to move over the surface of the planet weren't doing so - irritatingly a one line fix!

I'll bring some CD's of the latest build with me to the pub next weekend.

November 17th, 2004

Bad news, good news [Nov. 17th, 2004|11:31 am]

Well, I fell ill *again*.

For those of you that don't know me personally, I'm diabetic - and recently started on some new meds. Unfortunately the degree of control I had over my diabetes wasn't good enough to prevent a couple of dramatic hypoglycaemic incidents, which were accompanied by violent epileptic seizures. My control's better now, but the upshot was that I bit my tongue very badly - and worse - twisted my coding arm! So I'm reduced to 'type-type-ouch' 'type-type-wince' for a while...

The good news is that Vertex Arrays are being implemented throughout the game engine and this should give a speed boost to everyone's game, but especially to those with a graphics card in this list: <smallRadeon, Radeon 7500 Mobility, Radeon 8500, Radeon 9000, Radeon 9200, Radeon 9600, Radeon 9700, Radeon 9800, GeForce 2MX, GeForce 4MX, GeForce 3, GeForce 4Ti, GeForce FX. [image]

Don't worry too much about my health - I'll still be at the pub on Saturday!

November 18th, 2004

Okay... [Nov. 18th, 2004|12:10 am]

Testing some of the optimisations - they didn't make much of a difference on my lowest spec machine (400MHz G4 with Geforce 2MX), still dropping down to 11 FPS close to the planet.

I ran the code through Shark and located some often called code wasting scads of time in the Universe entity, so I cleared that up. The other heavy cpu hitters are [ShipEntity drawEntity::] (which is unoptimised as yet) and [SkyEntity drawEntity::] (which I have optimised, but evidently need to work on just a little more).

November 19th, 2004

[Nov. 19th, 2004|01:47 pm]

Slightly underwhelmed by MacExpo - although I must be looking more professional or something (with my arm in a sling), I was pitched by many more stallholders this year.

Apple Store opening tomorrow, I'm going to try to get in the queue early and see if I can't get hold of one of the lucky-bags. Failing that I'll head for Starbucks and Borders before making my way to the Coach and Horses after lunch.

See you there!

November 20th, 2004

[Nov. 20th, 2004|08:54 am]

[Current Mood | awake]

Gah! Thought I'd try to visit the Regent Street Apple Store Opening. At 8.00 am the queues of people wanting to visit this beleaguered™ computer manufacturer's outlet stretched out past Golden Square, about 2000 people deep — I thought 'sod-it', bought a coffee and Danish and went home.

November 23rd, 2004

Mini-progress-report... [Nov. 23rd, 2004|02:48 pm]

Finally stirred my poor old body to update the base Entity with some drawing optimisations. I still need to do some final small optimisations there, but they should be done by the end of this week. Then I'm off to celebrrate my brthday before coming back to work on some improvements to AI and storylines.

November 24th, 2004

Speed! [Nov. 24th, 2004|01:12 pm]

[Current Mood | accomplished]

Right, that's the first big run at optimising the graphics engine complete.

What I've done is move from drawing most entities literally triangle by triangle and storing them as I do so in Display Lists, to instead drawing using Vertex Arrays which are then stored in memory marked for fast access from the graphics card (and then storing them in Display Lists.)

This has had a small increase in frame rate on my lowest level test machine (a 400 MHz G4 with a GeForce 2MX graphics card) which runs at a typical frame rate ranging from 13 FPS to 60 FPS. On my development machine (a 1.8GHz DP G5 with GeForce FX 5200) I don't see the frame rate drop below 42 FPS (half the monitor refresh rate).

I'll package up this version (v1.36) for a test release this Friday and I'd really like to hear frame-rate reports from people with low end machines (iBooks, G3s, early G4s).

November 25th, 2004

v1.36 in the wild... [Nov. 25th, 2004|10:21 am]

Posted this a day early, so as to clear my weekend for some serious relaxification.

Version 1.36

  • Wholesale optimisation of the game engine, which should increase frame-rates especially on newer machines.
  • Some bugs fixed, particularly in the generation of systems and planets.
  • Minor tweak to the geometry of the Asp.

November 26th, 2004

Small improvements [Nov. 26th, 2004|08:38 am]

Incorporated Lazygun's launchPirateShip method into StationEntity permitting the development of his Pirate Coves expansion.

Saw an opportunity to expand scripting a little, so have added the possibility of including a 'script_actions' key-value-pair for planetinfo.plist that can hold an array of sctions to be performed when a planetary system is created. This will allow the setting up of scripted encounters without having to create them later in script.plist (which was not such a great solution IMHO).

November 29th, 2004

AI progress [Nov. 29th, 2004|10:27 am]

  • Added an advanced combat behaviour (chosen by 50% of pilots) - approach the target's six before closing and breaking off.


  • Added local station/planetary police patrols
  • Patrols now take account of local government levels when deciding whether to pursue offenders, you'll be ignored unless you attack something within the police's view in an anarchy but are nearly three times more likely to be stopped in a corporate state.


December 1st, 2004

Bug fixxage... [Dec. 1st, 2004|07:06 pm]

[Current Mood | tired]

  • can now zoom scanner when using autopilot
  • criminal record cleared when a new ship is purchased
  • invisible-ship problem tracked down and dealt with humanely
  • some modifications to launchPirateShip and the pirateAI to permit docking
  • work in preparation for populating route2 (planet orbit <--> sun skim orbit) and route3 (witch space exit --> sun-skim orbit)

December 3rd, 2004

v1.37 (bugfixes) [Dec. 3rd, 2004|12:02 pm]

Test Version 1.37

  • Bugs introduced in v1.36 fixed, other long-standing bug fixes.
  • Adds local police patrols near space stations.
  • Patrols now take account of local government levels when deciding whether to pursue offenders.
  • 'script-actions' now permitted in planetinfo.plist entries, scripting revised to add better flexibility.
  • Combat behaviour (AI) enhanced.
  • Can now zoom scanner when using autopilot.
  • Criminal record is now cleared when a new ship is purchased.

Patch is here:

December 6th, 2004

Gui-ooey-ewww! [Dec. 6th, 2004|07:33 am]

A lot of options I'd like to add to Oolite are currently made more difficult by working around the very limited GUI system I knocked together.

I'm thinking more and more that re-implementing this more flexibly would allow me to enhance the game much more. So that's my priority for the coming week.

GUI-twoey [Dec. 6th, 2004|02:44 pm]

Reimplemented the GUI using OpenGL rather than the Apple/Cocoa graphics system. This makes it much faster / more responsive and uses much less video memory, all of which should be a boon.

Some small niggles still to be worked out, but otherwise this has been a VERY productive morning!

December 7th, 2004

Plinth [Dec. 7th, 2004|10:41 pm]

[Current Mood | accomplished]

Monumental progress today:

Replaced the main computer message display with the new flexible GUI one, this means all on-screen messages are now drawn from a single texture rather than having textures created for them on an ad-hoc basis - which saves graphics memory.

Plus I revised the ResourceManager (which loads files from disc as required) to cache the files it loads. This should greatly reduce the number of FPS judders which occur whenever files are loaded (it does too! - you can see the difference on the ship-market screen particularly).


December 8th, 2004

Slow - slow - quick! quick! QUICK! [Dec. 8th, 2004|02:56 pm]

[Current Mood | pleased]

I just got a chance to check out the latest build of v1.38 on my slow machine. The FPS improvements are pretty good.

Today I also added more comm chatter from the station while on automated approach, I'm going to add more of this today and maybe that little comms drop-screen that people wanted.

Plus - to answer a request - now you can pay 100Cr to have an unwanted passenger compartment removed. That pays for the TL2 guys with crowbars and sledgehammers.


Added the drop-down comms screen as per Murgh's suggestion here: [dead link]

Pressing ` reveals the communications log which then gently fades away over 6 seconds.

December 9th, 2004

Adding color to communication - [Dec. 9th, 2004|11:12 am]

[Current Mood | cheerful]

[Current Music | A Love Before Time - Coco Lee]

More with the progress:

  • Fines. Local planet patrols can report some offenders to the local station, after which you may be fined for your offences (clearing your record, but taking up 24 hours). Other penalties may also be applied.
  • Communications messages. These are now color coded.

SO MUCH FUN! [Dec. 9th, 2004|05:46 pm] [Current Mood | piratical]

  • traders now send out distress messages, and beg for mercy and dump their cargos in an attempt to get away from you! Ha har arrr!

( An Excerpt From Cmdr Aegidian's Comms Log )

December 10th, 2004

v1.38 good-to-go [Dec. 10th, 2004|10:21 am]

Test Version 1.38

  • Lasers on different facings have individual temperatures.
  • Local police patrols may impose fines on minor offenders.
  • Communications display now shows comm chatter from ships and stations (press ` to reveal).
  • Passenger Berths may now be removed at a cost of 100Cr.
  • More pervasive file-caching (should reduce disk-access pauses).
  • Text displays (guis) reimplemented using OpenGL for rendering.
  • Ball turrets (turrettest.oxp) now work properly.
  • Exceptions no longer ignored unless in full-screen mode.

Get the upgrader from here: [Dec. 10th, 2004|02:43 pm]

[Current Mood | aggravated] is down at the moment (as are all my ISP's other sites).

Hopefully this will be a short outage, but it is aggravating!

UPDATE: 16.30 hrs

And we're back up.

UPDATE: 17.50 hrs

And down again.

UPDATE: 20.20 hrs

And up again. Can you say YoYo!

December 13th, 2004

Code improvements [Dec. 13th, 2004|05:27 pm]

  • Distress messages spaced out in time, to appear less automated.
  • More flexibility for expanding menus in guis.
  • Most system messages replaced with entries in descriptions.plist
  • Scanner-lollipop for ship/station transmitting a message flickers visibly for 6secs to indicate this.
  • System names are now pronounced consistently.
  • Bug where docked and dead ships could still be attacked by other ships now thoroughly - multiply stomped on.
  • Reductions in the numbers in police swarms in high government systems (numbers were SILLY).
  • Nav Buoy responds more sensibly to being attacked.

December 15th, 2004

Bigger choices! [Dec. 15th, 2004|07:53 am]

[Current Mood | awake]

  • tidied some basic underlying code to (hopefully) remove some crashing problems in 10.2.8.
  • Allowed a full selection of ships at the shipyard. If there are more than 12 ships for sale you can now arrow left and right between different 'pages' of genoowine quality new and used vee-hickles.

New images at Oolite Screenshots: [image]

December 16th, 2004

Small delay warning [Dec. 16th, 2004|11:42 am]

V1.39 will probably be delayed into next week.

I've still got a list of three major 'TODO's I want to include in v1.39 before I put it out for testing (v1.39 will be the shakedown for the next major release v1.40). These are some refinements to the space station models, adding sun skimmers, and adding asteroid miners/farmers.

However I won't have much time to work on these over the weekend as social duties call!

Nevertheless I have (with murgh's assistance) squished a bug already today:

  • bug (introduced in v1.38) causing a crash when a texture or other resource isn't found, fixed.

December 17th, 2004

Daedalus or Icarus [Dec. 17th, 2004|08:46 pm]

  • Sunskimmers - Done.


  • Space station docking slits standardised.
  • Sparks and flames added to hot or damaged ships.
  • Boa Mk2 (ArcElite style) added.

December 20th, 2004

[Dec. 20th, 2004|04:24 pm]

  • Asteroid miners (Cobras and Transporters) done.
  • Some minor/miner bugs fixed.
  • License altered to a Creative Commons License:

[image Creative Commons License some rights reserved 2.0 icon]

Patch for v1.3+ to v1.39 [Dec. 20th, 2004|05:09 pm]

Version 1.39:

  • License altered to a Creative Commons License: (
  • Asteroid miners (Cobras and Transporters) added.
  • Some minor/miner bugs fixed.
  • There are ships on the route from the planet to the sun (sunskimmers) now.
  • Space station docking slits have been standardised.
  • Sparks added to hot or damaged ships.
  • Boa Mk2 (ArcElite style) added.
  • tidied some basic underlying code to (hopefully) remove some crashing problems in 10.2.8.
  • Allowed a much larger selection of ships at the shipyard.
  • Distress messages have been spaced out in time, to appear less automated.
  • More flexibility for expanding menus in guis.
  • Most system messages replaced with entries in descriptions.plist
  • Scanner-lollipop for ship/station transmitting a message flickers visibly for 6 secs.
  • System names are now pronounced consistently.
  • Bug where docked and dead ships could still be attacked by other ships now fixed.
  • Reductions in the numbers in police swarms in high government systems (numbers were SILLY).
  • Nav Buoy responds more sensibly to being attacked.

December 22nd, 2004

[Dec. 22nd, 2004|04:37 pm]

Two additions for v1.40:

An advanced compass: switchable between Planet, Station, Sun, Current Target, and *tadaa* Witchpoint.

Witchpoint Beacons - a glowing version of the current buoy, not Murgh's design, but you can always replace the shipdata.plist entry for buoy-witchpoint.

Some changes to the Fer-de-Lances for sale too.

December 23rd, 2004

From the SVN logs... [Dec. 23rd, 2004|11:37 am]

  • Buying a ship now takes an hour (game-time, sheesh!)
  • Upgrades now take time to fit, time taken is relative to cost
  • Finally figured out the problem with pronouncing 'cruiser' - it's trying to say 'credits-uiser' - d'oh - fixed!
  • Ships get variable accuracy for tracking targets - this can be set in shipdata.plist with <key>accuracy</key><integer>-5..10</integer> - with this and the revised AI behaviours foes should demonstrate an interesting range of skill level.
  • Buoys no longer cause masslock.

December 24th, 2004

#"Here I Come To Save The Day!" [Dec. 24th, 2004|11:38 am]

  • (v1.40) If you assist a beleaguered ship they'll (sometimes) thank you for drawing off the pirates, and reward you by increasing the bounty on some of the marauders.

December 25th, 2004 [Dec. 25th, 2004|09:56 am]

Yes, the site is down (listed as suspended -which was a bit of an unwelcome Xmas present).

What happened is the Bulletin Board was hacked, affected by the PHP vulnerability in phpBB and despite the best efforts of, it bought the entire server down. Ouch!

As this is the holiday it will take several hours to get back up. But rest assured - we'll be back!


The server's back up and I'm preparing to restore the site. There are still a few problems with FTP to sort out, but hopefully the site will be back up by Tuesday and the Bulletin Board shortly thereafter. It was last backed up on 22 Dec, so very little will have been lost.

Then I can maybe get to releasing Oolite v1.40, so please keep emailing me ( with your bug-reports.

December 27th, 2004

Gor Blimey - Luv-A-Ducks [Dec. 27th, 2004|11:55 am]

[Current Mood | jubilant]

The Site Restoration is complete.

And I could not have done it without the lovely lovely folks from, Thomas and Bryon, who worked support miracles on Christmas Day and Boxing Day! For which their saint-hoods must surely just be a matter of time.

Hurrah! We're Back!

December 28th, 2004

v1.40a Release Candidate [Dec. 28th, 2004|11:27 am]

Download the file above and expand it.

Drag (v1.30+) onto DropUpgradeOoliteTo140a

A small file called OolitePatch.log will be written to your desktop. If you have any problems you should mail me this file.

Oolite should immediately launch and give an 'Update successful' message. Quit Oolite at this stage and relaunch it

The menu option About Oolite should also now show the version number as 1.40

V1.40a is the candidate for the next public release, and unless there are any major bugs I'll release it this Friday.

I'd really appreciate as much feedback as you can spare time to send me.


-- Giles

Version 1.40a

  • Fixed bug causing a crash when there are no ship upgrades left to purchase.
  • Revised pronunciation of 'Cruiser'.

Version 1.40

  • Some other bug-fixes.
  • All new key definitions in
  • Coming to the aid of a beleaguered ship now may gain thanks and a reward.
  • Fitting ship upgrades and buying ships now take up game-time.
  • AI Ships get variable levels of skill.
  • Cruiser names pronunciation fixed.
  • Buoys no longer cause mass-lock.
  • Advanced space compass added to the equipment list, '\' changes compass mode.
  • Witchpoint beacon added at the witch-space exit point.

Note this patch can only upgrade v1.30 or later to the current version.

To upgrade to v1.35 from any other version of Oolite you will have to download the complete disk image from one of the main download links at

December 31st, 2004

Announcing Oolite v1.40 [Dec. 31st, 2004|06:01 pm]

[Current Mood | accomplished]

Oolite, the popular expandable space sim game for Mac OS X, has been updated to version 1.40.

Oolite incorporates trade, battles with pirates, bounty hunting, secret missions and more. It features high-quality sound and smooth, fast three dimensional graphics, written specifically for Mac OS X using Cocoa and optimised for OpenGL. And it's free.

Version 1.40 has seen the underlying graphics engine given a complete overhaul, packing in many optimisations to increase framerates even on older G3 Macs. New ships and equipment have been added to the mix, while the AI brings even more realism to the expanding universe.

Oolite was written by Giles Williams, who was inspired by the work of David Braben and Ian Bell with Elite, however this work is an entirely independent interpretation and expansion of the original game. Oolite has benefited immensely from the responses of the many people who volunteer their time and skills to test the game and to suggest and make improvements to this open-source project.

Oolite and its source-code are offered for free under a Creative Commons License: (

And yes, a Windows port is under way and is currently expected to be available in February.

Oolite is available from



January 7th, 2005

What I've been doing all week... [Jan. 7th, 2005|11:11 am]

"This week, I 'as been mostly reworking the automated docking systems"

Version 1.41

  • Calling up the comms log now indicates the last transmitting vessel on the scanner.
  • Graphics indicating ships transmitting messages changed.
  • Laser temperatures now reset after game over.
  • Keypresses are cleared before moving to a selection screen (should put a stop to the unintended-purchases bug).
  • Only the System's main station affects your legal status, rock hermits are beyond the law.
  • Improved 'find planet' system on the long-range chart.
  • 'No equipment to purchase' sign shown when no ship upgrades are available.
  • Fixed major bug with collision detection.
  • Docking AI system thoroughly revised.
  • Aligning with the docking slit is now much more important for large ships docking manually.
  • Other minor bug fixes.

Plan for the next week. [Jan. 7th, 2005|02:41 pm]

Para-oolite work:

Write a script to convert Lightwave .obj files to .dat and incorporate it into a new droplet.

Document Scripting in Oolite in a more readable form.

(Week after next)

Implement new energy bombs and space dredgers.

January 12th, 2005

Sneak Preview [Jan. 12th, 2005|06:35 pm]

Today I 'as mostly been working on Behemoths.

Ever wonder what the Imperial Navy used to fight Thargoid invasion ships?

Behemoths Titan and Argus

[in all 4 images]

</lj_raw> That Behemoth is 750m long and was made in Wings3d, as was the Weeviloid Scoutship. and the Q-Bomb energy bomb prototype.

January 17th, 2005

Wishlist [Jan. 17th, 2005|10:22 pm]

Today has been filled with behemoth bugfixes and brainstorming ideas for what other equipment to include.

I like the idea of a Thargoids vs Imperial Navy expansion. I have a small pile of ideas for that.

Space Drdgers are but a few steps from implementation.

Shields upgrades / Weapon cooling / Tractor beams / Enhanced sensor kits / Enhanced mining kits all still TODO.

January 24th, 2005

[Jan. 24th, 2005|09:57 am]

[Current Mood | sick]

Full of cold. Development stalled somewhat. Blegh!

January 28th, 2005

Rough week! [Jan. 28th, 2005|09:28 am]


Apart from Tuesday when I got a sudden burst of feverish energy this has been a slow week for developing Oolite. This has been down to a bad cold and a hangover the size of a Thargoid mother-ship that lasted from the morning after Burns' night (Tuesday) well into Thursday.

I've made a lot of progress on a putative replacement for the kill-joy og-Elite energy bomb, which has mutated into the Quirium Cascade Mine, an expensive device that mounts to a missile-pylon.

The work on this opens the possibility of a variety of missiles and mines to mount.

I also made a little progress on the 'elite-strict' game option. I'm going to concentrate my energies there this coming week. Then finally get around to Space Dredgers and a Wings3D tutorial (possibly combining the two) the week after.

Look for an update to v1.44 this afternoon. Now, I need coffee.


February 1st, 2005

Miss Strict [Feb. 1st, 2005|06:31 pm]

After much procrastinating research, I finally implemented the strict-rules option today.

That and the 'begin new game' option.

Changing between unrestricted and oolite-strict necessitates resetting the game, so you're returned to Commander Jameson when you do that. A game begun in strict mode will continue in strict mode when saved and reloaded. A game begun in unrestricted mode will continue in unrestricted mode.

February 3rd, 2005

Downtime [Feb. 3rd, 2005|07:58 am]

[Current Mood | down]

Rats! seems to be down again (8.00am 3/2/2005). Hopefully this won't be for long.

UPDATE: (10.10am) Back up.

Ship go boom! [Feb. 3rd, 2005|04:41 pm]

Finally implemented sub-entity explosions so that they go bang in the right places. This makes blowing up rock-hermits and behemoths much more satisfying.

February 11th, 2005

Slow... [Feb. 11th, 2005|06:48 pm]

Precious little progress this week I'm afraid. I tried to work out a problem with full screen under 10.2.8, but didn't get much further.

Did some ship-design work for Space-dredgers and I'll have another look at the code needed to support the 'missing missions' (Super-nova refugees and Cloaking device).

Still waiting on the code for Oolite-PC.

February 16th, 2005

Goofyness [Feb. 16th, 2005|08:06 pm]

I'm making some progress adding scripting functionality to add decision making and the necessary routines to cover the missing missions. However there won't be a patch release this weekend.

I'm going to Disneyland instead.

Look for 1.45 at the end of next week

February 23rd, 2005

photosphere! [Feb. 23rd, 2005|11:11 pm]

Supernova routines working nicely, must now bump cabin temperatures up so you get to enjoy death as well as a show.

Fuel leak routine also engaged.

Looking good.


March 4th, 2005

On [Mar. 4th, 2005|04:53 pm]

Added more routines to support the missing missions. Thought deeply about what else will be necessary for these too.

Collision detection work resting for a while. I seem to have accidentally implemented a 25.6 second replay system too, that will be nice when I get the external view system working.

March 13th, 2005

Boom tomorrow! [Mar. 13th, 2005|11:24 pm]

[Current Mood | dorky]

Much significant progress on the Nova mission, adding capabilities to the scripting engine as I go.

The basics of this could also be used to easily write a Urgent Vaccine Delivery mission.

March 16th, 2005

3... 2... 1... KaFoom! [Mar. 16th, 2005|02:03 pm]

Finished implementing the 'Nova' mission.

Suffice to say it's in Galaxy Four.

Cloaking Device mission next (Galaxy Five - I want to keep you moving!)

March 18th, 2005

v1.46 done: [Mar. 18th, 2005|10:08 am]

[Current Mood | exhausted]

Version 1.46

  • Some attempts to fix bugs with Mac OS X 10.2.8, it's unclear how much success there will be with this.
  • Station port_dimensions can be set by specifying port_dimensionsFFxFFxFF in shipdata.plist (where FF is a float) in shipdata.plist
  • Player choices are available at mission screens, see the nova mission for an example.
  • Prices vary from station to station within a system.
  • Bugs with miscounted numbers of missiles fixed.
  • Enhanced sun graphics.
  • Much work on more precise collision detection and response in the underlying engine — this work is still ongoing.
  • Many additions to the scripting library (see PlayerEntity Additions.h).
  • Planetinfo values can be set by scripts and persist (are saved in the saved game).
  • Cargo carried by traders can be specified in shipdata entries using cargo_carriedCommodity_name.
  • Cargopods, rocks and suchlike no longer count as ship kills except in strict play (thanks **tgape**).
  • Added a "spawn: ship_role n" script method. Useful in 'death_actions' when a ship is being blown up.
  • Added the nova and cloaking-device missions (in galaxies 4 and 5).

Get it here:

March 26th, 2005

Work break [Mar. 26th, 2005|01:41 am]

For those of you worried about the current lack of any progress past v1.46. I'm keeping track of the issues as they arise, but the kids are all off school for Easter and there is stuff to do about the house. So finding the necessary time for Oolite willl have to wait a week or two.

Plus it gives me a break and a chance to watch the new Doctor Who.


April 7th, 2005

Doing the todos [Apr. 7th, 2005|04:59 pm]

Got a pleasing amount of TODO's done that I had marked in the forums. Fixes and improvements to the Nova mission, eliminating dead code and classes, and working on improvements to the scripting. v1.47 test patch due out shortly.

April 10th, 2005

1.47 Patch done... [Apr. 10th, 2005|12:18 pm]

April 27th, 2005

No more space-station billiards [Apr. 27th, 2005|12:15 pm]

[Current Mood | good]

I revised the collideWithShip: method so that collisions between objects are dealt with as 'proper' elastic collisions.

This was harder than I recalled my A and O-level physics - basically momentum and kinetic energy are both preserved. I fudge a bit, by assuming the energy lost by damaging each ship in the collision is negligable - but it seems to work.

No more space-station billiards - or cargo canisters zooming off at incredible speeds, huzzah!


May 1st, 2005

Tigerriffic [May. 1st, 2005|07:51 pm]

[Current Mood | slightly pished]

Debugged Oolite v1.48 for Tiger, there were OpenGL glitches (due to increased options in creating OpenGL contexts) and event handling glitches, but even two-glasses-of-wine down I managed to nail both of them today.

This week, in addition to merging some of my changes into the GNUStep/Linux version I shall be working on equipment expansion options (shield boosters, extra hull insulation), witchjump abort switches and the like.

I expect to publicly release v1.49 or v1.50 as Oolite-Tiger once others have had a chance to test v1.48.

May 6th, 2005

First viable post-Tiger build roll-out. [May. 6th, 2005|07:49 pm]

[ Current Mood | accomplished ]

Get the patch here:

May 10th, 2005

Continued optimisation [May. 10th, 2005|06:04 pm]

Replacing the cloud of particles generated by an explosion with a single 'particle cloud' entity has eased the problem with 'micro-freezes' when ships are blown up. I'll do a little more on this for v1.49.

I'll also have a peek at how the Universe generates lists of entities for other objects to use - this is VERY inefficient at the moment and could benefit a number of areas.

Looks like v1.50 is going to get 'teh snappy'!

May 11th, 2005

Noises off [May. 11th, 2005|09:03 pm]

Right then. That's Oolite optimised up the wazoo. For the moment I don't see many ways of getting much more improvement (short as ahruman suggest, of rigorously caching all ivars.)

Next: Sound.

Specifically better sound code and a volume control.

I'm going to borrow some code from Apple's Developer samples to write an OOSound class for Oolite to achieve this.

I'd initially intended to do this with OpenAL as a paen to using open standards, but with Oolite-Linux using SDL already - I'll just go on and use Core Audio and Quicktime - which will leverage future improvements in those technologies.

May 13th, 2005

Worn out but active.. [May. 13th, 2005|07:47 pm]

Today I have mostly been focusing on graphic glitches. There's been a problem with smoothed objects since I introduced the vertex array optimisations. I managed to fix that.

Now I'm having problems with material properties, specifically they change unexpectedly. This is most likely due to me doing something inconsistent with them - and I'm checking over the usual culprits (ParticleEntity, DustEntity, SkyEntity) and giving them a stern talking to.

Bugger!@*# [May. 13th, 2005|10:27 pm]

[Current Mood | disappointed]

It looks very much like I made some naive and dumb mistakes with Oolite's graphics, mistakes that earlier OpenGL implementations ignored (or generated Errors I didn't look for).

Back to the Red Book and rewrites in store for most Entities before v1.49 can go out the door.

May 14th, 2005

Gonna get you! [May. 14th, 2005|11:03 am]

[Current Mood | accomplished]

I'm closing in on the graphics glitches. I've eliminated a couple of OpenGL errors (yes, we do error checking now!) and at least some problems have been eliminated by keeping better track of whether textures are enabled or not.

There's still a buggy little problem with drawing exhausts affecting the way lasers are drawn. I'm gonna get it, and when I do - I'm gonna smoosh it!



That is a bizarre little behaviour the Tiger OpenGL drivers have there.

Gory detaillage:

It seems that if you set a state like glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, whatever) within a glBegin()/glEnd() section, then the state is preserved inside any following glBegin()/glEnd() section regardless of any calls to glMaterialfv() outside of a glBegin()/glEnd() loop.

Either this is a feature of OpenGL of which I was previously unaware, or it's a feature that's changed for the latest OpenGL version, or a undesired feature (aka bug).

Either way, now I know about it I can compensate for it.

May 16th, 2005

Improvements continue [May. 16th, 2005|05:06 pm]

[Current Music | Leave // New Adventures In Hifi by R.E.M.]

  • reduced numbers of entities again by improving explosions.
  • lighting tweaked to better reflect each system's sun.
  • 'witchpoint' compass mode now replaced by 'beacons' mode.
  • More pirates - about 10-50% more per system.

May 17th, 2005

Yeah! [May. 17th, 2005|02:59 pm]

More graphical improvements:

  • Lighting is better, separating sunlight and starlight and processing the two with different colours.
  • Smooth objects look better with more advanced calculation for their lighting.
  • Remodelled the missile in line with og. Elite now I have better modelling skills (about time!)
  • Super-secrit special sauce added.

May 20th, 2005

Nice... [May. 20th, 2005|11:33 am]

[Current Mood | chipper]


One quick optimisation to what's drawn when — and I reckon I've increased framerates for v1.49 by about 20% (testing seems to indicate teh snappy).

As displacement activity I've been remodelling an asp in the style of the one here:

( My version is here - behind the cut )

Aegidian aspx May05.jpg

May 22nd, 2005

Go to the dark side... [May. 22nd, 2005|11:39 am]

Simple shadowing is done, large objects can cut off the sunlight for smaller objects and the checks for this don't tax the update cycle too much.

Right - that's what I was gfoing to do this week, so it gives me time to play around with the AIs before I release the v1.49 patch at the end of the week.

Plus, I can spend an hour or two merging the changes into the Linux source.

After that I reckon on about 2 weeks of bug fixin' then I'll do a full public release of v1.50.

May 27th, 2005

v1.49 is go [May. 27th, 2005|01:01 pm]

[Current Mood | hot]

[Current Music | Just Like Heaven (The Cure) // Punk Goes 80's by Gatsby's American Dream]

Subject to bug reports I'll package this one up and release it as v1.50 to the public at large!

May 31st, 2005

Fixin' [May. 31st, 2005|07:48 pm]

[Current Mood | blah]

[Current Music | 01-Opening // Young Sherlock Holmes by Bruce Broughton]

So ships with afterburners were posing a major hazard to space safety. That's because they often wanted to be on the other side of your ship and chose what looked like the quickest (shortest) route.


Fixed now. And I patched up the quicksave to boot. And copied the changes over to the linux version. Gosh, I've been busy this afternoon!


June 2nd, 2005

Pushing On [Jun. 2nd, 2005|12:47 pm]

[Current Music | Democracy // The Essential Leonard Cohen (2 by Leonard Cohen]

I think I've nailed some more graphical glitches and I've added the option for custom missile and mine icons in the HUD.

There's an experimental custom missile here for anyone with the latest build and/or time to play:

I've also finally wrestled my server into handling the SVN repositiory better. Sorry to anyone who has been having difficulty with it since I moved up to SVN 1.2.0 (FWIW - reading and rereading the svn+ssh:// server checklist and the advice on migrating repositories is good advice).

Cool [Jun. 2nd, 2005|02:35 pm]

[Current Music | Revolution Solution (Feat Perry Farrell) // Cosmic Game by Thievery Corporation ]

I just got chased by an ECM hardened missile.

Yay (I out ran it!)

v1.50's cooked! [Jun. 2nd, 2005|05:23 pm]

[Current Mood | accomplished] [Current Music | Revolution Solution (Feat Perry Farrell) // Cosmic Game by Thievery Corporation ]

Version 1.50

Note how the rapid development cycle spins its furious wheels...

  • A few more graphical glitches removed.
  • NPCs will occasionally use expansion pack missiles if they are available.
  • Custom HUD missile and mine icons can be defined in descriptions.plist.
  • Stations detect ships in the docking corridor and delay launches of NPC ships until the departure corridor is clear.
  • Ships are less inclined to collide suicidally with their targets.
  • Problems with Quicksave resolved.

I need to hear about bugs in this one QUICKLY as I intend to release it as a full package at the end of next week (July 10th.) Please let me know by email as soon as you encounter any problems, bugs or glitches.

June 3rd, 2005

Offline [Jun. 3rd, 2005|12:15 pm]

Our broadband router has died which means I shall be offline until it is repaired.

Sorry, we'll get this fixed ASAP.

UPDATE: 6/6/2005 14:42

We're back online - thanks for your patience.

June 9th, 2005

Hello Oolite 1.51 [Jun. 9th, 2005|02:18 pm]

[Current Mood | accomplished]

Changes to Version 1.51 from version 1.40

  • New weapons and equipment.
  • Two new classic missions built in.
  • Play in unrestricted or 'strict' classic gameplay modes.
  • Thargoids are many times more dangerous than before.
  • Improved and expanded scripting for missions and AI.
  • Graphics enhanced and speed increased again.

Update Patch: 815.4 Kb

Full disk image: 22.58 Mb

Lite Version (midi music): 11.31 Mb

Source code: Subversion Repository

June 22nd, 2005

Onwards... [Jun. 22nd, 2005|05:40 pm]

Okay, so it's major overhaul time - for the data.

I'm redoing most of the models so they're in wings format initially and at the proper scale, and with textures that suck less. I'm working through this alphabeticlaly, and I'm up to B for Boa.

Also I'm redoing ther sound code - most likely to use fmod, which is free (since Oolite is free). It's the easiest way to switch to Ogg Vorbis on the mac - without going the Core Audio route, and it'll support stuff like volume control that I've been wanting included for a while.

And also I've done some work on the scripting, incorporating a fair bit of stuff suggested by David.

1.52 is likely to be a major test patch for all of this.

THEN I'll get back to working on the damaged collision detection stuff. (Subentity collision detection, better close colision detection.. etc.)

June 26th, 2005

Sounds [Jun. 26th, 2005|07:01 pm]

Converted over to using the fmod library for sounds rather than NSSound. And with this all the sound effects and music have been converted to Ogg Vorbis.

This has allowed me to implement a volume control for sound effects music and in-game speech that doesn't interfere with the system volume control or iTunes.

There have also been improvements to scripting to allow the precision placement of objects.

June 28th, 2005

Oops - it didn't crash. [Jun. 28th, 2005|09:27 am]

[Current Mood | amused]

Fixed an important bug that was preventing craft from trying to avoid collisions.

June 30th, 2005

What a rush! [Jun. 30th, 2005|06:18 pm]

Okay, I made a first attack on subentity collision detection and I've got it working (just).

To test this I stopped the Nav Buoy from rotating and attached three 50m diameter boulders to it as subentities at y + 100m y + 300m and y + 500m.

Now in Oolite the Cobra Mk II is 130m wide, 65m long, and about 30m tall. In other words it can just about fit between two of those boulders. So I've been buzzing about the buoy flying stunts in a manner I haven't enjoyed so much since flying under bridges and between buildings in Aviator.

I still had to hit the boulders occasionally just to prove that worked too.


Now, I need to make it work with laser fire and object targetting too.


I revised how Oolite parses strings in scripts and other property lists to be more tolerant of whitespace between values: you can now feel free to use tabs, extra spaces, even newlines!


July 2nd, 2005

Kachunkah! [Jul. 2nd, 2005|09:47 am]

Subentity collision detection complete.

July 4th, 2005

Like shooting cans off a fence... [Jul. 4th, 2005|03:08 pm]

Implemented the idea of 'frangible' targets, ie. one's that you can shoot the sub-entities off of.

Currently all ships are frangible, but it can be reset by specifying <key>frangible</key><false/> in the shipdata.plist entry.

This'll allow for some nice stuff like shooting gun-turrets away, damage-able complex ships and more. Fun! Fun!

July 15th, 2005

This week's progress [Jul. 15th, 2005|12:21 pm]

[Current Mood | hot]

[Current Music | Help Me Ft. Kelis // Destroy All Humans by Timo Maas]

Working on some interface improvement, specifically generic mouse support in purchasing/options screens.

I've also revised and to avoid left-right inversion of textures. They're in svn already but I'll upload these tools as a .zip later this weekend.

I'm still slowly going though the base ship set, converting source files to Wings and improving the texture resolution. Once done the improved textures should actually take up even less space than the originals, reducing the size of the total package - which is nice.

July 19th, 2005

Proot? [Jul. 19th, 2005|12:51 am]

[Current Mood | drained]

[Current Music | ]

Today spent cracking problems in script-added extra stations. These are solved for v1.53, but require a change to the roles portion of their shipdata.plist entries (adding 'rotating-station').

Also put together Murgh's graphics for Trumbles into a single file, and began sketching out an Obj-C class to control them.

July 20th, 2005

Frazzled [Jul. 20th, 2005|04:16 pm]

[Current Mood | drained]

[Current Music | ]

I'm feeling particularly tired and worn ATM. I'm going to give coding a rest for a few days while I recover my enthusiasm.

This'll delay spawnShips and Trumbles, both of which are important additions for v1.53, and also to merging changes in to the oolite-linux codebase - but I hope you all can understand I don't want to get burned out.

July 25th, 2005

Slow and steady [Jul. 25th, 2005|10:21 pm]

[Current Mood | blah]

[Current Music | The Gun Pointed At The Head Of The Universe // Halo Soundtrack by Total Audio]

I'm coontinuing to take things easy, although I do occasionally get itchfingers eager to reopen Oolite.pbproj...

Instead I'm easing gently back into things by continuing the revising of the base model set:- adding a better escape pod and (working alphabetically) I'm up to thargon.

When I get back to work my priorities will be laser-firing-positions in shipdata entries, spawnShip, and the Trumbles (as well as the aforementioned model revisions).


August 5th, 2005

D'oh [Aug. 5th, 2005|01:34 am]

[Current Mood | nerdy]

If one wants meaningful crash reports one should not strip debugging symbols from distributed binaries.

    • raps self on knuckles**

August 9th, 2005

Ongoing work. [Aug. 9th, 2005|06:56 pm]

Right, I finally started implementing the Trumbles, multicoloured little beauties that proot and blink.

I need to add more logic to them, but they're looking good.

August 19th, 2005

trumble-taculer progress [Aug. 19th, 2005|04:56 pm]

[Current Mood | accomplished]

  • Atmospheric friction and weapon strikes now raise cabin temperature. Watch your gauges carefully if using fuel injection within a planetary atmosphere!
  • Trumbles now die when their discomfort level gets too high (at high temperatures mostly Cf. above).
  • Eating, squealing and shuddering lowers Trumble discomfort levels.

Redux [Aug. 19th, 2005|08:13 pm]

[Current Mood | accomplished]

And a further SVN commit sees all the new ship models and textures rolled into v1.53 - saving a minimal amount of space on the final binary and improving models and textures at the same time.

August 22nd, 2005

Missile sales [Aug. 22nd, 2005|10:09 am]

Added the option (in the ship outfitting list) of unmounting all missiles and mines from your ship while in port, so that new ones can be purchased.

spawnShip [Aug. 22nd, 2005|11:21 am]

New script action:

spawnShip: shipdata_key

Adds a ship to the universe that is typically unique (a one-off like a special orbital station or a named pirate). The position and orientation of the ship are determined by values in its shipdata.plist entry like this:

  			<string>wpm 0 0 -20000</string>
			<string>wpm 0 0 0</string>

August 25th, 2005

Hah! [Aug. 25th, 2005|04:56 pm]

[Current Mood | accomplished]

[Current Music | Power Ballads // Power Ballads by London Elektricity]

Hacked scaling an image using just the raw byte data, this should help solve texture scaling problems on oolite-windows.

V1.53 release delayed [Aug. 25th, 2005|05:17 pm]

[Current Mood | cheerful]

[Current Music | I Don't Care (Single Version) // I Don't Care by Ricky Martin Feat. Fat Joe & Amerie]

I don't have time to do this before I go to France, I'll let all the software sites know about it and do the Oolite-lite version when I return.



September 13th, 2005

Slow progress [Sep. 13th, 2005|05:37 pm]

[Current Mood | drained]

I'm trying to play-balance the equipment damage routines with one hand and produce better exhaust effects with the other.

Work is slow on both, sorry.

September 19th, 2005

Graphics Overhaul revisited [Sep. 19th, 2005|10:40 pm]

[Current Mood | artistic]

Okay, so I got the exhausts looking much better (and behaving like gas jets rather than pointy glows), but it caused me to revisit all the particle drawing code that draws translucent stuff.

It was a bit of a dogs dinner, so I'm rewriting a fair bit of it to remove problems with OpenGL state setting and material values (not money, shininess, ambient and diffuse light effects - that sort of thing).

It's about time I replaced the generic explosion effect with something more closely related to the object exploding too.

September 24th, 2005

Bulletin Board down. [Sep. 24th, 2005|05:15 pm]

[Current Mood | aggravated]

We seem to have lost the MySQL database for hopefully this is temporary (I have the server people working to find a backup). But if that fails then my own last personal backup of the database will be from 26th July, so a number of posts and announcements will have been lost.

Please bear with us for 24 hours.

UPDATE: We're back up. (I suspect a MySQL upgrade).

I'll back up the database immediately.

September 25th, 2005

Off to Brands for A1 [Sep. 25th, 2005|06:29 am]

[Current Mood | chipper]

Gone racing. No progress today.


October 2nd, 2005

Next Version [Oct. 2nd, 2005|08:45 pm]

[Current Music | Closing Time // The Future by Leonard Cohen]

Okay, so I've been hacking hard since the last release. Ship damage, improved effects, revised docking AI, and a number of bug fixes.

The plan's to play test hard over the next few days and then put together a release at the end of the week.

October 3rd, 2005

Combat Duty [Oct. 3rd, 2005|07:41 pm]

[Current Music | Main Title - South Africa, 1936 // Indiana Jones and the Rai]

AH yes. Revise the combat pilot routines, nothing simpler...

(*groan* more trigonometry... more testing...)

In other news, today I was made an offer I can't refuse. A paid up holiday in the US of A Canada (better yet!) for Chrimbo! Hurrah!

October 5th, 2005

Deep in the code [Oct. 5th, 2005|07:09 pm]

[Current Music | Miri ir is while sumer ilast // Miri it is by Dufay Collective]

I've revised/been revising/am bugfixing lots of navigation code. This has improved the accuracy of the NPC pilots (so that yes, Dylan, escorts are once again a threat). But has messed up the missile guidance code a little. I'm hacking on it, but it means the code's in an unstable state.

I'll have to see about that next release...

October 6th, 2005

The old solutions are the best [Oct. 6th, 2005|11:23 am]

[Current Music | Sons Of The Stanford Red // Greatest Hits & Skits, Volumes 1]

Okay so the new navigation code wasn't working for missiles.

I struggled for a few hours trying to get an improved tracking algorithm to work.

Then gave up, and reinstated the old navigation code to use with missiles as a special case.


And now we have an intermittent crashing bug. Gah!...

Further Gah! [Oct. 6th, 2005|11:37 pm] [Current Mood | frustrated]

[Current Music | Hold // Evoke by Wumpscut (By Naked Beat)]

Hours running from GDB reveal this to be a heisenbug - it only appears when I'm not looking for it.


October 7th, 2005

Bug busting [Oct. 7th, 2005|03:09 pm] [Current Mood | frustrated]

[Current Music | So Long, Marianne // Songs by Leonard Cohen]

Okay, it would certainly help if I had disabled the strip-debugging symbols flag properly. That done, I have to soak test again and see if and where and how the bug turns up...

October 8th, 2005

At last some good news [Oct. 8th, 2005|05:04 pm]

[Current Mood | creative]

[Current Music | Jewel In The Crown // Tubular Bells III by Mike Oldfield]

Made excellent progress today.

The Heisenbug turned out to be a simple problem occasionally referencing a 'nil' object.

I've implemented the code that allows mission-won hardware to be available at high TL stations once it's won, and tidied up a display or two. Also escape capsules are no longer sometimes inactive on launch, now they all fire up their jets and head for the planet.

The new navigation code makes AI enemies a lot more fearsome, they're accurate with their lasers from longer ranges and turn faster onto their targets. Anarchies are dangerous places once again, especially with the equipment damage routines now working.

SO the plan once more is to test and test again until Wednesday while I write up documentation and update the websites for the new features. Upload on Thursday, and do a full release this as version 1.55 next weekend.

October 13th, 2005

Release a-coming! [Oct. 13th, 2005|12:48 pm]

Right v1.55 is complete, and will be available from tomorrow.

For v1.56 onwards I've migrated to Xcode 2.1 which will mean anyone using SVN will want to use the new Oolite.xcodeproject file.

Personally, I'm struggling under a bad cold again. *haaackff*

October 15th, 2005

A thousand and one little things [Oct. 15th, 2005|04:33 pm]

[Current Music | Space Fly v2 // by DJROM & Monty Forester]

With v1.55 out the door (see ), I've been turning my attention to the many niggles I've encountered in recent playtesting.

Hence the plethora of small commits to the repository today as graphics, sounds, and gameplay have some tiny burrs ground off and a shine added.

October 17th, 2005

Milestones [Oct. 17th, 2005|07:11 pm] [Current Mood | accomplished]

[Current Music | Teenage Dirtbag // Wheatus by Wheatus]

Implemented a graphical display of the government, economy and TL for the short range chart (press i for info).

Included a version of Ahruman's Grolite Growl notification doodah for full-screen mode (so you can see when you get Skyped or emailed or iTunes playsa new track).

Reached SVN revision r999. Not bad for a year's work.

October 19th, 2005

Oof! [Oct. 19th, 2005|12:27 pm]

[Current Mood | exhausted]

[Current Music | Baby Said // Baby Said - Single by Hot Chip]

Seamlessly wrapping a square texture around a subdivided icosahedron in such a way as to preserve geography is best left as an exercise to the cartographers.

I managed it in the end though.

October 21st, 2005

Gah. [Oct. 21st, 2005|11:52 am]

[Current Mood | exanimate]

[Current Music | Simpsons Spin Off Showcase // Go Simpsonic by The Simpsons]

I go to sleep swearing because v1.56 patch seems to have a crashing bug.

Wake up, look through the changed code and can't see a problem. But feel it must be to do with pirate ships dropping loot, because it was (seemingly) repeatedly crashing when I was shooting pirates while testing.

Can I get it to crash now? Of course not.


EDIT: Two minutes later, destroying a pirate Python, CRASSSSH!

The backtrace isn't helpful, something's playing havoc with the stack — but I think my first guess is still a good one.


Hmp. It crashed when the autorelease pool was being deallocated, making this look like a retain/release problem, trying to send a message to an object with address 0x0000001f (obviously a problem). Looks like a ship_id integer rather than a ShipEntity pointer. Hmmm....

October 22nd, 2005

back to test mode [Oct. 22nd, 2005|05:24 pm]

[Current Mood | exhausted]

Okay, the current code now seems more stable.

I'm not actually too sure why (you may wince), there seemed to be memory allocation problems, some of which were cropping up only while debugging.

I'm going to test solidly for a few hours and then call this one done.


Well I found a couple of gameplay (non-crashing) bugs, but the solid testing is looking good so far. I'm going to load up the soak test and let it run while I sleep. If all's well I'll package this up as v1.57 sometime tomorrow and then take a break before hitting my todo list and incorporating ahruman's latest addition (Spotlight for Oolite - 'Spoolite'?)

October 23rd, 2005

So very frustrating [Oct. 23rd, 2005|06:13 pm]

[Current Mood | frustrated]

[Current Music | Crime // Double Bummer CD1 by Bongwater]

Okay, so it used to build for OS 10.3 under xcode 1.2, now it doesn't. It builds something that doesn't work (doesn't load the .nib and crashes).


This should not be so difficult.


It was (as ahruman suggested) the GCC_FAST_OBJC_DISPATCH=YES build setting causing the problem.

Now, if I'm crossdeveloping, why can't xcode warn me about build settings that won't work on the target OS?!

October 28th, 2005

Untitled [Oct. 28th, 2005|05:46 pm]

Just a note to say I'll be MacExpo tomorrow morning and at the Oolite pub [dead link] meet tomorrow afternoon.

October 31st, 2005

Niggles and Tweaks [Oct. 31st, 2005|11:09 am]

[Current Music | Best Thing in Town // Kerplunk by Green Day]

Working my way through my todo list and attending to lots of small niggles and tweaks made possible by the new witch space routines.

  • The scanner now zoooms nicely and has 5 kilometer gradations (1km at higher zoom levels), useful for making sure you're 10km from the station when you jump.
  • You can fuel injuect during the wich drive countdown.
  • You occasionally get something other than a misjump when your drives malfunction.
  • Ship AIs also work better with the new witch space routines now.


November 8th, 2005

Ouch [Nov. 8th, 2005|10:54 pm]

[Current Music | Sing For Absolution // Absolution by Muse]

While I'm hacking on Oolite, I'm wincing.

There are too many instabilities in the current build. Unfortunately none of them are on my test machine, so it's really hard to debug them, especially the ones coming up on some people's Mac OS X 10.3.9 installations.

Makes my brain hurt!

November 10th, 2005

Mmm [Nov. 10th, 2005|12:26 am]

[Current Mood | exanimate]

So - I'm addled by having had my annual flu jab - but I took a poke at the collision avoidance code today.

And it started crashing on me.

Now I couldn't figure out why in my current state, but this looks like it may be the area that could be causing the instabilities other users are seeing.

So when my brain returns to normal, I'll overhaul that code.

November 28th, 2005 down [Nov. 28th, 2005|10:37 pm] will be down until about 3.30am as the servers are being physically moved about the datacentre.


UPDATE: 8.00am. Still no server. Blast them.

UPDATE: 11.00am. And we're back up.


December 1st, 2005

Little progress - low mood [Dec. 1st, 2005|10:47 pm]

You may have realised that I'm in a bit of a hiatus regarding work on Oolite ATM.

I'm depressed by the number of crashing bugs that have appeared post v1.55 and somewhat at a loss to explain them. This and having my various medications altered have drained me of a lot of my 'oomph' (I'm starting pills to alleviate high blood-pressure and poor cholesterol levels in addition to my usual thyroxin and insulin - I'm type 1 diabetic if you didn't know).

So I'm going to rest up and try to let my enthusiasm recover before carrying on — please excuse any unanswered mail for a week or three.

December 10th, 2005

For my scrapbook: [Dec. 10th, 2005|03:57 pm]

[Current Mood | accomplished]

Mag OOreview.jpg

December 16th, 2005

Small progress.. [Dec. 16th, 2005|11:27 am]

You may notice one or two items have been ticked off of my todo list... Aegidian todolist archived]

December 24th, 2005

Xmas Break [Dec. 24th, 2005|12:28 am]

[Current Mood | excited]

[Current Music | Man On The Moon // Automatic For The People by R.E.M.]

Right, that's it, the last few commits before I go off for my holidays.

There are a couple of much-requested/reported fixes in there.

Seasonal Salutations to one and all!



January 3rd, 2006

Working again. [Jan. 3rd, 2006|11:35 pm]

[Current Mood | creative]

[Current Music | Over My Shoulder by Mike And The Mechanics]

Yes, I'm back.

Been committing some changes to the AI - which has been the source of a number of crashes. Hopefully these changes will make it more stable.

Also I finally managed to reply to the build up of mail in my Oolite inbox. This has meant sending a few generic 'thank you for the crash logs' messages, I do hope tha doesn't offend anyone. I do read your crash logs, and they do contribute to my work in a major way. So keep sending them y'hear?

v1.61test should be okay for a trial release this week (fingers crossed!)

January 4th, 2006

Server problems [Jan. 4th, 2006|08:35 am]

There seems to be a problem with ATM.

Bear with me, I'm working on the problem.

UPDATE: Resolved now.

January 5th, 2006

Conflicting OXPs [Jan. 5th, 2006|06:45 pm]

[Current Mood | geeky]

[Current Music | I Am Eve // The Rose by Mediæval Bæbes]

I realised that planetinfo.plist entries were beginning to conflict with each other, which was a problem with how I was using ResourceManager to merge dictionaries. An entry in one planetinfo.plist in one OXP would completely override a similar entry in another. This is suboptimal.

I've implemented a new 'smart' merge for dictionaries from different OXP's and the AddOns/Config folder. This should mean better compatibility for OXPs that customise planetinfo.plist in different ways.

The new routine is an extension to NSMutableDictionary.


Rats! It breaks stuff like HUD loading...


Now I only 'smart merge' planetinfo.plist

January 6th, 2006

v1.61 test TODAY [Jan. 6th, 2006|06:06 pm]

[Current Mood | accomplished]

[Current Music | Parakeet // Up by R.E.M.]

At last, several more items crossed off of my todo list...

and v1.61 tagged and committed...

So if I get a spare moment tomorrow I'll put together the release details.

Here's the patch:

Main Changes for Version 1.61:-

  • Many bugfixes, tweaks and glitches smoothed over - should be more stable (at least on OSX 10.4.3).
  • Overhauled collision and explosion physics.
  • Audio cue when fuel-scooping.
  • Improved compatibility between OXPs (planetinfo.plist entries are merged rather than overwriting each other).
  • Sound system switched to core-audio (thanks Ahruman).
  • Less cop-on-cop violence and greedy-cop scooping of cargo.
  • Better control for zooming the scanner (holding down 'z' now zooms all the way in, but must be released before it then zooms out again).
  • Ships have more representative roll and pitch variation.
  • Can use 'R' (key_rotate_cargo) to rotate cargo to select what to eject.
  • Added more commands for scripting.
  • Mission variables can be used within square brackets for expansion in text messages.
  • New 'else' option in 'conditions'+'do' in scripts.
  • Fewer hangs with poorly written OXPs.
  • Better build compatibility with oolite-linux, and fewer warning (thanks to Ahruman and James Quick).
  • Load/Save uses the Mac GUI when not in windowed mode.

You know where to send the crash reports!

January 7th, 2006

Journey to release day (part one) [Jan. 7th, 2006|11:29 am]

[Current Mood | pleased]

[Current Music | Obsessio // Evoke by Wumpscut (By Cerebral Apoplexy)]

A few hours after release and v1.61 is looking (say it quietly) stable.

That's a huge relief after the crash-fests that were v1.56 through v1.60. The problem seems to have been some dodgy retain/release problems with AIs. There are still some problems with this (missile AI's becoming orphaned) - but they seem to be minor and caught by internal consistency checks.

So, now I'm going to concentrate on removing the remaining gameplay glitches and then wrap this up as a public release, which should be v1.62 (possibly v1.63).

New features like pilots and advanced bounty/ransom stuff will have to wait for the first tests after the next release.

Once I'm satisfied with v1.62 I may also spend some time bringing the oolite-linux code into line with the Mac OSX code. Although this is a fairly trivial task, it's one I prefer to leave to Winston and Ahruman - and they may well manage this before I get to it!

OH - and I really ought to take some time to update the oolite-pc and oolite-linux websites when I next update!

January 13th, 2006

v1.62 pre-release test available [Jan. 13th, 2006|02:42 pm]

[Current Mood | pleased]

[Current Music | Jimmy Carter // Senor Smoke by Electric Six]

Here's the upgrade patch:

It's looking healthy and stable, so if no bug reports come my way in the next few days I'm going to release it!

January 15th, 2006

Almost... there... [Jan. 15th, 2006|10:51 pm]

[Current Mood | indescribable]

[Current Music | Wordplay // Mr A-Z by Jason Mraz]

v1.62 has needed a few fixes. I'll hold off on the release until later this week.

I've been testing intensively. With the result that I am now only 176 kills away from Commander Aegidian reaching that rank.

It'll be my first time!

January 18th, 2006

v1.62rc2 Patch [Jan. 18th, 2006|10:05 am]

[Current Mood | drained]

[Current Music | Liquid Sky // Sci-Fi Cafe by Space Ship Eyes]

Blergh. I was up until the wee small hours working on this one. There were a few glaring bugs in the collision maths as well as the other fixes.

January 19th, 2006

oolite bulletin board down [Jan. 19th, 2006|11:36 am]

[Current Mood | distressed]

[Current Music | ]

The MySQL database has gone missing somehow.

I've emailed the service provider about his and hopefully it can be restored. If not the most recent back-up here is from the 3rd of January (*ulp*).

Let's cross our fingers now.

We broke the Internet [Jan. 19th, 2006|08:40 pm]

[Current Mood | distressed]

The BT router at our place has died on us (3rd one in a row).

Hence we shall have no internet (except occasional dialup) until the middle of next week.

This is (to put it mildly) exasperating. Please bear with us until this is sorted out.


We have a generic router in place as an interim solution. Which means I'm back - at least temporarily.

January 20th, 2006

Commits while I was away... [Jan. 20th, 2006|06:34 pm]

[Current Mood | chipper]

[Current Music | Just A Trend // Extra Dose by Wumpscut (By Cynical Front)]

Naturally work didn't stop - and as the svn machine is right here in the house I could make a few more changes:-

  • Much improved detection of offences by stations and police.

This is the fix to the situation where you could get away with piracy right outside a station if you were quick enough! This also sends the police to the aid of ships they see that are fired upon.

  • Abandoned vessels no longer mass-lock other craft.

And get their IFF blips set to gray to boot. Taking prize ships will be in a future version between this and the next release.

  • Cargo bay expansion size can now be customised (<key>extra_cargo</key><integer>value</integer> in shipdata.plist entry).

As requested - a small change and and easy addition.

January 29th, 2006

Oolite v1.62 for Mac done. [Jan. 29th, 2006|08:30 am]


V1.62 expands and elaborates the Oolite universe still further. We've added Growl and Spotlight compatibility for users running Tiger. The sound engine has been overhauled, as has the scripting engine - offering many new opportunities for Mod makers. And new equipment makes your ship more effective, and enemies more lethal.

  • New and improved equipment.
  • Overhauled collision physics.
  • Ships entering hyperspace now leave temporary witchspace wormholes between systems.
  • New Core Audio sound engine (thanks Ahruman).
  • Improvements to gameplay including new scripting routines and enhancements to ships' AIs.
  • Better compatibility with the vast range of Oolite Expansion Packs, including cross-compatibility with Oolite-linux and Oolite-PC.
  • Configurable Growl notifications through the communications console.
  • Many more bugfixes and improvements to gameplay.

Linux and PC versions will (no doubt) follow shortly.

Download from here:


February 1st, 2006

Progress with Collision Octrees [Feb. 1st, 2006|11:57 am]

[Tags|collisions, picture]

[Current Mood | accomplished]

Finally got my octree subdivision code to work right.

Just have to select a suitable level of subdivision to be useful I figure a minimum 1m resolution or to 6 subdivisions like this coriolis station:- [image]

February 4th, 2006

Octrees 2 Giles 0 [Feb. 4th, 2006|01:11 am]

[Tags|collision detection, octrees]

[Current Mood | frustrated]

Okay now I can derive octrees and draw them (to check they're properly calculated).

But I'm still banging my head against a wall with collision detection. I can see if a line i(say a laser) ntersects the bounding cube, but then have difficulty once the cube is divided into octants.

I think I'll take a break this weekend and come back to it fresh on monday.

February 11th, 2006

*mops brow* [Feb. 11th, 2006|09:21 am]

[Current Mood | drained]

At last. After last weeks success deriving octrees, it's taken a lot of sweat this week to make them start to be useful for collision detection. I started by trying to use them to detect fine laser-ship collisions, which, this morning, is finally beginning to work.

Next - write similar working code for subentities and expand it to all line-body collision detection.

February 14th, 2006

Octree update [Feb. 14th, 2006|08:44 pm]

[Current Mood | pleased]

[Current Music | Theme From Spider Man // O, Yeah! Ultimate Aerosmith Hits (Disc 2) by Aerosmith ]

Right. I think I've got octree based laser-ship collision sorted. There are some optimisations to make (caching model octrees to disk rather than deriving them during the game initialisation), but it works and works well (IMHO).

You have to be slightly more accurate with your shots, as the old trick of putting the target at 45° to your reticle no longer works. The Krait is a very narrow target now!

Of course the same applies to NPC ships so you get hit less often in response.

Octree ship-ship and ship-planet collision detection next.

Added in: This relevant BB debate happened at this time (13th - 16th Feb):

February 19th, 2006

ug! [Feb. 19th, 2006|09:22 am]

[Current Music | Great Plain // Tubular Bells II by Mike Oldfield]

What a night. Up until nearly four, getting caching of model meshes and octrees implemented. Ug. Works now.

Region based collision partitioning to explore next.

February 20th, 2006

external views [Feb. 20th, 2006|06:22 pm]

[Current Mood | drained]

Moderate successes getting this to work today (I had a bright idea about it). Models and solid subentities are working and can be seen with an appropriate view point, but flasher and exhaust subentities are being recalcitrant...

External View Cracked! [Feb. 20th, 2006|11:50 pm]

[Current Mood | exhausted]

[Current Music | Low // Out of Time by R.E.M.]


I've been testing this with the wonderful Llama model, which has those great sticky-out-bits that should be seen from the front viewscreen.

In so doing I've managed to improve the drawing system and fix some glitches with weapon placements and such.

Nice to achive something for once!


March 2nd, 2006

Collision partitioning [Mar. 2nd, 2006|12:16 am]

[Current Mood | impressed]

Partitioning the collision detection - by considering collisions in separate regions discretely - has radically chopped the number of comparisons done during collision detection.

On average about 50% of the total number of comparisions have been removed, which may improve performance on older machines somewhat.

March 6th, 2006

GUSTO [Mar. 6th, 2006|10:09 am]

[Current Mood | pleased]

[Current Music | Until The End Of The World (Dark Club Mix) // Until the end of the World US by Apoptygma Berzerk]

I'm fairly confidant I'll be switching my main development to GUSTO this week. It'll mean revising a number of web links and such, but the opportunity to de-fork Oolite is just too great to miss.

I made my first (minor) commit to the OSX part of the project this morning. Huzzah

March 10th, 2006

Blimey [Mar. 10th, 2006|02:50 pm]

I go away for a few hours and come back to ...

Bugfix day.

Many commits to GUSTO - hope people are pleased.

March 23rd, 2006

Through cold and fever's heat... [Mar. 23rd, 2006|02:13 pm]

[Current Music | Pressure Zone by Sonic Mayhem]

I've been working over the Behemoth OXP which has proven very useful for bug-finding and checking on new features as I add them. Behemoths Titan and Argus, Magog Class Behemoth [2 images]

March 28th, 2006

At a low point. [Mar. 28th, 2006|10:44 am]

[Current Mood | drained]

This head-cold and various issues have sapped my energy for Oolite ATM.

I'm going to give myself a few days rest.


April 10th, 2006

Real Life Intrudes... [Apr. 10th, 2006|11:16 pm]

[Current Mood | cheerful]

Well it's the Easter holidays, and in th epast I've been able to get a fair bit of coding done in this time. But right at the moment I'm enjoying being with my kids, playing board games and table tennis and generally having a fun time AFK.

So progress is once again somewhat stalled.

I will get back and complete the background scene code and the octree collision detection, but not just now, I have to try to beat my son at Ping Pong, just once...

April 13th, 2006

Return to work [Apr. 13th, 2006|02:34 pm]

[Current Mood | optimistic]

After Easter I'm, going to return to work on Oolite. Starting with collision detection and handling. I've been dodging doing full octree collision detection too long - it's time to make sure it works.

Then I'll finish the background scene code - this has one big outstanding problem - flashers aren't drawn on demo ships - and I want them to be.

Lastly I'll finish coding the last customsounds entries.

Then I'll do a test release - then a full release.

in between there may be extra's from Dajt and Ahruman.

I figure 6 weeks to the next full release.

April 19th, 2006

Collision [Apr. 19th, 2006|11:49 pm]

[Current Mood | thoughtful]

Collision detection's coming along - octree ship v ship seems to work - but I'm still getting occasional 'ghost' ships and cargo containers (that won't collide).

I'll put some work into debugging this tomorrow - turning on some messages in the collision detection when the debug flag is set and the player's colliding with stuff.

In particular I want to see what collision tests are being done. So I should flag up any that are occuring near the player...

April 26th, 2006

Hit me baby, one more time. [Apr. 26th, 2006|11:46 am]

[Current Mood | accomplished]

[Current Music | Hergest Ridge (Part. 2) // Hergest Ridge by Mike Oldfield]

A major breakthrough on collision detection.

The ghost-ship bug was down to the way that collisionRegion subregions were working (they weren't!) - but I found a new optimisation algorithm for collision detection that means I could dispense with the clunk of collisionRegions as a means of limiting collision testing.

Now collision tests are cut down to virtually the minimum required (instead of typically 500 tests we might now be doing ten!)

The result seems to be a fairly significant speed boost and I managed to cut out some unnecessary memory usage at the same time.

Since the ghost-ship bug has been impeding progress for some time, I think you may see development finally begin to accelerate towards a release of v1.65 - huzzah!

April 27th, 2006

Progress log [Apr. 27th, 2006|10:41 am]

[Current Mood | aggravated]

[Current Music | Slope // Struggling Electric + Chemical by Dustdevils]

Collision code working well.

Background scene code now draws while in flight, but I still can't get *FLASHER* subentities working...

UPDATE: Gottit! Subentities weren't being updated when the ship was in what was STATUS_DEMO and is now STATUS_COCKPIT_DISPLAY. Now I've fixed that - and some issues that related to that (infinite recursions when a subentities owner's owner was itself..) - the ship display looks miles better. still down, goshdarnit.


May 5th, 2006

1.65 beta 1 [May. 5th, 2006|05:51 pm]

Okay, I'm going to stop for a minute, tag the current revision and start getting a patch together for it to release. You guys have waited long enough...

UPDATE: Here ya go.. [dead link]

May 10th, 2006

Graphics [May. 10th, 2006|11:53 pm]

[Current Mood | ditzy]

[Current Music | Battle At Piz Gloria // On Her Majesty's Secret Service (Original Motion Picture Soundtrack) by John]

I'm loving Oolite at the moment. I just bought a new graphics card for my machine (Quake 4, y'see) an ATI 9800 with 256Mb onboard.

So this is my first chance to see Oolite with 16x FSAA and anisotropic texturing. Boy is it a step up!

Plus there's some cool toys in the Extras section of the driver disk, including a fur tutorial that I could reuse to make the exhausts 'fuzzier'.

Work on characters is progressing. I added basic scripting to them, they get their script_actions called when you drop them off after scooping their escape pod. So I put in a character as the pilot of the constrictor, and a bonus if you catch him and bring him in.

May 11th, 2006

v1.65 beta two - and a breath... [May. 11th, 2006|09:46 pm]

[Current Mood | cheerful] [dead link]

Right then, I'm off on a weekend holiday. I'll pick up on bugs and stuff whenI get back!

May 19th, 2006

Work to do and no enthusiasm... [May. 19th, 2006|05:50 pm]

Well, basic octree basic collision detection works just fine. But it seems broken on either Stations or ships with sub-entities.

My plan for debugging this means building some basic objects (bricks) and bashing a ship into them until I can see what's going wrong.

Unfortunately I'm feeling really drained and it seems almost like drudgery to try to get it done. Basically I'm feeling a tad depressed - and need to take one of my traditional breaks.

Which makes me feel guilty and more depressed, oh ghu!

... Sorry folks, no beta 3 this week!


June 9th, 2006

Back to work [Jun. 9th, 2006|11:45 am]

[Current Mood | bored]

A morning's work, slowly making changes to octree collision detection and building debugging systems for it. Involves lots of crashing into stuff, then changing a bit of code, then crashing into more stuff. It's a bit boring, really.

June 10th, 2006 unreachable [Jun. 10th, 2006|06:13 pm]

The website and forum are unreachable at the moment because (on the hottest day of the year) the chilling systems in the hosting service's network room have gone down.

It's estimate this should be fixed by Sunday, so hang on in there!

UPDATE: 20.50 - Back up.

June 13th, 2006

Collision debugging and such... [Jun. 13th, 2006|12:02 am]

[Current Mood | hot]

I think(!) octree collision detection is looking a bit more robust. I need to test YET more though...

While doing this I needed better external vuews, so I've just implemented the option of unlimited alternative camera positions, each with their own location, view angle, and associated weapon facing. You still have the four original views (whose positions can be edited, but not the angles) on keys 1-4 but also by pressing 'v' you can switch to (and step through) any number of custom view ports.

More on this when I release v1.65 beta 3. But I expect to adda number of custom viewports to each of the standard ships.

Octree collision code [Jun. 13th, 2006|11:23 am]

[Current Mood | accomplished]


I think I found the major culprit. Now to test and test and test again!

June 16th, 2006

v1.65 Beta 3 [Jun. 16th, 2006|02:23 pm]

[Current Mood | content]

Right then, now to go decorate middle-son's room!

June 23rd, 2006

Nearing v1.65 final [Jun. 23rd, 2006|02:35 pm]

[Current Mood | accomplished]

Lots of work on getting AI and docking sorted out. I've been working on a bulk hauler with an offset and angled docking bay and working on making sure docking with it is smooth and safe, There've been knock-on benefits for the main autopilot - speeding up docking somewhat.

An early shot of the bulk hauler 'Jormundgand' (approx 500m long).

Many minor glitches have been fixed'n'all.

If I have time this weekend I'll sort out a beta4 release.

June 26th, 2006

Beta 4 patch done [Jun. 26th, 2006|10:31 am]

[Current Mood | okay]


July 5th, 2006

Lave To Zaonce [Jul. 5th, 2006|12:17 am]

embedded YouTube link

A demonstration video I knocked together this evening.

July 10th, 2006

Feels like work! [Jul. 10th, 2006|11:08 am]

[Current Mood | cranky]

v1.65 release candidate:

July 13th, 2006

WANTED: 10.3.9 and Intel Testers! [Jul. 13th, 2006|08:14 am]

[Current Mood | curious]

I need testers for Oolite v1.65rc2, compiled as a Universal Binary, that's supposed to be Mac OS X 10.3.9 compatible.

I need users of Mac OS X 10.3.9 who can download it and test it.

I need to know whether it runs on:-

  • Mac OS X 10.3.9
  • Any Intel Mac

If your machine fits either of these two categories, please download it and see if it runs for you - and report back here.

Thanks, (20.11Mb)

July 14th, 2006

Prepping v1.65 for release day [Jul. 14th, 2006|01:23 pm]


[Current Mood | determined]

I'm planning to release v1.65 next week, so here I am updating documentation, populating sparse DMGs, redesigning the website and writing new press releases.

The most likely candidate for release is available here:

(20.11Mb Updated so it expands properly).

If this crashes for you (or indeed just has some typographical niggle) I need to know quickly - you can e-mail me at

July 19th, 2006

v1.65 Release [Jul. 19th, 2006|11:34 am]

[Current Mood | drained]

Visit for teh goodness!


ADL pimpmycobra banner.png
[was linked to Oosat2 "Pimp My Cobra" page.]

July 20th, 2006

Shaders [Jul. 20th, 2006|02:07 am]

[Current Mood | drained]

If I look into multitexturing using decal textures and glow textures applied with OpenGL 2.0 fragment shaders - will I be barking up the incorrect arbor?

July 21st, 2006

Mmm.. bleepy bloopy thwud-thwud [Jul. 21st, 2006|01:48 pm]

[Current Mood | chipper]

[Current Music | Super Deformed Robots - Contact ]

Perfect piloting music: [dead link]

July 25th, 2006

Progress Talk [Jul. 25th, 2006|05:07 pm]

[Current Mood | dorky]


July 27th, 2006

Little bits here and there... [Jul. 27th, 2006|06:32 pm]

[Current Mood | frustrated]

Not much progress on my stated goals today or yesterday.

However, I do have billboards working in background scenes now. And the areas where messages appear in the HUD can also now be defined (you can now avoid having messages mess up your view).

Unfortunately's SVN/CVS storage has been filled up, so it's currently impossible for me to commit these changes, but I will, just as soon as I can.


August 8th, 2006

I love it when a plan comes together... [Aug. 8th, 2006|06:24 pm]

[Current Mood | cheerful]

Yay. I implemented shaders.

I'm working through the possibilities for how they can interact with the ship, currently I have hooks fo rthe shaders to send them a 'time' value, the engine _level of the ship, and the main weapon laser_heat_level.

As a test the cobra 3.5 now replaces one of its textures with a shader that mixes together four source textures to add decals, a glow for the windows, and an engine glow to a base texture.

The addition to shipdata.plist looks like this:

                uniform sampler2D tex0;
                uniform sampler2D tex1;
                uniform sampler2D tex2;
                uniform sampler2D tex3;
                uniform float engine_level;
                void main()
                    vec4 base =     texture2D(tex0, gl_TexCoord[0].st);
                    vec4 decal =    texture2D(tex1, gl_TexCoord[0].st);
                    vec4 glow1 =    texture2D(tex2, gl_TexCoord[0].st);
                    vec4 glow2 =    texture2D(tex3, gl_TexCoord[0].st);
                    gl_FragColor = gl_Color * ((1.0 - decal.a) * base + decal.a * decal) + glow1 * glow1.a + glow2 * glow2.a * engine_level;

There are some pics here: [dead link]

August 9th, 2006

Shaders vblog [Aug. 9th, 2006|04:14 pm]

[Tags|vblog shaders]

[Current Mood | cheerful]


August 22nd, 2006

Giles's annual Getaway [Aug. 22nd, 2006|12:29 pm]

I'm in France all week next week - and busy with preparations from tomorrow.

murgh, I'll leave you dealing with new Oosat memberships (but if you leave them t'til I get back I won't mind).

I really need to decompress!


September 1st, 2006

Re-entry [Sep. 1st, 2006|08:56 pm]

Okay, I'm back from France. I'll be catching up on the email and messages over the next few days.

September 6th, 2006

Apology [Sep. 6th, 2006|12:03 pm]

Sorry for the lack of immediate progress. Real Life™ has intervened somewhat, so I'm not able to give as much time to Oolite as I'd like (or much at all).

Normal Service will be resumed ASAP.

September 8th, 2006

Heehee [Sep. 8th, 2006|11:09 am]

[Current Mood | drained]

( so true ) [embedded webcomic Gamerpalsarchived link]

September 25th, 2006

Apology extended [Sep. 25th, 2006|11:47 am]

[Current Mood | moody]

Sorry for the prolonged downtime. My holiday was supposed to take care of my Oolite burn-out, but unfortunately we had a series of Real Life™ crises that have meant that I've had to take an extended break from Oolite.

I intend to return to the code-face at the start of October. I'll update again then.


October 13th, 2006

Okay then... [Oct. 13th, 2006|02:59 pm]

Winston is right - I'm properly burned out on Oolite. But before I step away from it, there are still a few things to do:

1. Fix the database problems at Oosat preventing log-ins ( I may need to delegate this to Winston).

2. Commit my last few changes to shader code (OpenGL 1.5 will be an Oolite requirement in future).

3. Switch Oolite's license to GPL ( I think I can also delegate this one).

4. Set up an oolite ftp account at so someone else can maintain the BB.

5. Nominate a successor as maintainer of the project.

Comments and thoughts please.


Aegidian todolist

Things to do to improve/fix Oolite

  • Instinct based AI brains
  • Object based weapon systems
  • GP OXP
  • more info in shipyard
  • Prize-ships / remora torpedo
  • add CARGO_PASSENGERS and better passenger craft AI
  • add large vessel AI and vessel-station shuttle AI
  • setBackgroundScene: keyReference method to throw array of models, lights, pictures (and sounds) together into a background scene for docked screens
  • Investigate emitting exhaust particles to implement burning/course perturbing effects on too-close craft
  • 'transferCargoTo: ship' routine utilising BEHAVIOUR_TRACTORED
  • ship->ship comms using selections '[' ']' 'return'
  • player-purchasable escort contract
  • addSun (more tricky - lighting issues)
  • ✅ rewrite the scripting methods to universally take mission variable and method name arguments
  • ✅ adjustable range on scanShips and fix problems with thargon scan being too short range
  • ✅ add dockedStationName_string to the script repertoire
  • ✅ add a fuel-scoop status light to the hud
  • ✅ audio feedback for fuel scoop active (rising tones?)
  • ✅ add mission variable substitutions in Universe expandDescription:
  • ✅ hold-down ecm button for progressively more aggressive ECM tactics
  • ✅ adjust default sound volume to maximum
  • ✅ investigate 3d scanner
  • ✅ draw compass/zoom/aegis graphics instead of using sprites
  • ✅ Characters (pilots)
  • ✅ add shift-Z unzoom (after many requests)
  • ✅ look at Thargon messaging targeters with 'LOST_TARGET' on going inactive
  • ✅ Elite strict!
  • ✅ add addShipsWithinRadius method
  • ✅ Finish moving files from Oosat to Oosat Too
  • ✅ Shield Boosters
  • ✅ Time adjustment after using escape pod - one week!
  • ✅ v1.62 rc3 / final
  • ✅ correct collisions between small and large items
  • ✅ add station-keeping routines
  • ✅ save hyperspace destination in save-file
  • ✅ 'blank' crosshairs
  • ✅ Octree ship-ship and ship-planet collision detection
  • ✅ Region based collision partitioning
  • ✅ addPlanet
  • ✅ consider 'Target Memory' upgrade
  • ✅ addMoon
  • ✅ adjust AIs to deal with inter-system travel
  • ✅ fix space compass not working on map screens
  • ✅ have escape-pod insurance pay up on rescued pods
  • ✅ Finish writing the Nova mission
  • ✅ research and implement octree volume derivation (also use to inform mass)
  • ✅ add rear lasers to some pirate ships
  • ✅ Relax docking colision detection/banging a little
  • ✅ key to select commodity in hold to be dumped when dumping cargo
  • ✅ Finish writing the Cloaking Device mission
  • ✅ Cache octrees and vertex arrays in Application Support/Oolite/Cache
  • ✅ clean up x-ships for release
  • ✅ Per-polygon collision detection
  • ✅ Subentity collision detection
  • ✅ Implement new energy bomb
  • ✅ wormholes
  • ✅ implement consoleMessage3s: and consoleMessage6s:
  • ✅ h-jump penalties and malfunctions
  • ✅ fix problem with windowed screenshots
  • ✅ shaders (for glow-maps, bump-maps, decals for textures)
  • ✅ tint planets
  • ✅ planets from dictionaries
  • ✅ pointers to soundFX in audioDescriptions.plist
  • ✅ add cargo_extension_size to shipdata.plist / purchasing etc...
  • ✅ vary n_blurs n_stars from system to system
  • ✅ block zoom key in text screens
  • ✅ improve laser-boundingBox intersection algorithms
  • ✅ escorts follow traders into wormholes
  • ✅ Occlusion code needs bringing into line with the new collision detection code, and having sub-entities work properly.
  • ✅ revise missileAI - behaviour, so that missile avoids launching ship for first few secs
  • ✅ systeminfodata_number methods for scripts
  • ✅ [player_commander info] substitutions/expansions for expanded texts
  • ✅ Large-object scanner (use octrees)
  • ✅ have police repeatedly check their targets to avoid cop-on-cop violence
  • ✅ Fix 'Thargoids thanking for assistance'
  • ✅ Investigate what happens when a fugitive NPC tries to dock (possible dockingAI system bug).
  • ✅ Reimplement plasma cannon
  • ✅ get external views working properly
  • ✅ add default fuel levels for h-capable craft
  • ✅ add isCarrier and missile_type - and make life easy!
  • ✅ change 'conditions' 'do' in scripts to 'conditions' 'do' 'else'

Return to July 4th, 2004
Return to December 16th, 2005

Output example

Ships for sale:


       description = "Boa: Extra Naval Energy Unit (a special improved efficiency energy recharge unit, as supplied to navy vessels.) Extra Escape Pod (a simple emergency capsule with a life-support system, purchase includes comprehensive insurance for your ship and systems.) Forward weapon has been upgraded to a Mining Laser. Selling price 500000 Cr."; 
       extras = ("EQ_NAVAL_ENERGY_UNIT", "EQ_ESCAPE_POD"); 
       id = "a8f9f4-c98acf"; 
       price = 500000; 
       ship = {
           "energy_recharge_rate" = 3; 
           "forward_weapon_type" = "EQ_WEAPON_MINING_LASER"; 
           hud = "hud.plist"; 
           "max_cargo" = 125; 
           "max_energy" = 450; 
           "max_flight_pitch" = 0.75; 
           "max_flight_roll" = 1.5; 
           "max_flight_speed" = 240; 
           "max_missiles" = 4; 
           missiles = 4; 
           model = "boa.dat"; 
           name = Boa; 
           roles = player; 
           thrust = 24; 
       description = "Python: Extra Escape Pod (a simple emergency capsule with a life-support system, purchase includes comprehensive insurance for your ship and systems.) Extra Passenger Berth (uses 5t of cargo space) (provides life support, entertainment and comfort for a single passenger.) Extra Multi-Targeting System (allows switching between missile stations and multiple target locks.) Extra Passenger Berth (uses 5t of cargo space) (provides life support, entertainment and comfort for a single passenger.) Extra Fuel Scoops (wide cargo entrance and magnetic scoops enable in-flight capture of mined materials, fuel gasses from the solar corona, and salvage of space debris.) Extra Scanner Targeting Enhancement (adds a visible indicator, range and legal status display around the target currently locked into your targetting computer.) Forward weapon has been upgraded to a Mining Laser. Selling price 204000 Cr."; 
       extras = (
       id = "e0316c-439355"; 
       price = 204000; 
       ship = {
           "energy_recharge_rate" = 2.5; 
           "forward_weapon_type" = "EQ_WEAPON_MINING_LASER"; 
           hud = "hud.plist"; 
           "max_cargo" = 100; 
           "max_energy" = 450; 
           "max_flight_pitch" = 1; 
           "max_flight_roll" = 2.5; 
           "max_flight_speed" = 200; 
           "max_missiles" = 2; 
           missiles = 2; 
           model = "python.dat"; 
           name = Python; 
           roles = player; 
           thrust = 20; 
       description = "Fer-de-Lance: Extra Extra Energy Unit (an improved efficiency energy recharge unit.) Selling price 590000 Cr."; 
       extras = ("EQ_FUEL_SCOOPS", "EQ_ENERGY_UNIT"); 
       id = "d29b32-950e92"; 
       price = 590000; 
       ship = {
           "energy_recharge_rate" = 4; 
           "forward_weapon_type" = "WEAPON_BEAM_LASER"; 
           "has_scoop" = 1; 
           hud = "hud.plist"; 
           "max_cargo" = 2; 
           "max_energy" = 150; 
           "max_flight_pitch" = 1.2; 
           "max_flight_roll" = 3.6; 
           "max_flight_speed" = 300; 
           "max_missiles" = 2; 
           missiles = 2; 
           model = "ferdelance.dat"; 
           name = "Fer-de-Lance"; 
           roles = player; 
           thrust = 25; 
       description = "Boa: Extra Energy Bomb (a one-shot super-weapon capable of destroying all small craft within range.) Selling price 450000 Cr."; 
       extras = ("EQ_ENERGY_BOMB"); 
       id = "4ee78e-eee778"; 
       price = 450000; 
       ship = {
           "energy_recharge_rate" = 3; 
           "forward_weapon_type" = "WEAPON_PULSE_LASER"; 
           hud = "hud.plist"; 
           "max_cargo" = 125; 
           "max_energy" = 450; 
           "max_flight_pitch" = 0.75; 
           "max_flight_roll" = 1.5; 
           "max_flight_speed" = 240; 
           "max_missiles" = 4; 
           missiles = 4; 
           model = "boa.dat"; 
           name = Boa; 
           roles = player; 
           thrust = 24; 
       description = "Cobra Mark III: Extra Passenger Berth (uses 5t of cargo space) (provides life support, entertainment and comfort for a single passenger.) Forward weapon has been upgraded to a Military Laser. Selling price 156000 Cr."; 
       extras = ("EQ_PASSENGER_BERTH"); 
       id = "58a9a4-586351"; 
       price = 156000; 
       ship = {
           "energy_recharge_rate" = 4; 
           "forward_weapon_type" = "EQ_WEAPON_MILITARY_LASER"; 
           hud = "hud.plist"; 
           "laser_color" = redColor; 
           "max_cargo" = 20; 
           "max_energy" = 256; 
           "max_flight_pitch" = 1; 
           "max_flight_roll" = 2; 
           "max_flight_speed" = 350; 
           "max_missiles" = 4; 
           missiles = 3; 
           model = "cobramk3.dat"; 
           name = "Cobra Mark III"; 
           roles = player; 
           thrust = 32; 
       description = "Cobra Mark III: Extra Passenger Berth (uses 5t of cargo space) (provides life support, entertainment and comfort for a single passenger.) Forward weapon has been upgraded to a Beam Laser. Selling price 150000 Cr."; 
       extras = ("EQ_PASSENGER_BERTH"); 
       id = "ba23ba-e1742c"; 
       price = 150000; 
       ship = {
           "energy_recharge_rate" = 4; 
           "forward_weapon_type" = "EQ_WEAPON_BEAM_LASER"; 
           hud = "hud.plist"; 
           "laser_color" = redColor; 
           "max_cargo" = 20; 
           "max_energy" = 256; 
           "max_flight_pitch" = 1; 
           "max_flight_roll" = 2; 
           "max_flight_speed" = 350; 
           "max_missiles" = 4; 
           missiles = 3; 
           model = "cobramk3.dat"; 
           name = "Cobra Mark III"; 
           roles = player; 
           thrust = 32; 
       description = "Cobra Mark I: Extra Energy Bomb (a one-shot super-weapon capable of destroying all small craft within range.) Extra Scanner Targeting Enhancement (adds a visible indicator, range and legal status display around the target currently locked into your targetting computer.) Extra Escape Pod (a simple emergency capsule with a life-support system, purchase includes comprehensive insurance for your ship and systems.) Extra Passenger Berth (uses 5t of cargo space) (provides life support, entertainment and comfort for a single passenger.) Extra Witchdrive Fuel Injectors (a convertor added to your in-system drive that can inject unused witch-drive fuel into your exhaust, massively increasing your speed.) Selling price 103000 Cr."; 
       extras = (
       id = "6e872e-e9554e"; 
       price = 103000; 
       ship = {
           "energy_recharge_rate" = 2.5; 
           "forward_weapon_type" = "WEAPON_PULSE_LASER"; 
           hud = "hud.plist"; 
           "max_cargo" = 10; 
           "max_energy" = 150; 
           "max_flight_pitch" = 1.2; 
           "max_flight_roll" = 2; 
           "max_flight_speed" = 260; 
           "max_missiles" = 1; 
           missiles = 1; 
           model = "cobramk1.dat"; 
           name = "Cobra Mark I"; 
           roles = player; 
           thrust = 25; 
       description = "Moray Star Boat: Extra Multi-Targeting System (allows switching between missile stations and multiple target locks.) Extra Fuel Scoops (wide cargo entrance and magnetic scoops enable in-flight capture of mined materials, fuel gasses from the solar corona, and salvage of space debris.) Extra Energy Bomb (a one-shot super-weapon capable of destroying all small craft within range.) Extra Extra Energy Unit (an improved efficiency energy recharge unit.) Forward weapon has been upgraded to a Mining Laser. Selling price 128000 Cr."; 
       id = "d42530-d90f34"; 
       price = 128000; 
       ship = {
           "energy_recharge_rate" = 3; 
           "forward_weapon_type" = "EQ_WEAPON_MINING_LASER"; 
           hud = "hud.plist"; 
           "max_cargo" = 7; 
           "max_energy" = 240; 
           "max_flight_pitch" = 1.2; 
           "max_flight_roll" = 2.4; 
           "max_flight_speed" = 300; 
           "max_missiles" = 2; 
           missiles = 2; 
           model = "moray.dat"; 
           name = "Moray Star Boat"; 
           roles = player; 
           thrust = 32; 
       description = "Cobra Mark I: Extra Extra Energy Unit (an improved efficiency energy recharge unit.) Extra E.C.M. System (high power disruptor circuits capable of remotely detonating inbound missiles.) Extra Fuel Scoops (wide cargo entrance and magnetic scoops enable in-flight capture of mined materials, fuel gasses from the solar corona, and salvage of space debris.) Extra Energy Bomb (a one-shot super-weapon capable of destroying all small craft within range.) Extra Scanner Targeting Enhancement (adds a visible indicator, range and legal status display around the target currently locked into your targetting computer.) Forward weapon has been upgraded to a Beam Laser. Selling price 104000 Cr."; 
       extras = (
       id = "521bb2-10bbf2"; 
       price = 104000; 
       ship = {
           "energy_recharge_rate" = 2.5; 
           "forward_weapon_type" = "EQ_WEAPON_BEAM_LASER"; 
           hud = "hud.plist"; 
           "max_cargo" = 10; 
           "max_energy" = 150; 
           "max_flight_pitch" = 1.2; 
           "max_flight_roll" = 2; 
           "max_flight_speed" = 260; 
           "max_missiles" = 1; 
           missiles = 1; 
           model = "cobramk1.dat"; 
           name = "Cobra Mark I"; 
           roles = player; 
           thrust = 25; 
       description = "Moray Star Boat: Extra Witchdrive Fuel Injectors (a convertor added to your in-system drive that can inject unused witch-drive fuel into your exhaust, massively increasing your speed.) Forward weapon has been upgraded to a Mining Laser. Selling price 126000 Cr."; 
       extras = ("EQ_FUEL_INJECTION"); 
       id = "5c2db8-c5a168"; 
       price = 126000; 
       ship = {
           "energy_recharge_rate" = 3; 
           "forward_weapon_type" = "EQ_WEAPON_MINING_LASER"; 
           hud = "hud.plist"; 
           "max_cargo" = 7; 
           "max_energy" = 240; 
           "max_flight_pitch" = 1.2; 
           "max_flight_roll" = 2.4; 
           "max_flight_speed" = 300; 
           "max_missiles" = 2; 
           missiles = 2; 
           model = "moray.dat"; 
           name = "Moray Star Boat"; 
           roles = player; 
           thrust = 32; 
       description = "Fer-de-Lance: Standard customer model. Selling price 590000 Cr."; 
       extras = ("EQ_FUEL_SCOOPS"); 
       id = "9c6df8-c71754"; 
       price = 590000; 
       ship = {
           "energy_recharge_rate" = 4; 
           "forward_weapon_type" = "WEAPON_BEAM_LASER"; 
           "has_scoop" = 1; 
           hud = "hud.plist"; 
           "max_cargo" = 2; 
           "max_energy" = 150; 
           "max_flight_pitch" = 1.2; 
           "max_flight_roll" = 3.6; 
           "max_flight_speed" = 300; 
           "max_missiles" = 2; 
           missiles = 2; 
           model = "ferdelance.dat"; 
           name = "Fer-de-Lance"; 
           roles = player; 
           thrust = 25; 
       description = "Adder: Extra Multi-Targeting System (allows switching between missile stations and multiple target locks.) Selling price 65000 Cr."; 
       extras = ("EQ_MULTI_TARGET"); 
       id = "925bf2-fd2102"; 
       price = 65000; 
       ship = {
           "energy_recharge_rate" = 2; 
           "forward_weapon_type" = "WEAPON_PULSE_LASER"; 
           hud = "hud.plist"; 
           "max_cargo" = 2; 
           "max_energy" = 85; 
           "max_flight_pitch" = 1.75; 
           "max_flight_roll" = 2.5; 
           "max_flight_speed" = 240; 
           "max_missiles" = 1; 
           missiles = 1; 
           model = "adder.dat"; 
           name = Adder; 
           roles = player; 
           thrust = 24; 
       description = "Python: Extra Scanner Targeting Enhancement (adds a visible indicator, range and legal status display around the target currently locked into your targetting computer.) Extra Escape Pod (a simple emergency capsule with a life-support system, purchase includes comprehensive insurance for your ship and systems.) Extra E.C.M. System (high power disruptor circuits capable of remotely detonating inbound missiles.) Extra Extra Energy Unit (an improved efficiency energy recharge unit.) Forward weapon has been upgraded to a Military Laser. Selling price 210000 Cr."; 
       id = "5e37de-f45700"; 
       price = 210000; 
       ship = {
           "energy_recharge_rate" = 2.5; 
           "forward_weapon_type" = "EQ_WEAPON_MILITARY_LASER"; 
           hud = "hud.plist"; 
           "max_cargo" = 100; 
           "max_energy" = 450; 
           "max_flight_pitch" = 1; 
           "max_flight_roll" = 2.5; 
           "max_flight_speed" = 200; 
           "max_missiles" = 2; 
           missiles = 2; 
           model = "python.dat"; 
           name = Python; 
           roles = player; 
           thrust = 20; 
       description = "Cobra Mark III: Extra Multi-Targeting System (allows switching between missile stations and multiple target locks.) Extra Fuel Scoops (wide cargo entrance and magnetic scoops enable in-flight capture of mined materials, fuel gasses from the solar corona, and salvage of space debris.) Extra Escape Pod (a simple emergency capsule with a life-support system, purchase includes comprehensive insurance for your ship and systems.) Forward weapon has been upgraded to a Mining Laser. Selling price 152000 Cr."; 
       extras = ("EQ_MULTI_TARGET", "EQ_FUEL_SCOOPS", "EQ_ESCAPE_POD"); 
       id = "fa63fa-177fe5"; 
       price = 152000; 
       ship = {
           "energy_recharge_rate" = 4; 
           "forward_weapon_type" = "EQ_WEAPON_MINING_LASER"; 
           hud = "hud.plist"; 
           "laser_color" = redColor; 
           "max_cargo" = 20; 
           "max_energy" = 256; 
           "max_flight_pitch" = 1; 
           "max_flight_roll" = 2; 
           "max_flight_speed" = 350; 
           "max_missiles" = 4; 
           missiles = 3; 
           model = "cobramk3.dat"; 
           name = "Cobra Mark III"; 
           roles = player; 
           thrust = 32; 
       description = "Adder: Extra Extra Energy Unit (an improved efficiency energy recharge unit.) Forward weapon has been upgraded to a Mining Laser. Selling price 67000 Cr."; 
       extras = ("EQ_ENERGY_UNIT"); 
       id = "be17be-b66d9a"; 
       price = 67000; 
       ship = {
           "energy_recharge_rate" = 2; 
           "forward_weapon_type" = "EQ_WEAPON_MINING_LASER"; 
           hud = "hud.plist"; 
           "max_cargo" = 2; 
           "max_energy" = 85; 
           "max_flight_pitch" = 1.75; 
           "max_flight_roll" = 2.5; 
           "max_flight_speed" = 240; 
           "max_missiles" = 1; 
           missiles = 1; 
           model = "adder.dat"; 
           name = Adder; 
           roles = player; 
           thrust = 24; 
       description = "Moray Star Boat: Extra Passenger Berth (uses 5t of cargo space) (provides life support, entertainment and comfort for a single passenger.) Extra Extra Energy Unit (an improved efficiency energy recharge unit.) Forward weapon has been upgraded to a Military Laser. Selling price 132000 Cr."; 
       extras = ("EQ_PASSENGER_BERTH", "EQ_ENERGY_UNIT"); 
       id = "aad3ea-782d89"; 
       price = 132000; 
       ship = {
           "energy_recharge_rate" = 3; 
           "forward_weapon_type" = "EQ_WEAPON_MILITARY_LASER"; 
           hud = "hud.plist"; 
           "max_cargo" = 7; 
           "max_energy" = 240; 
           "max_flight_pitch" = 1.2; 
           "max_flight_roll" = 2.4; 
           "max_flight_speed" = 300; 
           "max_missiles" = 2; 
           missiles = 2; 
           model = "moray.dat"; 
           name = "Moray Star Boat"; 
           roles = player; 
           thrust = 32; 


Return to October 26th, 2004

Comms excerpt

GalCop Viper Interceptor:

Ensoreus Police. Offending ship targeted. Moving to intercept.

Dodecahedron Station:

Greetings! Ensoreus Station traffic control welcomes you.

Dodecahedron Station:

Welcome to Ensoreus. Please be patient while we guide your ship into space dock.

Dodecahedron Station:

You are on final approach to Ensoreus Station.

Coriolis Station:

Greetings! Zaalela Station traffic control welcomes you.

Coriolis Station:

You are on final approach to Zaalela Station.

Dodecahedron Station:

Welcome to Ensoreus. Please be patient while we guide your ship into space dock.

Dodecahedron Station:

You are on final approach to Ensoreus Station.


Mayday! Please assist. Mayday! Please assist.


Mayday! Please assist. Mayday! Please assist.

Coriolis Station:

Welcome to Zaalela. Please be patient while we guide your ship into space dock.

GalCop Viper:

Offender vessel, this is Zaalela Police. You have been scanned and will face penalties if you choose to dock here.

Coriolis Station:

You are on final approach to Zaalela Station.


S.O.S. ... S.O.S. ... S.O.S. ...


Please stop! Have mercy!


Please stop! Have mercy!


Please stop! Have mercy!


Please stop! Have mercy!

Dodecahedron Station:

Greetings! Ensoreus Station traffic control welcomes you.

Dodecahedron Station:

You are on final approach to Ensoreus Station.

Return to December 9th, 2004