The stupid aircraft need help...

The stupid aircraft need help...

Requests for features in the spring code.

Moderator: Moderators

User avatar
Fanger
Expand & Exterminate Developer
Posts: 1509
Joined: 22 Nov 2005, 22:58

The stupid aircraft need help...

Post by Fanger »

The aircraft code needs a major overhaul aircraft are currently fubared in a lot of ways. We have no control over them nearly whatso ever and no development has been done to rectify this.

We need some better way to determine the flight pattern of an aicraft, whether it uses a standard, vtol, bomber.. what have you..

we need a way to specify how it attacks, whether it overflys the target, whether it turns, loops, what not..

we need a way to specify aircraft to move in a formation and not bunch up like morons and much better response from the aircraft..

we need a way to accurately determine how many bombs a bomb weapon drops, the rate at which it drops them and how far away from the target point it starts dropping them..

we need the bomber target/flight manner rehauled to not be its own weird thing that is buggy and functions poorly, if you dont believe this try fpsing a bomber and watch the hilarity ensue..

we need the aircraft getting wierded out if they are too far from an airpad and run out of fuel and just land instead of returning..

we need the aircraft activate/deactivate states standardized for the gunship class so it doesnt mess up when you order it to move before it fully lands and then any scripting related to activate deactive fails to fire causing graphical glitching..

we need more control over flight height and speed and some other options that are available but not documented at all well.

Im sure I could continue to list problems with aircraft but this is all I got off the top of my head now..
User avatar
Peet
Malcontent
Posts: 4384
Joined: 27 Feb 2006, 22:04

Post by Peet »

And seaplanes dont land in the water >_<
User avatar
Strategia
Posts: 575
Joined: 06 Apr 2006, 18:32

Post by Strategia »

All of the above: +1.
User avatar
PauloMorfeo
Posts: 2004
Joined: 15 Dec 2004, 20:53

Post by PauloMorfeo »

It seems you are not using in EE some of these new tags for planes that could help defining the behaviour of planes as you want them:

Code: Select all

	
	WingDrag=0.07; //drag caused by wings
	WingAngle=0.08; //angle between front and the wing plane
	Drag=0.005; //how fast the aircraft loses speed (see also below)
	FrontToSpeed=0.1; //fudge factor for lining up speed and front of plane
	SpeedToFront=0.07; //fudge factor for lining up speed and front of plane
	MyGravity=0.4; //planes are slower than real airplanes so lower gravity to compensate

	MaxBank=0.8; //max roll
	MaxPitch=0.45; //max pitch this plane tries to keep
	TurnRadius=500; //hint to the ai about how large turn radius this plane needs

	MaxAileron=0.015; //turn speed around roll axis
	MaxElevator=0.01; //turn speed around pitch axis
	MaxRudder=0.004; //turn speed around yaw axis
Just don't ask me what they do cause i have no idea... I have no idea what "drag" means, what roll means, what yaw means, etc, etc, etc, etc.

And i just found out yesterday that, if you have a plane that is not gunship in behaviour, it will load acceleration from the tag "MaxAcc" and will override any acceleration you had previously defined with "Acceleration".
User avatar
NOiZE
Balanced Annihilation Developer
Posts: 3984
Joined: 28 Apr 2005, 19:29

Post by NOiZE »

P3374H wrote:And seaplanes dont land in the water >_<
i would love that being fixed...
Kloot
Spring Developer
Posts: 1867
Joined: 08 Oct 2006, 16:58

Post by Kloot »

You mean like this? :)

(Can't get them to land on the ocean floor, though.)
User avatar
NOiZE
Balanced Annihilation Developer
Posts: 3984
Joined: 28 Apr 2005, 19:29

Post by NOiZE »

Kloot wrote:You mean like this? :)

(Can't get them to land on the ocean floor, though.)
that's better then now, but they should land on the oceanfloor.
User avatar
Strategia
Posts: 575
Joined: 06 Apr 2006, 18:32

Post by Strategia »

NOiZE wrote:
Kloot wrote:You mean like this? :)

