Posted: 14 May 2007, 21:35
Thank you, at last...
Open Source Realtime Strategy Game Engine
https://springrts.com/phpbb/
Other observation, corvp NEVER tries to assist commander in building mmakers, so its clearly sticking to corsolars, as instructed (in the config file).[06:04] < Frame: 10947 >CUnitConstructionTask::Build solobuild CORSOLAR
[06:04] < Frame: 10949 >issuing command in update()
[06:04] < Frame: 10949 >Command: ID: 40 Timeout: 2147483647 params: 4965, source of command: repair CActions
[06:04] < Frame: 10949 >issuing command in update() succeeded
[06:06] < Frame: 10981 >next task?
[06:06] < Frame: 10981 >CUnitConstructionTask::Init :: CORSOLAR
[06:06] < Frame: 10981 >CUnitConstructionTask::Build solobuild CORSOLAR
[06:06] < Frame: 10981 >Value tasklists\normal\corck missing in file buffer
[06:06] < Frame: 10981 >loading contents of tasklist :: CORCK :: filling tasklist with #1 items
[06:06] < Frame: 10981 >CUnitConstructionTask::CUnitConstructionTask building :: CORSOLAR using builder::CORCK
[06:06] < Frame: 10981 >loaded contents of tasklist :: CORCK :: loaded tasklist at 1 items
[06:06] < Frame: 10981 >CUnitConstructionTask::Init :: CORSOLAR
[06:06] < Frame: 10981 >CUnitConstructionTask::Build solobuild CORSOLAR
[06:06] < Frame: 10982 >issuing command in update()
[06:06] < Frame: 10982 >Command: ID: 40 Timeout: 2147483647 params: 4965, source of command: repair CActions
(A few lines removed here, concerning turn on of metal makers)
[06:07] < Frame: 11012 >issuing command in update() succeeded
(corck(a)├óÔé¼Ôäós solar is completed, but the solar above that corck(c) assisted in building is NOT finished)
[06:07] < Frame: 11038 >Value tasklists\normal\corsolar missing in file buffer
[06:07] < Frame: 11038 >Value tasklists\lists\corsolar missing in file buffer
[06:07] < Frame: 11038 > error loading tasklist :: CORSOLAR :: buffer empty, most likely because of an empty list
[06:08] < Frame: 11051 >next task?
[06:08] < Frame: 11051 >CUnitConstructionTask::Init :: CORSOLAR
[06:08] < Frame: 11051 >Value tasklists\normal\corck missing in file buffer
[06:08] < Frame: 11051 >loading contents of tasklist :: CORCK :: filling tasklist with #1 items
[06:08] < Frame: 11051 >CUnitConstructionTask::CUnitConstructionTask building :: CORSOLAR using builder::CORCK
[06:08] < Frame: 11051 >loaded contents of tasklist :: CORCK :: loaded tasklist at 1 items
[06:08] < Frame: 11051 >CUnitConstructionTask::Init :: CORSOLAR
(corck(c) is allowed to build new solar even tough corck(b) solar is still under construction)
[06:08] < Frame: 11051 >CUnitConstructionTask::RecieveMessage G->OrderRouter->GiveOrder(tc)== true :: CORCK
[06:08] < Frame: 11051 >CUnitConstructionTask::RecieveMessage wiping and creaiing the plan :: CORCK
[06:08] < Frame: 11054 >issuing command in update()
[06:08] < Frame: 11054 >Command: ID: -315 Timeout: 11534 params: 976, 178.333, 1296, 0, source of command: CBuild
[06:08] < Frame: 11054 >issuing command in update() succeeded
[06:08] < Frame: 11069 >next task?
Tried above with parameter values of: 6, 200, 500, 1000, and 5000. No change in spacing between solar├óÔé¼Ôäós was observed.[ConstructionExclusionRange]
{
corsolar=500;
}
AF wrote:corvp is a factory not a builder.
Typo, meant corck not corvp
spacing tells NTai how much extra space is needed for a build position to be a 'good position'.
Makes sense, so this makes "room" around a factory (and other immobiles) for units to exit/move
Exclusion zones mean dont build one of these within this range of another one.
So say we have an antinuke. It has a range of 5k. We dont want to give it a blocking radius of 5k because then nothing would be built in its radius and it'd be a waste.
At the same time we dont want another antinuke built next to it. So we'd give it an exclusion zone around 5k.
Got it, but this is not working, setting corcom to build only corwin, and corwin=500; in exclusion zone, and the commander is still building corwin with a spacing about 150pixels between them (this is with NO parallel building, corcom is only active unit in game)
NTais build algorithm is multithreaded. This means while Unit A is searching for a place to put its solar, unit B is deciding if it should build a solar, so unit B sees no existing solar and looks for a position to build one, then unit A finds a position and starts construction while B is looking, then B finds a place and starts building.
Expected this, So solobuild do not acount for travling to build spot, and leveling ground. fine minor issue.
BUT, in my logfile from previous post, the corsolar that was build bye corck(a) had been in construction for some time (over 50% build).
I am by no means and expert on multithreaded programming, but remember something about semaphore locks (sometimes implemented as counters), it seams that the completed solar, by unit corck(b) clears (decreases it to 0) this lock, without taking in account, that corck(b) is still constructing.
Ill see about making a second check after the build algorithm has finished which might cut down on it but the problem can not be totally eradicated atm.
Thanks, will look forward to testing.
lale wrote: At the same time we dont want another antinuke built next to it. So we'd give it an exclusion zone around 5k.
Got it, but this is not working, setting corcom to build only corwin, and corwin=500; in exclusion zone, and the commander is still building every and all corwins with a spacing no bigger than 150pixels between them (this is with NO parallel building, corcom is the only active construction-unit in the game)
NTais build algorithm is multithreaded. This means while Unit A is searching for a place to put its solar, unit B is deciding if it should build a solar, so unit B sees no existing solar and looks for a position to build one, then unit A finds a position and starts construction while B is looking, then B finds a place and starts building.
Expected this, So solobuild do not acount for travling to build spot, and leveling ground. fine, minor issue.
BUT, in my logfile from previous post, the corsolar that was build by corck(a) had been in construction for some time (over 50% build).
I am by no means and expert on multithreaded programming, but remember something about semaphore (mutex) locks (sometimes implemented as counters), it seams that the completed solar, by unit corck(b) clears (decreases it to 0) this lock, without taking in account, that corck(a) is still in the middle (50%) of constructing a solar.
Using Goidse's config file, NTAI will require a very large amount of resources, before it techs to L2. This can be optimized by limiting construction of tier 1 units in the MaxEnergy section.Cainen wrote:http://kein.praeon.net/wtfman.PNG
See the messed up display? The game overlaid Peewees EVERYWHERE the AI wanted to build or had buildings. It caused my FPS to dip down to 1 and slowed the game down to a ridiculous point.
Cainen: I do not now what build/version you used of NTAI, but the newest: 9.7b 9.7C and NTaiCaseTest builds do NOT (I've tested) overlay Peewees neither with XTA, BA or other mods. And there a no mention in the log about Peewees either.
What caused this? I used Goidse's AI and the thing spammed LLTs, Wind Generators, Metal Makers, and Advanced Solar Collectors. A few Rockos here and there, but nothing past 1st tier tech.
It is? It never attacked once; have you tried making the minimum unit number for an assault lower?Goidse wrote:I all know that.
That build is made for some fast raid attack. Soon I will implement a tier 2 thing. But first I need to control all the best posibilities for a tier one.
It ins't easy to make a decent config. It is just a tasklist that is run trough every time, so you can't say: mmm lets wait 5 min to build that (or can it, without using 50 b_random_move ? :p)
You have to calculate everything to the point and every test costs lots of time...
With not to much bugging in the start it can win against all other bots I tried so far in 1vs1...
This way I├óÔé¼Ôäóm gradual shutting down tier 1 factories, and thereby leaving resources for tier 2 construction.CORAK=500
CORTHUD=800
CORSUB=1200
DJ wrote:none from me I can't progress while the bad build pos spams up the console and slows the pc to a hault...
I├óÔé¼Ôäóm experience the same slowdown/stutter as DJ reported, though I can live with it.Perhaps "Couldnt find a build position" is more appropriate than "badpos 6"
Or for b_rand_assault:LOG wrote:[57:46] < Frame: 103999 >next task?
[57:46] < Frame: 103999 >CKeywordConstructionTask::Init b_assault
[57:46] < Frame: 103999 >Given the go ahead :: CORACSUB
[57:46] < Frame: 103999 >Given the go ahead :: CORMLS
[57:46] < Frame: 103999 >Given the go ahead :: CORRECL
[57:46] < Frame: 103999 >Given the go ahead :: CORSHARK
[57:46] < Frame: 103999 >Given the go ahead :: CORSSUB
[57:46] < Frame: 103999 >Given the go ahead :: CORARCH
[57:46] < Frame: 103999 >Given the go ahead :: CORCRUS
[57:46] < Frame: 103999 >Given the go ahead :: CORBATS
[57:46] < Frame: 103999 >Given the go ahead :: CORMSHIP
(3) insufficient metal to build CORBLACKHY, a stall is anticipated if construction is started
[57:46] < Frame: 103999 >Given the go ahead :: CORCARRY
[57:46] < Frame: 103999 >Given the go ahead :: CORSJAM
[57:46] < Frame: 103999 >Given the go ahead :: CORACSUB
[57:46] < Frame: 103999 >Given the go ahead :: CORMLS
[57:46] < Frame: 103999 >Given the go ahead :: CORRECL
[57:46] < Frame: 103999 >Given the go ahead :: CORSHARK
[57:46] < Frame: 103999 >Given the go ahead :: CORSSUB
[57:46] < Frame: 103999 >Given the go ahead :: CORARCH
[57:46] < Frame: 103999 >Given the go ahead :: CORCRUS
[57:46] < Frame: 103999 >Given the go ahead :: CORBATS
[57:46] < Frame: 103999 >Given the go ahead :: CORMSHIP
(3) insufficient metal to build CORBLACKHY, a stall is anticipated if construction is started
[57:46] < Frame: 103999 >Given the go ahead :: CORCARRY
[57:46] < Frame: 103999 >Given the go ahead :: CORSJAM
if(targ == string("")) for b_assault
[57:46] < Frame: 104001 >next task?
These log entries keep repeating until antistall gives OK for CORBLACKHY.LOG wrote: [57:48] < Frame: 104045 >next task?
[57:48] < Frame: 104045 >CKeywordConstructionTask::Init b_rand_assault
[57:48] < Frame: 104045 >Given the go ahead :: CORACSUB
[57:48] < Frame: 104045 >Given the go ahead :: CORMLS
[57:48] < Frame: 104045 >Given the go ahead :: CORRECL
[57:48] < Frame: 104045 >Given the go ahead :: CORSHARK
[57:48] < Frame: 104045 >Given the go ahead :: CORSSUB
[57:48] < Frame: 104045 >Given the go ahead :: CORARCH
[57:48] < Frame: 104045 >Given the go ahead :: CORCRUS
(3) insufficient metal to build CORBATS, a stall is anticipated if construction is started
[57:48] < Frame: 104045 >Given the go ahead :: CORMSHIP
(3) insufficient metal to build CORBLACKHY, a stall is anticipated if construction is started
[57:48] < Frame: 104045 >Given the go ahead :: CORCARRY
[57:48] < Frame: 104045 >Given the go ahead :: CORSJAM
if(targ == string("")) for b_rand_assault
[57:48] < Frame: 104053 >next task?
I have a dual core cpu, an AMD Athlon 64 X2 2.8 ghz. I think the slow downs I have are because I deliberately wrote my config to expand massively. Literally by the time RAI has teched up NTai will have taken 90% of the map. Obviously at this point the build algorithm is really struggling to find a location to build stuff and is causing the slowdown. Whilst my config is perhaps an extreme case I don't think this issue will go away.none from me I can't progress while the bad build pos spams up the console and slows the pc to a hault...