genetic algorithm on shard

genetic algorithm on shard

Here is where ideas can be collected for the skirmish AI in development

Moderators: hoijui, Moderators

User avatar
prandipadaro
Posts: 98
Joined: 19 Oct 2011, 22:38

genetic algorithm on shard

Post by prandipadaro »

Hi all,

So I'd like to play around with Shard, my goal would be to change shard adding a genetic algorithm. I worked with some very simple genetic algorithms, I have made some able to simulate the evolution of some forms of simulated life, so I think I could do the same with an artificial intelligence of spring.

I think I try shard for two reasons:
First, shard is written in lua, and I begin to understand something of lua.
Second, shard is built to work with different games, so I could do a job which in turn would be valid for different games.

So I began to write the first part of this experiment, I can orient myself in spring in a rather vague manner and I need some advice.

I need to get at the end of each game a lot of information on the performance of shard, for example if you have had excess or lack of resources, it has destroyed many units, or if you have had so many idle units.

where I find all this information?

Thanks in advance
abma
Spring Developer
Posts: 3798
Joined: 01 Jun 2009, 00:08

Re: genetic algorithm on shard

Post by abma »

prandipadaro wrote:where I find all this information?
basicly you need to collect this information.
prandipadaro wrote:if you have had excess or lack of resources
these should be collected in the gameframe event i guess.
prandipadaro wrote:it has destroyed many units
see unitcreated / unitdestroyed events
prandipadaro wrote:if you have had so many idle units.
thats imo harder, you need to track units which received the unitfinished command but didn't receive a new order.


at the end of the game some statistics exist (endgraph) but afaik these doesn't contain this info.
User avatar
FLOZi
MC: Legacy & Spring 1944 Developer
Posts: 6240
Joined: 29 Apr 2005, 01:14

Re: genetic algorithm on shard

Post by FLOZi »

User avatar
prandipadaro
Posts: 98
Joined: 19 Oct 2011, 22:38

Re: genetic algorithm on shard

Post by prandipadaro »

thanks abma for fast reply
abma wrote: at the end of the game some statistics exist (endgraph) but afaik these doesn't contain this info.
how can I get this endgraph? Maybe here is some useful information, at least for the first attempt
FLOZi wrote: There is UnitIdle callin https://springrts.com/wiki/Lua:Callins#API:UnitIdle
thanks flozi I watch now
User avatar
zwzsg
Kernel Panic Co-Developer
Posts: 7049
Joined: 16 Nov 2004, 13:08

Re: genetic algorithm on shard

Post by zwzsg »

prandipadaro wrote:First, shard is written in lua, and I begin to understand something of lua.
Shard is not written in Lua. Shard is written in C++. With some configuration and callins in Lua.
abma
Spring Developer
Posts: 3798
Joined: 01 Jun 2009, 00:08

Re: genetic algorithm on shard

Post by abma »

how can I get this endgraph?
you'll see it when gameover event is called, most games implement it. to see it, just start a game, self-d all your units and you should see it :)

FLOZi wrote:There is UnitIdle callin https://springrts.com/wiki/Lua:Callins#API:UnitIdle
careful with mixing lua call ins and callins in shard. they are not the same :)

but this callin exists in Shard, too:

https://github.com/Tarendai/Shard/blob/ ... ai.lua#L90

thanks for the hint, i didn't write ai stuff for a long while :-|
Shard is not written in Lua. Shard is written in C++. With some configuration and callins in Lua.
exactly, now the information is complete i guess :)
User avatar
prandipadaro
Posts: 98
Joined: 19 Oct 2011, 22:38

Re: genetic algorithm on shard

Post by prandipadaro »

abma wrote:you'll see it when gameover event is called, most games implement it. to see it, just start a game, self-d all your units and you should see it :)
I know this information, but I should have them automatically, I can not read them and compile them every time. there is a command or a call to get them?
abma
Spring Developer
Posts: 3798
Joined: 01 Jun 2009, 00:08

Re: genetic algorithm on shard

Post by abma »

prandipadaro wrote:I know this information, but I should have them automatically, I can not read them and compile them every time. there is a command or a call to get them?
idk if you can easly access them within shard... wait for the GameOver event and there you can should be able to call the GetTeamStatsHistory callin (if it exists in shard).

afaik the data from GetTeamStatsHistory isn't accessable until the game ended.
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: genetic algorithm on shard

Post by PicassoCT »

mmh.. you can run spring headless though.. pre-game.. to gain info on player performance
User avatar
prandipadaro
Posts: 98
Joined: 19 Oct 2011, 22:38

Re: genetic algorithm on shard

Post by prandipadaro »

PicassoCT wrote:mmh.. you can run spring headless though.. pre-game.. to gain info on player performance
you can explain? I did not understand!
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: genetic algorithm on shard

Post by PicassoCT »

There is a headless version of spring, which basically is spring running the full simulation without the graphics and widgets. Its fast. Used for unit-testing in the C++ buildsystem of the engine.
You can activate it by setting spring-settings headleass to 1

PS: You could have your AI perform against a player on same map in replays ?
User avatar
Anarchid
Posts: 1384
Joined: 30 Nov 2008, 04:31

Re: genetic algorithm on shard

Post by Anarchid »

You can activate it by setting spring-settings headleass to 1
Incorrect: the way to activate spring-headless is to launch `spring-headless` executable instead of `spring` executable.
pre-game.. to gain info on player performance
Translation: "you can execute saved replays in headless mode prior to the match to extract player data such as unit choice, behaviours, and outcomes of actions, in a somewhat efficient fashion".
PS: You could have your AI perform against a player on same map in replays ?
Translation: "you can then ensure that the AI has learned stuff by checking its performance in the environment where it was trained".

