I like those ships! Both of the links worked. Phoenix is looking good. I got Petra @ London in a cool enclosed hangar and saved it. We'll go for a flight tomorrow.
looks lie i disabled the "aurogenerate faction" (factions0_AutoGenerate.lua_), just remove the underscore to enable them
they need quite a time to be generated cause they are spread widely and 160 is a large amount but i recognized more factions close to the core systems if i use i higher amount, however many small factions (totalitarian regimes) is better. they are recently very small and can be sized to your choice if you like them a little larger (more systems as only 1 to ~5)
that's in the respective script (00_AutoGenerate.lua)
`-- minimum and maxium expansion rate
local min_expansion = 0.05
local max_expansion = 0.1`
if you set a higher expansion rate the systems will be larger.
Petra just took her first flight. It's nice to see the other planets in the system. I miss that. I was surprised to see London in daylight at midnight GMT. She's going to have to do a lot of grinding to equip her ship. She inherited that Rapier and quit her job at the fish cannery to take a package delivery to Paris. She flew as a newbie in the atmosphere at 500 m/s, so she's not an astronaut yet. I found the keyboard to be sluggish and am getting 5/6 fps regardless of detail settings. I'm running this on Linux and may be able to improve this with some adjustments to WINE. I saw that Firefly in the shipyard. I want one! You're making some nice looking ships! Anyway, she landed at that Sydney Opera House station and cleared 19 credits.
Oh, and I like the music!
that sounds likwise if i'm running pioneer on the macbook ( < 10 fps ), (under wine or as osx app).
i guess you need to make many deliveries to buy a Firefly 😉
i got a little more fps on my old windows but i know it needs improvements from my side to, (while i feel it din't makes no big difference, i can' leave away such things lke the random adverts and didn't gain a lot of speed, what cost's most is still the postprocessing)
for me it helps a lot to make it run more stable if i disable the music (sad).
i know you like the old raves, but i like as much or even better i like classical tunes especially in a game like pioneer.
i found some classsical music in the archive and i wonder if this is ok to use them in pioneer, since they ae pubished as PD.
[100ClassicalMusicMasterpieces]( https://archive.org/details/100ClassicalMusicMasterpieces "https://archive.org/details/100ClassicalMusicMasterpieces")
i have a (quite) large collection of classical music mostly baroque this compilation adds a lot uf music (or excerpts of concerts/operas) i missed.
let Flash Gordon (silly or not) enter the hall,
[Liszt, Les Preludes]( https://archive.org/details/100ClassicalMusicMasterpieces/1854+Liszt-+Les+Preludes.mp3 "https://archive.org/details/100ClassicalMusicMasterpieces/1854+Liszt-+Les+Preludes.mp3")
the definitive naval theme, any boatlike vessel game movie whatever will use this
[Wagner, Ride of the Valkyries]( https://archive.org/details/100ClassicalMusicMasterpieces/1870+Wagner-+Ride+of+the+Valkyries%3B+from +'The+Valkyrie'.mp3 "https://archive.org/details/100ClassicalMusicMasterpieces/1870+Wagner-+Ride+of+the+Valkyries%3B+from+'The+Valkyrie'.mp3")
i guess this is even used in the old b/w flash gordon series and many other movies and tv plays as well,
[Suppe, Light Cavalry Overture]( https://archive.org/details/100ClassicalMusicMasterpieces/1866+Suppe-+Light+Cavalry-Overture.mp3 "https://archive.org/details/100ClassicalMusicMasterpieces/1866+Suppe-+Light+Cavalry-Overture.mp3")
this one has been used in countless cartoons,
[J.Strauss II, Tritsch Tratsch Polka]( https://archive.org/details/100ClassicalMusicMasterpieces/1858+J.+Strauss+II-+Tritsch+Tratsch+Polka.mp3 "https://archive.org/details/100ClassicalMusicMasterpieces/1858+J.+Strauss+II-+Tritsch+Tratsch+Polka.mp3")
another which has been used for movies, mostly excerpts from it, it's a very dynamic piece and ranges from silent to dramatic
[Offenbach, Orpheus in the Underworld]( https://archive.org/details/100ClassicalMusicMasterpieces/1858+Offenbach-+Orpheus+in+the+Underworld.mp3 "https://archive.org/details/100ClassicalMusicMasterpieces/1858+Offenbach-+Orpheus+in+the+Underworld.mp3")
this well known piece i use as opener (directory "intro"):
[R. Strauss "Also sprach Zarathustra", Fanfare]( https://archive.org/details/100ClassicalMusicMasterpieces/1896+R.+Strauss+-+Also+sprach+Zarathustra+-+Fanfare.mp3 "https://archive.org/details/100ClassicalMusicMasterpieces/1896+R.+Strauss+-+Also+sprach+Zarathustra+-+Fanfare.mp3")
wagner is always good for ( a Gernot? grin, it's a "wagnerian" name) something dramatic,
[Wagner, Siegfried's Death and Funeral March, from 'Twilight of the Gods']( https://archive.org/details/100ClassicalMusicMasterpieces/1877+Wagner-+Siegfrie d's+Death+and+Funeral+March%3B+from+'Twilight+of+the+Gods'.mp3 "https://archive.org/details/100ClassicalMusicMasterpieces/1877+Wagner-+Siegfried's+Death+and+Funeral+March%3B+from+'Twilight+of+the+Gods'.mp3")
as long as the danube is blue
[J. Strauss II, The Blue Danube - Waltz]( https://archive.org/details/100ClassicalMusicMasterpieces/1867+J.+Strauss+II-+The+Blue+Danube+-+Waltz.mp3 "https://archive.org/details/100ClassicalMusicMasterpieces/1867+J.+Strauss+II-+The+Blue+Danube+-+Waltz.mp3")
anytime when it's morning you will hear this tune
[Grieg, Morning - from 'Peer Gynt']( https://archive.org/details/100ClassicalMusicMasterpieces/1876+Grieg-+Morning%2C+from +'Peer+Gynt'.mp3 "https://archive.org/details/100ClassicalMusicMasterpieces/1876+Grieg-+Morning%2C+from+'Peer+Gynt'.mp3")
cartoon characters usually fall immediatly asleep when they hear this tune,
[Brahms, Cradle Song]( https://archive.org/details/100ClassicalMusicMasterpieces/1868+Brahms-+Cradle+Song.mp3 "https://archive.org/details/100ClassicalMusicMasterpieces/1868+Brahms-+Cradle+Song.mp3")
one of my personal favorites and i had ths tune already in pioneer and some other games
[Smetana, The Moldau]( https://archive.org/details/100ClassicalMusicMasterpieces/1875+Smetana-+The+Moldau.mp3 "https://archive.org/details/100ClassicalMusicMasterpieces
/1875+Smetana-+The+Moldau.mp3")
finally another hit (really a hit if you guess how often this is used)
[Tchaikovsky, Piano Concerto No.1 in B flat minor - 1st movement (excerpt)]( https://archive.org/details/100ClassicalMusicMasterpieces/1875+Tchaikovsky-+Piano+Concerto+No.+1+in+B+flat+minor%2C+1st+movement+(excerpt).mp3 "https://archive.org/details/100ClassicalMusicMasterpieces/1875+Tchaikovsky-+Piano+Concerto+No.+1+in+B+flat+minor%2C+1st+movement+(excerpt).mp3")
there is more and more which fits from my ward well to pioneer
a strange issue (this is prob. only valid fro lmr models), when i zoom a ship out in the modelviewer until it vanishes and zoom back close to it i gain almst a doubling of the framerate in the modelviewer, i think that's strange, why don't i have this extra fps rightaway? sometimes it helps also to lower and retract the landing gear, when it's retracted the framerate will be higher as at start when it's even retracted, sometimes a switching from collision mesh view to rendered does the same.
(besides when you set "sync to refresh rate" in your graphics card setup the framerate will be always 60fps as long as it's higher as 60fps).
the only real good solution will be to release a build and you can compile the tard on your linux machine.
since i also have a low performance on my rotten old computer i tested what helps me most.
most helps the resolution, if i use a very low resolution of 640x480 the framerate is quite good no matter how high i set the details in the game
if planet detail distance is high it will ake a long time to render the terrain, but else it has no big influence on the performance
fractal detail influences performance equally as much as city detail level does, but it makes no sense to set a high fractal detail if the detail distance is low,
disabling shaders will boost the framerate at any resolution but looks shitty, it would be acceptable with special made models for this.
buildings without "base plates" and glowmaps must be raplaced with glowing materials where possible.
for my use a rather low resolution of 800x600 works fine if i run in fullscreen mode (a window will be quite small in this size)
under wine i expect that a low resolution and disabling shaders is unavoidable.
if i play it in my screens resolution (1680x1050) with enabled shaders i get a framerate < 10fps
if i use 640x480 as res., disable shaders and set all details to low it runs at ~80fps
I listen to Classical music a lot. This is a nice collection. Thank you! I have a rather large music collection. It was over 29 days of music. Just short of a month. Adding this collection put it over 30 days, so I can now say that I have a month's worth of music!
I just upgraded my operating system so I haven't played Phoenix for a couple of days. I still have to install WINE.
ok.
nonetheless
if you like to tinker with the new stuff i thought this might be helpful,
as i said i wrote a "couple" of helper functions and here is the exlanation to the new (and old) functions
a similar document i will write to explain the purpose and use of the sub-models i created.
**GERNOT'S LMR FUNCTION REFERENCE** ("basic functions" and some submodels to)
revision 1, 05-10-2017
valid for all functions:
if a function uses a variable such as "time" or "anmation position"
or needs to call a "ship state", it can only be used in the dynamic section of a model
(i.e. nav_lights).
functions with fixed values can be used in the static section (i.e. interpolate).
**math.clamp = function(v, min, max)**
(basic)
clamps "min." to "max." referring to "v"
example:
math.clamp( driver, 0.2, 0.7)
will clamp "driver" (animation position) from 0.2 to 0.7 and return 0.0 to 0.5
**cuboid(pos, size)**
(basic)
creates a cuboid starting at "pos" with the dimensions of "size"
example:
cuboid(v(0,0,0),v(2,0.5,1))
creates a cuboid starting at corner v(0,0,0) with the dimensions x=2, y=0.5, z=1
if you use negative values the cuboid will have a inverted surface
**joined_patch(p, edge, pts)**
(basic)
i'm not experienced with this function
**vlerp(t, v1, v2)**
(basic)
interpolates "vector1" with "vector2" by factor "t" (0.0 - 1.0), usually time or a animation pos.
with a fixed "t" you can interpolate vectors to create a new vector, e.g. "slide a vector on a plane".
example:
vlerp( 0.5, v(0,0,0), v(1,0,0)
will return v(0.5,0,0)
**lerp_materials(a, m1, m2)**
(basic)
interpolates two materials by factor "a" (0.0 - 1.0), usually time (but any "driver" is possible)
the same as vlerp only that it blends two materials by a factor
example:
set_material( 'material', lerp_materials( get_time(),
{0,0,0,.3, 0,0,0,0, 1.5,0,.5},
{0,0,0,.99, 0,0,0,0, .5,2.5,0}
))
**counter(spd)**
(gernot)
counts in steppings from 1 to 10, "spd" controls the stepping rate (speed)
if "spd" isn't set it defaults to seconds
**deg_to_rad(degree)**
(gernot)
converts degrees to radiants
the C function "deg2rad" was once disabled, that's why i replaced it wth this.
**mirx(vector), miry(vector), mirz(vector)**
(gernot)
mirrors input vectors x, y, or z
example:
mirx( v( 2.5, 0, 0 ) ) will return v( -2.5, 0, 0 )
useful in vector lists or otherwise to quickly mirror a vector
example:
vectors of a quad,
v0 = v( -0.5, -0.5, 0 )
v1 = mirx( v0 )
v2 = miry( v1 )
v3 = miry( v0 )
**interpolate(v1,v2)**
(gernot)
interpolates two vectors,
example:
interpolate( v( 2, 1, 3 ), v( 4, 2, 1 ) )
returns v( 3, 1.5, 2 )
vlerp( v( 0.5, v( 2, 1, 3 ), v( 4, 2, 1 ) ), does the same, nonetheless i use it sometimes
**nav_lights(size,red,green,coll1,coll2,steady)**
(gernot)
creates standard navigation lights, ths function is replaced by "pos_lights", but left for compatibility
they are both similar. "nav_lights" i don't use anymore.
size = size of the "light"
"red", "green", "coll1", "coll2", "steady", are the position vectors of the respective "light"
with this function you can specify all lights at once.
example:
nav_lights( 2, v( -10, 0, 0 ), v( 10, 0, 0, ), v( 0, 3, 10 ), v( 0, -1, -10 ), 1)
will produce a red navlight at pos v(-10,0,0), a green at v(10,0,0), a white at v(0,3,10)
and a white at v(0,-1,-10).
the last value is a boolean and if specified "coll2" won't be flashing to use as a headlight i.e.
if nothing is specified (returns "nil") then it's assumed it's flashing
**missile(index, position, v_right, v_up, scale, missile_pod)**
(gernot)
calls missile dummy-models to be playced on the ships, if a missile is fired the model will be removed.
index = index 1 to 8 (8 visible missiles, the max. is 16 but only 8 are shown)
position = position of the missile
v_right = horizontal orientation (to orient a missile)
v_up = vertical orientation (to decide if placed under or on top of the ship
also to place a missile upright if ever needed)
scale = this didn't scales the missile, it's ment to keep the missile scaled ordinally
and requests the final model scale, which is defined in the info section of a model.
missile_pod = boolean (any glyph or none), if true the missile will have a mounting else not.
example:
missile(1, v( 12, -3, 5 ), v( 1, 0, 0), v(0, -1, 0), model_scale, yes)
will place missile 1 (of 8) at v(12,-3,5) oriented forward v(1,0,0)
and rotated to be used under the ship v(0,-1,0), the scale is kept 1:1 with "model_scale"
and "yes" means i like o have a mounting for the missile
missiles and mountings will be reposiioned automatically if you specify a mounting
(top of the mounting will be your entered position, else it's he centre of the missile)
**translate(name,v1,v2,vx,vy,scale,delay,offset,input)**
(gernot)
translates a model for you, very useful because you don't have to mess with "math.clamp"
"vlerp" and the correctional values you need.
name = models name which is to translate
v1 = start vector (from)
v2 = end vector (to)
vx = horizontal orientation of the model
vy = vertical orientation of the model
scale = obviousely the scale of the model
delay = delay of "animation position" (0.0 - 1.0) when the animation has to start, i.e. 0.333
offset = offset of "anmation position" (0.0 - 1.0) when the animation has to end i.e. 0.666
input = the "driver" which is to use, if nothing is specied it deaults to "WHEEL_STATE".
example:
translate('piston1', v( 0, 0, 0 ), v( 0, -5, 0 ), v( 1, 0, 0 ), v( 0, 1, 0 ), 1, 0.0, 0.333)
will translate model "piston1" from v(0,0,0) to v(0,-5,0), with orientation "upright", scale 1
and clamp the animation from timepoint 0.0 to 0.333
driven by default "wheel_state" animation position.
**rot_gear(name,pos,v_x,v_y,scale,degr,v_rot,delay,offset,input)**
(gernot)
rotates a model for you, very useful because you don't have to mess with "math.clamp"
"vlerp" and the correctional values you need as well with "math.sin/cos" or "deg_to_rad",
you just enter the desired degrees to rotate in the given timespan.
name = models name which is to translate
pos = position of the model
v_x = horizontal orientation of the model
v_y = vertical orientation of the model
scale = obviousely the scale of the model
degr = degrees to rotate
v_rot = axis over which is to rotate positve values is clockwise rotation, negative is ccw.
delay = delay of "animation position" (0.0 - 1.0) when the animation has to start, i.e. 0.333
offset = offset of "anmation position" (0.0 - 1.0) when the animation has to end i.e. 0.666
input = the "driver" which is to use, if nothing is specied it deaults to "WHEEL_STATE".
example:
rot_gear('rig', v( 0, 0, 0 ), v(1, 0, 0 ), v( 0, 1, 0 ), 1.0, 90, v( 1, 0, 0) 0.333. 1.0)
rotates model "rig" at position v(0,0,0) , oriented "upright", size 1, with rotation 90°,
clockwise over x axis, start at 0.333, end at 1.0, driver is default (not specified).
all correctional values should be calculated proper, though you only have to position and orient the model proper.
**rot_clock(vector, fractions)**
(gernot)
returns rotation values to rotate a model stepped in whole seconds, i.e. for a clock.
with fractions you can lower or raise the speed if needed, if not specified SECONDS are assumed
example:
you have to use this in a models call,
local v_rot = rot_clock( v( 1, 0, 0 ), 60 )
call_model('clockhand_minute', v( 0, 0, 0 ), v( 1, 0, 0 ), v_rot, 1.0)
will rotate "clockhand_minute" over x axis in minutes stepping (stepped! not continously).
**selector(grp,offset)** (note this function has changed compared to my release)
(gernot)
random selector function, recently it uses the random materials as seed since the label has been removed from the ships preview
grp = group number of 4 groups
offset = randomize 1 to amount of offset, if not specified 1000 is assumed
example:
selector(2,8)
will use selector group 2 and randomize between 1 and 8
**squad_color()**
(gernot)
selects randomly 1 of 5 colors to use for decals, dresses or similar
self = this function needs no arguments
**autoscale_tex(size,offset,string_input)**
(gernot)
autoscales a text string though it will use only a given space disregarding (resp. regarding) the length of the string.
size = text scale, usually the same scale you use for a label if you use this for a ship,
else the scale which fits i.e. to the 7 letters of "Pioneer" to use the space you got for the label / text to create.
offset = the "default" string length, if you use 7 it will use exactly the space you need for 7 glyphs i.e. in "Pioneer",
if you raise this value it will clamp the scale to this amount of glyphs in the given scale.
example:
autoscale_text(4, 10, 'that's really cool')
will scale the string "that's really cool" as if it would be only 10 letters long in the size of 4.
that is really cool! 🙂
**legalname()**
(gernot)
generates a random shipname (have phun)
self = this function needs no arguments
example:
legalname()
returns i.e. following string "FUNNY SAUCER"
**get_material(matlist.name)**
(gernot)
selects a predefinied material by it's name from a table
name = material name (refere to "functions.lua" for the recent material names)
example:
get_material(matlist.steel)
will return "set_material('steel',.25,.28,.3,1,1,1.3,1.5,30,0,0,0)
NOTE:
don't forget to register the material in the models info section.
**ENGINE GLOW MATERIALS**
a set of engine glow materials
they all "turn off" if a ship is docked or landed rough, thus they may only be used dynamic
aglow()
returns a semitransarent engine glow material
bglow()
returns a solid engine glow material
engine glow materials which changes the color depending on the drivetype (common "sky blue" ,military "acid green")
teglow()
returns a semitransarent engine glow material
seglow()
returns a solid engine glow material
**poslights(typ,position,scale,lod)**
(gernot)
this is the new positionlights or navlights function, this function you have to use for each position seperate.
therefore it has greater flexbility as "nav_lights" and upscales the light in lower lod's thus it's still visible when the ship is far away.
typ = 'right', 'left', 'green', 'red', 'centre'
positon = position of the "poslight"
scale = size of he poslight
lod = lod, just enter "lod" if you call the function, it will take the recently used lod of the model it's used in to upscale the light.
it's not perfect but still better as if the navlights vanish already at lod 3.
example:
poslights('green',v( 24, 0, 5 ), 2, lod)
creates a green flashing position light at v(24,0,5) in scale 2 and uses the recent lod to upscale the light.
**stationstages()**
(gernot)
this function simply returns the two animation drivers needed for spacestations
get_animation_stage('DOCKING_BAY_#')
get_animation_position('DOCKING_BAY_#')
as
stage_bay#
pos_bay#
example:
to use in the dynamic section f a spacestation model, if called once you can use the variables in your models animation like,
local driver1
if stage_bay1 == 1 then
driver1 = pos_bay1
end
**stationlights = function(pos,size,color,model_scale)**
(gernot)
small function, many arguments,it does not much as only to position a light for you which else can be done as well
pos = position
size = size of light
color = color of light as vector (v(1,1,1) for white)
model_scale = final model scale from the models info section to keep the light in scale 1:1
example:
stationlights( v( 0, 0, 0 ), 40, v( 1, 0.8, 0 ), model_scale)
it starts all with a sketch
![]( "")
however
i can't decide which one looks better, two on top? on bottom? or four? (missile pylons or whatever it should be, "nose" if you like)
i started with this, two pylons on bottom
![]( "")
but then i felt it mybe looks better if they are placed on top, it will give the ship a face
and it has a face, but a funny one
![]( "")
next i thought "maybe t's best to use all four"
![]( "")
but neither i'm satisfied with this. recently by looking at all three pictures i decide for the first one which was my intention at start.
to me it looks most agressive, the second is to friendly and looks a bit like a frog and the third has stil this friendly appearance due to the pylons on top.
while it's not bad and the whole thing looks anyway like a submarine, thus the four pylons look like four torpedo pylons.
but who ever reads this is allowed to comment, i wonder what you guess which one looks better.
intentionally also i had the idea to make a promenade deck in the front mid section of the ship regardless that such will boost the polycount immense
wherefore i kept it the bezier shapes as low as possible, but if once textured you won't notice the bended quads, which are anyway always bended for a bezier shape
of course it gets smoother with more iterations but with so many bezier shapes you double and quadruple the polycount easy when you use more divisions.
of course it's o perfect, i can't pre-calculate such a curve, thus i have to work with a sketch and tweak the shape until i'm satisfied.
due to this it's also sectioned into three parts, it was ment to jin front and rear directly, this wil work for sure, but leaves a ugly seam,
thus i decided to "cover" the seam with a real seam, the mid section, it has a further advantage, i have now something planar where i can mount the landing gear.
as you can see by the front flaps, if i place the undecariage in a bezier shape i can't use rotating flaps, first i's exremly complicated to counter resp. prerotate the part to the
angle(s) or rotate and correct rotation in one process, if that is done the bowed flap will still look stupid when it opens, because it's then only joined at one point.
the "wrinkles" in the shapes are caused by this
![]( "")
could avoid this if i respect this manner, as you can see are the triangles in a bezier shape always in the same winding order which leads to the fact that 2 corners are always "wrong",
when the edge doesn't leads to the corner the quad will "flap in" and this produces heavy wrinkles especially if you use only one shape.
this could be avoided if i would split i.e. the engine covering which is made from a single shape, into four shapes and for two i had to change the starting point though
the edges will show to the other side, but apart from that this will use a couple of polygons more it will quadruple my effort to make one shape.
also it will leave a small seam between the sections.
(nachtrag)
also i haven't found out how to normalize such like Tom did for his "sirius interdictor", this is something i missed to aks him and neither the bezier shapes and
especially the ":normalize()" or "unitv" (instead "v") function is explained
when i tried to use them the result was never what i expected (i even didn't know exactly what to expect).
and only by looking at the "interdictor" or "ladybird" i can't figure this out right.
these aren't the only "hidden" functions, some have ben never explained in the LMR reference, that's sad
FEIERABEND (closing time)
![]( "")
Petra just flew to M. Gorbachev. It's an interesting station, a good ELITE substitute. I noticed that it's small and rotating fast. Have you worked out the gravity math for it? It looks right. I found the radio advertisements annoying during the flight. I like them, but I think they should only be played while the player is docked. It would add a department store ambiance to the stations.
no i haven't worked out the math for it, i lked to and was close about to...
(that's why i posted the picture of the spacestation sketch)
but then i recognized that i have no idea if the the value for the angular velocity is reliable in pioneer, i think so
second it's quite hard to find this formula for angular velocity to centrifugal force, usually it's needed in medicinal technics to calculate the virtual gravity for a centrifuge
but there is the question "how many rpm do i need for 1G" and not the angular velocity.
for this use you find calculators in the web: enter radius, rpm or desired G - receive G's or rpm
thus i simply asumed that a small (relativey, it's quite bigger as hoop and offers space for a max of 4 bays) station will rotate quite faster as a big wheel to reach 1G at the outer radius.
besides i have problem ith the animation and a sation stays occupied or you can't dock even if you have permission if one bay is occupied.
i have to find this error first.
yep, the adverises could be limited to be selected donly when docked
probably when you reach a city with a micro spaceport the game will hang, i recognized that i missed to change the name for a submodel
and the one it calls now is reserved for ships, but probably this isn't relevant this change is new.
if that's the case nonetheless (to test this, "lunar city" on moon will have such a small spaceport),
the change would be in "singleort.lua" to rename the call for the model "scanner" to "scanner_sub".
meanwhile i worked on my models and added for many a cockpit
also i disregarded my own rule not to use wavefront objects and used my wavefront pilots instead of the scripted one, a new scripted version must be made first.it won't have a gender maybe neither a head just a helmet - i will see, it will be as simple as possible for this small object.
further i scripted a handful of functions to use in the models script resp. to make it a little more comfortable.
the reason was, first i needed repetively useable objects for my cockpits
because the cockpits are locally lit, if you load a model it won't receive the local light only a geomery in a actual function (model) will receive the local lighting
second i liked to scale the objects in all extensions seperately and this isn't possible with a model
third i liked to get experienced and still need more experience for a texture mapper function
the recent tiles are mapped a texture from a given projection plane and scale and position the texture according to the dimensions and the position of the tile.
thus the texture will always fit no matter what dimension or position (it still has errors, that's hard to calculate).
with the results from this mappings of my various tiles i should be able to create such a texture mapper, the calculation is always the same
the rule changes a for each plane that's what makes it so complicated, but if you draw two cubes and imagne that you rotate and translate the mesh
on the texture and not vice versa you get it why this has to change and how it changes, still it's a mindfucker
3 dimensions
however i completed a new ship
we need definately another unuseable ship, that's why i made the "Shuttle", i's the most ugly ship in the whole galaxy.
it's designed only by purpose and this is to carry goods or people from A to B, a Shuttle, like the name tells.
it has the weakest thrust in the game, but makes as first of my ships use of the difference from capacity to cargo
you can have much more capacity as cargo, this allows you to mount in a ship more tons for cabins as you can carry cargo tons
while it still leaves some cargo for equipment and fuel, the shuttle makes use of this and has incredible 16 cabins capacity but only 50 tons of cargo load.
you can see the cabins (almost) they are rather small and certainly uncomfortable.
it's not ment to have a hyperdrive, but i guess it can be mounted (if not i will enable it), anyway it comes without drive and costs "nothing".
when you mounted all 16 cabins you still have 10 tons for cargo left
in general my ships are weaker and recently i changed the calculation for the trust from the use of "tara" to "brutto", however i feel i can keep them
in ths way closer to a almost realistic value. empty the ships will have a quite good thrust but aship will never be empty
transporters with a high capacity must be kept very low when fully ladden else the are faster as a fighter when near to empty.
however i decide i always have to keep a eye on how it will be in the other state, tara or brutto.
but this could also mean i have to change certain scripts because the medium endurance for a mission will be longer with less powerful ships
also you will use much more fuel with a low specified engine.
the "flying breadbox" if i look at the shape of the ship now
a space cookie box?
it makes use of most new created functions (tiles)
![]( "")
and marcels "big screen" which hasn't to be so big
a view inside the "Badger"
![]( "")
and finally if you are "bored of the repetive cargo runs"
you can go to the arcade hall
![]( "")
and play a classic space shooter
of course the tiles make most sense in a locally lit area/room
but since they are free scalable in all dimensions one can use them anywhere
the windows as example are "hooked" on the lower left corner if they face +z/-z, that's to take a near vector as base for the window position
the side facing version +x/-x orientet, is "hooked" even on the lower left corner to be used in a simple way with a for loop if one likes to place them repetively on a building i.e.
the top facing y oriented version is "hooked" in middle ofthe geometry, which makes most sense for this rare use
the "inlet_quad" function works in the same manner, a botom or top inlet you will position referring t the centre of x and z
while a side or frontfacing geometry is best centered at a side to refere to a vector close to the desired position, if the side turns and the position is wrong you simply can add/substract it's own length/width
the functions work a little uncommon compared to a model call, they will receive position vector and a orientation vector
but this orientation vector is very simple and rotations aren't possible, it determines only on which side a geometry has to face
if a value is wrong or empty the function will simply fail or show the wrong state because maybe "1" at "x" is present - mostly,
with exception of the texture and zbias values which can be left away
there are even exceptional unlogical behaves because "v_orient" i used i different manner for the tiles
i.e. the free texturable "inlet_cube" won't flip the plane with the orientation vector, in this case it's used to rotate the texture by 90° to cover this case
if the geometry has to be flipped it has to be done with the dimensions, the gometry is a cuboid function and works exactly in this manner.
the proper normals for the cutout are determined by z if it's + or -
besides this is another exceptional rule for the tiles, the dimensions are always as if it would be facing to you, this means z stays z no matter how the tile is oriented
also the tiles have a given basic dimension by the ment use of them, i.e. a window or inlet is z always 1/10, it makes sense for this shape.
computer, console and locker are also in a useful size and only have to be "shaped".
recent state of the ships which have a cockpit now
![]( "")
----
the only help i see for the erformance issue you have under wine to use a linux build
the source or alpha31 is still available
another possibility is as long as i don't work on the source to simply take a old alpha 31 linux build,
i haven't found any old releases in the web, but maybe someone can help you out.
I was running Phoenix by right clicking on the exe and selecting run with WINE. I set it up with PlayOnLinux and got 9fps on Earth and 61fps in space.
I have a bug report. Petra flew to Galileo but couldn't dock. She had permission to dock at bay 2 but no matter what speed or whether the landing gear was up or down there was no collision detection and she flew right through. I could see another ship in the station as she went through. I wonder if the code doesn't work if there's one ship in a station that can accommodate two.
yes i wrote that the sacestatin animation doesn't works roper, this is the error you encountered, as soon as bay one is occupied the station is locked, i have t solve this
othrwise "petra" may trash the orbital station script and reactivate the old stations, big crappy and the rest, they are just deactivated and marked as longcomment (--[[
]]--)
i feel sooo good today
i blasted my first ship from the sky since long
and i guess it's caused by the lower shipspecs, it wasn't even that hard.
i liked to make a travel to betelgeuze and on the way a rotten pirate has picked up my trail thus i had to fight him, he won't leave that bastard.
but i made it, thus i can say "hey it's possible" but i really guess it's caused by the balanced relatively low thrusts
it never was that easy when i tried it before.
i like that ship, it brought me my first victory 🙂
i lost my scanner and got some scratches on the hull but i won.
n future the calculaton for artificial gravity won't be a problem
i found on "atomic rocket" a "spin calculator" which does the job and you can enter as units rad/sec what i assume is the angular speed in pioneer for stations.
[SpinCalc]( http://www.artificial-gravity.com/sw/SpinCalc/SpinCalc.htm "artificial-gravity.com/sw/SpinCalc/SpinCalc.htm")
this will be my last update for a month or so, i still didn't changed anything in the code of the alpha31 i use.
in the near future i will work for FFED3D again, else i make no progress there.
it's contains mostly the same stuff as in my last upload
foremost i fixed the broken spacestation animation, which means the docking procedure works now correctly, but the animation is contemporary disabled, important is that the procedure works proper.
it contains further some changes in the skins for tom's original ships
(the ladybird is therefore a bit deranged, recently i have problems to run glxtractor and due to the unscaled and unpositioned submodels when you dump a model with the modelviewer the dumps are useless to get the proper scale and position for the submodels, it's tedious to rescale and reposition them according to the script, which shows off as a error in the skin i made for the ladybird)
of course it contains the updated cockpits i presented already
and a more balanced thrust for the ships which finally brought me my first victory since alpha9.
[**Phoenix0.0.3_Pioneer31.7z**]( https://www.dropbox.com/s/pfv4rdaahm7deka/Phoenix0.0.3_Pioneer31.7z?dl=0 "https://dropbox.com/s/pfv4rdaahm7deka/Phoenix0.0.3_Pioneer31.7z?dl=0")
kills 1!
i hope i can repeat this and make a clip of the not to hard dogfight.
it will be lame due to my old machine, but clips of a successful fight are rare.
Excellent! Because I couldn't dock, I had stopped playing.
Thanks for this Gernot! 🙂
Hi hi hi, my little droogies >:)
Recently i'm hospitalized, means i broke both feet
And i try hard to manage to leave a message using my phone, horrible.
I would liketopost you a picture how that looks like, but it didn't works AS expected .
However
Thats not the only thing which worries me
I will stay hospitalized for Quite a while, cause of a "smokers leg"
Means i only got 50% of blood in my left leg.
But else i'm find.
Unfortunately i even lost my free webaccess, i write this comment AS i said Form my phonevand recently i Gould kill who eher invented autocompletr, its acstupid shit.
Turns could gould, stupid Maschine.
Posting a pic won't York at all... work not York you piece a junk.. Yet
At least you know what i'm up to.
Oh Gernot! I am so sorry to hear your in hospital! :/ I hope you make a quick recovery. For now though, relax and the doctors will help you. I also hope you can read this message ok? I know what trying to use a phone for text is like Gernot, I am hopeless with them too. Get well soon you ship model Meister you!
8 Weeks i'm tied to 4 wheels
Of course i do my worst to get well soon
But every medal has two sides, i can finish reading Alexander Humboldts biography (sorta, it's a story based on his and the life of c.f. gauss). Yo Google for these two brillant heads. I'm sure
I will have time for many books to read.
I ordered already Starship troopers, i have to read it. Brave New world, is on the wishlist AS well. Blocked by stupid religious remnants in my brain i missed Huxley