Join us at the Oolite Anniversary Party -- London, 7th July 2024, 1pm
More details in this thread.

Random Hits OXP

Discussion and information relevant to creating special missions, new ships, skins etc.

Moderators: another_commander, winston

Screet
---- E L I T E ----
---- E L I T E ----
Posts: 1883
Joined: Wed Dec 10, 2008 3:02 am
Location: Bremen, Germany

Post by Screet »

LittleBear wrote:
Added link to new test version. Described above.
It won't (shouldn't) deliberatly target you if you are clean. Friendly fire code is only in the new realease, there was no code to deal with friendly fire in 1.3 (beta) and below.
I'm just testing it right now...in the last installed version I had the guns all together fire one burst at me, when I was clean and no hostile ship around. They stopped immediately, though.

However, as I just attempted to get a new contract at the "Twisted Torus Hotel" in the Isoned sytem / G2, I was notable to dock. I was clean and just defended the bar prior to this from a Thargoid attack. I was well within the docking bay, but nothing happened. Thus I did shoot the base from within once...and ships launched before me...that was odd, as if I've flown through the "dock" detector further into the bar. So I dropped a Q-mine, hit the injectors and watched the show as the whole bar was blasted out of existence :twisted:

Screet, now reloading the old saved game...
User avatar
Tivva
---- E L I T E ----
---- E L I T E ----
Posts: 279
Joined: Wed Sep 03, 2008 5:32 pm
Location: Right behind you in a cloaked Thargoid Warship prototype

Post by Tivva »

LittleBear wrote:
Could you test on this one as I've changed so much stuff since 1.3 (beta) that its pretty hard to remember whats fixed and whats not. This installs as RandomHits274.oxp As before can you delete the old version and install this one.
Link :-
http://www.box.net/shared/m33spb79bj
D/L-ing now, & looking forward to it... :wink:
Screet
---- E L I T E ----
---- E L I T E ----
Posts: 1883
Joined: Wed Dec 10, 2008 3:02 am
Location: Bremen, Germany

Post by Screet »

Screet wrote:
I'm just testing it right now...
...and still am ;) I don't know what went wrong witht hat docking attempt - however I've recently been flying through a coriolis station when my craft came out of hyperspeed and wasn't slowing down fast enough, and today I was launching from a station and flew right through a Condor. Maybe I really should install the program I downloaded and attempt to bring my craft to a more reasonable size.

Concerning the strange coincidences with the names: forget it - I had an even far mor weird experience. The first 7 or 8 visits to the bars since the update I had exactly one thargoid warship without robot fighters sitting there. I was beginning to think that there's some bug...but now it's gone. Furthermore, contracts happen to pick the same planets very often. So much about "random generators" ;)

The debug-messages concerning revenge attacks still confuse me a little, however the new warning system works. I recently had my target destroy those revenge seekers with his suicide-Q-bomb. What I still have to figure out is, whether multiple revenge parties can seek me or if a new one replaces the old ones. I'd prefer if they do not replace each other, probable even work together instead...

About the "return to the first message" - when I do hit that button, I still do get three completely new messages, without the ability to return to those I've read before. Thus either the behaviour on my system is wrong or the button should be renamed ("view more contract offers" or something like that would be better).

Finding the targets works MUCH better now, as I uninstalled commies in order to have the "N" beacon back...the "W" is still gone, but now I always find my targets on the first flight towards "N" - thus I did not even encounter any more accidents. Probably my earlier attempts on the old version to fly towards the planet until I was told to use the station instead solved a big portion of those troubles.

I still have to figure out, though, if there's a difference between "sector" and "quadrant".

The enriched environment around the bar is really nice and does add up to the atmosphere!

Screet
User avatar
LittleBear
---- E L I T E ----
---- E L I T E ----
Posts: 2867
Joined: Tue Apr 04, 2006 7:02 pm
Location: On a survey mission for GalCop. Ship: Cobra Corvette: Hidden Dragon Rated: Deadly.

Post by LittleBear »