IMO, a better idea is to train against other AI types first. Humans carry an immense archive of cognitive tricks in their heads, so you won't be winning anytime soon against those.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: genetic algorithm on shard

Post by AF »

In order to test Shards effectiveness during development, I wrote a lua widget that outputted information to a csv file at the end of the game that was separate from the AI. It put down who won the game, the map, how many players etc. Then I inputted it all into a spreadsheet and used it to derive conclusions for the write up

Something similar would be useful for yourself.

For testing, I had a basic shell script that ran the same command 100 times to start spring with a specified starting script.txt, which specified the AIs, the map, etc

Also thanks for picking my AI :)
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: genetic algorithm on shard

Post by AF »

Anarchid wrote:IMO, a better idea is to train against other AI types first. Humans carry an immense archive of cognitive tricks in their heads, so you won't be winning anytime soon against those.
Here's Shard kicking the asses off of the top players and the dev of EvoRTS
User avatar
Anarchid
Posts: 1384
Joined: 30 Nov 2008, 04:31

Re: genetic algorithm on shard

Post by Anarchid »

Here's Shard kicking the asses off of the top players and the dev of EvoRTS
That probably took a bit to achieve, also that when everyone sucked :P

Still, would +1 if forum had it. Seeing AI perform is amazing.
User avatar
prandipadaro
Posts: 98
Joined: 19 Oct 2011, 22:38

Re: genetic algorithm on shard

Post by prandipadaro »

AF wrote:In order to test Shards effectiveness during development, I wrote a lua widget that outputted information to a csv file at the end of the game that was separate from the AI
that's just what I do, but I need a guide to follow. In particular, I need to know which is the directory where I have to put the script and other information on its structure.
AF wrote:Also thanks for picking my AI :)
really thanks to you
PicassoCT wrote:There is a headless version of spring, which basically is spring running the full simulation without the graphics and widgets. Its fast. Used for unit-testing in the C++ buildsystem of the engine.
tonight I'll try certainly

full ahead
User avatar
prandipadaro
Posts: 98
Joined: 19 Oct 2011, 22:38

Re: genetic algorithm on shard

Post by prandipadaro »

i try now the spring-headless
-generate a script.txt by starting a singleplayer through springlobby
-copied this script.txt in ./spring
launch by spring or spring-headless /.spring/engine/98.0/script.txt

give error

PANIC: unprotected error in call to Lua API (attempt to index a nil value)
Errore di segmentazione (core dump creato)

segmentation error
abma
Spring Developer
Posts: 3798
Joined: 01 Jun 2009, 00:08

Re: genetic algorithm on shard

Post by abma »

full infolog.txt would be useful... and/or the used script.txt
User avatar
prandipadaro
Posts: 98
Joined: 19 Oct 2011, 22:38

Re: genetic algorithm on shard

Post by prandipadaro »

script.txt

Code: Select all

[GAME]
{
	HostIP=;
	HostPort=8452;
	IsHost=1;
	MyPlayerName=Player;

	ModHash=3746332742;
	MapHash=4141529267;
	Mapname=Altair_Crossing-V1;
	GameType=Balanced Annihilation V8.17;

	startpostype=3;
	[mapoptions]
	{
	}
	[modoptions]
	{
		relayhoststartpostype=3;
		disablemapdamage=0;
		fixedallies=1;
		mo_comgate=0;
		mo_coop=0;
		mo_enemycomcount=0;
		mo_newbie_placer=0;
		mo_no_close_spawns=1;
		mo_noowner=0;
		mo_preventcombomb=0;
		shareddynamicalliancevictory=0;
		maxspeed=3;
		maxunits=500;
		minspeed=0.3;
		mo_armageddontime=0;
		startenergy=1000;
		startmetal=1000;
		deathmode=com;
		mo_transportenemy=none;
		pathfinder=normal;
	}
	NumRestrictions=0;
	[RESTRICT]
	{
	}

	NumPlayers=1;
	NumUsers=2;

	[PLAYER1]
	{
		Name=Player;
		CountryCode=;
		Spectator=0;
		Rank=0;
		IsFromDemo=0;
		Team=1;
	}
	[AI0]
	{
		Name=Bot1;
		ShortName=Shard;
		Version=dev;
		Team=0;
		IsFromDemo=0;
		Host=1;
		[Options]
		{
		}
	}

	[TEAM0]
	{
		TeamLeader=1;
		StartPosX=3755;
		StartPosZ=2037;
		AllyTeam=1;
		RGBColor=0.976471 1 0;
		Side=ARM;
		Handicap=0;
	}
	[TEAM1]
	{
		TeamLeader=1;
		StartPosX=496;
		StartPosZ=1924;
		AllyTeam=0;
		RGBColor=1 0.286275 0;
		Side=ARM;
		Handicap=0;
	}

	[ALLYTEAM1]
	{
		NumAllies=0;
	}
	[ALLYTEAM0]
	{
		NumAllies=0;
	}
}

Unfortunately, spring does not generate infolog.txt in 98.0 engine that I'm using right now. And I do not understand why.

Can I just copy and paste the output terminal


Code: Select all

