PAC maps: theory and practical

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

Previous topic - Next topic

Hubs

Quote from: stewbasic on December 21, 2014, 06:10:10 PM
What should 'T' do if multiple emitters are selected?

How about splitting support between the selected emitters? So if you have 10 emitters and two selected (meaning 8 are unselected) and you press T, each of the selected emitters would get 4 other emitters supporting them. That would be very helpful for a situations where you're pressing on two fronts. Other alternative would be to just support the last built emitter or have it do nothing.

Quote from: stewbasic on December 21, 2014, 06:10:10 PM
Yes. Then 'O' selects all units (same as vanilla). 'E' and 'R' set each tower to its respective mode. Clicking on an emitter will target selected spore towers there and set selected emitters to support. It's also set up to allow more unit types (*cough* runner nest *cough*).

Would it make more sense that if you have emitters and towers selected, then click on an emitter that it would only support and not set a spore target? I can't think of many cases where you would want a spore tower targeting an emitter.

And runner nest = awesome!  This has been discussed before and the range of the runners seems to be a concern as they would only be able to be useful in areas that are already taken. Also, a cap per runner nest should be used so there aren't hundreds of the little guys bogging down the map. For balance purposes, maybe 10 or 20 per nest?  How about different modes? E and R could toggle between fast & weak vs. slow & strong?

Quote from: stewbasic on December 21, 2014, 06:10:10 PM
Speaking of which, there is one thing you could do before which is less convenient now. If you want to synchronize a bunch of spore towers to hit the same spot at the same time, before you could target them all, pause them all, then switch them back to target mode at the right time. Now pausing the tower forgets the target, so you have to select the target again when you want them unpaused. I was thinking about using 'T' for "switch back to target mode, using the last set target".

Does pausing the tower have to forget the target? Did this break because of recent changes?

Quote from: stewbasic on December 21, 2014, 06:10:10 PM
Another change I was considering (I think someone suggested it a while ago) was to allow spore towers to support each other. Maybe spore health could be proportional to number of supporters, removing the need to synchronize towers. Would that be overpowered?

I really like this idea, but it could get overpowered very easily. Spore health is the biggest concern to me, but payload makes sense to stack. Maybe it could have diminishing returns or something for spore health. So a normal spore has 1 health. With 1 tower supporting it could have 1.5 health, then 2.0 health for 2 towers supporting. If you implement this, can you create some variables easily changeable at the top of the script so that map authors can tune it to their map?

Quote from: stewbasic on December 21, 2014, 06:10:10 PM
This changed a little. A spore tower now always shows its target as long as a target is set (but in autotarget it doesn't set a target until 80% charged). The target is white if the tower is unselected, otherwise red. This is all consistent with how berthas behave.

This makes a lot of sense, although the red "about to launch" indicator was super helpful, especially to re-target towers that are about to launch.

Quote from: stewbasic on December 21, 2014, 06:10:10 PM
To answer your question, all towers targeting that cell are selected regardless of their charge amount.

Cool, that makes a lot of sense. Does that work with multiple unit selection? So if I have towers selected already, then shift+click a target, will that add towers to my unit selection?

Quote from: stewbasic on December 21, 2014, 06:10:10 PM

Quote from: Hubs on December 21, 2014, 01:59:01 PM
How about making the number of units checked by a abraxis dynamic so that large maps with many units check less units and smaller maps check more? That way map makers don't have to worry about optimization issues.
I'll probably do something like this, but I want to look more closely at where the time is being spent. I suggest not to hold off on a map waiting for this change.

The victory check runs every frame. It starts by running through each unit on the map, but stops if it finds an abraxas small unit so it doesn't waste time looking at the rest of the units. You could shave off time by looking at this less – maybe every 10 or 30 frames.

I also forgot to put in breaks in Abraxis when checking if the unit is alive and for nullifier build conditions. That could shave a little time off. That reminds me, it would be awesome to add in build conditions to work on nullifiers on PZs.

Another thought I had, if you really want to mimic the normal game with interface and controls, would be to add a unit selected build tab with the E and R modes as options. Like when you select a cannon in the normal game you have the different target priority options. 

teknotiss

in this map
http://knucklecracker.com/forums/index.php?topic=17675.0
i can no longer use e OR r to switch emitter mode.  :o
i'm used to using just r for it and it's REALLY irritating to have to use two separate keys.
can we have that utility put back in please? really really please?
"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

DestinyAtlantis

Hm, i don't think anyone has done this before, but why not have PZ nulifiers?

Hubs

stewbasic, assuming you haven't changed Abraxis a ton, this should make it so nullifiers correctly build in PZs. (PZ'd nullifier has a range of 20 right?)

