So, does anybody have any pointers about getting started?
Tutorial section of forums and videos, and perhaps some geometry.
What am i looking for with my centers of mass, thrust, and lift?
Thruster must face towards center of mass (if you don't want to use it to rotate craft), so for forward-facing engines usually center of thrust is directly behind center of mass.
Center of lift is where wing's forces are applied, it moves while you fly.
Usually wing pulls airplane up, so in cruise CoL is near CoM, but such airplane won't decrease pitchrate naturally.
At high AoA both lift and drag are higher, so if CoL is in front of CoM it'll pull airplane's nose back and upwards, increasing AoA even further, which will eventually lead to stall or uncontrollable spin.
If CoL is behind CoM, it will pull tail away from direction of flight, so airplane will be pretty stable, but if CoL will be too far from CoM you won't be able to control it.
In real life getting center of lift is not that easy, so usually it's recommended to get center of mass around quarter-chord behind midpoint of leading edge.
How do i make a slick or at least cohesive fuselage? I see some incredible stuff on here and want to leave my own work on the table.
I can't really say much about it. Fuselage is 28-sided (circular ones are 24-sided), in newer versions you can "slice" specific part from it with four planes. Greater ones are using hollow fuselages as plating (e.g. screenshot from this post), but it will require either a lot of time or geometry knowledge and calculator to align them properly.
Also, what the heck do upvotes do? And do i spend points to give them?
They do nothing but they're used in rating, both for crafts and users. You don't need anything to give one.
Stick here.
It's still good if you need abstract stuff.
From abstract stuff strong-willed ones build sub-assemblies and game itself.
From abstract stuff weak-minded ones build flying tic-tac and Andrew's face.
Well, i don't really understand how to get that index. It appears to be related to time (or rather number of crafts uploaded), last uploaded one (X0Zk6W) uses 1289, 0BFd5E from two days ago uses 1288, Maxwell from 8 months ago uses 1185.
Knowing that you can use brute force to try all possible indexes (looks like there's no rate limit) but it takes a lot of time and i feel bad about it.
async function get(airplane_id,minIndex,maxIndex){
lnk="https://jundroo.blob.core.windows.net/simpleplanes/GameData/aircraft/_I_/"+airplane_id+".xml"
if(minIndex===undefined){minIndex=0}
if(maxIndex===undefined){maxIndex=2048}
var res=-1
async function tryLoad(i){
try{
await fetch(lnk.replace("_I_",i.toString()))
.then((resp)=>{if(resp["status"]==200){res=i}})
}catch(err){return}
}
for(i=minIndex;i<=maxIndex;++i){
await tryLoad(i)
if(res!=-1){return res}
}
}
The last part (cGGD1h) is obviously aircraft id, but i don't understand what 728 means here and just letting it as-is doesn't works.
So to use it you need id of craft (which is not a thing everyone memorizes) and some number of unknown purpose (which might be id of archive or folder stored internally just for faster indexing).
So yes, "jundroo forgot to delete aircraft files" sounds cool but doesn't really sounds useful for now. (for crafts that were not deleted there's standard api, https://www.simpleplanes.com/Client/DownloadAircraft?a=ID)
@FlyingPotato_131 Thanks for reminding about it, but no.
It was generated 2.2 years ago and became legacy 2 or 3 months after. Just use labels if you need.
smooth(sign((input-current)+rate(input-current)*D),
P*abs((input-current)+rate(input-current)*D))
SP forum doesn't displays full line, so it's split with linefeed.
It's a form of PID, P is gain, D is dampener
It's always clamped between -1 and 1, and will perhaps be 1 at the level start.
It's generally not proportional to input and it's not suitable for rockets|TVC, but it works fine with control surfaces.
For high-speed airplanes, don't forget that airplane's behaviour changes with airspeed.
Try to increase D gain of PID to make it work correctly at some specific speed
Then add /max(1,pow(IAS/X,2)) to the end of code, X here is speed at which it works correctly (in meters per second).
@Skykid028 I do not have android device.
About colors, i got one more similar message recently and i noticed that result from different user is slightly different, but at the moment i don't know why is it different and how to fix it.
For your specific case i can suggest to increase number of bits per color if possible, although i doubt it is the problem.
min(90,max(10+atan(TAS/(2*pi*PROP_RADIUS*0.5*PROP_RPM*60)),0))/90 will perhaps work
PROP_RADIUS is in meters, not blocks.
So, you calculate velocity at the middle of blade, add velocity of airplane relative to air, calculate angle between result and propeller plane, and add 10 degrees.
@Johnnyynf Because of colliders?
Colliders are convex even for hollow fuselages, so i don't think they will make gear collide like actual one, it will rather work like cylinder or cone.
@jamesPLANESii
I think there's still things that act on specific part, not body, like collisions and bullets.
For entire body you can't remove internal faces, because body can be changed, e.g. one part can reveal other one when destroyed. But if some object is single part, you can make sure that it's meshes will never be changed, so you can remove all internal faces by the time you load part specifications.
You can use control bases to make specific parts bend in specific places, and i bet actual soft-body part will lag five times more than entire build without it.
You do not need to account for altitude if you're using IAS. IAS is instrumental airspeed, for SP IAS equal to speed*exp(Altitude/-7640) iirc.
Last piece of code corrected a bit: floor(smooth(max(0,Is LG experiencing the maximum design force?), (Current Drag Force experienced by LG)/(impulse to break LG)))
(separated by linefeed because comment field doesn't let see it if it's on single line)
You need to clamp first part of smooth (since it's boolean) so it won't go below zero and won't ruin your timing. And then, since smooth won't go below 0, floor(something) will do same thing as clamp01(something)>=1
You don't really need to make airplane unstable to make it maneuverable.
High AoA won't increase maximum GForce (in general situation with dumb AI it will rather decrease it) and won't help you to evade gunfire, it can only help you to point your guns faster (to some extent, and with aerodynamic control only it will rather be dash than continuous increase in turnrate) at the cost of speed (which is life) and glide ratio (which is what wing built for).
So if you need to increase GForce i recommend to increase wing area and then move CoM so that angle of attack during turn will be just a bit below stall (13deg for symmetric wing, 16deg for semi-symmetric, 28deg for flat-bottom).
For "part" in general you can make light work always and attach sort of shutter to part you're interested in.
So if part will be destroyed shutter will fall off and reveal light.
Almost 1.5 years after update, someone actually used it for tracks.
Low quality is not a problem, you can use actual texture if you wish (SPRASTER) and perhaps you can change colors for weared pads, dust etc.
F22 is forever? Doesn't wastes savings? Perhaps you don't know how hard is fighter jet maintenance, but hey, you must at least remember that F22's "cosmetics" is tons of stealth coating?
I think body lift on F35 will suck. It will of course increase lift but i think it won't increase glide ratio, and thus won't increase maximum acceleration at given thrust.
Different F35, same problems. Perhaps it's a bad idea to combine bomber, stealth and quadcopter in single airframe?
Anyway, please tag me when you'll finish it.
AFAIK there's no way to get RWR in the game, but mention me please if you'll ever get one.
+2Don't worry, being stupid isn't something special nowadays.
Reshade is perhaps what you meant, but it have nothing to do with Jundroo.
Tutorial section of forums and videos, and perhaps some geometry.
Thruster must face towards center of mass (if you don't want to use it to rotate craft), so for forward-facing engines usually center of thrust is directly behind center of mass.
Center of lift is where wing's forces are applied, it moves while you fly.
Usually wing pulls airplane up, so in cruise CoL is near CoM, but such airplane won't decrease pitchrate naturally.
At high AoA both lift and drag are higher, so if CoL is in front of CoM it'll pull airplane's nose back and upwards, increasing AoA even further, which will eventually lead to stall or uncontrollable spin.
If CoL is behind CoM, it will pull tail away from direction of flight, so airplane will be pretty stable, but if CoL will be too far from CoM you won't be able to control it.
In real life getting center of lift is not that easy, so usually it's recommended to get center of mass around quarter-chord behind midpoint of leading edge.
I can't really say much about it. Fuselage is 28-sided (circular ones are 24-sided), in newer versions you can "slice" specific part from it with four planes. Greater ones are using hollow fuselages as plating (e.g. screenshot from this post), but it will require either a lot of time or geometry knowledge and calculator to align them properly.
They do nothing but they're used in rating, both for crafts and users. You don't need anything to give one.
+1Stick here.
It's still good if you need abstract stuff.
From abstract stuff strong-willed ones build sub-assemblies and game itself.
From abstract stuff weak-minded ones build flying tic-tac and Andrew's face.
Camera must not be attached to thing rotated by rotator.
ammo("Weapon Name")
("
here is " )See comment here for fly-by-wire, i don't want to repeat it here.
"going away from target" is literally
rate(TargetDistance)>0
, is it what you need?Well, it sucks.
Knowing two of three inputs and HMAC, can we try to guess hash function and key they're using?
+1Well, i don't really understand how to get that index. It appears to be related to time (or rather number of crafts uploaded), last uploaded one (X0Zk6W) uses 1289, 0BFd5E from two days ago uses 1288, Maxwell from 8 months ago uses 1185.
Knowing that you can use brute force to try all possible indexes (looks like there's no rate limit) but it takes a lot of time and i feel bad about it.
async function get(airplane_id,minIndex,maxIndex){
lnk="https://jundroo.blob.core.windows.net/simpleplanes/GameData/aircraft/_I_/"+airplane_id+".xml"
if(minIndex===undefined){minIndex=0}
if(maxIndex===undefined){maxIndex=2048}
var res=-1
async function tryLoad(i){
try{
await fetch(lnk.replace("_I_",i.toString()))
.then((resp)=>{if(resp["status"]==200){res=i}})
}catch(err){return}
}
for(i=minIndex;i<=maxIndex;++i){
await tryLoad(i)
if(res!=-1){return res}
}
}
The last part (
cGGD1h
) is obviously aircraft id, but i don't understand what728
means here and just letting it as-is doesn't works.So to use it you need id of craft (which is not a thing everyone memorizes) and some number of unknown purpose (which might be id of archive or folder stored internally just for faster indexing).
So yes, "jundroo forgot to delete aircraft files" sounds cool but doesn't really sounds useful for now. (for crafts that were not deleted there's standard api,
https://www.simpleplanes.com/Client/DownloadAircraft?a=ID
)@FlyingPotato_131 Thanks for reminding about it, but no.
It was generated 2.2 years ago and became legacy 2 or 3 months after. Just use labels if you need.
Do something with your text, it takes too much time to read it with all those effects.
Oh, so it can write a switch statement in python, so what?
@BotFinder2023 Boy, do you really think others are held together by magic?
+1smooth(sign((input-current)+rate(input-current)*D),
P*abs((input-current)+rate(input-current)*D))
SP forum doesn't displays full line, so it's split with linefeed.
It's a form of PID,
P
is gain,D
is dampenerIt's always clamped between -1 and 1, and will perhaps be 1 at the level start.
It's generally not proportional to input and it's not suitable for rockets|TVC, but it works fine with control surfaces.
For high-speed airplanes, don't forget that airplane's behaviour changes with airspeed.
Try to increase D gain of PID to make it work correctly at some specific speed
Then add
/max(1,pow(IAS/X,2))
to the end of code,X
here is speed at which it works correctly (in meters per second).Welcome back, sensei!
@Skykid028 I do not have android device.
+1About colors, i got one more similar message recently and i noticed that result from different user is slightly different, but at the moment i don't know why is it different and how to fix it.
For your specific case i can suggest to increase number of bits per color if possible, although i doubt it is the problem.
@DJW730 AG1&TargetSelected
@StonedOutBurger Some people say it does but i didn't tested it myself.
Epic fail.
+1Try to ask in FTLab, they had a channel for pre-made codes.
you say while continuing to complain.
Did someone report about it? Is it possible to fix without tearing engine apart?
Rocket.
Labels, it will always be more customizable than any grid.
"S" on image is concealed in cloud, so looks like text says "TARFIGHTER", not "STARFIGHTER".
@piglincheerful To clarify, are you a bot?
+1What's up with that link you attached to the end of your comment?
There's always a way to ruin tech, but can you make the tech better?
+1@32 Just designer and it's not that close to release, more like pre-alpha.
+1Autocorrect preferring collar over collab? Hey, that's pretty interesting!
+1How did you even teach it?
@U2
To store value select address (buttons a0...a7), select value (buttons 0...7), enable wrt button, switch clk button.
To read value select address (buttons a0...a7), disable wrt button, switch clk button.
There's two pages from author on renderdock, perhaps there's more info than you found on old blueprint.
+2link1 link2
EA6B (electronic warfare) with chaos rat camo.
+1min(90,max(10+atan(TAS/(2*pi*PROP_RADIUS*0.5*PROP_RPM*60)),0))/90
will perhaps workPROP_RADIUS is in meters, not blocks.
So, you calculate velocity at the middle of blade, add velocity of airplane relative to air, calculate angle between result and propeller plane, and add 10 degrees.
You can try to use button with interactionType=Toggle and some activation group for actual weapons.
+1@Johnnyynf Because of colliders?
Colliders are convex even for hollow fuselages, so i don't think they will make gear collide like actual one, it will rather work like cylinder or cone.
I mean control base can act as a spring both for position and rotation, and with some tweaking you can make it bend just as much as you need.
+2@jamesPLANESii
I think there's still things that act on specific part, not body, like collisions and bullets.
For entire body you can't remove internal faces, because body can be changed, e.g. one part can reveal other one when destroyed. But if some object is single part, you can make sure that it's meshes will never be changed, so you can remove all internal faces by the time you load part specifications.
You can use control bases to make specific parts bend in specific places, and i bet actual soft-body part will lag five times more than entire build without it.
+1@TheFlightGuySP AFAIK bending wings and rotators is a bug of game engine, not feature of a game.
+1You do not need to account for altitude if you're using IAS. IAS is instrumental airspeed, for SP IAS equal to
speed*exp(Altitude/-7640)
iirc.Last piece of code corrected a bit:
floor(smooth(max(0,Is LG experiencing the maximum design force?),
(Current Drag Force experienced by LG)/(impulse to break LG)))
(separated by linefeed because comment field doesn't let see it if it's on single line)
You need to clamp first part of smooth (since it's boolean) so it won't go below zero and won't ruin your timing. And then, since smooth won't go below 0,
floor(something)
will do same thing asclamp01(something)>=1
You don't really need to make airplane unstable to make it maneuverable.
+1High AoA won't increase maximum GForce (in general situation with dumb AI it will rather decrease it) and won't help you to evade gunfire, it can only help you to point your guns faster (to some extent, and with aerodynamic control only it will rather be dash than continuous increase in turnrate) at the cost of speed (which is life) and glide ratio (which is what wing built for).
So if you need to increase GForce i recommend to increase wing area and then move CoM so that angle of attack during turn will be just a bit below stall (13deg for symmetric wing, 16deg for semi-symmetric, 28deg for flat-bottom).
For "part" in general you can make light work always and attach sort of shutter to part you're interested in.
+2So if part will be destroyed shutter will fall off and reveal light.
R.I.P.
+1Almost 1.5 years after update, someone actually used it for tracks.
Low quality is not a problem, you can use actual texture if you wish (SPRASTER) and perhaps you can change colors for weared pads, dust etc.
F22 is forever? Doesn't wastes savings? Perhaps you don't know how hard is fighter jet maintenance, but hey, you must at least remember that F22's "cosmetics" is tons of stealth coating?
+1Snowstone doesn't have any naval vehicles at the moment, right?
@DEADSHOT15 ... And all this is rendered on your 2d screen, which is old and boring...
+7I rebuilt it with vertical bars to make actually wireframe.
+2I think body lift on F35 will suck. It will of course increase lift but i think it won't increase glide ratio, and thus won't increase maximum acceleration at given thrust.
Different F35, same problems. Perhaps it's a bad idea to combine bomber, stealth and quadcopter in single airframe?
Anyway, please tag me when you'll finish it.
My entry.