Shard config for NOTA - Page 2

Shard config for NOTA

Moderators: smartie, Thor, PepeAmpere, Moderators, Content Developer

User avatar
yuritch
Spring 1944 Developer
Posts: 1018
Joined: 11 Oct 2005, 07:18

Re: Shard config for NOTA 1.69

Post by yuritch »

Here's a new build of my Shard config. Main change is that it can react to battlefield changes much better now - attacking groups can change destination point on the way. The larger the map, the more difference in behaviour there will be.
Attachments
ShardNOTA.7z
New build
(14.18 KiB) Downloaded 62 times
User avatar
yuritch
Spring 1944 Developer
Posts: 1018
Joined: 11 Oct 2005, 07:18

Re: Shard config for NOTA 1.69

Post by yuritch »

Fixed a few bugs, should cause a bit less CPU load in late game now (and generally play better)
Attachments
ShardNOTA_20130502.7z
(14.55 KiB) Downloaded 28 times
a1983
Posts: 55
Joined: 02 Dec 2009, 12:01

Re: Shard config for NOTA 1.69

Post by a1983 »

Cool work, thx Yuritch for awesome AI.
a1983
Posts: 55
Joined: 02 Dec 2009, 12:01

Re: Shard config for NOTA 1.69

Post by a1983 »

By the way it's the biggest shard ai config ;)
User avatar
PepeAmpere
Posts: 589
Joined: 03 Jun 2010, 01:28

Re: Shard config for NOTA 1.69

Post by PepeAmpere »

a1983 wrote:Cool work, thx Yuritch for awesome AI.
Yes, its working great, NOE needs to attack some innocent worlds to train destruction tactics to become comparable again to this hellmade AI.
User avatar
yuritch
Spring 1944 Developer
Posts: 1018
Joined: 11 Oct 2005, 07:18

Re: Shard config for NOTA 1.69

Post by yuritch »