p@p-Studio-1537:~$ spring-headless /home/p/.spring/engine/96.0/script.txt 
[ParseCmdLine] command-line args: "spring-headless /home/p/.spring/engine/96.0/script.txt"
Using configuration source: "/home/p/.config/spring/springsettings.cfg"
Available log sections: KeyBindings, Sound, Font, AutohostInterface, Net, VFS, Texture, Path, CSMFGroundTextures, RoamMeshDrawer, BumpWater, DynWater, SkyBox, DecalsDrawerGL4, FarTextureHandler, Shader, Piece, Model, ModelDrawer, OBJParser, WorldObjectModelRenderer, GroundMoveType, UnitScript, CregSerializer, ArchiveScanner, LuaSocket
Enabled log sections: Sound(LOG_LEVEL_INFO)
Enable or disable log sections using the LogSections configuration key
  or the SPRING_LOG_SECTIONS environment variable (both comma separated).
  Use "none" to disable the default log sections.
LogOutput initialized.
Spring 96.0 (Headless)
Build date/time: Feb 16 2014 17:59:11
Build environment: boost-105400, GNU libstdc++ version 20140211
Compiler: gcc-4.8.2
OS: Linux 3.13.0-27-generic #50-Ubuntu SMP Thu May 15 18:06:16 UTC 2014 x86_64
OS: 64bit native mode
[CMyMath::Init] CPU SSE mask: 126, flags:
        SSE 1.0:  1,  SSE 2.0:  1
        SSE 3.0:  1, SSSE 3.0:  1
        SSE 4.1:  1,  SSE 4.2:  0
        SSE 4.0A: 0,  SSE 5.0A: 0
        using streflop SSE FP-math mode, CPU supports SSE instructions
Supported Video modes: No modes available!
[SetSDLVideoMode] video mode set to 512x512/0bit (windowed)
[WatchDogInstall] Installed (HangTimeout: 10sec)
[ThreadPool::SetThreadCount][1] #wanted=2 #current=1
[ThreadPool::SetThreadCount][2] #threads=1
Using read-write data directory: /home/p/.config/spring/
Using read-only data directory: /home/p/.spring/
Using read-only data directory: /usr/share/games/spring/
Using read-only data directory: /usr/lib/spring/
Scanning: /usr/share/games/spring/base
Scanning: /home/p/.spring/maps
Scanning: /home/p/.spring/games
Scanning: /home/p/.spring/packages
[ThreadPool::SetThreadCount][1] #wanted=1 #current=2
[ThreadPool::SetThreadCount][2] #threads=0
[Threading] Main thread CPU affinity mask set: 3
[f=0000000] SDL version:  0.0.0
[f=0000000] GL version:   
[f=0000000] GL vendor:    
[f=0000000] GL renderer:  
[f=0000000] GLSL version: 
[f=0000000] GLEW version: spring headless stub GLEW version
[f=0000000] Video RAM:    unknown
[f=0000000] GL info:
        haveARB: 0, haveGLSL: 0, ATI hacks: 0
        FBO support: 0, NPOT-texture support: 1, 24bit Z-buffer support: 0
        maximum texture size: 2048, compress MIP-map textures: 0
        maximum SmoothPointSize: 0, maximum vec4 varying/attributes: 0/0
        maximum drawbuffers: 0, maximum recommended indices/vertices: 0/0
        number of UniformBufferBindings: 0 (0kB)
