Vehicles as Enemies

So random thought I had. Could we use vehicles as multiple block enemies? No idea how hard it would be to tie it into an AI. But if we could it’d be awesome to have. Use the vehicle code for biological large scale enemies. The various parts would be right hind foot and such. Lol. Can’t you just image when you examine it…
Feet: lack
Also would allow for harvesting various “parts” of the enemies to gather materials. Lol.

one concern would be that since they’re vehicles, wouldn’t they just run you over instead of actually fighting?

i mean, enemies don’t do collision damage at all right now, as far as i’m aware.

sounds like a cool idea though.

[quote=“TooDAMNMuch, post:2, topic:13854”]one concern would be that since they’re vehicles, wouldn’t they just run you over instead of actually fighting?

i mean, enemies don’t do collision damage at all right now, as far as i’m aware.

sounds like a cool idea though.[/quote]

Collision by vehicles again the player is coded for… on this very forum are plenty of testaments to people accidentally running themselves over with their own vehicles.

Also, collision damage by creatures (and players!) that have been knocked back is in the game, so it shouldn’t be TOO hard.

But there are other aspects unrelated to collision damage that present more serious challenges.

Yeah, I very well acknowledge it wouldn’t be an easy thing to code. I just think it would give us another use for a very powerful system that already exists.
Imagine rebuilding all the robotic enemies as vehicles.

[quote=“Miloch, post:1, topic:13854”]So random thought I had. Could we use vehicles as multiple block enemies? No idea how hard it would be to tie it into an AI. But if we could it’d be awesome to have. Use the vehicle code for biological large scale enemies. The various parts would be right hind foot and such. Lol. Can’t you just image when you examine it…
Feet: lack
Also would allow for harvesting various “parts” of the enemies to gather materials. Lol.[/quote]
Finally the tank drone would make sense.

[quote=“BorkBorkGoesTheCode, post:5, topic:13854”][quote=“Miloch, post:1, topic:13854”]So random thought I had. Could we use vehicles as multiple block enemies? No idea how hard it would be to tie it into an AI. But if we could it’d be awesome to have. Use the vehicle code for biological large scale enemies. The various parts would be right hind foot and such. Lol. Can’t you just image when you examine it…
Feet: lack
Also would allow for harvesting various “parts” of the enemies to gather materials. Lol.[/quote]
Finally the tank drone would make sense.[/quote]

+1
yeah, it would be nice to cobble together our own drones or repurpose existing ones, hell someday i hope we can fix up those AI street sweepers and get them to do loot sweeps and drop it off at the home base while the player is otherwise occupied.
that that would sort of be the penultimate addition to cataclysm dda, programmable vehicle AI.

AI for vehicles is “planned” as in “maybe someday”.
Vehicle pathfinding isn’t easy, though it would be useful for players, NPCs, and tank drones.

well, a really basic one could be delayed teleport between two locations. as in, caravan in the evacuation center ‘leaves’ causing a truck that is parked near the front to vanish and it will later ‘arrive’ at the farm.

[quote=“Coolthulhu, post:7, topic:13854”]AI for vehicles is “planned” as in “maybe someday”.
Vehicle pathfinding isn’t easy, though it would be useful for players, NPCs, and tank drones.[/quote]

i actually was considering that a little while ago, if you wanted to create a simple AI that would simply beeline to a target while attempting to stay on roads, how difficult would that be anyway?

It would still require obstacle avoidance to deal with all the wrecks.

Well, part of what I was implying is that some of these could be creatures and we’re just using the vehicle system to represent them as they are large creatures. Many of these larger creatures might just consider the wrecks to be simply questionable footing. :stuck_out_tongue: But the code wouldn’t support vehicle on top of vehicle I assume.

well if they’re technically alive, can’t we assume they’d take one apart if blocked by it?

Biological enemies using vehicle system are incredibly unlikely to happen.
Robots doing so could happen someday.

Why not, Cool? It’s be a simple way to make some large enemies. The “parts” and what not would simply be biological. Of course you couldn’t make any of them or use them in your vehicle (except as in take large bone and use it to make bone armor type stuff.).

maybe frankenstein’s castle could be a rare place to find anyway, after all, with some machines, isn’t it more about the equipment to repair them with? :wink:

I was thinking about pathing, if we made a sufficiently tough tank bot it could just not bother pathing and smash through things. It wouldn’t even have to be invincible to impacts, just tough enough that it wouldn’t kill itself right away. Same thing with hulks, dont have to path if you can just keep moving in straight lines.

It would require a huge rework of the vehicle system and interfaces related to it.
For example: targeting (a vehicle is not a creature, so it can’t be aimed at with current system), melee attacks against vehicles (vehicles do not take non-bashing damage), part destruction, movement (legged creatures do not turn nor retain momentum like vehicles), fuel drain, creature AI…

It would be more work to adapt vehicle system to not-really-vehicular creatures than to adapt creatures to sizes larger than 1 tile.

That would mean tanks sinking in rivers (which currently is a horrible hack: vehicles just vanish without a trace), getting clogged in wrecks (wrecks can be really, really hard to destroy if rammed from a wrong side), balancing tanks around being able to plow through a forest, and being totally unsuited to non-flat maps (a single big pit could stop a tank).

Vehicle pathfinding is not an unsolvable problem, it’s just that it takes a programmer who understands A* (and associated caching) well enough to modify it for own purposes.
Starting vehicle enemies from pathfinding would be a much better way to go, as player AI would also benefit (autotravel, NPC driving).

Well that makes sense. Consider my bubble popped. Thanks for the explanation, Cool.

[quote=“Coolthulhu, post:17, topic:13854”]It would require a huge rework of the vehicle system and interfaces related to it.
For example: targeting (a vehicle is not a creature, so it can’t be aimed at with current system), melee attacks against vehicles (vehicles do not take non-bashing damage), part destruction, movement (legged creatures do not turn nor retain momentum like vehicles), fuel drain, creature AI…[/quote]
You’re neglecting the fact that these would all be good changes to the vehicle system. In principle, we want to treat vehicles as melee/ranged targets the same as monsters. The remainder of the issues are amenable to simple workarounds.

That would mean tanks sinking in rivers (which currently is a horrible hack: vehicles just vanish without a trace), getting clogged in wrecks (wrecks can be really, really hard to destroy if rammed from a wrong side), balancing tanks around being able to plow through a forest, and being totally unsuited to non-flat maps (a single big pit could stop a tank).[/quote]
Pathing between buildings, trees, or other furniture is what makes multi-tile pathing hard, if you eliminate those, the remainder is easy.

Some of those (targeting, monsters understanding vehicle monsters) would be really clunky to implement without common creature/vehicle “addressing”, for example each targetable object having a persistent target ID.
The more features would this require before it is functional, the lower the chance of it ever happening and lower the chance of it working sensibly if implemented. So a good way to approach it is to implement usable, needed, features that share common requirements with it - creatures targeting turrets, “perfect” vehicular pathing, vehicles breaking in half - and only then add the vehicle monsters on the tested, well-written foundation.

Pathing between buildings, trees, or other furniture is what makes multi-tile pathing hard, if you eliminate those, the remainder is easy.

Do you have some specific trick in mind?
I see it as A* with each rotation+velocity (quantified) being a separate “layer” of nodes (essentially 5D space - 3D position + 2D velocity vector), with each obstacle being stretched (in the cache) to the size of the vehicle, with the vehicle being shrunk to a moving point. From what I know, this is the most common way of doing this. This wouldn’t have any problems with avoiding small obstacles, though it could be too paranoid about them.