Oolite Shipyards Extension V1.0 Development

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

Moderators: winston, another_commander

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 »

DaddyHoggy wrote:
:!: :?: Have I caused some confusion? I was just wondering what Griff could do with additional lighting/shader effects on what is already a fabulous model - i.e. illuminating the (incorrect) designation area as Star Trek ships all seem to do.
Remember, you don’t need to write a shader to add glow or illumination mapping – but an engine glow would be desirable in this case. :-)
Last edited by JensAyton on Tue Jul 15, 2008 4:51 pm, edited 1 time in total.
User avatar
DaddyHoggy
Intergalactic Spam Assassin
Intergalactic Spam Assassin
Posts: 8515
Joined: Tue Dec 05, 2006 9:43 pm
Location: Newbury, UK
Contact:

Post by DaddyHoggy »

Can you point me to the right thread then please Ahruman - becuase having downloaded several oxps that do include shaders and looked at the shader fragments I'm very confused - if I could add glows via textures alone that would be very helpful!
Selezen wrote:
Apparently I was having a DaddyHoggy moment.
Oolite Life is now revealed 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 »

DaddyHoggy wrote:
Can you point me to the right thread then please Ahruman - becuase having downloaded several oxps that do include shaders and looked at the shader fragments I'm very confused - if I could add glows via textures alone that would be very helpful!
Didn’t we have this conversation last week? Oh wait, that was with Wolfwood.

That post mentions emission_map; for a light cast on the ship itself, you want illumination_map, or emission_and_illumination_map if you want both self-illumination and glows (which, in this case, I think you do).
User avatar
caracal
Deadly
Deadly
Posts: 205
Joined: Wed Jun 25, 2008 11:31 am
Location: The Desert, USA
Contact:

Re: ...

Post by caracal »