5 are added when you jump. The one left there is just the last one alive! Although there called Page 1 2 and 3 (should change this reallly) its really skill 1 2 3. Whenever you switch pages the code is just telling it generate a skill level 1 2 or 3 mission. I should probabley have the choices as "Consider a more difficult mission" and "Consider an easier mission". When you leave page 3 and return to page 1 the dice are re-rolled for page 1. First re-roll will generate a different mission but keep flipping back and the same ones will come up again. The sequence from the seed number repeats after a certain number of rolls so the same mission comes back. I reckon you'll only get about 3 varients of each skill level on each docking. The generator works by picking words at random, so when it describes a character as for example "an unpleasent magnatic poet" or whatever its rolling a 150 sided dice three times, so a role of 1 7 8 will always produce "an unpleasent magnetic poet". As the sequence of numbers repeats after a certain number of rolls (each mission description uses about 200 rolls) so do the missions. When you make a H jump your seed number changes and as a result the missions will. You won't get that much variety though in a single docking, its enough for about 12 different missions. Thats probably enough so there'll always be a mission fairly nearby, although it made the generator a bit of a pain to grammar test as I had to keep jumping about in order to test different combinations. As the system is also picked by dice roll from a pool of systems, on any one docking you missions are usually generated from a small selection of the total systems.

The De-bug messages just mean how long must pass before the chance of a strike is called. This'll be removed in a full version, so although you'll get a warning from the hunter after that warning you won't know how close they are. Unless or until they strike. There are about 5 different random events that can happen and they run on different timers, so it should appear that criminals can co-operate sometimes.
OXPS : The Assassins Guild, Asteroid Storm, The Bank of the Black Monks, Random Hits, The Galactic Almanac, Renegade Pirates can be downloaded from the Elite Wiki here.
Screet
---- E L I T E ----
---- E L I T E ----
Posts: 1883
Joined: Wed Dec 10, 2008 3:02 am
Location: Bremen, Germany

Post by Screet »

LittleBear wrote:
You won't get that much variety though in a single docking, its enough for about 12 different missions. Thats probably enough so there'll always be a mission fairly nearby, although it made the generator a bit of a pain to grammar test as I had to keep jumping about in order to test different combinations. As the system is also picked by dice roll from a pool of systems, on any one docking you missions are usually generated from a small selection of the total systems.
This surely explains some stuff...I expected, concerning the button messages, that those would/should deliver only three missions, without changing them, unless I jump out of the system.

About the difficulty, yeah, I do read level 1 and two for fun, but only accept level three in the quadrant/sector where I do want to go.

Concerning random stuff and luck: I've only had two visits to the bar so far where no thargoids were attacking at the moment of my arrival. Right now I had a CLOAKED thargoid warship waiting there! Luckily, though, those cloaks do not work properly, thus cause flickering...and that's enough to aim. The message log is spammed though, as it says "locked on" "lost target" and so on...and the best effect of the cloak was, that the warship practically had no energy left, it was easier to shoot than an adder...and that's quite improbable ;)

I'm not sure...but could it be that the changes made do somehow attract more thargoids (possibly from another oxp) to the location of the bar? I also had very heavy thargoid attacks on those systems were the target was waiting to be eliminated...one battle even was massively more difficult than those navy-"missions" against the thargoids, which one can get as "reserve duty".
LittleBear wrote:
The De-bug messages just mean how long must pass before the chance of a strike is called. This'll be removed in a full version, so although you'll get a warning from the hunter after that warning you won't know how close they are. Unless or until they strike. There are about 5 different random events that can happen and they run on different timers, so it should appear that criminals can co-operate sometimes.
That sounds really good! I guess when I get the message with coordinates, revenge ships are already added and after me? I ask because in those occasions I saw the ships after the next jump, not within that system, but I could just have missed them.

One time my target was again at the brink of the S area in the atmosphere of the planet...when I arrived, it's "guards" did not care about me, as they were busy shooting my target...missed it, though, as it fled into Witchspace and the bubble did close extremely fast (typically they stay a very long time - but I had no injector fuel and could by no means reach it in that short time).

A typical sight is, that the target tries to run away while the gang members attempt to take me out. If I go afte the gang, I sometimes have to jump out of the system (due to the missing W beacon) and then back in...so I typically ignore the members and go after the target. In such cases, the target attempts to flee - and even the bodyguards stop pursuing us...they won't interfere. I am not sure if it's possible to make them stick more with their leader and be more aggressive to me in such a situation, but it would be great. The gang members also never attempt to run for the Witchspace bubble, which I believe they should do. It would make things far more interesting. Anyway, I'd even like some sort of "level 4" mission, maybe the difficulty could be influenced (more?) by the players strength?

And really big congratulations concerning the auto mining ops...that's great! I even took some time just to watch, as they were pretty busy, loading a ship, flying to the next target and continuing...

