Patch 0.79.1.1 out here

Patch 0.79.1.1 out here

Discuss Spring news, such as fresh releases and press coverage, here.
Auswaschbar
Spring Developer
Posts: 1254
Joined: 24 Jun 2007, 08:34

Patch 0.79.1.1 out here

Post by Auswaschbar »

Not much to say here, just the changelog
  • fix microlags and increased CPU usage for dedicated server
  • fix the game ending when playing with AIs
  • various AI-interface and AI-related fixes
  • fallback to Lua for unhandled actions
  • fixed exploit where spectator could make Team 0 resign
  • fix certain soundeffects
and the download links
The installer
The sources
The executable (only the exe)

If you only play online, you can use the executable, rename it to spring.exe and overwrite the old one. If you play against AI, you should reinstall.
Autohosts should be upgraded ASAP.
User avatar
Beherith
Posts: 5145
Joined: 26 Oct 2007, 16:21

Re: Patch 0.79.1.1 out here

Post by Beherith »

Thanks, these were very much needed!
User avatar
zwzsg
Kernel Panic Co-Developer
Posts: 7052
Joined: 16 Nov 2004, 13:08

Re: Patch 0.79.1.1 out here

Post by zwzsg »

You changed start script syntax again. Grrr.

That script.txt is an interface. Interfacing protocols shouldn't keep changing for no good reason. And when you change it, keep retro-compatibility.
Last edited by zwzsg on 14 Jun 2009, 23:22, edited 1 time in total.
Auswaschbar
Spring Developer
Posts: 1254
Joined: 24 Jun 2007, 08:34

Re: Patch 0.79.1.1 out here

Post by Auswaschbar »

zwzsg wrote:You changed start script syntax again. Grrr.

That script.txt is an interface. Interfacing protocols shouldn't keep changing for no good reason.
Lolwut?
User avatar
zwzsg
Kernel Panic Co-Developer
Posts: 7052
Joined: 16 Nov 2004, 13:08

Re: Patch 0.79.1.1 out here

Post by zwzsg »

A startscript that worked fine in 0.79.1.0 now makes all teams start in the same corner.

Also, both SpringLobby and TASClient 0.48 refuse to let me watch AI battle, since it gets stuck on "choose pos" even though I used fixed or random.
Auswaschbar
Spring Developer
Posts: 1254
Joined: 24 Jun 2007, 08:34

Re: Patch 0.79.1.1 out here

Post by Auswaschbar »

You must be doing somethign completely wrong, as that part of the code wasn't even touched. But I'm sure I can track this down using my telepathic abilities to see how your script looks like and what is wrong with it.
User avatar
zwzsg
Kernel Panic Co-Developer
Posts: 7052
Joined: 16 Nov 2004, 13:08

Re: Patch 0.79.1.1 out here

Post by zwzsg »

Since you make and newpost new release, I assume you know a bit about the changelog.
Auswaschbar wrote:You must be doing somethign completely wrong, as that part of the code wasn't even touched.
That part of the code was touched, denial is not an acceptable answer. And I'm not the one doing something completly wrong, since it is broken even when I'm not using my stuff but both official lobbies.




Following script, generated by my own Kernel_Panic_3.X_Launcher.exe:
- Works in 0.79.1.0
- Does not work in 0.79.1.1: All AI spawns in the top left corner instead of their proper startpos.

Code: Select all

// To run this script, drag and drop over Spring.exe
//
// K.P.L. (Kernel Panic Launcher) Generated Script
// Very Hard: 1v3 - Player is n┬░1 in [0..3] and good (Network)

