Post by AtomHeartDragon on Feb 11, 2018 12:24:44 GMT
This setup seems to work reasonably well for projectiles containing a single 1x launcher, but causes problems otherwise:
- n x m launchers either don't fire on their own or destroy themselves and missiles immediately upon firing (they do seem to work fine when manually triggered, though)
- multiple identical launchers cause immediate collisions between projectiles (not unexpected, but it would still be nice to have some safeguards allowing for clustering launchers together)
- variety pack of several different launchers (all offset from the axis) - crash immediately after electrical launch:
1x
Assertion at z:\documents\code\utilities\utilities\core\Darray.h(53): Size > 0
Error: EXCEPTION_BREAKPOINT
0 0x750f322c DebugBreak Line Info Error 487
1 0x003cc738 <lambda_8a366f813bf63f6f50382e32e08dbabe>::operator() z:\documents\code\cde\cde\logistic\crafts\craftblueprints.cpp(3014)
2 0x003cc414 CraftBlueprint::Instantiate z:\documents\code\cde\cde\logistic\crafts\craftblueprints.cpp(3009)
3 0x00636ebf SpacecraftComponent::SpacecraftComponent z:\documents\code\cde\cde\tactical\components\spacecraft.cpp(61)
4 0x00618a7a Body::BuildBody z:\documents\code\cde\cde\tactical\body.cpp(26)
5 0x004ce906 LauncherSubCompartment::LaunchOnce z:\documents\code\cde\cde\logistic\modules\weaponmodules\launchersubcompartment.cpp(72)
6 0x004ce058 LauncherSubCompartment::RunActions z:\documents\code\cde\cde\logistic\modules\weaponmodules\launchersubcompartment.cpp(23)
7 0x0049d676 BlastLauncherCompartment::RunActions z:\documents\code\cde\cde\logistic\modules\weaponmodules\blastlaunchermodules.cpp(409)
8 0x006381d4 SpacecraftComponent::Tick z:\documents\code\cde\cde\tactical\components\spacecraft.cpp(134)
9 0x0061cd37 Body::Tick z:\documents\code\cde\cde\tactical\body.cpp(302)
10 0x0035aad2 util::Darray<util::SharedPtr<UIWidget> >::Add z:\documents\code\utilities\utilities\core\darray.inl(282)
11 0x600000b9 Function Error 126 Line Info Error 126
2x
Assertion at z:\documents\code\utilities\utilities\core\Darray.h(53): Size > 0
Error: EXCEPTION_BREAKPOINT
0 0x750f322c DebugBreak Line Info Error 487
1 0x012bc738 <lambda_8a366f813bf63f6f50382e32e08dbabe>::operator() z:\documents\code\cde\cde\logistic\crafts\craftblueprints.cpp(3014)
2 0x012bc414 CraftBlueprint::Instantiate z:\documents\code\cde\cde\logistic\crafts\craftblueprints.cpp(3009)
3 0x01526ebf SpacecraftComponent::SpacecraftComponent z:\documents\code\cde\cde\tactical\components\spacecraft.cpp(61)
4 0x01508a7a Body::BuildBody z:\documents\code\cde\cde\tactical\body.cpp(26)
5 0x013be906 LauncherSubCompartment::LaunchOnce z:\documents\code\cde\cde\logistic\modules\weaponmodules\launchersubcompartment.cpp(72)
6 0x013be058 LauncherSubCompartment::RunActions z:\documents\code\cde\cde\logistic\modules\weaponmodules\launchersubcompartment.cpp(23)
7 0x0138d676 BlastLauncherCompartment::RunActions z:\documents\code\cde\cde\logistic\modules\weaponmodules\blastlaunchermodules.cpp(409)
8 0x015281d4 SpacecraftComponent::Tick z:\documents\code\cde\cde\tactical\components\spacecraft.cpp(134)
9 0x0150cd37 Body::Tick z:\documents\code\cde\cde\tactical\body.cpp(302)
10 0x0124aad2 util::Darray<util::SharedPtr<UIWidget> >::Add z:\documents\code\utilities\utilities\core\darray.inl(282)
11 0x015e2cba ActorHandler::GetAllAliveActors z:\documents\code\engine\infrastructure\manager.cpp(156)
12 0x11111111 Function Error 126 Line Info Error 126
13 0x01563919 TacticalManager::Tick z:\documents\code\cde\cde\tactical\tacticalmanager.cpp(149)
14 0x015dc2f4 GameManager::Tick z:\documents\code\engine\infrastructure\gameplay.cpp(271)
15 0x011fc4d5 main z:\documents\code\cde\cde\common\main.cpp(83)
16 0x016adc27 __scrt_common_main_seh f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl(283)
17 0x756b337a BaseThreadInitThunk Line Info Error 487
18 0x774692e2 RtlInitializeExceptionChain Line Info Error 487
19 0x774692b5 RtlInitializeExceptionChain Line Info Error 487
Interestingly, blast tubes seem to work correctly when packed onto meatier drones - I have two stinger-based bomber drones (and no launch platform for them as of yet) that in addition to forward firing cannons use blast launchers (tuned for same ballistic performance so that they can be aimed using main guns) and seem to be quite effective - a single one dropping its payload typically cuts stock gunship to ribbons.
Additionally the way the AI treat the launchers is questionable:
- Electrical sideways launchers, which are clearly intended to just drop projectiles at negligible launch velocity and have them boost under own power tend to be aimed directly at target when broadsiding.
- Blast launchers which can fire volleys of projectiles at considerable velocities (often exceeding conventional cannons) are not aimed at all.
It seems pretty clear to me that this logic should be reversed - electrical launch should be direction agnostic, while blast launch should use proper targetting solution (although blast aiming should have lower priority than gun aiming and fire blindly when overridden to allow sideways blast launches when fighting head on).
This might be a slight issue for all the cluster munition designers out there, but working around it with a tiny forward needle blast launcher with marginally better engagement range seems like a much better prospect than trying to aim every single blast tube that needs to be aimed with complex setup involving ballistically tuned aim-assist guns, ammo bins, generators, radiators and issues with guns shooting freshly launched munitions right in the nozzle.
Alternatively (and optimally) launchers could get a field telling them whether or not they need to be aimed and if they should still attempt launch when they can't.