[f=0000000] VSync disabled
[f=0000000] Joysticks found: 0
[f=0000000] Warning: Joystick 0 not found
[f=0000000] [Initialize] CPU Clock: std::chrono::high_resolution_clock
[f=0000000] [Initialize] CPU Cores: 2
[f=0000000] [Startup] loading startscript from: /home/p/.spring/engine/96.0/script.txt
[f=0000000] Connecting to local server
[f=0000000] Binding UDP socket to IP (v6) :: port 8452
[f=0000000] [UDPListener] successfully bound socket on port 8452
[f=0000000] [AutohostInterface] Error: Failed to send buffer; the autohost may not be reachable: send: Connection refused
[f=0000000] PreGame::StartServer: 3 ms
[f=0000000] Using map: Altair_Crossing-V1
[f=0000000] Using game: Balanced Annihilation V8.17
[f=0000000] Using game archive: anims.sdz
[f=0000000] recording demo: demos/20150604_213649_Altair_Crossing-V1_96.sdf
[f=0000000] PreGame::GameDataReceived: 46 ms
[f=0000000] [PreGame::UpdateClientNet] user number 0 (team 1, allyteam 0)
[f=0000000] Warning: MapInfo.lua: Incorrect value "groundShadowDensity=1.950000"! Clamping to 0..1 range!!
[f=0000000] [LuaIntro] Searching for new Widgets
[f=0000000] [LuaIntro] Scanning: LuaIntro/Addons/
[f=0000000] [LuaIntro] Scanning: LuaIntro/Widgets/
[f=0000000] [LuaIntro] Scanning: LuaIntro/SystemAddons/
[f=0000000] [LuaIntro] Scanning: LuaIntro/SystemWidgets/
[f=0000000] [LuaIntro] Scanning: LuaIntro/chili/
[f=0000000] [LuaIntro] Found new widget "SpringLogo"
[f=0000000] [LuaIntro] Found new widget "LoadTexture"
[f=0000000] [LuaIntro] Found new widget "LoadProgress"
[f=0000000] [LuaIntro] Found new widget "Main"
[f=0000000] [LuaIntro] Found new widget "Music"
[f=0000000] [LuaIntro] Loading widgets   <>=vfs  **=raw  ()=unknown
[f=0000000] [LuaIntro] Loading widget:      Engine Taskbar Stuff   <engine_taskbar_control.lua>
[f=0000000] [LuaIntro] Loading widget:      LoadProgress           <loadprogress.lua>
[f=0000000] [LuaIntro] Loading widget:      Main                   <main.lua>
[f=0000000] [LuaIntro] Loading widget:      Music                  <music.lua>
[f=0000000] [LuaIntro] Loading widget:      LoadTexture            <bg_texture.lua>
[f=0000000] [LuaIntro] LuaIntro v1.0 (Lua 5.1)
[f=0000000] LoadingScreen: single-threaded
[f=0000000] Parsing Map Information
[f=0000000] Loading SMF
[f=0000000] Loading Map (25 MB)
[f=0000000] Loading Radar Icons
[f=0000000] Loading GameData Definitions
[f=0000000] Loading all definitions:  0.211000
[f=0000000] Game::LoadDefs (GameData): 261 ms
[f=0000000] Loading Sound Definitions
[f=0000000] Game::LoadDefs (Sound): 0 ms
[f=0000000] Creating Smooth Height Mesh
[f=0000000] SmoothHeightMesh::MakeSmoothMesh: 23 ms
[f=0000000] Creating QuadField & CEGs
[f=0000000] [CDamageArrayHandler] number of ArmorDefs: 11
[f=0000000] [RegisterAssimpModelFormats] supported Assimp model formats: *.3ds;*.blend;*.dae;*.lwo;
[f=0000000] Creating Unit Textures
[f=0000000] Creating Sky
[f=0000000] Loading Weapon Definitions
[f=0000000] Warning: Could not load sound from def: uwlasrfir1
[f=0000000] Warning: Could not load sound from def: uwlasrfir1
[f=0000000] Loading Unit Definitions
[f=0000000] Loading Feature Definitions
[f=0000000] Reading Estimate PathCosts [8]
[f=0000000] Reading Estimate PathCosts [32]
[f=0000000] [CPathManager] pathing data checksum: 95306a14
[f=0000000] [IPathManager::GetInstance] using DEFAULT path-manager
[f=0000000] Initializing Map Features
[f=0000000] Creating ShadowHandler & DecalHandler
[f=0000000] Creating GroundDrawer
[f=0000000] Loading Map Tiles
[f=0000000] Loading Square Textures
[f=0000000] CSMFGroundTextures::ConvolveHeightMap: 1 ms
[f=0000000] Switching to ROAM Mesh Rendering
[f=0000000] Set ROAM mode to DisplayLists
[f=0000000] Creating TreeDrawer
[f=0000000] Creating ProjectileDrawer & UnitDrawer
[f=0000000] Creating Projectile Textures
[f=0000000] Creating Water
[f=0000000] Game::LoadInterface (Camera&Mouse): 20 ms
[f=0000000] Game::LoadInterface (Console): 0 ms
[f=0000000] Error: KeySet: Hex value out of range: 0xff61
[f=0000000] [KeyBindings] Warning: AddKeySymbol: could not parse key: 0xff61
[f=0000000] Error: KeySet: Bad keysym: squadwait
[f=0000000] [KeyBindings] Warning: Bind: could not parse key: SquadWait
[f=0000000] Error: KeySet: Bad keysym: timewait
[f=0000000] [KeyBindings] Warning: Bind: could not parse key: timewait
[f=0000000] Loading LuaRules
[f=0000000] Loaded synced gadget:  Metalspot Finder Gadget  <mex_spot_finder.lua>
[f=0000000] Loaded synced gadget:  Rez Exp             <unit_rez_exp.lua>
[f=0000000] Loaded synced gadget:  ranks api           <api_ranks.lua>
[f=0000000] Loaded synced gadget:  CameraBroadcast     <camera_lockcamera.lua>
[f=0000000] Loaded synced gadget:  Awards              <gui_awards.lua>
[f=0000000] Loaded synced gadget:  Newbie Info         <gui_newbie_info.lua>
[f=0000000] Loaded synced gadget:  Air Release         <unit_air_release_manager.lua>
[f=0000000] Loaded synced gadget:  AirPlantParents     <unit_air_plants.lua>
[f=0000000] Loaded synced gadget:  Bomber Control      <unit_bomber_control.lua>
[f=0000000] Loaded synced gadget:  Cancel orders on share  <unit_cancel_orders_on_share.lua>
[f=0000000] Loaded synced gadget:  Commander Blast     <unit_commander_blast.lua>
[f=0000000] Loaded synced gadget:  Commando Watch      <unit_commando_watch.lua>
[f=0000000] Loaded synced gadget:  Cursor Broadcast    <cmd_mouse_pos_broadcast.lua>
[f=0000000] Loaded synced gadget:  DGun CmdType Fix    <unit_dgun_cmdtype_fix.lua>
[f=0000000] Loaded synced gadget:  Death Messages      <game_death_messages.lua>
[f=0000000] Loaded synced gadget:  Debris Damage       <unit_debris_damage.lua>
[f=0000000] Loaded synced gadget:  Depthcharge splash  <fx_depthcharge_splash.lua>
[f=0000000] Loaded synced gadget:  Dev Helper Cmds     <cmd_dev_helpers.lua>
[f=0000000] Loaded synced gadget:  DirectControl       <unit_direct_control.lua>
[f=0000000] Loaded synced gadget:  DragonsDisguise     <unit_set_neutral.lua>
[f=0000000] Loaded synced gadget:  Dynamic collision volume & Hitsphere Scaledown  <unit_dynamic_collision_volume.lua>
[f=0000000] Loaded synced gadget:  Energy Conversion   <game_energy_conversion.lua>
[f=0000000] Loaded synced gadget:  FinishedBuilding    <unit_finished_building.lua>
[f=0000000] Loaded synced gadget:  Fortification Walls  <unit_fort_walls.lua>
[f=0000000] Loaded synced gadget:  Game End            <game_end.lua>
[f=0000000] Loaded synced gadget:  Initial Spawn       <game_initial_spawn.lua>
[f=0000000] Loaded synced gadget:  Juno Damage         <unit_juno_damage.lua>
[f=0000000] Loaded synced gadget:  Lightning Spash Damage  <unit_lightning_splash_dmg.lua>
[f=0000000] Loaded synced gadget:  Limit Dgun Use (Charge)  <unit_dgun_charge.lua>
[f=0000000] Loaded synced gadget:  Lua unit script framework  <unit_script.lua>
[f=0000000] Loaded synced gadget:  LuaUI Reload        <cmd_luaui_reload.lua>
[f=0000000] Loaded synced gadget:  Maverick Exp        <unit_maverick_exp.lua>
[f=0000000] Loaded synced gadget:  Merc/Scr stockpile control  <unit_mercscr_stockpile_limit.lua>
[f=0000000] Loaded synced gadget:  Napalm              <lups_napalm.lua>
[f=0000000] Loaded synced gadget:  No Land Damage      <unit_no_land_damage.lua>
[f=0000000] Loaded synced gadget:  No Self Pwn         <unit_noselfpwn.lua>
[f=0000000] Loaded synced gadget:  No Share Self-D     <unit_prevent_share_self_d.lua>
[f=0000000] Loaded synced gadget:  Nonblocking mines   <unit_nonblocking_mines.lua>
[f=0000000] Loaded synced gadget:  Paralyse Multiplier  <unit_paralyze_multiplier.lua>
[f=0000000] Loaded synced gadget:  Passive Builders v3  <unit_passive_builders.lua>
[f=0000000] Loaded synced gadget:  PopUpWaterStructures  <unit_pop_up_water_structures.lua>
[f=0000000] Loaded synced gadget:  Prevent Excessive Share  <game_prevent_excessive_share.lua>
[f=0000000] Loaded synced gadget:  Prevent Lab Hax     <unit_prevent_lab_hax.lua>
[f=0000000] Loaded synced gadget:  Prevent Load Hax    <unit_prevent_load_hax.lua>
[f=0000000] Loaded synced gadget:  Prevent Range Hax   <unit_prevent_range_hax.lua>
[f=0000000] Loaded synced gadget:  Prevent Strange Orders  <unit_prevent_strange_orders.lua>
[f=0000000] Loaded synced gadget:  Prevent Unload Hax  <unit_prevent_unload_hax.lua>
[f=0000000] Loaded synced gadget:  Prevent outside-of-map hax  <unit_prevent_aircraft_hax.lua>
[f=0000000] Loaded synced gadget:  Reclaim Fix         <unit_reclaim_fix.lua>
[f=0000000] Loaded synced gadget:  Reclaim flash       <gfx_reclaim_flash.lua>
[f=0000000] Loaded synced gadget:  Shockwaves          <lups_shockwaves.lua>
[f=0000000] Loaded synced gadget:  Stealthy Passengers  <unit_stealthy_passengers.lua>
[f=0000000] Loaded synced gadget:  Stop Self D         <cmd_stop_self_d.lua>
[f=0000000] Loaded synced gadget:  Stun Control        <unit_stun_control.lua>
[f=0000000] Loaded synced gadget:  Target on the move  <unit_target_on_the_move.lua>
[f=0000000] Loaded synced gadget:  Team Resourcing     <game_team_resources.lua>
[f=0000000] Loaded synced gadget:  Transportee Hider   <unit_transportee_hider.lua>
[f=0000000] Loaded synced gadget:  Unit transportable nanos  <unit_transportable_nanos.lua>
[f=0000000] Loaded synced gadget:  Watereffects        <fx_watersplash.lua>
[f=0000000] Loaded synced gadget:  fx_reclaim_shards   <fx_reclaim_shards.lua>
[f=0000000] Loaded synced gadget:  fx_wreck_shards     <fx_wreck_shards.lua>
[f=0000000] Loaded synced gadget:  game_no_share_to_enemy  <game_no_share_to_enemy.lua>
[f=0000000] Loaded synced gadget:  gfx_dynamic_lighting.lua  <gfx_dynamic_lighting.lua>
[f=0000000] Loaded synced gadget:  lib_startpoint_guesser.lua  <lib_startpoint_guesser.lua>
[f=0000000] Loaded synced gadget:  lups_wrapper.lua    <lups_wrapper.lua>
[f=0000000] Loaded synced gadget:  mo_preventcombomb   <mo_preventcombomb.lua>
[f=0000000] Loaded synced gadget:  subMissile splash   <fx_submissile_splash.lua>
[f=0000000] Loaded synced gadget:  transportfix        <unit_transportfix.lua>
[f=0000000] Loaded synced gadget:  unit_combomb_full_damage  <unit_combomb_full_damage.lua>
[f=0000000] Loaded synced gadget:  Area Attack         <unit_areaattack.lua>
[f=0000000] Loaded synced gadget:  CustomUnitShaders   <gfx_customunitshaders.lua>
[f=0000000] Loaded synced gadget:  Take Manager        <cmd_idle_players.lua>
[f=0000000] Loaded synced gadget:  Team Com Ends       <game_team_com_ends.lua>
[f=0000000] Loaded synced gadget:  Substitution        <game_replace_afk_players.lua>
[f=0000000] Loaded synced gadget:  LupsSyncedManager   <lups_manager.lua>
[f=0000000] Loaded synced gadget:  Mex Upgrader Gadget  <unit_mex_upgrader.lua>
[f=0000000] Loaded synced gadget:  Crashing Aircraft   <unit_crashing_aircraft.lua>
[f=0000000] <LockCamera>: Sorry for the camera switch spam, but this is the only reliable way to list camera states other than hardcoding them
[f=0000000] Switching to Overview style camera
[f=0000000] Switching to Smooth style camera
[f=0000000] Switching to Overhead (TA) style camera
[f=0000000] Switching to Free style camera
[f=0000000] Switching to Total War style camera
[f=0000000] Switching to Rotatable overhead camera
[f=0000000] Switching to Orbit style camera
[f=0000000] Switching to FPS style camera
[f=0000000] Switching to Smooth style camera
[f=0000000] Loaded unsynced gadget:  Metalspot Finder Gadget  <mex_spot_finder.lua>
[f=0000000] Loaded unsynced gadget:  ranks api           <api_ranks.lua>
[f=0000000] Loaded unsynced gadget:  CustomIcons         <unit_customicons.lua>
[f=0000000] Loaded unsynced gadget:  CameraBroadcast     <camera_lockcamera.lua>
[f=0000000] Loaded unsynced gadget:  Awards              <gui_awards.lua>
[f=0000000] Loaded unsynced gadget:  Newbie Info         <gui_newbie_info.lua>
[f=0000000] Loaded unsynced gadget:  Air Release         <unit_air_release_manager.lua>
[f=0000000] Loaded unsynced gadget:  AirPlantParents     <unit_air_plants.lua>
[f=0000000] Loaded unsynced gadget:  Cancel orders on share  <unit_cancel_orders_on_share.lua>
[f=0000000] Loaded unsynced gadget:  Cursor Broadcast    <cmd_mouse_pos_broadcast.lua>
[f=0000000] Loaded unsynced gadget:  Debris Damage       <unit_debris_damage.lua>
[f=0000000] Loaded unsynced gadget:  Dev Helper Cmds     <cmd_dev_helpers.lua>
[f=0000000] Loaded unsynced gadget:  DragonsDisguise     <unit_set_neutral.lua>
[f=0000000] Loaded unsynced gadget:  Dynamic collision volume & Hitsphere Scaledown  <unit_dynamic_collision_volume.lua>
[f=0000000] Loaded unsynced gadget:  FinishedBuilding    <unit_finished_building.lua>
[f=0000000] Loaded unsynced gadget:  Fortification Walls  <unit_fort_walls.lua>
[f=0000000] Loaded unsynced gadget:  Initial Spawn       <game_initial_spawn.lua>
[f=0000000] Loaded unsynced gadget:  Juno Damage         <unit_juno_damage.lua>
[f=0000000] Loaded unsynced gadget:  Lightning Spash Damage  <unit_lightning_splash_dmg.lua>
[f=0000000] Loaded unsynced gadget:  Limit Dgun Use (Charge)  <unit_dgun_charge.lua>
[f=0000000] Loaded unsynced gadget:  LuaUI Reload        <cmd_luaui_reload.lua>
[f=0000000] Loaded unsynced gadget:  Merc/Scr stockpile control  <unit_mercscr_stockpile_limit.lua>
[f=0000000] Loaded unsynced gadget:  Napalm              <lups_napalm.lua>
[f=0000000] Loaded unsynced gadget:  No Share Self-D     <unit_prevent_share_self_d.lua>
[f=0000000] Loaded unsynced gadget:  Opacity control     <api_opacity.lua>
[f=0000000] Loaded unsynced gadget:  PopUpWaterStructures  <unit_pop_up_water_structures.lua>
[f=0000000] Loaded unsynced gadget:  Prevent Unload Hax  <unit_prevent_unload_hax.lua>
[f=0000000] Loaded unsynced gadget:  Reclaim Fix         <unit_reclaim_fix.lua>
[f=0000000] Loaded unsynced gadget:  Reclaim flash       <gfx_reclaim_flash.lua>
[f=0000000] Loaded unsynced gadget:  Shockwaves          <lups_shockwaves.lua>
[f=0000000] Loaded unsynced gadget:  Stop Self D         <cmd_stop_self_d.lua>
[f=0000000] Loaded unsynced gadget:  Target on the move  <unit_target_on_the_move.lua>
[f=0000000] Loaded unsynced gadget:  Transportee Hider   <unit_transportee_hider.lua>
[f=0000000] Loaded unsynced gadget:  fx_reclaim_shards   <fx_reclaim_shards.lua>
[f=0000000] Loaded unsynced gadget:  fx_wreck_shards     <fx_wreck_shards.lua>
[f=0000000] Loaded unsynced gadget:  game_no_share_to_enemy  <game_no_share_to_enemy.lua>
[f=0000000] Loaded unsynced gadget:  gfx_dynamic_lighting.lua  <gfx_dynamic_lighting.lua>
[f=0000000] Loaded unsynced gadget:  lib_startpoint_guesser.lua  <lib_startpoint_guesser.lua>
[f=0000000] Loaded unsynced gadget:  mo_noowner          <mo_noowner.lua>
[f=0000000] Loaded unsynced gadget:  transportfix        <unit_transportfix.lua>
[f=0000000] Loaded unsynced gadget:  Area Attack         <unit_areaattack.lua>
[f=0000000] Loaded unsynced gadget:  Take Manager        <cmd_idle_players.lua>
[f=0000000] Loaded unsynced gadget:  Substitution        <game_replace_afk_players.lua>
[f=0000000] Loaded unsynced gadget:  LupsSyncedManager   <lups_manager.lua>
[f=0000000] Loaded unsynced gadget:  Mex Upgrader Gadget  <unit_mex_upgrader.lua>
[f=0000000] Loaded unsynced gadget:  Crashing Aircraft   <unit_crashing_aircraft.lua>
[f=0000000] Loaded unsynced gadget:  Lups                <lups_wrapper.lua>
[f=0000000] Loading LuaGaia
[f=0000000] Loading LuaUI
[f=0000000] LuaSocketEnabled: yes
[f=0000000] This game has locked LuaUI access
[f=0000000] This game has locked LuaUI access
[f=0000000] Using LUAUI_DIRNAME = LuaUI/
[f=0000000] Reloaded ctrlpanel from file: LuaUI/ctrlpanel.txt
[f=0000000] LuaUI: bound F11 to the widget selector
[f=0000000] LuaUI: bound CTRL+F11 to tweak mode
[f=0000000] LuaUI: Disallowing User Widgets
[f=0000000] Loading widget from mod:   Spy move/reclaim defaults  <unit_default_spy_move_cloaked.lua> ...
[f=0000000] Loading widget from mod:   Defense Range       <gui_defenserange.lua> ...
[f=0000000] Loading widget from mod:   Red_UI_Framework    <red_ui_framework.lua> ...
[f=0000000] Loading widget from mod:   Metalspot Finder    <api_metalspot_finder.lua> ...
[f=0000000] Loading widget from mod:   MexUpg Helper       <cmd_mex_upgrade_helper.lua> ...
[f=0000000] Loading widget from mod:   Red Tooltip         <gui_red_tooltip.lua> ...
[f=0000000] Loading widget from mod:   Faction Change      <gui_faction_change.lua> ...
[f=0000000] Loading widget from mod:   HealthBars          <gui_healthbars.lua> ...
[f=0000000] Loading widget from mod:   LockCamera          <camera_lockcamera.lua> ...
[f=0000000] Loading widget from mod:   Open Host List      <gui_open_hosts.lua> ...
[f=0000000] Error: Access to 'replays.springrts.com:8222' denied
[f=0000000] Loading widget from mod:   AdvPlayersList      <gui_advplayerslist.lua> ...
[f=0000000] Loading widget from mod:   BuildETA            <gui_build_eta.lua> ...
[f=0000000] Loading widget from mod:   Projectile lights   <gfx_projectile_lights.lua> ...
[f=0000000] Loading widget from mod:   Initial Queue       <unit_initial_queue.lua> ...
[f=0000000] Loading widget from mod:   Ally Cursors        <gui_ally_cursors.lua> ...
[f=0000000] Loading widget from mod:   Alternate Chat Keys  <cmd_old_style_chat_keys.lua> ...
[f=0000000] Loading widget from mod:   Auto First Build Facing  <unit_autofirstbuildfacing.lua> ...
[f=0000000] Loading widget from mod:   Autoquit            <cmd_autoquit.lua> ...
[f=0000000] Loading widget from mod:   Blast Radius        <gui_blast_radius.lua> ...
[f=0000000] Loading widget from mod:   BuildBar            <gui_buildbar.lua> ...
[f=0000000] Loading widget from mod:   CameraFlip          <camera_flip.lua> ...
[f=0000000] Loading widget from mod:   DontMove            <unit_dontmove.lua> ...
[f=0000000] Loading widget from mod:   Group Label         <gui_group_label.lua> ...
[f=0000000] Loading widget from mod:   Highlight Geos      <gui_highlight_geos.lua> ...
[f=0000000] Loading widget from mod:   Holdfire Fix        <cmd_holdfire_fix.lua> ...
[f=0000000] Loading widget from mod:   Ignore List API     <api_ignore.lua> ...
[f=0000000] Loading widget from mod:   Keybind/Mouse Info  <gui_keybind_info.lua> ...
[f=0000000] Loading widget from mod:   Load Own Moving     <unit_load_own_moving.lua> ...
[f=0000000] Loading widget from mod:   Loop Select         <unit_loop_select.lua> ...
[f=0000000] Loading widget from mod:   Mex Snap            <cmd_mex_snap.lua> ...
[f=0000000] Loading widget from mod:   Partial hotfix for stuck in draw mode  <hotfix_draw_mode.lua> ...
[f=0000000] Loading widget from mod:   Pause Screen        <gui_pausescreen.lua> ...
[f=0000000] Loading widget from mod:   Persistent Build Spacing  <cmd_persistent_build_spacing.lua> ...
[f=0000000] Loading widget from mod:   Point Tracker       <gui_point_tracker.lua> ...
[f=0000000] Loading widget from mod:   ReclaimInfo         <gui_reclaiminfo.lua> ...
[f=0000000] Loading widget from mod:   Red Build/Order Menu  <gui_red_buildordermenu.lua> ...
[f=0000000] Loading widget from mod:   Red Console         <gui_red_console.lua> ...
[f=0000000] Loading widget from mod:   Red Resource Bars   <gui_red_resourcebars.lua> ...
[f=0000000] Loading widget from mod:   Red_Drawing         <red_ui_framework_drawing.lua> ...
[f=0000000] Loading widget from mod:   RelativeMinimap     <minimap_relative.lua> ...
[f=0000000] Loading widget from mod:   Share Tracker       <unit_share_tracker.lua> ...
[f=0000000] Loading widget from mod:   SmoothCam           <camera_smoothcam.lua> ...
[f=0000000] Loading widget from mod:   Spectate Selected   <gui_spectate_selected.lua> ...
[f=0000000] Loading widget from mod:   State Reverse Toggle  <cmd_state_reverse_toggle.lua> ...
[f=0000000] Loading widget from mod:   Take Proxy          <cmd_take_proxy.lua> ...
[f=0000000] Loading widget from mod:   Unit Finished Sounds  <snd_unit_finished.lua> ...
[f=0000000] Loading widget from mod:   Volume OSD          <snd_volume_osd.lua> ...
[f=0000000] Loading widget from mod:   Auto group          <unit_auto_group.lua> ...
[f=0000000] Loading widget from mod:   Build Split         <cmd_buildsplit.lua> ...
[f=0000000] Loading widget from mod:   Com DontBreakCloak  <unit_com_dontbreakcloak.lua> ...
[f=0000000] Loading widget from mod:   Energy Conversion Info  <gui_energy_conversion.lua> ...
[f=0000000] Loading widget from mod:   NoDuplicateOrders   <cmd_no_duplicate_orders.lua> ...
[f=0000000] Loading widget from mod:   Com Counter         <gui_comcounter.lua> ...
[f=0000000] Loading widget from mod:   Comblast & Dgun Range  <gui_comblast_dgun_range.lua> ...
[f=0000000] Loading widget from mod:   Specific Unit Reclaimer  <unit_specific_unit_reclaimer.lua> ...
[f=0000000] Loading widget from mod:   Stockpiler (dynamic)  <unit_stockpile_dynamic.lua> ...
[f=0000000] Loading widget from mod:   Ghost Site          <unit_ghostsite.lua> ...
[f=0000000] Loading widget from mod:   Easy Facing         <gui_easyfacing.lua> ...
[f=0000000] Loading widget from mod:   Ghost Radar         <unit_ghostradar.lua> ...
[f=0000000] Loading widget from mod:   ImmobileBuilder     <unit_immobile_builder.lua> ...
[f=0000000] Loading widget from mod:   GameTypeInfo        <gui_game_type_info.lua> ...
[f=0000000] Loading widget from mod:   Attack AoE          <gui_attack_aoe.lua> ...
[f=0000000] Loading widget from mod:   BA Hotkeys          <cmd_ba_hotkeys.lua> ...
[f=0000000] Loading widget from mod:   Context Build       <cmd_context_build.lua> ...
[f=0000000] Loading widget from mod:   Prospector          <gui_prospector.lua> ...
[f=0000000] Loading widget from mod:   Red Minimap         <gui_red_minimap.lua> ...
[f=0000000] Loading widget from mod:   Attack and Move Notification  <unit_attackmovenotification.lua> ...
[f=0000000] Loading widget from mod:   Commands FX         <gui_commands_fx.lua> ...
[f=0000000] Loading widget from mod:   Bomber control      <unit_bomber_control.lua> ...
[f=0000000] Loading widget from mod:   CommandInsert       <cmd_commandinsert.lua> ...
[f=0000000] Loading widget from mod:   Rank Icons          <gui_xp.lua> ...
[f=0000000] Loading widget from mod:   Waypoint Dragger    <unit_waypoint_dragger_2.lua> ...
[f=0000000] Loading widget from mod:   Select n Center!    <gui_center_n_select.lua> ...
[f=0000000] Loading widget from mod:   LupsManager         <gfx_lups_manager.lua> ...
[f=0000000] Loading widget from mod:   Replay Speed Buttons  <gui_replaybuttons.lua> ...
[f=0000000] Loading widget from mod:   Mouse Buildspacing  <gui_buildspacing.lua> ...
[f=0000000] Loading widget from mod:   Lups                <gfx_lups_wrapper.lua> ...
[f=0000000] Loading widget from mod:   CustomFormations2   <cmd_customformations2.lua> ...
[f=0000000] Loading widget from mod:   Widget Selector     <widget_selector.lua> ...
[f=0000000] LuaUI v0.3
[f=0000000] Initializing PathCache
[f=0000000] Finalizing
[f=0000000] Loaded DecalsDrawer: Legacy
[f=0000000] Connection attempt from Player
[f=0000000]  -> Version: 96.0 (Headless)
[f=0000000]  -> Connection established (given id 0)
[f=0000000] Player Player finished loading and is now ingame
[f=0000000] GameID: dfa87055c81a5489121874471cdf4421
[f=0000000] SkirmishAI (ID = 0, team ID = 0) is using cheats!
[f=0000000] ResourceMapAnalyzer by Krogothe, initialized for resource 0(Metal)
PANIC: unprotected error in call to Lua API (attempt to index a nil value)
Errore di segmentazione (core dump creato)
p@p-Studio-1537:~$ spring-headless /home/p/.spring/engine/96.0/script.txt 
abma
Spring Developer
Posts: 3798
Joined: 01 Jun 2009, 00:08

Re: genetic algorithm on shard

Post by abma »

thats an AI crash... you are using spring 96.0. very likely this crash has been fixed (with an updated Shard) in spring 98.0. please update before doing anything else!

your infolog.txt is in /home/p/.config/spring/
Post Reply

Return to “AI”