[GAME]
{
	GameType=Kernel_Panic_3.5.sd7;
	Mapname=Marble_Madness_Map.smf;

	[MODOPTIONS]
	{
		// KP specific:
		nowalls=1;// Because the AI can't handle them
		nospecials=0;// Set to make it simpler
		ons=4;// Shielded gamemode, 0 for disabled, 2 for weak, 4 for ultra
		sos=0;// Initial amount, 0 for disabled
		colorwars=0;// Time in minutes before doom, 0 for disabled

		// Generic, but still applying to KP:
		GameMode=1;
		  // 0 for "Kill everything!"
		  // 1 for "Kill all factories!"
		  // 2 for "Kill the Kernel!"
		ghostedbuildings=1;
		fixedallies=0;
		MaxUnits=512;
		MinSpeed=0.1;
		MaxSpeed=10;

		// Irrelevant for KP:
		StartMetal=1024;
		StartEnergy=1024;
	}

	HostIP=localhost;
	HostPort=1377;
	IsHost=1;

	StartPosType=0;// 0 for fixed, 1 for random, 2 for chosen
	MyPlayerNum=0;
	MyPlayerName=Single_Player;
	NumPlayers=1;
	NumUsers=4;
	NumTeams=4;
	NumAllyTeams=2;

	// List of human controlled players:
	[PLAYER0]
	{
		name=Single_Player;
		Team=1;
		Spectator=0;
	}

	// List of AI controlled players:
	[AI0]
	{
		Name=Enemy Bot;
		ShortName=Kernel Panic AI;
		//Version=?;
		Team=0;
		Host=0;// Number of the PLAYER hosting the AI
	}
	[AI2]
	{
		Name=Enemy Bot;
		ShortName=Kernel Panic AI;
		//Version=?;
		Team=2;
		Host=0;// Number of the PLAYER hosting the AI
	}
	[AI3]
	{
		Name=Enemy Bot;
		ShortName=Kernel Panic AI;
		//Version=?;
		Team=3;
		Host=0;// Number of the PLAYER hosting the AI
	}

	// List of "teams" (or "players" depending on terminology):
	[TEAM0]
	{
		TeamLeader=0;
		AllyTeam=1;
		Handicap=0;
		Side=Hacker;
		RGBColor=0.0000 0.7176 0.9882;
		AIDLL=Kernel Panic AI;
	}
	[TEAM1]
	{
		TeamLeader=0;
		AllyTeam=0;
		Handicap=0;
		Side=Network;
		RGBColor=0.9020 0.2314 0.0000;
	}
	[TEAM2]
	{
		TeamLeader=0;
		AllyTeam=1;
		Handicap=0;
		Side=Hacker;
		RGBColor=0.7961 0.0980 1.0000;
		AIDLL=Kernel Panic AI;
	}
	[TEAM3]
	{
		TeamLeader=0;
		AllyTeam=1;
		Handicap=0;
		Side=Hacker;
		RGBColor=0.2039 0.8784 0.0000;
		AIDLL=Kernel Panic AI;
	}

	// List of ally teams: This is for assymetrical alliances
	[ALLYTEAM0]
	{
		NumAllies=0;
	}
	[ALLYTEAM1]
	{
		NumAllies=0;
	}

	// List of restrictions
	NumRestrictions=0;
	[RESTRICT]
	{
	}
}












Following script, generated by SpringLobby 0.0.1.10475
- Works fine with Spring 0.79.1.0.
- Does not work under Spring 0.79.1.1: It awaits "choose pos", which never happens in AI battle.

Code: Select all

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

	ModHash=166043544;
	MapHash=4236272102;
	Mapname=Data Cache L1.smf;
	GameType=Kernel Panic 3.5;

	startpostype=3;
	[mapoptions]
	{
	}
	[modoptions]
	{
		fixedallies=1;
		ghostedbuildings=1;
		nospecials=0;
		systemonly=0;
		colorwars=0;
		maxspeed=5;
		maxunits=1000;
		minspeed=0;
		sos=0;
		gamemode=1;
		metaltogeo=0;
		ons=0;
	}
	NumRestrictions=0;
	[RESTRICT]
	{
	}

	NumPlayers=1;
	NumUsers=3;

	[PLAYER2]
	{
		Name=NoName;
		CountryCode=;
		Spectator=0;
		Rank=0;
		IsFromDemo=0;
		Team=0;
	}
	[AI0]
	{
		Name=Bot1;
		ShortName=BaczekKPAI;
		Version=1.2;
		Team=1;
		Host=2;
		[Options]
		{
		}
	}
	[AI1]
	{
		Name=Bot2;
		ShortName=BaczekKPAI;
		Version=1.2;
		Team=2;
		Host=2;
		[Options]
		{
		}
	}

	[TEAM1]
	{
		TeamLeader=2;
		StartPosX=3872;
		StartPosZ=224;
		AllyTeam=1;
		RGBColor=0.941176 0.823529 0;
		Side=System;
		Handicap=0;
	}
	[TEAM2]
	{
		TeamLeader=2;
		StartPosX=224;
		StartPosZ=224;
		AllyTeam=2;
		RGBColor=0.501961 0.501961 0.501961;
		Side=System;
		Handicap=0;
	}
	[TEAM0]
	{
		TeamLeader=2;
		StartPosX=224;
		StartPosZ=2848;
		AllyTeam=0;
		RGBColor=1 1 0;
		Side=System;
		Handicap=0;
	}

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


Following script, generated by TASClient 0.48 beta
- Works fine under 0.79.1.0
- Does not work under Spring 0.79.1.1: It awaits "choose pos", which never happens since I'm speccing AI battle. Using CTRL+ENTER make both AI spawn at 96,96 instead of their proper start pos.