Old Code in Abraxis.crpl:


# Make sure an emitter or spore tower is in range if type is a nullifier
if(<-Type "NULLIFIER" eq)
0 ->EnemyCount
GetEnemyUnitsInRange(<-X <-Y 9.99) 0 do
if(GetUnitAttribute(CONST_NULLIFIERDAMAGES)) # If a unit is found that can be damaged by a nullifier, increment the enemy count
<-EnemyCount 1 add ->EnemyCount
endif
loop
if(<-EnemyCount eq0) # If no nullifiable units found, don't rebuild the nullifier
"no" ->Rebuild
endif
endif


Updated code:

# Make sure an emitter or spore tower is in range if type is a nullifier
if(<-Type "NULLIFIER" eq)
0 ->EnemyCount
9.99 ->Range
# Determine if nullifier is on PZ
GetUnitsInRange(<-X <-Y 0) 0 do
if(GetUnitType "POWERZONE" eq)
19.99 ->Range
endif
loop
GetEnemyUnitsInRange(<-X <-Y <-Range) 0 do
if(GetUnitAttribute(CONST_NULLIFIERDAMAGES)) # If a unit is found that can be damaged by a nullifier, increment the enemy count
<-EnemyCount 1 add ->EnemyCount
endif
loop
if(<-EnemyCount eq0) # If no nullifiable units found, don't rebuild the nullifier
"no" ->Rebuild
endif
endif

teknotiss

hey PAC coders, there's been some talk, from me included, about the new keys for commands.
can i ask why "o"?
since we were all using "t" anyway, and "t" is near the other function keys most use, while "o" is on the otherside of the key board.
also can i ask why the extra clicking for support all emitters?
as far as i can tell i need to select an emitter then press "o" then select the emitter i want to be supported?
this is unnecessary, can't we just have press "o" on the desired emitter?
better yet put it back to "t" and then we can stop changing things for the players.
unless i missed something and "t" is reassigned, is it? ???
"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

Tek, stewbasic is working on adding them back in. I'm holding off on new maps until this is back.

Quote from: stewbasic on December 21, 2014, 06:10:10 PM
Quote from: Hubs on December 21, 2014, 01:59:01 PM
Would it hurt to leave T and Y in? These are super useful and although they would now be redundant I think they would still be faster than the new controls. Plus players are very used to them so it would keep some consistency between old and new PAC maps.
Secretly I had in mind to free those keys up for some other use :P. Those are good points though... I'll have a go at adding them back.


teknotiss

Quote from: Hubs on December 22, 2014, 03:22:16 PM
Tek, stewbasic is working on adding them back in. I'm holding off on new maps until this is back.

Quote from: stewbasic on December 21, 2014, 06:10:10 PM
Quote from: Hubs on December 21, 2014, 01:59:01 PM
Would it hurt to leave T and Y in? These are super useful and although they would now be redundant I think they would still be faster than the new controls. Plus players are very used to them so it would keep some consistency between old and new PAC maps.
Secretly I had in mind to free those keys up for some other use :P. Those are good points though... I'll have a go at adding them back.

groovy, i'm holding off until you dudes settle on a set of scripts! ::) ;)
"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

My Megadolon map is finally out on CS and that now satisfies my PAC itch for the next week or two.

teknotiss

its a fun one, but the new keys are messing with my game play. :o
"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

Linden

Quote from: teknotiss on December 22, 2014, 06:20:17 PM
its a fun one, but the new keys are messing with my game play. :o

