Map Vote Ultimate 2.1

Need some nice Mods? Here, you are right!
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

Re: Map Vote Ultimate 2.1

Post by Gustavo6046 »

Nobody saw my suggestions?
sektor2111 wrote:what wants.
All of your bases are belong to us!
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

Weapon of Destruction
User avatar
UnrealGGecko
Godlike
Posts: 2900
Joined: Wed Feb 01, 2012 11:26 am
Personal rank: GEx the Gecko
Location: Kaunas, Lithuania
Contact:

Re: Map Vote Ultimate 2.1

Post by UnrealGGecko »

Gustavo6046 wrote:
sektor2111 wrote:what wants.
All of your bases are belong to us!
Says a 12-year-old who barely speaks good english :omfg: :wth: :what:
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Map Vote Ultimate 2.1

Post by sektor2111 »

Bumping...
So... continuing mission for reducing lags and heavy loads and trying to get over 10000000 iteration for a better world... up to xx+yy millions of iterations, if people need this (kidding a bit... or not really). Let's say that it's possible in this LA13 type to load 1564 Levels without even to lag game and/or client. RedFlag comes only for saving settings but I did not see me kicked (this time) out of game during saving settings (too many values after all). During maps-loading I cannot figure lags and takes 2-3 seconds until message for Re-Open Shows up.
Example:
[attachment=1]UL1564.png[/attachment]
So... as I was suspecting before, we have a function used in LA13
Spoiler

Code: Select all

/*
function SortMapList()
{
	local int A;
	local int B;
	local int pos;
	local string TempMapName;
	local string AMap;
	local string BMap;
	local string AMapPre;
	local string BMapPre;

	DebugLog("80");
	A=1;
JL0011:
	if ( A < MapCount )
	{
		B=A + 1;
JL002E:
		if ( B <= MapCount )
		{
			AMap=Caps(MapList[A]);
			BMap=Caps(MapList[B]);
			if ( Left(AMap,3) == "[X]" )
			{
				AMap=Mid(AMap,3);
			}
			if ( Left(BMap,3) == "[X]" )
			{
				BMap=Mid(BMap,3);
			}
			AMap=Right(AMap,1) $ AMap;
			BMap=Right(BMap,1) $ BMap;
			AMapPre=AMap;
			BMapPre=BMap;
			if ( !bSortWithPreFix )
			{
				pos=InStr(AMap,"-");
				AMap=Mid(AMap,pos + 1);
				pos=InStr(BMap,"-");
				BMap=Mid(BMap,pos + 1);
			}
			if ( AMap > BMap )
			{
				TempMapName=MapList[A];
				MapList[A]=MapList[B];
				MapList[B]=TempMapName;
			} else {
				if ( AMap == BMap )
				{
					if ( AMapPre > BMapPre )
					{
						TempMapName=MapList[A];
						MapList[A]=MapList[B];
						MapList[B]=TempMapName;
					}
				}
			}
			B++;
			goto JL002E;
		}
		if ( B > MapCount ) bSorted = True;
		A++;
		goto JL0011;
	}
}
*/
Which almost can stuck server while this function works as a doggy slow over 1024 maps - this is resident in BDBMapVote class - mutator itself.
The solution was splitting it in two pieces, injecting a small "sleep" period + another sleep if we have reached at 900000 with iterations - reset counter and keep moving. Effects are great - you can shoot some enemy while admin trigger a maps-reload operation. Perhaps I'll find a solution for saving configuration (tickrate goes to 0 in that moment) but I cannot be sure if something is doable here.

Edit: Confirmation - added 2009 maps with no crash.
[attachment=0]UL2009.png[/attachment]
So... I think we are ready for 8192 maps, right ?
Red Flag was showing for 0.5-1 second then smoother until "Re-Open bla bla".

EDIT:
And then... based on some strange client feeling, I have created some logs. Internal Logo mutator runs a TIMER and a TICK in clients even if Logo period is ended. I don't like this way. Commands mutator is not a very Need, Nexgen-s have these and a standalone mutator is already done, we even don't need that in all game-types. Several modifications have been performed and codes sent back to their source.
Now perhaps we can track v2_3 a bit improved and server won't crash in "State Loading".
And now Deepak O V can put back 100 game-types (configs usable if wants) and he might release next one.
Attachments
UL2009.png
UL1564.png
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

Re: Map Vote Ultimate 2.1

Post by Gustavo6046 »

Have the maplist sorting a standalone mutator. This way, if the server has 92481849032452837498276895723056 maps at least we can disable it. :P
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