(Can't get them to land on the ocean floor, though.)
that's better then now, but they should land on the oceanfloor.
No, they shouldn't. Well, in all fairness, the ability to mod both (i.e. surface and ocean floor) would be the best, but IMO that pic is the best alternative. After all, real-world seaplanes land on the surface of the water too, right? And despite cool sci-fi submaplanes, a plane that floats on the surface of the water would be a lot easier engineering-wise than a submaplane. From this article:
Following a particularly depressing scene, the main character, a robot boy, casts himself into the sea in the middle of what was once Manhattan. Fortunately, a robot friend is watching and pilots a helicopter which miraculously turns into a submarine and dives under the water to rescue the robot boy.

Needless to say, design parameters for helicopters are almost complete opposites of design parameters for submarines. Helicopters require light-weight construction to be able to fly. Subs need heavy-weight construction to sink and resist pressure. Helicopters rise using complex aerodynamic principles, while subs rise primarily using Archimedes' principle. Helicopters use air-breathing engines. Subs use electric motors. Subs must resist extreme external pressure differentials├óÔé¼ÔÇØat least 10 atmospheres greater than the pressure inside (generally more)├óÔé¼ÔÇØwhile helicopters must withstand only modest internal pressure differentials├óÔé¼ÔÇØless than 1 atmosphere greater than the external pressure├óÔé¼ÔÇØif any pressure differential at all.

The difference between internal and external pressure differentials is a major design issue in itself. Soda pop bottles can resist around 5 atmospheres of internal pressure differential. Yet, an empty soda bottle can be crushed with light external finger pressure thanks to a nasty little detail called elastic instability. It takes far more wall thickness and/or material strength to protect against an external pressure differential than the same internal pressure differential.

In theory, a mechanism could be designed to equalize pressure on both sides of a sub's walls by altering the internal air pressure as the sub changed depths. Since a sub can go up and down rapidly, this would require a large air supply with high flow rates. When the sub ascended, it would have to expel large quantities of air. People in the sub would also have to remember to exhale or risk having their lungs pop from overpressure. Such a system would add complexity and safety problems without any real weight advantage.

We could go on at length, but suffice it to say that designing a dual-purpose helicopter/submarine would be an engineering nightmare and is not likely to happen anytime in the foreseeable future.
And yes, I know it's about helicopters, but a lot of the design issues mentioned here also apply to planes.
User avatar
LordMatt
Posts: 3393
Joined: 15 May 2005, 04:26

Post by LordMatt »

ILMTitian has a patch waiting in mantis to fix some of the aircraft issues.
User avatar
Fanger
Expand & Exterminate Developer
Posts: 1509
Joined: 22 Nov 2005, 22:58

Post by Fanger »

It seems you are not using in EE some of these new tags for planes that could help defining the behaviour of planes as you want them:
Code:

WingDrag=0.07; //drag caused by wings
WingAngle=0.08; //angle between front and the wing plane
Drag=0.005; //how fast the aircraft loses speed (see also below)
FrontToSpeed=0.1; //fudge factor for lining up speed and front of plane
SpeedToFront=0.07; //fudge factor for lining up speed and front of plane
MyGravity=0.4; //planes are slower than real airplanes so lower gravity to compensate

MaxBank=0.8; //max roll
MaxPitch=0.45; //max pitch this plane tries to keep
TurnRadius=500; //hint to the ai about how large turn radius this plane needs

MaxAileron=0.015; //turn speed around roll axis
MaxElevator=0.01; //turn speed around pitch axis
MaxRudder=0.004; //turn speed around yaw axis


Just don't ask me what they do cause i have no idea... I have no idea what "drag" means, what roll means, what yaw means, etc, etc, etc, etc.
Exactly, you dont know what it means, I dont know what it means, SJ added as a side note in one patch, I have no idea specifically how that stuff affects aicraft movement in game terms. That and it only applies to regular flight aircraft..

As anyone who has modded spring knows there are 3 flight types for aircraft..

Regular in which the aircaft takes off vertically and lands vertically but otherwise flies around in a normal fashion, an example of this is the freedom fighter aircraft in any OTA mod.. These are the only aircraft affected by the tags you have mentioned, however they dont work with fuel tags because they cant seem to figure out how to land, hence why I dont use them in EE..

Bomber in which the aircraft seems to exhibit all the properties of the regular flight type but is not quite as correct, bombers have no problems with landing to refuel and with landing in general, but do have general flying and navigating functions. This is best noticed when FPSing a bomber as compared to a freedom fighter or other regular movement aircraft the response is much different an its not just a matter of different speed values/turnrates. I am also not sure bombers are affected by the above mentioned tags because they seem to utilize a different move method the minute you make them a bomber.

Gunshipin which the aircraft acts like the brawler we all know and love. This movement is not affected by those tags, but has no problems with fuel it does however screw up with activate/deactivate as mentioned in the OP where jet plumes specified to come out can be glitched if the aircraft is ordered to move before it has finished landing. It seems to call activate as soon as it leaves the ground, but deactivate as soon as it starts downward motion, this means that if its order to move after it starts to float down, it has already called deactivate but it hasnt left the ground so cant call activate and thus stays deactivated. This is no good, and this problem does not seem to manifest in Regular aircraft, bombers however are so screwed up in this regard that its not even funny..
User avatar
Peet
Malcontent
Posts: 4384
Joined: 27 Feb 2006, 22:04

Post by Peet »

Strategia wrote:
NOiZE wrote:
Kloot wrote:You mean like this? :)