Same, and I'm sure the map will be fun when I get the new keys sorted, but at the moment I'm finding it unplayable. :( That makes me very sad. :( It's just me being at the bottom end of the "learning new key combinations" spectrum.

Oh well, I'll keep trying, and I do really thank you and appreciate you for your hard work, but I don't understand why the T key was changed.

stewbasic

OK, new version attached with T and Y added back and help text updated. It turns out I may not have internet access for a couple of weeks, so this may be the last update from me for a while.

Quote from: Hubs on December 22, 2014, 09:47:55 AM
How about splitting support between the selected emitters? So if you have 10 emitters and two selected (meaning 8 are unselected) and you press T, each of the selected emitters would get 4 other emitters supporting them. That would be very helpful for a situations where you're pressing on two fronts. Other alternative would be to just support the last built emitter or have it do nothing.
At the moment it just picks one of the selected emitters arbitrarily, but splitting sounds better.

Re PZ nullifiers: I haven't changed Abraxis much, so I just copied Hubs's snippet over and tested it quickly.

Re E and R: If you select multiple towers in different modes, I would expect to press a key to put them all in the same mode, rather than toggling them all. This is why I changed the keys to set instead of cycle (and why there's no key to put spore towers in target mode). Maybe one solution would be to mimic vanilla again: if you select a bunch of blasters and press 'V', it toggles them between armed and disarmed... but if they are in different states to start with, it sets them all to armed. So I could make E/R cycle but put all selected units in the same state.

I guess the other thing I didn't like about E/R cycling was that usually there are only 2 modes so E and R do the same thing. And when there are 3 modes I can never remember which of E/R gets me to the right state anyway. Do most people only use one of the keys?

Re why 'O': because that's the default key to select all in vanilla.

Quote from: Hubs on December 22, 2014, 09:47:55 AM
I can't think of many cases where you would want a spore tower targeting an emitter.
There also aren't many cases where you would select both spore towers and emitters except to destroy. I think the current behaviour is easiest to understand (if you have a spore tower selected, clicking targets it regardless of what else is selected. If you have an emitter selected, clicking an emitter supports regardless of what else is selected).

Linden

Stew, I'm sorry - the "save.cw3" file I downloaded was a very basic map with three orbitals and one emitter, with text saying I was in edit mode? I've downloaded and played other maps before so I don't think it was me. Did you attach a different map?

Hubs

Quote from: Linden on December 22, 2014, 07:31:47 PM
Stew, I'm sorry - the "save.cw3" file I downloaded was a very basic map with three orbitals and one emitter, with text saying I was in edit mode? I've downloaded and played other maps before so I don't think it was me. Did you attach a different map?

That's all that is in the template to start with. Resize the map and start changing terrain and adding units. When you play it will ask if you want to convert it to a PAC map.

Thisisnotasmile

Hi guys. Loving the PAC maps, so keep up the good work! I've got a suggestion and a question for you all:

Suggestion - During PAC maps you soon get to a point were you're in conflict with the human units. As soon as this happens, you get a constant stream of notifications on the left side of the screen as units are re-built/destroyed/re-built/destroyed etc. These notifications appear so fast that it's just not possible to keep up with dismissing them all, so you're left with a permanent list down the left side of the screen which can often obscure play (particularly when zoomed in). Is it possible for these notifications to be disabled for PAC maps? I don't find them particularly relevant to gameplay - I doubt anyone would miss them.

Question - Is there anyway to see a list of all current PAC style maps? I tend to search Colonial Space and order by rating, and usually I find the maps somewhere near the top. I've tried searching for text including "PAC" but this just returns anything with "space" in the name/description which is quite a common word. I've also tried "#PAC", "#PlayAsCreeper" and "PlayAsCreeper" but I'm not getting all results. It's possible I've played all PAC maps, but I don't know for sure and don't want to miss out on any!

Thanks!

stdout

Thisisnotasmile, when you're in colonial space, enter PlayAsCreeper in the "Text: " field and then click on "Apply Filters". That will return 16 of the 17 maps that have been published. The 17th is the one called "CreeperComeBack" and it doesn't include that tag.

As for those notifications, I disabled that long ago. from the main menu click on Settings and then under Misc check off the bottom option "Do not show game event notification tags"