Page 1 of 4

Behemoth update

Posted: Sun Jul 06, 2008 8:07 pm
by Eric Walch
The past year I have been working on the behaviour of Aegidian's classical Behemoth. The ship itself was excellent but it's defenders had several flaws. I tried to make the ship stronger without changing the specs itself. Most of the new stuff is improved AI handling between the carrier and his defenders. Half a year ago I put the new AI in the "Behemoth Spacewar" package. With 1.71 I changed some more additional things with JS scripts. However not in full extent to stay compatible with oolite 1.65.

On testing I discovered one major bug in defender handling thanks to the new AI debugging tool from Ahruman. The groupAttack command from the carrier never reached the defenders. They left with a primary target and when that target was killed, they tried to dock. In my previous released AI, the defenders requested a new target when the current one was killed. However, the bug does not occur with escorted carriers, so I decided to give the Behemoth two escorts. This way it even will work on Oolite 1.65.
The bug itself will be solved with Oolite 1.72. Now with working groupAttack the carrier can give defenders new targets closer to itself. This way offenders that are a direct threat to the carrier are attacked harder by defenders and fleeing offenders will won't get followed that oft. Only when mom itself has no targets anymore defenders may wander off after their target.

The Behemoth and defenders now have ship scripts. With oolite version 1.71 the script will kick in and is mainly used for making player attacks more difficult. It detect cloaking and is able to send its defenders at high speed to remote targets. e.g. Against players that from the edge of scanner range try to kill the carrier. It is still compatible with 1.65 but the extras are just not used then.

The new version can be downloaded from its wiki page: http://wiki.alioth.net/index.php/Behemoth

I also updated my "Behemoth Spacewar.oxp" to version 1.1. That one now will work with Oolite 1.71. It is also on the Wiki. The spacewar oxp has no ships of its own but brings behemoth <--> thargoid battle to normal space.

Posted: Sun Jul 06, 2008 8:32 pm
by DaddyHoggy
Bravo Eric! I may finally download this oxp!

Posted: Sun Jul 06, 2008 9:20 pm
by Cmdr. Maegil
Well done, keep up the good work </me pats Eric's shoulder>

Posted: Mon Jul 07, 2008 11:28 am
by Commander McLane
Nice work, but you should probably re-think the version number.