Lestradae wrote:
My opinion is that: If any Jameson buys himself an Injector right after the Docking Comp (possible at Lave itself with RS 3.02 - buy a smaller ship + more equipment immediately and start out with a few thousand credits), and keeps using that scanner thingy and looking at the printed-out ships databank what is coming at him, and doesn`t travel to anarchies or feudal systems for the time being, keeping to corporate and democratic systems at the beginning, and RUNS if one of the big guys gets too interested ... then the universe where Tigers and Wolves and Kestrels and Condors also prowl is pretty survivable for the young Jameson.
Pretty much, yeah. Although I think I would substitute "low-population systems" for "corporate and democratic systems". If you travel in the space lanes even in a corp or democracy, you're going to run into pirates. Having the police on your scanner to mourn as you get smoked is small consolation.
Perhaps (perhaps?! :oops: ) I`m an old style gamer, but I don`t hold the sliding scales easy gaming approach in high regard ... in my version of the Ooniverse (visible in RS) there are dangerous places you don`t go to before you have become dangerous yourself. That way, low-tech anarchy actually means something.
To me, the problem seems to be that there are no really "safe" places, except outside the trade lane between the witchpoint and the main station. Well, and right around the main station, most of the time. The government seems to make less difference than the population (or maybe tech level, I haven't yet figured out which is the prime factor), except in the number of police about.

Another gripe I have, which is amplified by RS, is that the system tech level seems to have zero effect on the kinds of ships you meet in that system. So in low-tech anarchies, I get attacked just as often by Morrigans, Tepius, and Kestrels as by Asps, Tribants, and Kraits, if not moreso. I guess that's not entirely unrealistic, but it stings a bit when I get jumped in three consecutive low-tech systems by bands of 5 pirates led by a Morrigan. Somebody must have posted my picture on the wall of a space bar somewhere! :mrgreen:

I do agree that we should all be playing the same game, both newbie and grizzled old spacer. But the player should be able to select the level of difficulty via several means. Just avoiding every other ship whenever possible is a good way to stay alive, but a bad way to improve skills. As I said, I have a few ideas, and may spring a teaser OXP on you within a few days.
User avatar
caracal
Deadly
Deadly
Posts: 205
Joined: Wed Jun 25, 2008 11:31 am
Location: The Desert, USA
Contact:

Re: ...

Post by caracal »

Lestradae wrote:
No, please post your list [of error messages] here! If you found anything I haven`t found yet, it`s very helpful to have it before the next release! :wink:
Okay, here are selected ones from recent runs. First, I get a ton of these every time, with no indication where they come from. Binary elimination is the only way I can see to track it down. May not even be in RS:

Code: Select all

2008-06-30 11:44:44.453 oolite[14383] [ship.sanityCheck.nilDict]: Ship created with nil dictionary!
Next, the endemic alphabetic case problems, first with one example:

Code: Select all

2008-06-30 11:44:49.025 oolite[14383] [files.notFound]: ----- WARNING: Could not find texture file "const.png". Used default no textures material instead.
Whenever I get those, I create a symlink to eliminate it. Here's the list of symlinks I've created so far for RS 3.02, first for textures. The names on the left are references; the names on the right are the actual name of the file:
  • const.png -> CONST.png
  • CONST.PNG -> CONST.png
  • mainhull.PNG -> mainhull.png
  • moose.png -> MOOSE.png
  • orb.png -> Orb.png
  • ORB.png -> Orb.png
  • ORB.PNG -> Orb.png
And there's also "oresrian_trader.dat -> Oresrian_Trader.dat" in Models. And of course, those are just the ones I've found so far.

Then the Police Condor AI script, which is missing quote marks all over the place:

Code: Select all

2008-06-30 11:44:50.219 oolite[14383] [plist.parse.foundation.failed]: Failed to parse .../.Oolite/AddOns/Zzzz_Realistic_Shipyards_V3.02.oxp/AIs/PoliceCondorAI.plist as a property list using Foundation. Retrying using homebrew parser. WARNING: the homebrew parser is deprecated and will be removed in a future version of Oolite.
Parse failed at line 8 (char 440) - unexpected character (wanted ',' or ')')
2008-06-30 11:44:50.220 oolite[14383]   [plist.homebrew.parseError]: Property list isn't in XML format, homebrew parser can't help you.
Then there's this awful thing, which is who knows where:

Code: Select all

.:85: element array: validity error : Element array content does not follow the DTD, expecting (array | data | date | dict | false | integer | real | string | true)*, got (key integer key integer key string string string )
				</array> 
				        ^
And this, which thankfully comes with a filename, and is probably a version-transition problem (with oolite, not RS):

Code: Select all

2008-07-14 02:28:17.748 oolite[23530] [script.javaScript.exception.22]: ***** JavaScript exception: TypeError: this.ship.call is not a function
2008-07-14 02:28:17.748 oolite[23530] [script.javaScript.exception.22]:       .../.Oolite/AddOns/Zzzz_Realistic_Shipyards_V3.02.oxp/Scripts/bweed-kestrelfalcon-falcon.js, line 29.
Finally, I think these aren't errors in RS, but they're in my log, and maybe the author will notice them. Curiously, I do not have the Black Monk OXP installed:

Code: Select all

2008-06-30 12:55:13.078 oolite[14966] [shipData.load.error]: ***** ERROR: the shipdata.plist entry "centergun" specifies no roles, ignoring.
2008-06-30 12:55:13.078 oolite[14966] [shipData.load.error]: ***** ERROR: the shipdata.plist entry "monk_r_wing" specifies no roles, ignoring.
2008-06-30 12:55:13.078 oolite[14966] [shipData.load.error]: ***** ERROR: the shipdata.plist entry "monk_engine" specifies no roles, ignoring.
2008-06-30 12:55:13.079 oolite[14966] [shipData.load.error]: ***** ERROR: the shipdata.plist entry "monk_cannon" specifies no roles, ignoring.
2008-06-30 12:55:13.080 oolite[14966] [shipData.load.error]: ***** ERROR: the shipdata.plist entry "griff_spacebar_subent_template" specifies no model, ignoring.
2008-06-30 12:55:13.081 oolite[14966] [shipData.load.error]: ***** ERROR: the shipdata.plist entry "thargoid-player" specifies no roles, ignoring.
2008-06-30 12:55:13.081 oolite[14966] [shipData.load.error]: ***** ERROR: the shipdata.plist entry "monk_l_wing" specifies no roles, ignoring.
And that's what I've collected so far.
know that some ships are represented multiple times, from different shipyard entries, but in at least one case, there was something like a 60,000Cr difference between two ships that were both "standard customer model". And that ship is only in RS, and only in there once.
The only possible explanation for that is that there are two different versions of that ship which have the same in-game name, but are actually different (i.e. one has 0.35 LS top speed, the other 0.37 LS but both are named Cobra MkIII). Otherwise it would be a mystery.
Yeah, I know those cases exist, and checked explicitly for it. Wasn't the case here. I was expecting you to say "Yeah, that's how the shipyard algorithm works, period."
Do you recall which ship that was?
No, dagnabbit, I didn't make a note--got wrapped up in some other things at the time and forgot to. :oops: Next time for sure!
An alternative explanation would be that you had another oxp installed also that has the same ship type but with a different price which is not rewritten properly by RS - have you checked for that?
Yes, no joy. Which is why I even mentioned it in the first place. It was a pure-RS ship, single instance, two different prices for the same model.
Do the RS prices as they stand now include standard equipment in the cost? How about the tech level?
The additional equipment is calculated by the core game into the price. The ship`s TL determines where a ship can be found, not its equipment.
I wasn't clear in my questions, sorry. First, yes I know that the shipyard adds to the cost of a ship that has optional equipment installed, often at wildly inflated rates. What I was talking about was standard equipment. Let's take, as a simple example, the All Stars Large freighter. Its RS price is listed as 32,530, which is close to my little price calculator's 33,076. (The difference is in the speed calc, which I mentioned in another post; I still haven't yet figured out the algorithm you use in programmatic terms.) And 32,530 is how a "standard customer model" would usually be listed in a shipyard. But the aafreighter comes standard with External Heat Shielding, a 1500Cr item supposedly available at TL4 and above. The effect becomes even more pronounced when you buy something like a Fer-de-Lance or an Imperial Courier, which both come with a huge stack of high-priced standard equipment. You note later that the tech level of the (standard) equipment isn't considered when figuring the TL of the ship, which I guess makes some sense, sorta. But it seems like one is getting the standard equipment for free using the "realistic" pricing model. When setting the price in the shipdata.plist for the ships I'm creating, I've added in the costs of the standard equipment too.
If it makes sense to also factor the "has ECC" or "has no ECC" into the price I`m also not so sure anymore. I left it in because I had the vague idea to make the scope of a large cargo bay dependable on the "base cargo bay" but leave the price as it is for all ships. That way, while the Cobra MkIII`s large cargo bay adds 15 tons to its 20 for a total of 35 tons, an Anaconda`s large cargo bay might add 570 tons to its 750 for a total of 1320 tons ... not sure yet. Ideas welcome.
This makes it clear that you have the same questions I do, which while not ideal, at least makes me feel less like a dunderhead. :wink:
So far, I haven't found any real reason to dock at a SIRF, beyond the visual pleasure of it.
The SIRF Yards have a Tech Level that is three levels higher than the TL of the system surrounding it. If you look at the equipment dock you will see that. In systems of TL 13+ the TL of the SIRFYards stays at 15, but the equipment including the TL 15 equipment gets cheaper. Much cheaper. There`s your reason :)
Except I docked at a SIRF in at least three TL13 systems, and the equipment prices and ship offerings were identical to those at the main station. And no TL14 or 15 systems in galaxy 1 have SIRFs, so I can't check there. So far as I've seen, there's never been a single difference between the ships or equipment offered at a SIRF versus the main station. Maybe I just need to get around more. :P
Is it or is it not possible for an OXP to set the prices seen in a shipyard display, based on data of its own, and what it can get from the game engine?
That would be very, very great, if that was possible, but I don`t know if it is and if, how-to. If someone ever scripted a gadget like that I`d immediately include it into future RS and be hugely thankful for getting spared lots of future work by hand ... :D
Okay, I was hoping you might already know. I am pretty sure it's not possible right now, based on what I've seen in the scripting docs, but I thought I recalled seeing ahruman or another of the developers mention that it might be possible in the future. Tonight or tomorrow, I'll convert my python price calculator to ECMAScript, just to be ready in case it does get implemented. :)
some ideas for the future, like an automated installer that lets you include or omit ships, either in groups ("Trek", "Star Wars", "Uber", "Starter", etc.) or individually
That`s a very good idea. Cmdr Maegil I think said he might create RS versions "for Jamesons" and "for veterans". If he or someone else invests the work, I would appreciate that very much and, if wanted, even host it on my paid box account and add download links on the Realistic Shipyards page to the alternate variants.

An automatic installer that lets you add or remove ships or ship packs, but not by oxp picking (the ship oxps in RS have been repaired, some of them massively, by using the old oxps again you`d get all the old errors again!) but directly from RS, would be the best actually. No idea if or how that is possible - if someone does it, again, I would embrace it, host it and list it on the RS page.
Oh, it's possible. As we in the business say, SMOP--simple matter of programming. I already know how I'd do it, but am unclear about the portability issues--we have people on Windows, on Macs, on Linux, and probably other Unix variants. Finding a language that can be counted on for each of those platforms is a real trick. (I guess I could do it in ObjectiveC, but I shudder at the thought.) That's the hard issue; using a set of selections to craft a customized shipdata.plist and other config files, that's cake.

The other issue is selective downloads; it'd be a shame to have to download all the textures and such for every RS ship, only to wind up installing, say, less than half of them. So the installer would presumably have to tell the user which "packs" to download after the selections were made, to complete the installation. Each pack would include the models, textures, and images for the selected ships, and possibly a few others. So if you selected, say, the Navy Constitution during installation, you'd need to download the Star Trek pack, even if you didn't intend to use the Navy Escort, for example. Its model and texture would be there, but wouldn't be referenced by the installer-created shipdata and shipyard plist files.

In summary, RS actually consists of three parts:
  1. The SIRF, which is neat, but as mentioned above, I have some questions about. I haven't heard anybody say anything negative about it.
  2. The "realistic" pricing model. I haven't heard any strong objections to this, either. If a day comes where the game itself could calculate ship prices, this part could go away.
  3. The ships. Here's where the objections seem to arise, from several categories of players:
    • The ultra-purists, who just want the basic eleven ships.
    • The old-schoolers, who enjoy a little variety, maybe even use the aegidian OXPs, and the griff textures, but basically operate in a world that's much like the standard one.
    • The ooniverse purists, who like lots of different ships, but don't care to see a Millenium Falcon or Enterprise or Liberator gracing the spacelanes of the ooniverse.
    • The gradualists, who enjoy ship variety, as long as they're not "too uber".
    And probably other categories I'm not thinking of. I bet very few people fall completely within a single category, but each of those sorts of objections has been raised against RS.

    Making ships individually selectable, while easing download and installation, would satisfy a wider range of users, no?

    Fire away, mateys!
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

.

Post by Lestradae »

@caracal:

Outstanding! :D

So many good ideas ... if I find proper (working on, that is) help, many of them might just be implemented into the future RS - the "Oolite Ships Extension".

And the detailed bug-reports are very good, too, especially the higher-lower casing ones - I can only partly find them with the verify oxp on Vista, which doesn`t care about that distinction ...

The best ideas are the automated pricing and the installer for ship packs. If there was an automated installer, I would be comfortable with the idea ...

ATM I am too embroiled in RL issues to continue work on RS - but sometime in the next months or so, it`s going to get me again, and then I`ll do something.

The installer and automated pricing/TL would have to be programmed by someone else (didn`t you say you could do it? :twisted: ) as my scripting skills are never going to reach there ... but if someone does it, I`m fine with it and say, in with it!

Cheers :D

L
User avatar
caracal
Deadly
Deadly
Posts: 205
Joined: Wed Jun 25, 2008 11:31 am
Location: The Desert, USA
Contact:

Re: .

Post by caracal »

Lestradae wrote:
Outstanding! :D
Glad you like it!
And the detailed bug-reports are very good, too, especially the higher-lower casing ones - I can only partly find them with the verify oxp on Vista, which doesn`t care about that distinction ...
Yes, Linux cares, so I find them (a) any time such a ship is created and (b) I'm logging stderr. And ahruman has added a to-do item to create a log file for Linux, so (b) will become a non-issue.
ATM I am too embroiled in RL issues to continue work on RS - but sometime in the next months or so, it`s going to get me again, and then I`ll do something.
I hear ya. I happen to have a bit of time right now, but it comes and goes.
The installer and automated pricing/TL would have to be programmed by someone else (didn`t you say you could do it? :twisted: ) as my scripting skills are never going to reach there ... but if someone does it, I`m fine with it and say, in with it!
Yeah, I wouldn't have proposed them if I didn't think I could implement them.

As I said, the issue with the installer is portability. I've read on another thread that somebody got Python running pretty easily on their Windows (or Mac?) box, which is promising, and there are downloadable versions for both (as well as Linux/*BSD), but it seems a bit awkward to demand that somebody download a whole programming system just for one OXP installer. I'm sure I could learn enough ObjectiveC to do it in that, but the GUI would be an issue there, plus I just don't wanna. So that remains an open showstopper.

The issue with the in-game price calculation is one of having the facilities provided to the scripting interface. The impression I get is that The Team is going hammer and tongs adding new cool stuff to the ECMAScript interface, so all we can do is wait and see. And beg.
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6626
Joined: Wed Feb 28, 2007 7:54 am

Re: .

Post by another_commander »

caracal wrote:
As I said, the issue with the installer is portability. I've read on another thread that somebody got Python running pretty easily on their Windows (or Mac?) box, which is promising, and there are downloadable versions for both (as well as Linux/*BSD), but it seems a bit awkward to demand that somebody download a whole programming system just for one OXP installer.
Maybe this could help. It creates executables out of Python packages and is multi platform. Kaks used it to make the Windows debug console executable:
http://pyinstaller.python-hosting.com
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Re: ...

Post by JensAyton »

caracal wrote:
  • orb.png -> Orb.png
  • ORB.png -> Orb.png
  • ORB.PNG -> Orb.png
Wait, you’ve got the Orb in RS? It’s horribly buggy. I suggest getting rid of it.

Code: Select all

.:85: element array: validity error : Element array content does not follow the DTD, expecting (array | data | date | dict | false | integer | real | string | true)*, got (key integer key integer key string string string )
				</array> 
				        ^
To clarify, this means that a dictionary is either missing two <key>s, or using <string> instead of <key>. Every oddly-numbered element inside a <dict> must be a <key>.
And this, which thankfully comes with a filename, and is probably a version-transition problem (with oolite, not RS):

Code: Select all

2008-07-14 02:28:17.748 oolite[23530] [script.javaScript.exception.22]: ***** JavaScript exception: TypeError: this.ship.call is not a function
2008-07-14 02:28:17.748 oolite[23530] [script.javaScript.exception.22]:       .../.Oolite/AddOns/Zzzz_Realistic_Shipyards_V3.02.oxp/Scripts/bweed-kestrelfalcon-falcon.js, line 29.
As stated elsewhere, the (dangerous) call() method will not be available in 1.72 and later unless the Debug OXP is active.

Code: Select all

2008-06-30 12:55:13.078 oolite[14966] [shipData.load.error]: ***** ERROR: the shipdata.plist entry "centergun" specifies no roles, ignoring.
2008-06-30 12:55:13.078 oolite[14966] [shipData.load.error]: ***** ERROR: the shipdata.plist entry "monk_r_wing" specifies no roles, ignoring.
2008-06-30 12:55:13.078 oolite[14966] [shipData.load.error]: ***** ERROR: the shipdata.plist entry "monk_engine" specifies no roles, ignoring.
2008-06-30 12:55:13.079 oolite[14966] [shipData.load.error]: ***** ERROR: the shipdata.plist entry "monk_cannon" specifies no roles, ignoring.
2008-06-30 12:55:13.080 oolite[14966] [shipData.load.error]: ***** ERROR: the shipdata.plist entry "griff_spacebar_subent_template" specifies no model, ignoring.
2008-06-30 12:55:13.081 oolite[14966] [shipData.load.error]: ***** ERROR: the shipdata.plist entry "thargoid-player" specifies no roles, ignoring.
2008-06-30 12:55:13.081 oolite[14966] [shipData.load.error]: ***** ERROR: the shipdata.plist entry "monk_l_wing" specifies no roles, ignoring.
Yep, shipdata.plist entries without a roles entry have never been “correct”, and in 1.72 they will be struck from the ship registry (ooh). The new is_template property can be used to suppress this type of message in cases where the ship is only being used as a template via like_ship, but they will still be removed.
User avatar
caracal
Deadly
Deadly
Posts: 205
Joined: Wed Jun 25, 2008 11:31 am
Location: The Desert, USA
Contact:

Re: .

Post by caracal »

another_commander wrote:
caracal wrote:
As I said, the issue with the installer is portability. I've read on another thread that somebody got Python running pretty easily on their Windows (or Mac?) box, which is promising, and there are downloadable versions for both (as well as Linux/*BSD), but it seems a bit awkward to demand that somebody download a whole programming system just for one OXP installer.
Maybe this could help. It creates executables out of Python packages and is multi platform. Kaks used it to make the Windows debug console executable:
http://pyinstaller.python-hosting.com
Very nice. I see they have a Mac port in development. It just might be a solution; I gave it a quick try on some scripts I have laying around and it created a not-huge binary for them. (Although it wouldn't run, but that's probably because I haven't read the docs yet. :))

Thanks for the link!
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

ff

Post by Lestradae »

@Ahruman:
Wait, you’ve got the Orb in RS? It’s horribly buggy. I suggest getting rid of it.
No, not the Orb.oxp :)

Just the ship "0rb", and that one is needed as a subentity for the Navy Constitution - its not flying around on its own.

I was thinking of including the whole oxp, but after finding error within error in it decided it was beyond my capabilities to repair it, so I didn`t.

Cheers 8)

L
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

...

Post by Lestradae »

8)