Code: Select all

[GAME]
{
	Mapname=Marble_Madness_Map.smf;
	Maphash=-71828748;
	[modoptions]
	{
		MaxUnits=1000;
		GameMode=2;
		maxspeed=5;
		minspeed=0;
		fixedallies=1;
		ghostedbuildings=1;
		metaltogeo=auto;
		ons=0;
		sos=0;
		colorwars=0;
		nospecials=0;
		systemonly=0;
	}
	StartPosType=1;
	GameType=Kernel Panic 3.5;
	ModHash=166043544;
	HostIP=localhost;
	HostPort=8452;
	MyPlayerNum=0;
	MyPlayerName=zwzsg;
	IsHost=-1;
	NumPlayers=1;
	[PLAYER0]
	{
		Name=zwzsg;
		countryCode=fr;
		Rank=4;
		Spectator=1;
	}
	[AI0]
	{
		Name=Bot;
		ShortName=Kernel Panic AI;
		Team=1;
		Host=0;
	}
	[AI1]
	{
		Name=Bot2;
		ShortName=Kernel Panic AI;
		Team=2;
		Host=0;
	}
	[TEAM1]
	{
		TeamLeader=0;
		AllyTeam=1;
		RgbColor=1 0 0 ;
		Side=Hacker;
		Handicap=0;
	}
	[TEAM2]
	{
		TeamLeader=0;
		AllyTeam=2;
		RgbColor=0.101960784313725 1 0 ;
		Side=Network;
		Handicap=0;
	}
	NumTeams=2;
	[ALLYTEAM1]
	{
		NumAllies=0;
	}
	[ALLYTEAM2]
	{
		NumAllies=0;
	}
	NumRestrictions=0;
}

If I'd allowed to interpret without devs insulting me, I would say that:
- StartPosType=1; is broken for AI (but not humans), it makes AI always spawn at 96,96
- When there are 0 human player, it waits for "choose pos" while it should not.


Note: When running Spring.exe directly, pick mod, map, and AI, the behavior is same between 0.79.1.0 and 0.79.1.1: I have a message "waiting for player, press Ctrl enter" (not "choose pos"), and when I do press Ctrl Enter, the AI spawn in a correct start pos.
R-TEAM
Posts: 177
Joined: 22 Jan 2009, 19:25

Re: Patch 0.79.1.1 out here

Post by R-TEAM »

Hi,

Thanks for this new version ;)

But muss agre with zwzsg ....

With Springlobby (actual build from last night) the AI bots
spawn only in the left uper field of the map...

So ATM it is useless for Human-VS-AI play .....

And the problem with massive lags in the Game is still here.
Dont know is this engine or mod related.
It is only coming by BA or CA mod.
And both runs in the past (4-5 month) fine so i think it is mod related,
or the mods use a new function of the engine.

See the thread in bugs ....http://springrts.com/phpbb/viewtopic.php?f=11&t=18393

Regards
R-TEAM
Societal
Posts: 64
Joined: 05 May 2009, 13:57

Re: Patch 0.79.1.1 out here

Post by Societal »

You are both right. I noticed the same problem with the debug builds I've been building for myself. It is because of the inclusion of NTAI in the build environment. NTAI comes with it's own modified copies of TdfParser.cpp, TdfParser.h, and tdf_grammar.hpp in /AI/Skirmish/NTai/AI/NTai/Helpers/. After renaming those files with a NTAI_ prefix and changed the ifndefs as well, StartPosX=x; & StartPosZ=z; work as before to load AI bots in their proper location.


NTai's files in /AI/Skirmish/NTai/AI/NTai/Helpers/ :

TdfParser.h -> NTAI_TdfParser.h

Code: Select all

#ifndef NTAI_TDFPARSER_H_INCLUDED
#define NTAI_TDFPARSER_H_INCLUDED
tdf_grammar.hpp -> NTAI_tdf_grammar.hpp

Code: Select all

#ifndef NTAI_TDF_GRAMMAR_HPP_INCLUDED
#define NTAI_TDF_GRAMMAR_HPP_INCLUDED
TdfParser.cpp -> NTAI_TdfParser.cpp

Code: Select all

#include "NTAI_tdf_grammar.hpp"

NTai's file in /AI/Skirmish/NTai/AI/NTai/Core/ :
include.h

Code: Select all

#include "../Helpers/NTAI_TdfParser.h"						// Parses TDF files

Also, in /rts/System/ :
TdfParser.h

Code: Select all