And...if it's not too difficult or already in there...I guess every player who has Hatchling racers in the game would like to see that some engineer or company owner who produced such things would be a target, because of the crime to do so - as well as the parents who gave such a thing to their mislead hatchling :twisted:

BTW: Is there any key that can be used in order to return to the board? For as long as the board changes, it's not so important, but if the board should become static concerning those missions it displays, it would be helpful to leave the board, check the distances on the chart and then activate the board again.

One last thing...Eric has made some changes to the Deep Space Pirates and their scripting. You probably want to contact him, as the things he achieved there might help you with the "supporters" of the victims, especially if some of them do have escort roles!

Screet
User avatar
Ensa
Competent
Competent
Posts: 35
Joined: Sat Oct 01, 2005 5:00 pm

Post by Ensa »

Screet wrote:
And...if it's not too difficult or already in there...I guess every player who has Hatchling racers in the game would like to see that some engineer or company owner who produced such things would be a target, because of the crime to do so - as well as the parents who gave such a thing to their mislead hatchling :twisted:
Yeahh..... or perhaps the ability to capture the pilots of Hatchling Racers and stick their head (or other appropriate body part) to a spike on the front of your ship as a warning.
Also, I am sure the bounty on those guys should more representative of the benefit to the public good that is in incurred by 'culling' them...
User avatar
Commander McLane
---- E L I T E ----
---- E L I T E ----
Posts: 9520
Joined: Thu Dec 14, 2006 9:08 am
Location: a Hacker Outpost in a moderately remote area
Contact:

Post by Commander McLane »

LittleBear wrote:
Thanks to C&P (and a baby names site) there are about 400 first names on the list for generating, but you often get a couple with the same first name even though the odds are against it.
I have a question concerning this, which is crossing my mind for quite some time: Do you know (or do the coders know) on what range of probabilities the pseudo-random generation is actually based? If it internally is an equivalent of d100_number, any list with more than 100 entries would be moot; the generator could only pick (the same) 100 of them anyway.

I think for lists as extensive as in Random Hits that's quite an important question.
User avatar
LittleBear
---- E L I T E ----
---- E L I T E ----
Posts: 2867
Joined: Tue Apr 04, 2006 7:02 pm
Location: On a survey mission for GalCop. Ship: Cobra Corvette: Hidden Dragon Rated: Deadly.

Post by LittleBear »

Each table is an array in descriptions, whilch are looped to a greater or lesser extent. Here's a simple one for generating the e-mail addresses. Some have well over a hundred entries, but in playtesting I have entries from the end of the list generated as often as ones at the top of the list so I think Oolite isn't limited to only 100. I don't have to roll any dice in code, I just tell it to put word tables together by using the name of each array. Eg:-

Code: Select all

	<key>assassination_board_address1</key>
	<array>
	<string>[assassination_board_email1] [assassination_board_email2] /</string>
	</array>

	<key>assassination_board_email1</key>
	<array>
	<string>GalNET</string>
	<string>Personal</string>
	<string>Secure</string>
	<string>DataNET</string>
	<string>Private</string>
	<string>HyperNET</string>
	<string>DataPad</string>
	<string>Public</string>
	<string>Open</string>
	<string>Direct</string>
	<string>Encrypted</string>
	<string>Sub-Space</string>
	<string>Sub-Ether</string>
	<string>Data</string>
	<string>HoloDirect</string>
	<string>ThruSpace</string>
	<string>GravDistort</string>
	<string>ComDirect</string>
	<string>SysCon</string>
	<string>CorCom</string>
	<string>HoloFac</string>
	<string>AutoCom</string>
	</array>

	<key>assassination_board_email2</key>
	<array>
	<string>Node</string>
	<string>Comms-Link</string>
	<string>Channel</string>
	<string>Terminal</string>
	<string>Account</string>
	<string>Connection</string>
	<string>Link</string>
	</array>

	<key>assassination_board_address1b</key>
	<array>
	<string>[assassination_board_address1]</string>
	</array>

	<key>assassination_board_address1c</key>
	<array>
	<string>[assassination_board_address1]</string>
	</array>
	
	<key>assassination_board_address2</key>
	<array>
	<string>[assassination_board_email3].[assassination_board_email4].[assassination_board_email5].</string>
	</array>

	<key>assassination_board_email3</key>
	<array>
	<string>home</string>
	<string>work</string>
	<string>space</string>
	<string>planetside</string>
	<string>spacelanes</string>
	<string>office</string>
	<string>station</string>
	<string>loworbit</string>
	<string>highorbit</string>
	<string>spacedock</string>
	<string>faraway</string>
	<string>mainstation</string>
	</array>

	<key>assassination_board_email4</key>
	<array>
	<string>gal</string>
	<string>uni</string>
	<string>gov</string>
	<string>co</string>
	<string>oon</string>
	<string>gol</string>
	<string>cos</string>
	<string>ugk</string>
	</array>

	<key>assassination_board_email5</key>
	<array>
	<string>universe</string>
	<string>ooniverse</string>
	<string>galaxy</string>
	<string>cosmos</string>
	</array>

