genetic algorithm on shard
Moderators: hoijui, Moderators
- prandipadaro
- Posts: 98
- Joined: 19 Oct 2011, 22:38
genetic algorithm on shard
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
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
Re: genetic algorithm on shard
basicly you need to collect this information.prandipadaro wrote:where I find all this information?
these should be collected in the gameframe event i guess.prandipadaro wrote:if you have had excess or lack of resources
see unitcreated / unitdestroyed eventsprandipadaro wrote:it has destroyed many units
thats imo harder, you need to track units which received the unitfinished command but didn't receive a new order.prandipadaro wrote:if you have had so many idle units.
at the end of the game some statistics exist (endgraph) but afaik these doesn't contain this info.
Re: genetic algorithm on shard
There is UnitIdle callin https://springrts.com/wiki/Lua:Callins#API:UnitIdle
- prandipadaro
- Posts: 98
- Joined: 19 Oct 2011, 22:38
Re: genetic algorithm on shard
thanks abma for fast reply
how can I get this endgraph? Maybe here is some useful information, at least for the first attemptabma wrote: at the end of the game some statistics exist (endgraph) but afaik these doesn't contain this info.
thanks flozi I watch nowFLOZi wrote: There is UnitIdle callin https://springrts.com/wiki/Lua:Callins#API:UnitIdle
Re: genetic algorithm on shard
Shard is not written in Lua. Shard is written in C++. With some configuration and callins in Lua.prandipadaro wrote:First, shard is written in lua, and I begin to understand something of lua.
Re: genetic algorithm on shard
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 :)how can I get this endgraph?
careful with mixing lua call ins and callins in shard. they are not the same :)FLOZi wrote:There is UnitIdle callin https://springrts.com/wiki/Lua:Callins#API:UnitIdle
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
exactly, now the information is complete i guess :)Shard is not written in Lua. Shard is written in C++. With some configuration and callins in Lua.
- prandipadaro
- Posts: 98
- Joined: 19 Oct 2011, 22:38
Re: genetic algorithm on shard
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 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 :)
Re: genetic algorithm on shard
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).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?
afaik the data from GetTeamStatsHistory isn't accessable until the game ended.
Re: genetic algorithm on shard
mmh.. you can run spring headless though.. pre-game.. to gain info on player performance
- prandipadaro
- Posts: 98
- Joined: 19 Oct 2011, 22:38
Re: genetic algorithm on shard
you can explain? I did not understand!PicassoCT wrote:mmh.. you can run spring headless though.. pre-game.. to gain info on player performance
Re: genetic algorithm on shard
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 ?
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 ?
Re: genetic algorithm on shard
Incorrect: the way to activate spring-headless is to launch `spring-headless` executable instead of `spring` executable.You can activate it by setting spring-settings headleass to 1
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".pre-game.. to gain info on player performance
Translation: "you can then ensure that the AI has learned stuff by checking its performance in the environment where it was trained".PS: You could have your AI perform against a player on same map in replays ?
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.
Re: genetic algorithm on shard
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 :)
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 :)
Re: genetic algorithm on shard
Here's Shard kicking the asses off of the top players and the dev of EvoRTSAnarchid 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.
Re: genetic algorithm on shard
That probably took a bit to achieve, also that when everyone suckedHere's Shard kicking the asses off of the top players and the dev of EvoRTS
Still, would +1 if forum had it. Seeing AI perform is amazing.
- prandipadaro
- Posts: 98
- Joined: 19 Oct 2011, 22:38
Re: genetic algorithm on shard
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: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
really thanks to youAF wrote:Also thanks for picking my AI :)
tonight I'll try certainlyPicassoCT 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.
full ahead
- prandipadaro
- Posts: 98
- Joined: 19 Oct 2011, 22:38
Re: genetic algorithm on shard
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
-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
Re: genetic algorithm on shard
full infolog.txt would be useful... and/or the used script.txt
- prandipadaro
- Posts: 98
- Joined: 19 Oct 2011, 22:38
Re: genetic algorithm on shard
script.txt
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
[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
Re: genetic algorithm on shard
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/
your infolog.txt is in /home/p/.config/spring/