#endif /* TDFPARSER_H */
The last line still says SUNPARSER_H in the github master.
User avatar
hoijui
Former Engine Dev
Posts: 4344
Joined: 22 Sep 2007, 09:51

Re: Patch 0.79.1.1 out here

Post by hoijui »

Societal, could you please make a git commit for it? or at least a diff file?
i fear i would mix up something if i'd follow your instructions ;-)
Societal
Posts: 64
Joined: 05 May 2009, 13:57

Re: Patch 0.79.1.1 out here

Post by Societal »

I'm new to git so I don't know why I'm having a problem connecting. I made a fork repository and the problem is the same with both. Any attempt to push gives me an error, "Putty Internal Error: Wrong Port Number".
ssh -v git@github.com tells me I'm connecting on port 22 and authenticating fine with the account I made there. I went into my router settings and added a port forwarding rule for SSH port 22 and that didn't help either. :?:

http://societaleclipse.net/CPP/diffs.7z
Those are the diffs for the files I made internal changes in.

Renamed these with NTAI_ prefix
/AI/Skirmish/NTai/AI/NTai/Helpers/
NTAI_TdfParser.h
NTAI_tdf_grammar.hpp
NTAI_TdfParser.cpp

/AI/Skirmish/NTai/AI/NTai/Core/
include.h

/rts/System/
TdfParser.h
User avatar
hoijui
Former Engine Dev
Posts: 4344
Joined: 22 Sep 2007, 09:51

Re: Patch 0.79.1.1 out here

Post by hoijui »

github has relatively good guides, it is not too difficult, if you follow them closely. you do NOT have to forward a port on your router for sure!

i included your patch.. i can't imagine this really helps though...
well if it would give problems, we still can remove it again (like the class TdfParser beeing defined 2 times or something).
Societal
Posts: 64
Joined: 05 May 2009, 13:57

Re: Patch 0.79.1.1 out here

Post by Societal »

I don't have enough C++ knowledge or experience yet to say what is the best solution. NTAI_tdf_grammar.hpp is the same as the /rts/System/ counterpart except for one less include ( #include <list> ) and of course that everything else is wrapped inside namespace ntai {}, just like the other files. The TdfParser class is quite different from the /rts/System/ version though and merging them just for a single AI doesn't make sense to me (and is outside of my ability). It would be a lot of careful search and replace but NTai's TdfParser class could be renamed as the files and defines were.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: Patch 0.79.1.1 out here

Post by AF »

Or things can respect their proper namespaces.

NTai uses the ntai namespace and conflicts with this are indicative of issues elsewhere

Eitherway there is no reason for this conflict to exist, other than flaws in the way either is being built. NTai given the necessary headers should build standalone. I don't appreciate my project being hemmed in to fix a build system that's not adequate. I sure hope youve changed my project files ( and if not reverted the changes youve made to my copy of TDF Parser )

*note: the above text is to be read in a hostile tone, I am not happy, not one bit*
User avatar
hoijui
Former Engine Dev
Posts: 4344
Joined: 22 Sep 2007, 09:51

Re: Patch 0.79.1.1 out here

Post by hoijui »

i reverted the commit.
it really makes no sense...
Societal, you do know that Auswaschbar commited a fix for what you think this is a solution for?
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Re: Patch 0.79.1.1 out here

Post by Tobi »

It's buildsystem failure yeah, it shouldn't add all AIs to include path of engine or whatever weird thing it's doing.
User avatar
hoijui
Former Engine Dev
Posts: 4344
Joined: 22 Sep 2007, 09:51

Re: Patch 0.79.1.1 out here

Post by hoijui »

thats the point.. i am pretty sure it is not doing this.
the only possible problem could be, thta NTai fails, but as AF said, he uses a namespace, so not even that is possible..
my guess is that Societal tested Auswaschbars fix together with his changes, and assumed his changes fixed it.
sorry, no offence, is just what seems most likely to me.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: Patch 0.79.1.1 out here

Post by AF »

I have a particular pet peeve of build systems not doing their job resulting in the code its building needing changing. Sure if tis a compile syntax error but if its perfectly fine then why change it, change the build system
Auswaschbar
Spring Developer
Posts: 1254
Joined: 24 Jun 2007, 08:34

Re: Patch 0.79.1.1 out here

Post by Auswaschbar »

hoijui, what fix are you talking about? Also, I read the tried like 5 times, and still didn't see where societal mentioned what his error is.
User avatar
hoijui
Former Engine Dev
Posts: 4344
Joined: 22 Sep 2007, 09:51

Re: Patch 0.79.1.1 out here

Post by hoijui »

AI positioning (AIs starting in the top left corner)
Post Reply

Return to “News”