PAC maps: theory and practical

Started by teknotiss, December 03, 2014, 12:02:14 PM

Previous topic - Next topic

stdout

My position on runners is that while they can be used a little bit, they are not as useful as you'd hope. They only travel on live digitalis, and by the time you get that near a human target, you're already in pretty good control of the situation. So the runners just end up running around, not disabling much, and not giving much benefit to the player.

Hubs

I'm with stdout in this one. They aren't really useful. If we could think of a way to make them help the player I think I could add it as an optional setting. Really the range of their stun is the biggest issue. Can that be changed in crpl? Or has there been a crpl runner made?

teknotiss

Quote from: Hubs on December 08, 2014, 06:39:46 PM
I'm with stdout in this one. They aren't really useful. If we could think of a way to make them help the player I think I could add it as an optional setting. Really the range of their stun is the biggest issue. Can that be changed in crpl? Or has there been a crpl runner made?
i dunno about runner scripts, if the could be targeted perhaps?
maybe if they could seek to get to a point that you place like a spore tower?
"Is God willing to prevent evil, but not able? Then he is not omnipotent.... Is he able, but not willing? Then he is malevolent.... Is he both able and willing? Then whence cometh evil?.... Is he neither able nor willing? Then why call him God?" --- Epicurus

stdout

Sounds like a phase 2 project. We don't want to get bogged down with scope creep (pun intended)

Asbestos

A CRPL runner nest that allows you to target points with digitalis that makes all the runners go there.

Hubs

Quote from: Asbestos on December 08, 2014, 07:21:14 PM
A CRPL runner nest that allows you to target points with digitalis that makes all the runners go there.

Seconded.

Template is mostly done now. Working on full instructions and going to publish a map soon, plus a surprise for everyone :)

stewbasic

Quote from: Hubs on December 06, 2014, 09:49:12 PM
I also completely rewrote Abraxis, which is the AI that rebuilds stuff, so that it runs about 10 times faster.  It used to check for connections and a bunch of other stuff but I found a much simpler way to do it. This has two main effects: (1) your game should run with a lot less lag on larger maps and (2) buildings will rebuild much faster (especially on large maps). The old script would only attempt to rebuild 10 buildings per frame. The new one attempts 25 per frame.
btw I originally didn't check connections (http://knucklecracker.com/forums/index.php?topic=14499.15), but I found that Abraxis became slow to respond once a lot of units were dead; checking ~40 dead units which were connected to something alive was faster than checking all ~200 dead units even with the extra connection logic. Does it still respond faster near endgame?

teknotiss

hey man, you've been quiet a while, welcome back sort of thing! :)
what do you think about the new changes etc?  8)
"Is God willing to prevent evil, but not able? Then he is not omnipotent.... Is he able, but not willing? Then he is malevolent.... Is he both able and willing? Then whence cometh evil?.... Is he neither able nor willing? Then why call him God?" --- Epicurus

Hubs

Quote from: stewbasic on December 13, 2014, 04:27:24 PM
Quote from: Hubs on December 06, 2014, 09:49:12 PM
I also completely rewrote Abraxis, which is the AI that rebuilds stuff, so that it runs about 10 times faster.  It used to check for connections and a bunch of other stuff but I found a much simpler way to do it. This has two main effects: (1) your game should run with a lot less lag on larger maps and (2) buildings will rebuild much faster (especially on large maps). The old script would only attempt to rebuild 10 buildings per frame. The new one attempts 25 per frame.
btw I originally didn't check connections (http://knucklecracker.com/forums/index.php?topic=14499.15), but I found that Abraxis became slow to respond once a lot of units were dead; checking ~40 dead units which were connected to something alive was faster than checking all ~200 dead units even with the extra connection logic. Does it still respond faster near endgame?


I have it set to check 25 units per frame to prevent lagging. When the snapshot is taken it puts all the units in a single list instead of tracking the three states of alive, building, and dead. As it cycles through the list it just checks if the space is clear with no creeper, building, or grown digitalis. If nothing is there it builds the unit. Most PAC maps have 200-400 units so every building gets checked every 8-16 frames. So the build speed will be consistent throughout the game. The script is pretty light so it could tolerate checking 50 or 100 units per frame but I find that a lot of the time a unit will start building and get destroyed immediately because the cell next to it has creeper. That creates a rapid explosion every frame. The new script doesn't do this quite as badly because it doesn't rebuild every frame.

Also stewbasic, I gotta say great job on the PAC scripts. Most people probably won't get into the crpl much, let alone understand it, but I went through everything and it's really good stuff. You'll have the primary credit in the template I'm publishing soon.

stewbasic

Thanks Hubs and teknotiss! I'm on vacation so catching up a bit on forums and maps etc :P. It's great to see all the improvements being made. I'm looking forward to trying out the template; it sounds like finalizing will be a lot smoother :D.

I like the idea of building runner nests on ore deposits, since they're useless to the creeper at the moment. I was thinking that the runner nest could consume 1 creeper to produce a runner, and do so once per frame up to some cap on the number of runners. That way the rate at which you pump out runners is determined by how fast you can get creeper onto the nest.


stdout

stewbasic, I want to say thank you to you for providing this initial code base. It has given thousands of hours of enjoyment to a lot of people.

stewbasic

Quote from: stdout on December 14, 2014, 07:41:08 AM
stewbasic, I want to say thank you to you for providing this initial code base. It has given thousands of hours of enjoyment to a lot of people.
I'm glad people are enjoying them, and thanks to you guys for making more of the maps, especially Hubs for all the work on the template.

Hubs

Quote from: stewbasic on December 14, 2014, 07:30:38 PM
Quote from: stdout on December 14, 2014, 07:41:08 AM
stewbasic, I want to say thank you to you for providing this initial code base. It has given thousands of hours of enjoyment to a lot of people.
I'm glad people are enjoying them, and thanks to you guys for making more of the maps, especially Hubs for all the work on the template.

I mainly did it to fuel my PAC addiction :)

Stave

Is this the right place for PAC enhancement suggestions? Because I've got a couple!

1) I agree with stdout that runners are tough to utilize, as I experienced on his map with spore towers spawning one per spore launched. Is it possible, through CRPL, to get the target of where a spore lands? Perhaps spawn a runner at the target if the spore lands on live digitalis? Maybe even briefly energize a radius of digitalis (if it's not on a PZ, of course, to prevent exploits)? Have a "charge" mode like emitters, where spores fire half as often, but spawn a runner/live digi on land?

2) Use totems to spawn gravity wells, exactly like how forges work? Not sure how to handle the cooldown for this, but it sure would be neat to augment the Field tool.

Hubs

Quote from: Stave on December 15, 2014, 07:20:01 PM
Is this the right place for PAC enhancement suggestions? Because I've got a couple!

1) I agree with stdout that runners are tough to utilize, as I experienced on his map with spore towers spawning one per spore launched. Is it possible, through CRPL, to get the target of where a spore lands? Perhaps spawn a runner at the target if the spore lands on live digitalis? Maybe even briefly energize a radius of digitalis (if it's not on a PZ, of course, to prevent exploits)? Have a "charge" mode like emitters, where spores fire half as often, but spawn a runner/live digi on land?

2) Use totems to spawn gravity wells, exactly like how forges work? Not sure how to handle the cooldown for this, but it sure would be neat to augment the Field tool.

I really like the gravity well idea.  I could see it as a special ability with a cool down that speeds up as you get more emitters.