Page 1 of 2

Oolite test release 1.72

Posted: Sun Nov 02, 2008 7:04 pm
by JensAyton
Oolite test release 1.72 – What, It’s Autumn Already? Edition is now available from GURPO. This release adds numerous new features, especially on the scripting side, just not the ones we were expecting to add.

Changes since Oolite 1.71.2:
  • New "ship registry" handles ship types and ship roles more robustly and efficiently. Benefits include less stutter when generating ships (especially traders and pirates) and various shipdata.plist errors being reported up front (when rebuilding cache). Also adds new shipdata-overrides.plist and shipyard-override.plist, which can be used to selectively override certain properties of ships without redefining them completely. Overrides are silently ignored for ships that don't have a "primary" shipdata.plist/shipyard.plist entry.
  • New equipment type handling. This is less far-reaching than the ship registry, and isn't used everywhere, but it's exposed to JavaScript as EquipmentInfo objects (see EliteWiki for documentation).
  • Missiles no longer collide with parent on launch.
  • Disarmed missiles now stay disarmed when cycling through targets with Target System Memory Expansion.
  • Workaround for key conflict in old BBC key config files: if both roll and yaw are assigned to ,/. keys, yaw is disabled.
  • Fix for NPCs becoming offenders when counterattacking player.
  • Only one energy unit is allowed at a time. Thargoid Plans mission script now reflects this.
  • Approaching non-main planets (including the sun) no longer points compass at main station.
  • Player ship turrets now work.
  • Escort turrets now work.
  • Carriers can now control their launched defenders.
  • Miniature planets from F7 screen no longer float around invisibly mass-locking you.
  • (Non-Mac) Fix failure to launch when cache is corrupt.
  • Fixed rounding behaviour of some currency displays.
  • Suppressed pointless "Cannot iterate into directory" messages.
  • (Non-Mac) Support for joysticks with up to 16 axes and 64 buttons. If you need more than 16 axes, I shall require photo evidence.
  • More (all?) sound goes through customsounds.plist.
  • (Non-Mac) SDL sound code rewritten to be more like Mac code. Most noticeable effect is that more than one instance of a sound can be played at once. As a result, afterburner2.ogg is no longer needed.
  • (Non-Mac) Logs are now written to ~/.Oolite/Logs/under Linux and <app directory>\Oolite\Logs\ under Windows. (Oh yes, I intended to change it to GNUstep default locations. Oh well.) OXP verifier logs also end up there, named by OXP.
  • (Mac only) Updated Smart Crash Reports to 1.5 for Leopard compatibility.
  • Similarly, showShipModel: no longer generates escorts.
  • More stuff made localizable.
  • New is_template shipdata.plist property. Set this to yes/<true/> for ships which are only used through like_ships and are not intended to be used directly. If your (otherwise working) OXP generates warnings about ships with no roles or model attribute, you probably need this.
  • New is_submunition shipdata.plist property for cluster weapons. Missiles with this property inherit their launcher's current target.
  • New shipdata.plist key hyperspace_motor_spin_time to modify jump countdown time.
  • New planetinfo.plist keys star_count_multiplier and nebula_count_multiplier. (Can be used in universal section to modify overall star and nebula density.)
  • Putting planets in interstellar space no longer breaks the game.
  • Failure to set up a station is now handled somewhat more gracefully, with useful diagnostic log messages.
  • Added commsMessageByUnpiloted: for AIs and legacy scripts.
  • switchLightsOn/Off now applies to subentities.
  • Fixed some spurious errors in OXP verifier.
  • Condition flags for equipment are now enforced when adding items directly, not only when shopping. More condition flags are now available. The full list is: available_to_all, requires_empty_pylon, requires_mounted_pylon, requires_clean, requires_not_clean, portable_between_ships, requires_free_passenger_berth, requires_full_fuel, requires_non_full_fuel. Other types of condition are: requires_cargo_space, requires_equipment, requires_any_equipment, incompatible_with_equipment. Legacy script conditions can also be used (only apply to player).
  • New HUD plist key reticle_target_sensitive makes target selection box go red when active target is in position (requires Scanner Targeting Enhancement). Also exposed to JS as player.ship.reticleTargetSensitive.
  • Fix for the occasional 15-20 seconds slowdowns experienced during gameplay.
  • Some AI tweaks from Eric, and general cleanup of AI formatting.
  • Docking clearance support, see https://bb.oolite.space/viewtopic.php?t=5060.
  • Oolite now builds for Irix, but (last I heard) doesn't run due to threading issues in GNUstep.
  • New shader uniform types randomFloat, randomUnitVector, randomVectorSpatial, randomVectorRadial and randomQuaternion (which supports asMatrix option, default is true).
  • Various changes for 64-bit compatibility under OS X and Linux. This release is not 64-bit, though.
  • Oolite can now correctly count CPUs under Linux, not that this makes much difference.
  • New web site at oolite.org. (Hey, it's in the subversion log.)
  • Spot the graphical tweaks!
JavaScript changes:
  • Potential crashing bugs throughout JS code fixed (exceptions weren't being handled properly). Also added more and better JS error checking.
  • missionVariables object no longer treats strings starting with digits but containing letters as numbers.
  • AI sendScriptMessage: can now pass parameters. The AI statement "sendScriptMessage: foo bar baz" is equivalent to the JS ship.script.foo(["bar", "baz"]). Note that the parameters are passed as an array of words.
  • Debug console now allows definitions to be split over several lines; for instance, you can type "this.test = function() {" on one line and "return 3: }" on the next. Enter an empty line to cancel multi-line input. Lines which are considered "incomplete" are echoed with a _ prefix instead of >. (Mac-only: the integrated console also supports multi-line input using option-return, as it always has.)
  • New global function randomInhabitantsDescription(plural : Boolean) : String.
  • Entity.call() is now only available when debug OXP is active.
  • Entity.isValid now works for invalid entities.
  • New Ship properties and methods: desiredSpeed, cargoSpaceUsed, availableCargoSpace, passengerCount, passengerCapacity, remove().
  • Renamed Ship properties: maxCargo -> cargoCapacity, shipDescription -> name, shipDisplayName -> displayName.
  • player split into player and player.ship. All Entity/Ship methods now live in player.ship. There are compatibility accessors in player, which will be removed in future (and generate warnings).
  • New Player properties and methods: contractReputation, passengerReputation, increaseContractReputation(), decreaseContractReputation(), increasePassengerReputation(), decreasePassengerReputation(), reticleTargetSensitive, rank, legalStatus, forwardShield, aftShield, maxForwardShield, maxAftShield, forwardShieldRechargeRate, aftShieldRechargeRate.
  • player.orientation is now right way around.
  • New System properties and methods: info and infoForSystem(), equivalent to legact setPlanetInfo: and setSpecificPlanetInfo:. For example, system.info["foo"] = "bar" is equivalent to "setPlanetInfo: foo bar". Currently, values can only be written, not read. Also countShipsWithPrimaryRole(), pseudoRandomNumber, pseudoRandom100, pseudoRandom256.
  • system.setSunNova() deprecated in favour of system.sun.goNova().
  • Better error messages for legacy_addShip*() family.
  • system properties now make some sort of sense in interstellar space.
  • Vector renamed to Vector3D.
  • Ability to pass several numbers instead of a vector or quaternion is deprecated. Use an array or Vector3D instead. (For instance, instead of ship.position.add(100, 0, 0) use ship.position.add([100, 0, 0]).)
  • New script events: playerBoughtEquipment(equipmentKey), equipmentDamaged(eqipmentKey), equipmentDestroyed(equipmentKey).
  • New events for approaching and leaving planets: shipEnteredPlanetaryVicinity(planet)/shipExitedPlanetaryVicinity(planet) for JS, CLOSE_TO_PLANET/AWAY_FROM_PLANET for AIs. (Actually, I'm not clear on how CLOSE_TO_PLANET differs from AEGIS_CLOSE_TO_PLANET. If none, suggest removing CLOSE_TO_PLANET. Kaks?)
  • shipLaunchedEscapePod() is now triggered slightly earlier, before resetting legal status and trumbles.
NOTE: one warning generated by the ship registry is disabled by default for the benefit of the Realistic Shipyards OXP, namely the warning when a shipyard.plist entry does not correspond to a shipdata.plist entry. This warning will be enabled by default in 1.73. To enable it, change shipData.load.shipyard.unknown to yes in logcontrol.plist.

Posted: Sun Nov 02, 2008 7:15 pm
by Svengali
Damn!! What a list. So it's time for some rock'n'roll!

Thanks a lot - dear dev-team :-)

Posted: Sun Nov 02, 2008 8:01 pm
by JensAyton
another_commander pointed out a couple of things that got lost in the svn logs:
  • Fix for tharglet AI. Thargons do not open fire against their motherships anymore.
  • Fix for trader ships launching straight to the nav buoys.

Posted: Sun Nov 02, 2008 9:39 pm
by DaddyHoggy
I bow to the gods that are the Dev. Team. 8)

...

Posted: Sun Nov 02, 2008 11:12 pm
by Lestradae
Awesome! Respect to the developers team!

And already the first nagging questions:

1. Has the issue been dealt with, that not only equipment items, but also ships themselves are sorted by differently from system defined TL in the shipyards?

2. I have the got both energy units issue - what will happen to my game when I load it with 1.72? Will one of the two disappear? Will there be a problem?

And thanks for the Realistic Shipyards tweak concerning shipdata/shipyard disparities. The 1.72 release comes at a very practical moment for me - the successor of Realistic Shipyards will, with the help of the shipyard-override.plist probably no longer generate a disparity. I hope.

:D :D :D

L

Posted: Mon Nov 03, 2008 12:04 am
by TGHC
Rapturous applause.

Heartfelt thanks to all the devs

Oh yeah and a little bit of that to all the OXP writers too

Posted: Mon Nov 03, 2008 9:34 am
by barabis
I am getting the following error when i try to start oolite 1.72

2008-11-03 09:28:45.152 oolite[4844] File NSUserDefaults.m: 626. In [NSUserDefaults +standardUserDefaults] Improper installation: No language locale found


This is on a 32 bit vista installation.

Posted: Mon Nov 03, 2008 9:41 am
by another_commander
It's a harmless warning. The game runs regardless, correct?

Posted: Mon Nov 03, 2008 9:43 am
by barabis
hi thanks for the quick reply. No it doesnt, it quickly opens the oolite window then almost instantly closes it. I was running the stable release no problem. Just to confirm, is the 1.72 a standalone install? Or does is update a previous release?

Posted: Mon Nov 03, 2008 9:49 am
by another_commander
If you downloaded the 20 Meg exe file, then it is stand-alone. Do NOT install this over a previous installation of the game. First uninstall the previous one, then install this. In theory, you should have a file called Latest.log inside [Oolite Install Dir]\oolite.app\Logs. Please post its contents.

Also, please post your exact system specs, if possible.

Posted: Mon Nov 03, 2008 9:58 am
by barabis
I did uninstall previous version but decided to start again so I have now done a new installation of 1.72 and all is good. The logs folder and GNU folders were missing from my previous 1.72 install I now realise with this workin install tho!

I don't know whether this is relevant or not but my previous install was on D:/Program Files/oolite but the current working install is D:/oolite. The "D" drive being a partition on my main drive.

Anyway thanks very much for your help :)

