From The Depths - Forum

Full Version: Sep/October sprint mega thread continued
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2

Progress update on the Sep/October work.

As part of the upgrade to the AI I decided it was time to re-work the way that vehicles are controlled. To explain what I mean by "the way that vehicles are controlled" I will list the various buzzwords associated with this complicated system
  • Water drive
  • Air drive
  • YawLeft/YawRight/NoseUp/NoseDown/RollLeft/RollRight/Increase/Decrease/MainPropulsion (in both air and water variations)
  • AdvControll(TGYHUJIKOLUpArrowDownArrowLeftArrowRightArrowPrimarySecondaryTertiary)
  • Drive maintainers
  • Jets used in air/water/both
  • Wheels used in air/water/both
  • GP PIDs controlling ad hoc components for various inputs
This system is being largely replaced, and will look like this
  • AdvControl(TGYHUJIKOLUpArrowDownArrowLeftArrowRightArrowPrimarySecondaryTertiary). This remains untouched, except for the fact that it the various buttons will be re-mappable.
  • Drive maintainers- as above, maintained to keep the system working
  • Yaw left/ Yaw right / Roll left / Roll right / Nose up/ Nose down/ Forward / Backward / Strafe left / Strafe right / Hover up / Hover down / First Drive / Second Drive / Third Drive / A / B / C /D / E / Custom-named-inputs
  • GP PIDS will be updated to separate the "input" from the "output" so you can make more specific combinations
So regarding the third bullet point you'll be able to hook many different blocks up to the "inputs" listed. You can set the response anywhere between -1 and 1. And you can listen to as many commands as you want. AI will be customisable so you can tell it to drive the first and/or second and/or third drives. So a practical example of this would be to have some upwards facing thrusters that have a +0.5 response to hover up, and a +0.5 or -0.5 response to Roll (depending on position). They might also have a 0.1 response to first drive in order to put some upwards pressure on constantly when moving forward. They might also have some various strong responses to 'A' so that when it is triggered it spins the vehicle quickly in an evasive manouevre. 'A' will be commandable by the player from the keyboard (SHIFT + 5, probably, but remappable), but could also be the output of an AI missile avoidance routine that calls "A" whenever a missile is within 100 metres of the vehicle.

The game will have a remappable ship commands (ship's wheel layout, more or less) and a remappable set of universal vehicle commands (Vehicle Controller layout, more or less). As well as having the remappable AdvController inputs.

The other main thing I am doing is updating way variables are stored for blocks to achieve the following ends
  • Variables saved, loaded, "clamped" automatically
  • Variables transferred over network when changed, and only those variables that are changed, are transfered, and in the smallest number of bytes possible
  • Variable change functions managed
  • Copy paste added universally for all blocks, and all data modules.
  • Save file size minimised and less hackable, Blueprint file load time minimised
  • Much less code to maintain and easier to write new code
  • Semi automatic presentation of the variables on the UI
  • Automatic saving and loading of colours, vectors, GUIDs, strings ,etc.
This has gone extremely well so far, and I think it will have a very large positive impact on the multiplayer experience.

I don't know how long it will take to get all this stuff done but I think end of November for dev test of these features is likely.
Oh and I forgot to mention there will be an automatic "upgrade" from the old control system to the new one, so stuff should not be broken by these changes.
Really exciting stuff, although getting it out by the end of november seems ambitious! Here's hoping we'll see it in stable by xmas.

Oh, and I was a bit bored, so I re-colored your avatar gif for the new forum.
[Image: attachment.php?aid=52377]
Thanks vyrus! New avatar in use.
How will the PID setups will be impacted by this? Will a single thruster be affected by the inputs of two pids at the same time? And if we're at this, i saw somewhere a suggestion about allowing PID to only affect certain elements as an ACB "search by name" feature. This would be a nice time to implement that.
Will this new system allow for craft with guns mounted without a turret be aimed by turning the vehicle itself? IE. fighter aircraft
All of that sounds great. There's been a lot of excellent changes in this game in recent months.

Are you planning to expand the complex control system to allow more "letters" to be used? It would also be nice if you can use it to send messages to and from ACBs but not respond to the player actually pushing that button. Say I'm using Y to trigger some internal task. I would like to be able to set it so pressing Y on the keyboard manually does not trigger those ACBs in order to prevent something going wrong.

Since you're looking at these things, here's something that's probably a bug: Currently the GP Pitch PID controls hydrofoils, and it shouldn't. Pitch hydrofoils need the ones behind the COM to be upside down in order to work properly, so if you have them all facing the same way pitch control doesn't work. There's a specific hydrofoil pitch PID for this reason.

Also, that "use velocity vector" checkbox in the Aerial AI didn't seem to disable the behavior properly when unchecked. This was true a few versions ago anyway.
Any chance we can get dediblades to have the same input options as thrusters? And will we get a "Complex control only" option for thrusters?
Will Aero Rudders/Elevators/Tailplanes be controllable through your third bullet point? It seems like you could roll them all into one block if we'll finally be able to mix inputs like that.

I ask because I really need a spoiler on the front of my steam dreadnaught. Fourteen thousand tons , but it still tries to do backflips with the new steam engines.
Raise the propellers up a block or so, They need to be aligned with the center of drag/center of mass or a little bit lower. Pitching up a little bit at speed is useful to get more speed out of the ship but backflips are probably a bit excessive.
Pages: 1 2