The version (still by aegidian himself) I have downloaded a long time ago is called "behemoth-v2.3" (and it contains a history that tells what happened in version 2.2:
behemoth-v2.3

Files:

behemoth.oxp
readMe

Compatibility:

This OXP is by Aegidian ([email protected]) it works with any version of Oolite v1.65 or higher.

Install:

Move the behemoth.oxp bundle (or folder if you are using GNU/Linux or windows) into the Oolite AddOns folder.

Details:

Behemoth Class carriers are the dreadnoughts of the Imperial Navy. There are currently sixteen in service, mostly patrolling intersystem space where their Asps and Vipers are used to counter the Thargoid threat.

Half these ships are of the older INB01 class, but construction has recently been completed of the eight newer INB21 class behemoths.

Version 2.3:

Fixes a bug which could cause the AI stack to overflow.

Version 2.2:

REALLY fixes the problems with the Behemoth's docks (Behemoths were frangible and the docks were being shot away!)

Version 2.1:

Fixes the problems with the Behemoth's docks.

License:

The textures, models and plist texts are all copyright Giles Williams 2004-2006 and available for reuse under the Creative Commons Attribution-NonCommercial-ShareAlike License 2.0.

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.0/
or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

You are free:

• to copy, distribute, display, and perform the work
• to make derivative works

Under the following conditions:

• Attribution. You must give the original author credit.

• Non-commercial. You may not use this work for commercial purposes.

• Share Alike. If you alter, transform, or build upon this work,
you may distribute the resulting work only under a license identical to this one.

For any reuse or distribution, you must make clear to others the license terms of this work.

Any of these conditions can be waived if you get permission from the copyright holder.

Your fair use and other rights are in no way affected by the above.
So I suggest your re-working should be given at least version number 2.4, probably even 3.0.

Posted: Mon Jul 07, 2008 11:43 am
by CaptKev
Great work Eric.

Posted: Mon Jul 07, 2008 12:08 pm
by Eric Walch
Commander McLane wrote:
Nice work, but you should probably re-think the version number.

The version (still by aegidian himself) I have downloaded a long time ago is called "behemoth-v2.3"
I'm sure I downloaded the version from the wiki and that didn't include any readme or version number but I thought 2.1 was number of the newest version. I'll change version number one of these days to 2.4 and include above readme.

Can you check if your confirmed 2.3 version has the same definition for the dock in shipdata? In that case, the version on the wiki must be the 2.3 version. Name of that dock is :"behe-dockv2". It stays a problem when files are uploaded without any version number. Not even in the oxp itself.

Posted: Wed Jul 09, 2008 9:41 am
by Commander McLane
Eric Walch wrote:
Can you check if your confirmed 2.3 version has the same definition for the dock in shipdata? In that case, the version on the wiki must be the 2.3 version. Name of that dock is :"behe-dockv2".
Yes, indeed. That's it.

Unfortunately I don't remember where I got it from. I guess Oosat2, because the version on Oosat1 isn't packed into a folder with version name, and it has no readMe. On top of that it contains a shipyard.plist for the Weeviloid Hunter, which obviously was removed later. And there is only one Behemoth in it. So I guess this was the initial release, and the 2.n-versions were on Oosat2.

If you're interested in finding other possible changes, I've put it up on Box.net: http://www.box.net/shared/vdod3zu8so

Posted: Thu Jul 10, 2008 9:51 am
by Eric Walch
If you're interested in finding other possible changes, I've put it up on Box.net
Thanks, I examined it. My original had exact the same file size and dates as your version. It was only spread without readme and version number. It was the newest version 2.3 I worked on. It still contained the two non-existing AI messages APPROACH_START and APPROACH_STATION in the fighterDockingAI. These messages have an other name and won't work in the old 2.3 release.

Meanwhile I had still a few ideas for improvements. JS makes it possible to do more evaluations than in the past. e.g. currently an viper still keeps attacking when a robot fighter turns into cargo. For a pirate this is okay as it wants the content of a ship, but a viper only needs to put an enemy out of fight. It is just that I want to check it in a way that the script stays compabible with Oolite 1.65. One way to do this is over the offenceCommittedNearby handler. With 1.65 nothing happens and with 1.71 it is triggered.

While logging this handler I noticed that there is a considerable amount of "friendly fire" going on. Specially at the end of the battle when all vipers go for the few remaining thargoids, more than half of the offences at that moment are friendly fire. The handler is triggered at the same time the AI gets the OFFENCE_COMMITTED message. A good reason not to use this message in combat to switch targets otherwise police would start targeting other police. (Oolite has a backup system that corrects police targeting other police in case it does happen, but the police still would lose the original target). We as player are not so lucky. If we, in the heat of combat, accidentally hit a police, we become fugitive.

Bottom-line: The new additions work well now and I upload it this evening with a correct version number and the original readMe.

EDIT:
The new version 2.4 can be downloaded from its wiki page: http://wiki.alioth.net/index.php/Behemoth

Posted: Thu Jul 10, 2008 10:33 am
by TGHC
Well done Eric.

Posted: Tue Nov 18, 2008 7:51 pm
by Eric Walch
I just uploaded a new behemoth version adapted to the new oolite 1.72. It needed only the change of one single command. This new version will run as well with the old 1.71 and with 1.65.

Behemoth v 2.5

While I had to upload a new 1.72 compatible version I made also some other smaller changes.

- Most noticeable change is that it now always uses its new AI scripting. All previous versions defaulted to a police behaviour when added by the populator. This way it is more likely to launch its defenders in normal space.

- Better counter measures against cloaked attacks. When it is attacked by a cloaked ship, it assumes that the first ships that de-cloaks was the attacker.

- Made the frequency of behemoths in interstellar space a little lower. (But still to much in my opinion). And it is even less likely to encounter the same behemoth after a few miss-jumps. (there are 16 individually named ships divided in 2 classes)

Posted: Tue Nov 18, 2008 8:53 pm
by Ark
Eric Walch wrote:
- Most noticeable change is that it now always uses its new AI scripting. All previous versions defaulted to a police behaviour when added by the populator. This way it is more likely to launch its defenders in normal space.
Does that mean that you have intergrated behemoth spacewar oxp ?
Do we still need the second?

Edit : Defenetly we need it. Behemoth spacewar oxp has nothing to do with its AI.
Sorry Eric :oops:

Posted: Wed Nov 19, 2008 12:51 pm
by Eric Walch
Ark wrote:
Does that mean that you have intergrated behemoth spacewar oxp ? Do we still need the second?
Edit : Defenetly we need it. :oops:
It is not a strange question about the Behemoth-spacewar at all. My initial release (v1.0 ) was mend as an add-on to the behemoth and gave it better AI scripting without changing the behemoth.oxp itself. It was said in the read-me and that part you remembered from the first release.

However this initial release had a version limitation (with min and max version) so it only would work with 1.70. The current Behemoth-spacewar (v 1.2.1), does not try to overwrite the behemothAI. It just brings the behemoth-thargoid battle to normal space. It will even tests for the behemoth.oxp presence. If not present it just adds some police instead. (Who will most likely get killed by the thargoids in that case)

The Behemoth-spacewar was my first effort in AI scripting a carrier and handle the dockings. Main problem is that any ship that asks for docking puts a carrier in a stopping behaviour. But it sends a message to the AI that a docking was requested. Depending on the state I now switch to a real carrierdockingAI or I overwrite the stop command with a new attack command. This results that a docking ship gets accepted but will be held in a waiting loop until the carrier is finished with its attack.

I recently tried this new behemothAI in combination with the player docking computer. After a miss-jump I started my autopilot while one behemoth was fighting several thargoids. On the Mac, with the debugging tool, you can set the target inspector on the behemoth to see how it reacts and switches targets. First it finish its attack after a docking request, than it is switching to the receiveDockingAI. When on a full halt, the player gets guided in.
Meanwhile the carrier is still scanning the surroundings for hostiles and issues new group-attack commands to its defenders when it finds hostiles. The carrier itself stays put as long as it does not get a direct hit. In case of a direct hut, the docker is put in a hold again and the behemoth switches back to its attack mode. I put a lot of effort in it to get this working this way. It seems all to work as intended now and at the end I was docked safely by my computer.

Posted: Tue Jan 20, 2009 10:18 pm
by Cmdr James
On my system (1.72 on OSX), the behremoth type 2 (Colosus for example) has a docking slit at the back, which is rotated 90 degrees so it doesnt match up properly with the model, and is impossible to dock in with a normal sized ship.

I think I have the latest version of behemoth, which is 2.5.

Do other people get this behaviour?

...

Posted: Tue Jan 20, 2009 10:20 pm
by Lestradae
Cmdr James wrote:
Do other people get this behaviour?
I do.

Posted: Tue Jan 20, 2009 10:22 pm
by Cmdr James
cool. so.... is it a bug in behemoth, or in oolite :D