Posted: Mon Nov 03, 2008 10:01 am
by barabis
quick update, tried again to install to D:/program files/oolite and again the folders are missing

Posted: Mon Nov 03, 2008 10:13 am
by another_commander
Vista will write program generated files in a different, system folder (Vista security, yay!). No idea why your game does not want to run from D:\Program Files\Oolite. I just made a test installation on this very same path and all went well. I'm on XP, though.

Posted: Mon Nov 03, 2008 10:20 am
by LittleBear
Wow this is FAST!!!

Been playtesting 1.72 near a RH space bar. Even with a load of pirates and about 20 hunters in a pitched battle, it was still clipping along at a (for my system) very respectable 40 fps. The stuttering during flight seems to have almost gone. Gotta find me a player ship with turrets now to test that out! Might finally be time to trade in my trusty Imperial Courier.

BTW my laptop is Vista, but I used the full install rather than the updater. It installed to the path I told it to.

Posted: Mon Nov 03, 2008 10:27 am
by another_commander
Two details that have not been metnioned before:
1. As of v1.72, we have upgraded the Windows port to run under gnustep 1.15.3. This alone has resulted in a significant performance boost. This is why you get 40fps with heavy action going on, LB.

2. The game will try to set vertical sync to on during startup. If your card/drivers support this, then your framerate will be synchronized with the refresh rate of your monitor. This gets rid of tearing effects, which were sometimes visible on previous versions, resulting in smoother animation overall.

Hope you enjoy it. ;-)