New version.
- AI can build floating mexes
- AI builders start to retreat to base if damaged (doesn't seem to help them much as most attack units can outrun them)
- some bugs fixed, as usual (and probably some new ones added)
Attachments
Shard_NOTA20130505.7z
Shard config
(14.54 KiB) Downloaded 27 times
User avatar
yuritch
Spring 1944 Developer
Posts: 1018
Joined: 11 Oct 2005, 07:18

Re: Shard config for NOTA 1.69

Post by yuritch »

New build. Now can use bombers (but not fighters). Will build some more long-ranged units when it controls more than half of map (to lay siege to enemy base).
Attachments
Shard_NOTA20130611.7z
(16.06 KiB) Downloaded 28 times
User avatar
MasterZH
Posts: 54
Joined: 29 Aug 2009, 14:44

Re: Shard config for NOTA 1.69

Post by MasterZH »

yuritch wrote:- some bugs fixed, as usual (and probably some new ones added)
hehe :twisted:
To be honest i didnt try AI in years. Perhaps it is right time to give it a shot.
User avatar
yuritch
Spring 1944 Developer
Posts: 1018
Joined: 11 Oct 2005, 07:18

Re: Shard config for NOTA 1.69

Post by yuritch »

New build.
- better bomber target selection
- both ARM and CORE will build T2 bot and veh (before CORE built only T2 bots, ARM only T2 veh)
- T1 veh labs will build Indian/Bulldog if T2 veh prerequisite is met
- T1 air plants will switch to carpet bombers if prereqs are met
Attachments
Shard_NOTA20130619.7z
(16.96 KiB) Downloaded 25 times
User avatar
PepeAmpere
Posts: 589
Joined: 03 Jun 2010, 01:28

Re: Shard config for NOTA 1.69

Post by PepeAmpere »

Keep in mind carpet bombers are units for specific tasks. For one-target-bombing they worse then basic bombers.

Btw do you plan to add ships?

Thx for work!
User avatar
yuritch
Spring 1944 Developer
Posts: 1018
Joined: 11 Oct 2005, 07:18

Re: Shard config for NOTA 1.69

Post by yuritch »

Ships would be hard, since AI needs to detect if this water body is large enough for them or not. My bot can use hovers however, so attacks from water are already possible (hover lab can be built if map has water, but it's a low-priority lab for AI so not 100% of games will see it)

I'll probably change bomber production a bit so that carpet bombers are added to normal ones (and don't replace them completely)

With the way bombers use ExecuteCustomCommand to 'attack ground', it's now possible to implement nukes btw... :evil:
User avatar
yuritch
Spring 1944 Developer
Posts: 1018
Joined: 11 Oct 2005, 07:18

Re: Shard config for NOTA 1.69

Post by yuritch »

New build.

- 1/3 of bombers will be carpet bombers if possible
- yet smarter target selection for bombers (if friendly planes were shot down attacking the target, that sector's priority will be lower for some time)
- ARM T2 bot choices redone
- some bugfixes

Known problems: the bot is indecisive in late game, see screen (4 Shards in a FFA, 1 hour into the game)
Image
Attachments
screen.jpg
FFA for 4 Shard AIs, 1 hour mark
(73.61 KiB) Downloaded 2 times
Shard_NOTA20130620.7z
(17.4 KiB) Downloaded 86 times
User avatar
PepeAmpere
Posts: 589
Joined: 03 Jun 2010, 01:28

Re: Shard config for NOTA 1.69

Post by PepeAmpere »

Hi yuritch, can you pls update Shard AI (contact its creator) or NOTA Shard modul (work for you :) ) that it would work on notAmap.

The problem is, Shard AI makes mexes on bad spots, because there are no spots in time of Initialization of Shard, all metal spots are created when there is gadgets time.

Updated N.O.E. use call-in GamePreload() for updating buildmap and metalmap for its own needs, do pls something similar for Shard.

notAmap (or its derivation) will be main map for all NOTA games, so the update will be appreciated very much

thx.
Attachments
notAmap-0024.sdz
developer version of notAmap for testing purposes. Suggested settin: mapStyle = Mountains
(1.51 MiB) Downloaded 19 times
User avatar
PepeAmpere
Posts: 589
Joined: 03 Jun 2010, 01:28

Re: Shard config for NOTA

Post by PepeAmpere »

One player posted some Shard AI def file on our website, i move it here:
Noob: Here is the shard build list use T1 arm kbot T2 arm Kbot and T3 experimental arm is very agressive and build nearly no defenses (thinking to add some defenses but transportable tower paralise builders because they think it can push itself from where it is this is why fark does not build LLT create a nota folder in shard with others ai and copy thoses textes in this new folder the first part in taskqueues.lua
and the second part in attackers.lua

Code: Select all

--[[
 Task Queues!
]]--

math.randomseed( os.time() )
math.random(); math.random(); math.random()

function CoreWindSolar()
	if game:AverageWind() > 10 then
		return "corwin"
	else
		return "corsolar"
	end
end

function randomLab()
	local r = math.random(0,2)
	if r == 0 then
		return "corlab"
	elseif r == 1 then
		return "corvp"
	else
		return "corap"
	end
end

local corecommanderlist = {
	CoreWindSolar,
	"cormex",
	CoreWindSolar,
	"cormex",
	"cormex",
	randomLab,
	"corllt",
	"corrad",
	CoreWindSolar,
	CoreWindSolar,
	"cormex",
	"cormex",
	"corllt",
	CoreWindSolar,
}
local coreconstructionkbot = {
	CoreWindSolar,
	"cormex",
	CoreWindSolar,
	"cormex",
	"cormex",
	"corllt",
	"corrad",
	CoreWindSolar,
	CoreWindSolar,
	CoreWindSolar,
	CoreWindSolar,
	CoreWindSolar,
	"cormex",
	"cormex",
	"cormex",
	"corllt",
	CoreWindSolar,
}

local armcommander = {
	"armsolar",
	"armmex",
	"armsolar",
	"armmex",
	"armmex",
	"armsolar",
	"armlab",
	"armsolar",
	"armsolar",
	"armfus",
	"armmex",
	"armsolar",
	"armmex",
	"armlab",
	"armrad",
	"armfus",
	"arm2kbot",
	"armfus",
	"arm2kbot",
	"arm2kbot",
	"armlvl2",
}

local armconstructionkbot = {
	"armmex",
	"armsolar",
	"armmex",
	"armsolar",
	"armmex",
	{ action="wait",frames=640},
	"armnanotc",
	"armrad",
	"armsolar",
	"armmex",
	"armsolar",
	"armmex",
	"armmex",
	"armnanotc",
	"armrad",
	"armsolar",
}
local armckbot = {
	"armmex",
	"armnanotc",
	"armrad",
	"armmex",
	"armnanotc",
	"armmex",
	"armnanotc",
	"armmex",
	"armnanotc",
	"armmex",
	"armnanotc",
	"armmex",
	"armnanotc",
	"armmex",
	"armnanotc",
	
}

local corekbotlab = {
	"corck",
	"corck",
	"corck",
	"corak",
	"corak",
	"corak",
	"corak",
	"corak",
	"corak",
	"corak",
	"corak",
	"corak",
	"corak",
	"corak",
	"corak",
	"corak",
	"corak",
	"corak",
	"corak",
}

local armkbotlab = {
	"armfark",
	"armjeth",
	"armham",
	"armpw",
	"armham",
	"armrock",
	"armpw",
	"armrock",
	"armpw",
	"armjeth",
	"armpw",
	"armfast",
	"armpw",
	"armsnipe",
	"armpw",
	"armzeus",
	"armzeus",
	"armzeus",
	"armfast",
	"armpw",
	"armsnipe",
	"armpw",
	"armzeus",
	"armpw",
	"armham",
	"armrock",
	"armpw",
	"armfast",
	"armpw",
	"armsnipe",
	"armpw",
	"armzeus",
	"armpw",
	"armham",
	"armrock",
	"armpw",
}
local newarmkbotlab = {
	"armfast",
	"armpw",
	"armsnipe",
	"armpw",
	"armzeus",
	"armpw",
	"armham",
	"armrock",
	"armpw",
}
local armnano = {
	"armmakr",
	"armmakr",
	"armmakr",
	"armfus",
	"armrl",
	"armflak",
	"armlab",
	"armguard",
	"armmakr",
	"armfus",
	"armmakr",
	"armmakr",
	"armhlt",
	"armfus",
	"armmakr",
	"armmakr",
	"armfus",
	"armmakr",
	"armmakr",
	"armlvl2",
	
}
local armlvl2kabot = {
	"armllt",
	"armalab",
	"armmfus",
	"armmmkr",
	"armmfus",
	"armmmkr",
	"armalab",
	"armguard",
	"armrad",
	"armmmkr",
	"armmfus",
	"armmmkr",
	"armmfus",
	"armmmkr",
	"armmfus",
	"armmmkr",
}
local armaKbotlaboratory = {
	"armdrone",
	"armdrone",
	"armfido",
	"armfido",
	"armdrone",
	"raptoriv",
	"raptoriv",
	"armodd",
	"armdrone",
	"armdrone",
	"armfido",
	"armfido",
	"armdrone",
	"raptoriv",
	"raptoriv",
	"armodd",
	"armfido",
	"armfido",
	"armdrone",
	"raptoriv",
	"raptoriv",
	"armodd",
	"armfido",
	"armfido",
	"armdrone",
	"raptoriv",
	"raptoriv",
	"armodd",
}
local armT3 = {
	"armmfus",
	"armhklab",
	"armhklab",
	"armmmkr",
	"armmfus",
	"armmmkr",
	"armbrtha",
	"armhklab",
	"armmmkr",
	"armmfus",
	"armmmkr",
	"armmfus",
	"armbrtha",
	"armmfus",
	"armmfus",
	"armmfus",
	"armmfus",
	"armhklab",
}
local armpodlab = {
	"armpod",
}

local function armckb()
	if ai.kbotfirst == true then
		if math.random(0,5) == 0 then
		return armconstructionkbot
		else
		return armckbot
		end
   else
      ai.kbotfirst = true
      return armconstructionkbot
   end
end
local function armkbotlabu()
	if ai.kbotlabfirst == true then
		if math.random(0,5) == 0 then
		return armkbotlab
		else
		return newarmkbotlab
		end
   else
      ai.kbotlabfirst = true
      return armkbotlab
   end
end

taskqueues = {
	-- unittype = tasklist,
	corcom = corecommanderlist,
	-- we can assign 1 list, to multiple unit types, here a construction kbot (corck) gets the construction kbot tasklist, but then we assign it to the construction vehicle too (corcv))
	corck = coreconstructionkbot,
	corcv = coreconstructionkbot,
	armcom = armcommander,
	armbase = armcommander,
	armfark = armckb,
	corlab = corekbotlab,
	armlab = armkbotlabu,
	armnanotc = armnano,
	arm2kbot = armlvl2kabot,
	armalab = armaKbotlaboratory,
	armlvl2 = armT3,
	armhklab = armpodlab

}
--[[
Attackers!
]]--

attackerlist = {
	"corak",
	"armpw",
	"armjeth",
	"armodd",
	"armdrone",
	"armfido",
	"armfast",
	"armrock",
	"armraz",
	"armzeus",
	"armsnipe",
	"raptoriv",
	"corgator",
	"corthud",
	"corkrog",
	"armham",
	"armpod",
	"corraid",
}
User avatar
yuritch
Spring 1944 Developer
Posts: 1018
Joined: 11 Oct 2005, 07:18

Re: Shard config for NOTA

Post by yuritch »

That seems very simple. Can't test it vs my config at the moment, will need to use 2 computers to host bots.
User avatar
PepeAmpere
Posts: 589
Joined: 03 Jun 2010, 01:28

Re: Shard config for NOTA

Post by PepeAmpere »

yuritch wrote:That seems very simple. Can't test it vs my config at the moment, will need to use 2 computers to host bots.
i know, i checked your discussion with AF. No idea how good this AI def is, i just copied the file from website. :)

