Page 2 of 46
Posted: Tue Jan 06, 2009 7:57 pm
by pagroove
Don't forget the
space castle instead of the stations
Posted: Thu Jan 08, 2009 1:06 pm
by Ramirez
I've been getting to grips with random mission generation and there's something I've come across.
I'd like to make use of the name generator elements within the Oolite application to give names to various NPCs, rather than having to create a new list of possible names from scratch. However, the elements in Oolite's main description.plist only seem to generate surnames and as a result they don't always sound right in certain contexts. For example, names with endings like -son and -dottir won't really work when used as a first name. Looking at the passenger contracts screen, the first names there seem to 'work' even though most of them are completely made up. Does anyone know how Oolite goes about creating the names on the F8 screen, and whether there's a way of accessing this code for other uses?
Posted: Thu Jan 08, 2009 1:30 pm
by LittleBear
Using [%R] gives a reasonable good random first name but also works as a surname without the sons endings [nom11] is a bit more pleasing as well. I use [%R] to generate a first name for the posters on the BBs. For the surnames of guards and hunters in Random Hits I'm currently using:-
<key>random_hits_guard_surname</key>
<array>
<string>[nom11]</string>
<string>[%R]</string>
</array>
but you could also add a chance of a Mc O' or La for example being added with:-
<key>random_hits_guard_surname</key>
<array>
<string>[random_hits_guard_surname_start][nom11]</string>
<string>[random_hits_guard_surname_start][%R]</string>
</array>
<key>random_hits_guard_surname_start</key>
<array>
<string>Mc</string>
<string>O'</string>
<string>La</string>
<string></string>
<string></string>
<string></string>
<string></string>
<string></string>
<string></string>
<string></string>
</array>
So in that example 30% (probabley too many) would have one of the three pre-fixes.
I also used several subtables of about 400 real world first names C&Ped from a baby names site, so feel free to pinch that if you want! I can PM you the tables if you like to rename and c&p in.
Posted: Thu Jan 08, 2009 1:36 pm
by another_commander
For slightly better results, you can also use the %N qualifier instead of the %R. This is for the 1.72 version or later only, though.
Posted: Fri Jan 09, 2009 12:45 am
by JensAyton
another_commander wrote:For slightly better results, you can also use the %N qualifier instead of the %R. This is for the 1.72 version or later only, though.
It’ %N from 1.7
3. In earlier versions, it’s %X. See
https://bb.oolite.space/viewtopic.php?p=63115#63115.
Posted: Sat Jan 17, 2009 9:39 pm
by JameSpal
Recently I was thinking about this idea of a Feudal States OXP. I like the idea of someone doing this. To me Feudalism and Piracy kind of go hand in hand. Since it's not possible for the player to create their own "Pirate Cove" and if it were, it's probably still wouldn't be possible to save the game when docked there, perhaps a safe haven for pirates could be introduced into the game through as part of a Feudal States OXP.
Traditionally I have assumed that Feudal systems in Elite were systems where the inhabitable planet had a Feudal type social structure. Instead of one world government there were many Feudal states battling it out with each other, struggling to increase the size and scope of their empires.
I assumed this was why Feudal states were nearly as dangerous as Anarchies, because any local GalCop resources would be so busy trying to keep the peace among the local factions, they didn't have time to patrol the space lanes or worry about nefarious outsiders coming and going from the station.
But perhpas in the current Ooniverse, most Feudal states inside of Feudal systems have started cooperating with each other on these planets to try to run GalCop out of the solar system. This could have lead to a situation where Feudal worlds are starting to fight amongst themselves in an attempt to expand their local empires throughout the galaxy.
If this were the case, then perhaps part of an atmospheric Feudal States OXP could include a feature whereby the player can ally themselves with one particular Feudal World. The local government of that Feudal world will allow you safe passage around the system - to the standard station, perhaps to a "space castle", where ever you want to go - regadless of your legal status, in exchange for a tithing when you do business there.
So like if you decide to live the life of a Space Scoundrel, you will still have a "homeworld" where you will not be fired on by GalCop or other system vessels. Instead as an Offender or Fugitive, you will be welcomed and protected within that system because a bad legal status with GalCop will indicate to the Feudal lords that you have no sympathy for the galactic establishment.
At the same time, however, being in "good standing" with one Feudal world will mean that other Feudal worlds will see you as an even bigger threat and even if you are "clean" their system vessels will treat you as an offender - not assist you in docking, not send system vessels to assist you if you are ambushed by pirates, etc.
Perhaps you could ally yourself with one Feudal system in each Galaxy, or maybe one at each end of each Galaxy, but you could not befriend two Feudal states that are too close to each other.
In your Ships Manifest screen - like where the UPS OXP says "UPS considers you..." or where the mission status is displayed - it could say something about "The Lord of *whatever Feudal World* considers you a loyal subject in good standing".
It wouldn't have to include missions against other Fedual Worlds - although those could be part of it - instead it can just give you a safe place to go and save your game when you get tired after a long night of Space Piracy, you'll just have to pay a small tithing (perhaps 5% of your cash on hand) to the Lords of the system.
Maybe there could also be missions like the Galactic Navy missions - where you meet up with other ships to fight off a Thargoid invasion on some planet, but instead you go meet up with other ships to wreak havoc in a neighboring system. Like a coordinated attack on GalCop or Galactic Navy facilities or on the "space castle" in other Feudal Systems or just a coordinated Pirate Raid on peaceful traders in a Corporate State world.
I don't know if anything of these things are possible in the rubric of Oolite scripting, it's just a series of ideas I had when trying to find a safe haven to save my game and pick up some equipment after a stint of mischief making - with no missiles left, a severely damaged ship, and GalCop hot on my tail.
Sorry for the long post, just throwing some ideas out there.
Posted: Sun Jan 18, 2009 2:40 pm
by Ramirez
Thanks for the name suggestions. I've now taken the basic script I had and have converted it into javascript and it seems to work OK. Being able to call separate self-contained functions certainly makes things easier!
JameSpal - those ideas aren't that far from what I'm working on. Here's an overview of things that I plan to do so far:
Noble Houses
Starting off in Galaxy 1, to keep things manageable I've created a handful of noble houses representing the more high-tech of the feudal systems. I've knocked up some basic work-in-progress coats of arms for each, based loosely on the colours of the planet or any interesting flora and fauna in the default planet description:
Each house will be at various stages of conflict with another, and GalCop's only concern is to ensure any outsiders to these systems are not harmed. As far as they're concerned, the feudal systems are not a threat to the Galactic Cooperation and so they can be left to fight among themselves.
The Royal Court
Each of the noble houses holds court, and here think I may make use of Thargoid's suggestion to use his Planetfall OXP so that the court is based on the planet rather than the main space station. Here the King issues proclamations which in practice equate to random missions to go and attack/rob/kidnap ships or people from the other noble houses. As the player does more of these missions their reputation will increase and they may be asked to formally join one of the houses. From this point they can only work for the one house but they can make their way up the ranks.
The Hunting Lodge
From Caracal's earlier teaser, each house has a lodge in deep space where the basic skills of hunting are taught. As well as trying some target practice, visitors can try their skills against resident nobles in ship-to-ship combat, with moderate cash prizes on offer. This is really just a bit of fun for players who don't want to join a house.
The Royal Tournament
Every so often one of the houses hosts a tournament where nobles from around the galaxy are invited to compete. Once a player has attained a suitable rank they can join in the fun and make some big money. One of the big events I'm planning will be the 'Battle Royale', a simulation of a space battle where a large number of randomly-generated nobles fight it out until a certain number are left standing. I've already got the basic scripting for this part sorted.
Posted: Sun Jan 18, 2009 2:51 pm
by JensAyton
Ramirez wrote:I've now taken the basic script I had and have converted it into javascript and it seems to work OK. Being able to call separate self-contained functions certainly makes things easier!
I’m glad
someone appreciates that. ;-)
Posted: Sun Jan 18, 2009 5:32 pm
by Disembodied
If you want to avoid an overly-European look you could always make some coats-of-arms using Japanese mon:
And there are some
Russian family sigils which could be used, too. Not so colourful, but it would help break things up.
Posted: Wed Jan 21, 2009 1:10 pm
by Ramirez
So far, so good. Randomly generated ships are appearing with the correct roles, IDs and AIs etc and I've done a few more models.
A question: I want to use random number to set a system number as a mission variable and then use that to get the system name. I'm not quite sure how to use the pseudoRandom255 property to do this though. I need something like
missionVariables.feudal_mission_location_no = (random no between 0 and 255)
I've tried a few variations but I don't think I've got the syntax right. Any ideas?
Posted: Wed Jan 21, 2009 6:14 pm
by Svengali
To use the pseudoRandom:
Code: Select all
missionVariables.feudal_mission_location_no = system.pseudoRandom256;
or the other variants
Code: Select all
missionVariables.feudal_mission_location_no = system.pseudoRandomNumber;
missionVariables.feudal_mission_location_no = system.pseudoRandom100;
But the pseudoRandomNumber is maybe not what you want. If I get this right your want to get a random system name, right?
Code: Select all
system.systemNameForID(Math.floor(Math.random()*256));
Posted: Wed Jan 21, 2009 7:26 pm
by JensAyton
To be clear, the pseudoRandomFoo properties are constant for each system; that is, system.pseudoRandom255 is 41 at Lave and will never not be 41 at Lave.
Posted: Wed Jan 21, 2009 8:00 pm
by Ramirez
Thanks for the clarification. I've seen math.floor and math.random in other people's scripts but have never understood quite how they work. I've put it into my script and it works a treat.
Posted: Wed Jan 21, 2009 9:40 pm
by pagroove
Definitely a OXP I want to see in-game. Keep up the good work Ramirez
I like random things!
Posted: Sat Jan 24, 2009 10:08 pm
by Ramirez
I accidentally created a spawning feedback loop in a script and and ended up with this rather scary scenario:
It actually ran OK for a while before eventually my 2.8GHz iMac gave up! However it might serve as a useful test. All these are clones of the same ship - the big battles I was planning for this OXP will generally use only a handful of different textures at one time, so having a large number of ships (>20 or so) fighting it out shouldn't be much of a problem.