(Can't get them to land on the ocean floor, though.)
that's better then now, but they should land on the oceanfloor.
No, they shouldn't. Well, in all fairness, the ability to mod both (i.e. surface and ocean floor) would be the best, but IMO that pic is the best alternative. After all, real-world seaplanes land on the surface of the water too, right? And despite cool sci-fi submaplanes, a plane that floats on the surface of the water would be a lot easier engineering-wise than a submaplane

You didn't play TA, did you..
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

Committed the patch, so please test whether it improves stuff or breaks things.

http://www.osrts.info/~tvo/spring/
User avatar
1v0ry_k1ng
Posts: 4656
Joined: 10 Mar 2006, 10:24

Post by 1v0ry_k1ng »

i know "lol it woz in TA" but it dosnt make sense, planes being able to land on the sea bed. no sense at all. if they can dot hat, they should be able to work as submarines too. its much better that they be real sea planes, that is, land on the sea. dont see much benefit to it though unless they become stealthed while landed or somthing.
User avatar
LordMatt
Posts: 3393
Joined: 15 May 2005, 04:26

Post by LordMatt »

Tobi wrote:Committed the patch, so please test whether it improves stuff or breaks things.

http://www.osrts.info/~tvo/spring/
Okay I will when I get a chance, do you have some deadline before release?
User avatar
Argh
Posts: 10920
Joined: 21 Feb 2005, 03:38

Post by Argh »

Image

Soz in advance for peeps with smaller screen rez, but it's much more readable like this ;)

Code: Select all

tdfparser.GetDef(ud.wingDrag, "0.07", "UNITINFO\\WingDrag");				//drag caused by wings
	tdfparser.GetDef(ud.wingAngle, "0.08", "UNITINFO\\WingAngle");			//angle between front and the wing plane
	tdfparser.GetDef(ud.drag, "0.005", "UNITINFO\\Drag");								//how fast the aircraft loses speed (see also below)
	tdfparser.GetDef(ud.frontToSpeed, "0.1", "UNITINFO\\frontToSpeed");	//fudge factor for lining up speed and front of plane
	tdfparser.GetDef(ud.speedToFront, "0.07", "UNITINFO\\speedToFront");//fudge factor for lining up speed and front of plane
	tdfparser.GetDef(ud.myGravity, "0.4", "UNITINFO\\myGravity");				//planes are slower than real airplanes so lower gravity to compensate

	tdfparser.GetDef(ud.maxBank, "0.8", "UNITINFO\\maxBank");						//max roll
	tdfparser.GetDef(ud.maxPitch, "0.45", "UNITINFO\\maxPitch");				//max pitch this plane tries to keep
	tdfparser.GetDef(ud.turnRadius, "500", "UNITINFO\\turnRadius");			//hint to the ai about how large turn radius this plane needs

	tdfparser.GetDef(ud.maxAileron, "0.015", "UNITINFO\\maxAileron");		//turn speed around roll axis
	tdfparser.GetDef(ud.maxElevator, "0.01", "UNITINFO\\maxElevator");	//turn speed around pitch axis
	tdfparser.GetDef(ud.maxRudder, "0.004", "UNITINFO\\maxRudder");			//turn speed around yaw axis
User avatar
ILMTitan
Spring Developer
Posts: 410
Joined: 13 Nov 2004, 08:35

Post by ILMTitan »

Basically all the patch does for airplane behavior is making it so the can stop attacking when given a move command. Before move was acting very much like Fight currently does.
User avatar
Fanger
Expand & Exterminate Developer
Posts: 1509
Joined: 22 Nov 2005, 22:58

Post by Fanger »

thats cool.. and helpful.. still sod out on the 900 other issues though..

Argh thats great that youve made that easier to read, now could you explain how those tags affect IN GAME function.. I have an idea how this stuff might work in real life but in game and real life diverge on many levels..

and the Bombers need massive help, the weapon itself its a buggy POS..
User avatar
Argh
Posts: 10920
Joined: 21 Feb 2005, 03:38

Post by Argh »

TBH, Fanger, I'm not sure what all of them do. I thought providing the defaults from the sourcecode might be a very helpful place for experimenting with this, though. My one experimental run with this stuff was quite awhile ago, and I seem to recall that some values cause Spring to crash, and while some of this like turnRadius probably has a useful effect on the handling of steering problems, I strongly suspect that it'll take a bit of work to get things just right.

BTW, for bombers... have you tried maybe setting up bombs that can only fire once (invisible bombs that make no sounds and do no damage, of course), but trigger another dropped weapon (or a ballistic weapon with a speed of 0) a few fractions of a second later, via the whole fire-by-script thing? I did a quick experiment, and that seems like a way to deal with the stupid bombers expecting bursts problems.

Also, I've found that 90% of the most borked behaviors can be avoided, at least to some extent, by simply not declaring a Weapon1... Spring seems to key off the type of Weapon1 to determine behaviors... so it should be quite possible, I would think, to have a Weapon2 that was a Droppable, that in turn fired the real weapon later. Or something like that.
User avatar
Strategia
Posts: 575
Joined: 06 Apr 2006, 18:32

Post by Strategia »

P3374H wrote:
Strategia wrote:
NOiZE wrote: that's better then now, but they should land on the oceanfloor.
No, they shouldn't. Well, in all fairness, the ability to mod both (i.e. surface and ocean floor) would be the best, but IMO that pic is the best alternative. After all, real-world seaplanes land on the surface of the water too, right? And despite cool sci-fi submaplanes, a plane that floats on the surface of the water would be a lot easier engineering-wise than a submaplane

You didn't play TA, did you..
TA, yes.

CC, no. :(
User avatar
Fanger
Expand & Exterminate Developer
Posts: 1509
Joined: 22 Nov 2005, 22:58

Post by Fanger »

I have been unable to get a bomber to just drop one bomb.. due to the queer manner in which spring calculates how many bombs are dropped

Ideally here is How id like bombers to function..

Range: the range specified in the weapon file would indicate the distance from the target the aircraft should start dropping the bombs. If not range then another tag.

BombsDropped: this would either use the burst tag or be its own tag which would specify the number of total bombs to be dropped in the run.

BombInterval: this would use the burstrate tag or be its own tag which would specify the interval between bomb drops in exactly the same way burstrate works.

ReloadTime: this would function as it does for burst weapons and specify the time between bursts.


Why I would like the above system or something like it, If you want a high level strategic bomber you would set a medium to long range and then a high number of bombs dropped but a decent interval, this would get the bomber to start dropping a decent bit before the target and continue to drop after it passes the target. If you want to create a single dorp bomber, or a pinpoint bomber youd set a low number of bombs dropped a lowe interval and a short range getting the bomber to drop the bombs practically on top of the target and then veer off. In short it allows better control. How easy it would be to setup I have no idea..
Post Reply

Return to “Feature Requests”