You can react to author on this link http://nota.machys.net/another-duel
User avatar
yuritch
Spring 1944 Developer
Posts: 1018
Joined: 11 Oct 2005, 07:18

Re: Shard config for NOTA

Post by yuritch »

What this config lacks (solely from reading it, still haven't tested in game):

- mex upgrading
- any kind of anti-bomber AA (and antinuke for that matter, NOE likes to nuke things if game gets long)
- limits on buildings! (this one is important, it will have all it's 500 units limit used by buildings quite fast)
User avatar
yuritch
Spring 1944 Developer
Posts: 1018
Joined: 11 Oct 2005, 07:18

Re: Shard config for NOTA

Post by yuritch »

I was able to run 2 different Shards on 1 machine. Here's how (assuming windows, not sure this will work on linux):

1. Find spring\ai\skirmish\shard folder
2. Copy (not rename) that folder to shard2
3. Go into spring\ai\skirmish\shard2\dev folder, find aiinfo.lua file there, open with text editor (someting like notepad, np++, NOT MSWord)
4. Replace all mentions of Shard in that file with Shard2.

Done, now you have 2 different Shards at once, so you can test different configs.

The simple config from posts above works, but it loses to my config. Maybe if given enough time to actually reach those T3 units, it could fight back, but right now it goes for fusions and other expensive stuff too fast -> not enough spam -> lose.
User avatar
PepeAmpere
Posts: 589
Joined: 03 Jun 2010, 01:28

Re: Shard config for NOTA

Post by PepeAmpere »

Thx for manual, in October will be more time (at least on my side) to make some AI contest.
User avatar
zoggop
Posts: 289
Joined: 07 Sep 2010, 18:47

Re: Shard config for NOTA

Post by zoggop »

nice work! i've been using your config as a starting point for a BA shard config

https://github.com/zoggop/yuri2BA/tree/master/ai/BA
Post Reply

Return to “NOTA”