Weapon of Destruction
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Map Vote Ultimate 2.1

Post by sektor2111 »

Nobody has forced you to play, actually you can disable your access here as well. Before talking your usual nothings, you might show your fixes-suggestions. If you don't help (because YOU CANNOT do it) you can quit trolling topics which weren't started by you after all.
I'm still checking when you will finally piss off admins here with your useless trolling spam.
If you wanna speak about this MapVote system and to contribute at improvements do it, the rest it's just blabbering around.
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

Re: Map Vote Ultimate 2.1

Post by Gustavo6046 »

sektor2111 wrote:Nobody has forced you to play, actually you can disable your access here as well. Before talking your usual nothings, you might show your fixes-suggestions. If you don't help (because YOU CANNOT do it) you can quit trolling topics which weren't started by you after all.
I'm still checking when you will finally piss off admins here with your useless trolling spam.
If you wanna speak about this MapVote system and to contribute at improvements do it, the rest it's just blabbering around.
Don't you even accept suggestions anymore?

Well, I know it might look like trolling, but it was just some few small ideas that should help Map Vote.
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

Weapon of Destruction
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Map Vote Ultimate 2.1

Post by sektor2111 »

I'm not interested about suggestions like you were talking above. Why ? Some admin has introduced a crash, I don't like crashes so I fixed problem - now I'm testing that - it was THE GOAL. As long as mission crash-fix has been accomplished the rest of adds belongs to Author(s) of this new development.

Secondary - this is a mutator server-heart which after anyone's opinion should stay as it is - NOT for being disabled. BTW speaking about servers according to some EULA terms which I read some time ago, you must have 18 Years Old for being On-Line Player - IT'S NOT your case.
So... I'm not interested about proposals done by dudes which don't have a minimum of experience with servers and neither required age, for a mutator-tool which is addressing SERVERS. I was hosting servers, I know how do votes work and maybe if you can make an imagination effort, I'm telling you that at 42 years old I could see many of these deals, in my very stupid opinion making a vote system full of images and colors and whistles for a few seconds of voting is a nonsense and an useless data loaded. Beside this, I've dropped a lot of craps in map folder just for doing tests and now I'll get busy to get rid of those without their required additional dependent files and those garbage empty cubes.

In a random Moment if next update will be late, perhaps I'll put here a Temporary version for people which want to check if they are able to load 1800+ maps (or trashes if want), including WelcomeWindow timer error + removing simulated function for empty server section (why simulated when NONE is there) + I think mainly all bIsPlayer dumb garbage is out being replaced with stuff addressed "PlayerReplicationInfo". The rest of experts in arrays can re-write some stuff as long as in these MapVoteLA types temporary list created has slot 0 empty so we speak about 1023 maps and 2047 as long as first element from array = NONE. So this stuff before adding colors needs FIXES in codes, rather than textures and the rest of useless things. It's time consuming, yes, but it might worth all efforts for future...
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Map Vote Ultimate 2.1

Post by sektor2111 »

Now the feedback to myself (nobody seems to distract at real issues).

Meh Sektor, take a look at ScreenShot, we seems to have maps loaded with no crash but... they don't seems sorted too much, only if are 200 maps are wrapped, at 2009 they aren't.

Ouch, I forgot to completely move some values out of functions, now are moved, they do seem to work but... but... it do takes time in sorting this way. I was adding an on-screen broadcast about status of loading. Maps under 255 are about to be sorted without breaks, over 255 we are going to use the "slow-down" against bad lags. This... perhaps needs another code or option for picking up speed dependent on Server Power and/or Net capabilities. This alphabetical ordering code is the key of "RedFlag" in MapVoteLA types (for 1023 maps), is a very hard code taking more than a second dropping tickrate, and even making player to lose connection. For more than 1023 - original function might even crash server.
That's why I think if I'm sorting maps during game-play taking even more than 50 seconds but without causing bad lags, could be the answer for this problem. No rush, take your time in load maps, and... USE TEMP file for a high load (more than 255) else maps will going to be constantly sorted making server to process maps rather than listening well at players, connections and then rest.
Probably I'll write a few lines like a tutorial in how do MapvoteLA types are working, with pictures and explanations + examples of INI for custom stuff.
For more than 4000 Maps, sorting will take some time (prepare a coffee or breakfast, or anything...).
User avatar
Barbie
Godlike
Posts: 2792
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Re: Map Vote Ultimate 2.1

Post by Barbie »