Just three weeks after going online, Realistic Shipyards V3.02 has broken through the two hundred downloads barrier!

(And yes, the twenty or so downloads from a certain broken wifi connection have been factored out of that number :P )

:D

L
User avatar
Lestradae
---- E L I T E ----
---- E L I T E ----
Posts: 3095
Joined: Tue Apr 17, 2007 10:30 pm
Location: Vienna, Austria

...

Post by Lestradae »

Download report: In 1.5 months, Realistic Shipyards Version 3.02 has reached the ...

... five hundred downloads mark and counting ... :D

This might even motivate me for the next upgrade ... already, new bug lists :( and additional ideas :) are mounting in my head ...

8)

L
User avatar
Shade
Above Average
Above Average
Posts: 31
Joined: Sun Jun 24, 2007 7:29 pm

Any Thoughts

Post by Shade »

Any thoughts on stripping out the Star Trek, Star Wars, and Eve (Kestrel) 'tribute' ships? I find they kind of dillute the OOexperience... (and they may have 'other' issues.)
User avatar
FSOneblin
---- E L I T E ----
---- E L I T E ----
Posts: 460
Joined: Tue Oct 30, 2007 12:15 am
Location: Yes, That is True

Re: Any Thoughts

Post by FSOneblin »

Shade wrote:
Any thoughts on stripping out the Star Trek, Star Wars, and Eve (Kestrel) 'tribute' ships? I find they kind of dillute the OOexperience... (and they may have 'other' issues.)


It is possable to remove them. I'm not sure how, tho, you will have to ask the emperor.


Don't Panic: FSOneblin
Don't panic

Now an "adult!"
Post Reply