I haven't added any friendly fire code for the marks yet (although its easy to do as its basicaly the same code as for the hunters / bar but with different roles). On following their mother through witchspace I think they will do this eventually, however the system is generated around the player and only one system exists at a time. So once the player jumps by entering the marks witchspace cloud, the escorts suffer an existance failure!
OXPS : The Assassins Guild, Asteroid Storm, The Bank of the Black Monks, Random Hits, The Galactic Almanac, Renegade Pirates can be downloaded from the Elite Wiki here.
User avatar
Commander McLane
---- E L I T E ----
---- E L I T E ----
Posts: 9520
Joined: Thu Dec 14, 2006 9:08 am
Location: a Hacker Outpost in a moderately remote area
Contact:

Post by Commander McLane »

LittleBear wrote:
Each table is an array in descriptions, whilch are looped to a greater or lesser extent. Here's a simple one for generating the e-mail addresses. Some have well over a hundred entries, but in playtesting I have entries from the end of the list generated as often as ones at the top of the list so I think Oolite isn't limited to only 100.
That doesn't actually answer the question. If the random numbers have a range of only 100, and your list has 200 entries, I would absolutely expect the generator to pick entries from the beginning and the end. Just, only the even (or only the odd) entries would be picked. Which is not that obvious during play-testing.

Just as example: With a range of 100 (0..99) and ten entries, for random numbers 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9 the first entry would be picked and so on. With 20 entries, for random numbers 0, 1, 2, 3, and 4 the first entry would be picked and so on. With 100 entries, each random number would correspond to one entry. Beyond that the range cannot be stretched any further. So some entries would be ignored. Only the ((random number / 100) * number of entries)th entries could be reached at all. So for 200 entries and random number 24 it would be (24 / 100) * 200 = 48. For random number 25 it would be (25 / 100) * 200 = 50. Entry number 49 could never ever get picked at all, unless the engine could create a random number 24.5. And the same for all entries with an odd position in the list. The longer the list, the worse it gets.

Therefore it would be essential to know what the range for each dice is. If it's like Math.random() in JS, you're fine. The range is (practically) infinite. If it's like d100_number or even d256_number in legacy, you're screwed for large description-arrays.
Screet
---- E L I T E ----
---- E L I T E ----
Posts: 1883
Joined: Wed Dec 10, 2008 3:02 am
Location: Bremen, Germany

Post by Screet »

Commander McLane wrote:
I have a question concerning this, which is crossing my mind for quite some time: Do you know (or do the coders know) on what range of probabilities the pseudo-random generation is actually based? If it internally is an equivalent of d100_number, any list with more than 100 entries would be moot; the generator could only pick (the same) 100 of them anyway.
IIRC the library that comes with C++ (which is NOT oolites language, but probably a good example) has a definition of the max amount at 32K.

If the list is being looped (as I understand it) and oolites number just gets "added" to the list position (probably after a mod calculation in order to prevent looping the list over and over for large numbers on small lists), things should be fine, though.

Funny is, that I really do see specific name combinations VERY often. On the other hand, since this update, the bars are also under almost constant thargoid attack. I'd say that about 95% of approaches to a bar will show Thargoids just attacking when the player arrives...and I've observed many strange things concerning the "random generator" in other parts of the game. Maybe there's something to work on from the side of the internal code instead of having all OXPs to be changed.

Screet
User avatar
LittleBear
---- E L I T E ----
---- E L I T E ----
Posts: 2867
Joined: Tue Apr 04, 2006 7:02 pm
Location: On a survey mission for GalCop. Ship: Cobra Corvette: Hidden Dragon Rated: Deadly.

Post by LittleBear »

