Aegidian devlog

From Elite Wiki
Revision as of 22:42, 15 May 2022 by Murgh (talk | contribs) (nearly 2004)

Oolite (progress)

Contents

2004

April

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.

Added:-

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 )

missileAI.plist
{
   "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!

D'oh!

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]

Done:-

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.

Todo:-

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]

Done:-

  • 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 cargopod.inc'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]

Yeah!

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 http://www.livejournal.com/~oolite 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.

https://oolite.livejournal.com/5854.html

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.

Then...

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

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.

Owiee.

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.

Excelsior!

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...

UPDATE:

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 namehog.net 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.


  • aegidian.org still down. Namehog.net still unresponsive. Rats!


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

[Current Mood|aggravated]

Re: Email to aegidian.org bouncing.

Despite a detailed request to their sales team to note my change of address and email, Namehog.net closed down aegidian.org 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 aegidian.org 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!

UPDATE:

  • 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!

UPDATE:

  • 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]

aegidian.org 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...

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 oolite.aegidian.org 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 girfriend 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.

Progress and testing... [Apr. 28th, 2004
https://oolite.livejournal.com/5854.html

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

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 ather 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: http://www.aegidian.org/bb/viewtopic.php?t=14 [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 CreateMacGames.org [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!

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 Oolite.app/Contents/Resources 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'. Picture of the week: Dogging a Krait during combat AI testing [image]

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 = (
               setGUIToMissionScreen, 
               "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

oolite.aegidian.org 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.

FURTHER UPDATE:

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

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.

Yay!

*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.

UPDATE:

  • 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 'Oolite.app/Contents/Resources/' and 'Oolite.app/Contents/Resources/Music/') 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 oolite.aegidian.org 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.

UPDATE:

  • 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.

UPDATE:

  • 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]

UPDATE:

(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

phew!

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>
<dict>
   <key>government</key>
   <integer>0..7</integer>
   <key>economy</key>
   <integer>0..7</integer>
   <key>techlevel</key>
   <integer>0..13</integer>
   <key>population</key>
   <integer>0..67 </integer>
   <key>productivity</key>
   <integer>1000 </integer>
   <key>radius</key>
   <integer>3000..7000 </integer>
   <key>name</key>
   <string>The planet's name</string>
   <key>inhabitants</key>
   <string>Small Blue Frogs .. Human Colonials</string>
   <key>description</key>
   <string>Really, anything you want to say about the place!</string>
</dict>

UPDATE: Extending this now..

   <key>percent_land</key>
   <integer>0..100</integer>
   <key>land_hsb_color</key>
   <string>0.0..1.0 0.0..1.0 0.0..1.0</string>
   <key>sea_hsb_color</key>
   <string>0.0..1.0 0.0..1.0 0.0..1.0</string>
   <key>sky_rgb_colors</key>
   <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>
   <key>station</key>
   <string>coriolis..dodec..special</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.

UPDATE+:

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;
}

UPDATE:

  • 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.

UPDATE:

(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.

ALSO:

(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: http://aegidian.org/bb/viewtopic.php?p=320 [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'

UPDATE:

(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!

http://www.aegidian.org/bb/viewtopic.php?t=90 [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

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'.

UPDATE:

(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.

UPDATE:

(1.16) Updated ratings from old geometric progrssion, to lumpier version from http://www.iancgbell.clara.net/elite/faq.htm.


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.

UPDATE:

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).

UPDATE:

(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.

UPDATE:

(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.

TODO:

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:

http://www.aegidian.org/bb/viewforum.php?f=3 [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.

UPDATE:

(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:

http://oolite.aegidian.org/


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.

http://www.digitalnervouswreck.com/oolite/DropUpgradeOoliteTo121.zip

Here's the shell script used:

#!/bin/sh
##
# TestScript.sh
##
# EXTENSIONS  : "app"               # Accepted file extensions
# OSTYPES     :	"APPL"				# Accepted file types
# ROLE        : Editor				# Role (Editor, Viewer, None)
for file; do
   outputlog="$HOME/Desktop/OolitePatch.log"
   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}
   then
       fileinfo="`cat ${file}/Contents/PkgInfo`"
   else
       fileinfo="Not Found"
       errorinfo="Not the right sort of application."
   fi
   #
   if chmod -R +w ${file} >> ${outputlog}
   then
       echo "Can write into Oolite.app" >> ${outputlog}
   else
       echo "Could not write into Oolite.app" >> ${outputlog}
       fileinfo="Not Found"
       errorinfo="Could not change the permissions of Oolite.app"
   fi
   #
   if test -e ${0%script}toc >> ${outputlog}
   then
       echo "Found table of contents at ${0%script}toc" >> ${outputlog}
   else
       echo "Could not find table of contents at ${0%script}toc" >> ${outputlog}
       fileinfo="Not Found"
       errorinfo="With no toc, no upgrade can proceed."
   fi
   #
   echo "File info is '$fileinfo'" >> ${outputlog}
   if [ "$fileinfo" = "APPLOol8" ]
   then
       echo "File info matches. Upgrading ..." >> ${outputlog}
       #
       # now to do the actual copying of files
       #
       for item in `cat ${0%script}toc`
       do
           if cp -f ${0%script}Upgrade$item ${file}$item >> ${outputlog}
           then
               echo ".. copied $item okay" >> ${outputlog}
           fi
       done
       #
       # write protect the file again
       #
       chmod -R -w ${file} >> ${outputlog}
       #
       echo "Done" >> ${outputlog}
   else
       echo "$errorinfo No upgrade performed." >> ${outputlog}
   fi
   echo "<- Drop Upgrade finished ->" >> ${outputlog}
   echo "" >> ${outputlog}
done

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.

UPDATE:

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.

UPDATE:

(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.

UPDATE:

(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

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.

UPDATE:

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.

UPDATE

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]

Finally!

(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 (http://aegidian.org/bb/) 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 http://thor.acedragon.co.uk/viewcvs/trunk/ [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://thor.acedragon.co.uk/svn/repos/trunk oolite

but I haven't tested it yet.

UPDATE:

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

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:

http://homepage.mac.com/aegidian/oolite.mov (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 http://www.aegidian.org/bb/

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).

UPDATE:

  • 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.

TODO:-

Passenger berth equipment upgrade.

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

FARTODO:-

Ship market GUI.

Buy/Sell ship routines.

VERYFARTODO:-

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]

http://www.digitalnervouswreck.com/oolite/DropUpgradeOoliteTo133.zip

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.

UPDATE:

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]

UPDATE:

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.

http://www.digitalnervouswreck.com/oolite/DropUpgradeOoliteTo134.zip

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

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: http://oolite.aegidian.org/

Bulletin Boards: http://www.aegidian.org/bb/

Giles Williams: oolite@aegidian.org

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 http://aegidian.org/bb/)
  • 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 http://www.digitalnervouswreck.com/oolite/DropUpgradeOoliteTo130.zip

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]

Namehog.net, aegidian.org'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]

http://www.aegidian.org/bb/viewtopic.php?p=2322

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.

UPDATE:

  • 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

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).

W00t!


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.

UPDATE:

Added the drop-down comms screen as per Murgh's suggestion here: http://www.aegidian.org/bb/viewtopic.php?t=241

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:


aegidian.org [Dec. 10th, 2004|02:43 pm]

[Current Mood|aggravated]

aegidian.org 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.