sektor2111 wrote:sorting maps during game-play
That's one of the reasons why I used MapListTemp since I have installed MapVote. Another reason is that the map name assignment to columns can be done freely. To handle this easier I've written a small shell script that converts my manually written CSV file to MapListTemp format, and if I install new maps, I run that script and upload the new maps and the new MapListTemp then. (Of course that script also checks all entries in that CSV list against existing *.unr files.)
Example of my MapListTemp.csv file

Code: Select all

;these lines are comment

;column 1 = Small Maps
MH-400K-Slope:1
MH-Ages(v2):1
MH-AS-Guardia:1
[...]

;column 2 = Medium Maps
MH-!SD0!ForbiddenMansion:2
MH-(dU)Serenity:2
[...]

;column 3 = Huge Maps
MH-!!![Deck-Invasion]:3
MH-!!![Paris-Attack]:3
MH-(dU)-Dormant:3
MH-(dU)LostParadiseV5:3
[...]

;column 4 = New Maps, ordered from newer to older
#---- 2016-03-31 ----
MH-HouseOfPsychos+SBFix1:4
MH-HotFootV3+:4
MH-!!![Paris-Attack]:4
#---- 2016-03-30 ----
MH-(UTW)BoomBoomBridge:4
[...]
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Map Vote Ultimate 2.1

Post by sektor2111 »

I'm glad that you have understood that thing. Seriously speaking, if that file is not used server will read all Maps all the time else it will read only 1 file. Reading a single file leads in cache usage - speed as well for these extra 1023 maps - and saving a bit the life of HDD as long as we except reading all data each time. More I look at BDBMapVote class more I understand how to avoid useless settings/processes for custom stuff only (example MH, MM, MA, SV) and the rest of games using custom prefixes.

Current test operated.
Using DM, CTF, TDM, RocketArenaCTF, InstaDM, LMS, MH, MH2 - so to speak a game-types soup loaded, assuming a need for reload I have triggered an Update. Using a hacked iteration for loading 2022 Maps according to game-types used, Loading lists were working in 2-3 seconds, oh well... next chapter was sorting in alphabetical order - that crash maker thing, it was taking... 75-85 seconds with a random broadcast "percent/100%". I did not lost connection and even I was playing during sorting - else if sorting is not crashing for sure will be freezing server until job is done if "Sleep" is not used - and it takes a lot of time this strings manipulation operation. So I'm guessing it might be almost ready to work. Still gotta do tests outside of modding machine used.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Map Vote Ultimate 2.1

Post by sektor2111 »

All right. I have a log as follows:
Specifications for test environment

Code: Select all

...
Init: Memory total: Phys=2088272K Pagef=4027924K Virt=2097024K
Init: Working set: 32000 / 159000
Init: CPU Speed=2992.637627 MHz
Init: CPU Page size=4096, Processors=2
Init: CPU Detected: Unknown processor (GenuineIntel)
Init: CPU Features: CMov FPU RDTSC PAE MMX KNI
Log: Bound to Engine.dll
Log: Executing Class Engine.ServerCommandlet
Log: Bound to XC_Engine.dll
Log: Bound to Window.dll
Log: Bound to XC_Core.dll
Init: ========= XC_ENGINE - Test build 17 =========
Init: ================= By Higor ==================
...
Then we have to reload 2046 maps

Code: Select all

ScriptLog: Administrator logged in.
ScriptLog: MV Admin is logged in. Sending admin vars...
ScriptLog: Map lists are reloading...
ScriptLog: MapVote updates maps at 2016/04/04 Time > 20:14:23.953
....
....
ScriptLog: BDBMapVote: Maps Reloaded. Total Maps = 2046
ScriptLog: MapVote has loaded and sorted maps at 2016/04/04 Time > 20:15:45.593
ScriptLog: Time Taken = 81.643997 seconds.
Sorting maps won't crash anymore because of "stepping iterator" and changes done to this function. Now... I did not see admin/player dropped from game or insanely lagging with REDFLAG, even game is a bit playable during sorting operation but might see warping effects due to resources used in sorting. This crash can be avoided in a different way but for sure a log sorting time makes anyone connected to be dropped without to gain too much speed. So I prefer to see less RedFlag and human connected until job is done - updating maps won't happen in a server each 2 minutes after all. This configuration requires Temp file usage else will work like a doggy slow.
With XC_Engine17GT5.2 + XC_Core5 system this MapVote is able to do clocking "Time Taken" line is delivered only if XC stuff is loaded properly.
Any volunteer for testing PM me. It's not a need to do a release before testing it many times.
Post Reply