As its a test it set to 100% probability of Thargoids attacking bars (thats deliberate for this test its normally 10%). This is really just so peeps can see the turrets and hunters in action, the hopper behaving to attacks and check its ok. Some phrases will come up more often in the adds than others. The crimes in the board came out of people posting ideas for reasons why someone might want another killed (theres an old thread kicking about if you're intserested). But such is the nature of the communities collective twisted imaginations although we came up with about 500 crime templates and about 50 templates to generate euphuisms for killing folks, there are only so many ways of saying "flying a" "travelling aboad a", so some phrase generators only have a few in them. Thats more due to not being able to think up enough different phrases for some things than the limitations of the random number generator. :wink: If people want to contribute some additional crimes and phrases, post 'em here and i'll c & p them in for the next version. If you open the descriptions.plist with any text editor (notepad etc), it's 'human readable' and i've put comments in saying what each array is used for.
OXPS : The Assassins Guild, Asteroid Storm, The Bank of the Black Monks, Random Hits, The Galactic Almanac, Renegade Pirates can be downloaded from the Elite Wiki here.
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post by JensAyton »

Commander McLane wrote:
I have a question concerning this, which is crossing my mind for quite some time: Do you know (or do the coders know) on what range of probabilities the pseudo-random generation is actually based?
A very good question. The short answer is 0..255. The longer answer is that there are different PRNGs used for different things, but descriptions.plist selections are done with the system generator PRNG, whose values range from 0 to 255.

If you have more than 256 entries in a given descriptions.plist entry, only the first 256 will be used. Also, if you have more than, say, 64 entries, there will be a distinct bias towards the lower numbers.

There are two workarounds. The first is to divide large arrays into sub-arrays of 64 entries and use a master array of the form ("[myoxp_subarray_1]", "[myoxp_subarray_2]", "[myoxp_subarray_3]"). This results in two random number lookups, giving you 65536 possible combinations.

The other is to use JavaScript to make the selection. The problem here is that you can’t load an array from descriptions.plist (although this could be arranged quite easily), so you’d have to hard-code the array in your JS file.

The correct way to select a random element from an array in JavaScript is:

Code: Select all

var element = array[Math.floor(Math.random() * array.length)];
The PRNG used by Math.random() isn’t all that great, but it’s far better than the ones used by Oolite, and its precision is more than enough to select from the largest possible array (2^32 - 1 elements).
User avatar
LittleBear
---- E L I T E ----
---- E L I T E ----
Posts: 2867
Joined: Tue Apr 04, 2006 7:02 pm
Location: On a survey mission for GalCop. Ship: Cobra Corvette: Hidden Dragon Rated: Deadly.

Post by LittleBear »

Ah! I think all the arrays in RH are less than 256 as they loop a lot and different tables are used for each difficulty level so none apart from the first names table has more than about 100 in a single array, but I'd need to split the names one in two.
OXPS : The Assassins Guild, Asteroid Storm, The Bank of the Black Monks, Random Hits, The Galactic Almanac, Renegade Pirates can be downloaded from the Elite Wiki here.
User avatar
Frame
---- E L I T E ----
---- E L I T E ----
Posts: 1477
Joined: Fri Mar 30, 2007 8:32 am
Location: Witchspace

Post by Frame »

Screet wrote:
Screet wrote:
I'm just testing it right now...
...and still am ;) I don't know what went wrong witht hat docking attempt - however I've recently been flying through a coriolis station when my craft came out of hyperspeed and wasn't slowing down fast enough, and today I was launching from a station and flew right through a Condor. Maybe I really should install the program I downloaded and attempt to bring my craft to a more reasonable size.
designing the save anywhere OXP showed me the following..

When your ship for some reason intersects with the station you are trying to dock to, you cant dock... you need to be all clear in order to dock... this can happen with the sub entities of your ship... I'm not talking about colliding, but when your ship because of some unexpected behaviour is pushed inside the boundaries of another object..

all you need to do is to leave the docking bay and retry to dock, or switch to external view, and try to align your ship correctly in the docking bay....
Bounty Scanner
Number 935
User avatar
Thargoid
Thargoid
Thargoid
Posts: 5525
Joined: Thu Jun 12, 2008 6:55 pm

Post by Thargoid »

It's also something I'm hitting with Planetfall (as landing is technically actually spawning a station around your ship). For most ships it works fine (as I'm using the model of a Rock Hermit, with a nice large docking bay). But for some specific ships (e.g. a PCC) it fails (you get some very odd visual effects).

Not entirely sure if it's something I'm going to try and fix or not, as it'll mean designing a new catching station with a huge docking bay. Or just have certain ships incapable of planetary landing. Depends I guess if I want the thing released this year or not... :twisted:
Post Reply