Tripwire Interactive Forums

Go Back   Tripwire Interactive Forums > Red Orchestra 2 / Rising Storm Forums > RO2/RS Modifications > General Modding Discussion

Reply
 
Thread Tools Display Modes
  #1  
Old 01-24-2012, 08:16 AM
Cat_in_da_Hat Cat_in_da_Hat is offline
Senior Member
 
Join Date: Dec 2006
Posts: 837
Default Mutator for map selection

I'm a server admin / operator from RO1 / DH days.

With my RO1/DH server I would set up a number of map groups (or map cycles as in RO2) based on maps suitable for server numbers.

So i would have a group for small numbers 0-15, another of medium 15-30 and a large for 30+.

It worked well but it needed the admin (me) to be following it all and adjusting the map cycles.

What would be awesome is if I could simply tag a map and mark it as only being available to play if there were X number of people in the server.

That way I could remove that level of intervention for times when server numbers are low and building.

Is this a mutator thing or something needed to be deeper into the program.
Reply With Quote
  #2  
Old 01-24-2012, 08:21 AM
Ducky's Avatar
Ducky Ducky is offline
Moderator
 
Join Date: May 2011
Location: Netherlands
Posts: 2,679
Default

Quote:
Originally Posted by Cat_in_da_Hat View Post
I'm a server admin / operator from RO1 / DH days.

With my RO1/DH server I would set up a number of map groups (or map cycles as in RO2) based on maps suitable for server numbers.

So i would have a group for small numbers 0-15, another of medium 15-30 and a large for 30+.

It worked well but it needed the admin (me) to be following it all and adjusting the map cycles.

What would be awesome is if I could simply tag a map and mark it as only being available to play if there were X number of people in the server.

That way I could remove that level of intervention for times when server numbers are low and building.

Is this a mutator thing or something needed to be deeper into the program.
I think it's more like an add-on. Mutators are normally started together with a map and we can only react to world related events like when a player enters a vehicle or when a player picks up a weapon.

What you request is just a script/program that looks at your server stats and then modifies the map cycle list depending on the number of players on your server and the tags that you put to the maps (those can be put in some dedicated ini file).
Reply With Quote
  #3  
Old 01-24-2012, 08:39 AM
Cat_in_da_Hat Cat_in_da_Hat is offline
Senior Member
 
Join Date: Dec 2006
Posts: 837
Default

Thanks mate. Yep change the word mutator to add-on.

So is that a big project?

I reckon it would be a bloody useful inclusion.

Even though there are a small number of RO2 maps out I still have two map cycle groups.

For small numbers I put Barracks, GrainEl, Apartments, Station

For large I include the rest.

But an admin needs to be there to switch it over from small to large.

Be great if this management could be automated.
Reply With Quote
  #4  
Old 01-24-2012, 09:06 AM
Ducky's Avatar
Ducky Ducky is offline
Moderator
 
Join Date: May 2011
Location: Netherlands
Posts: 2,679
Default

Maybe the easiest approach would be to setup different map cycle lists in the web-admin tool, and then let the add-on (or however it's called) decide which of them should be active depending on the number of players on the server. Then most part of the current way of handling it is still used. We only need to activate a different map list.
Come to think of it, maybe it could be done with a mutator by abusing it .

What if we check during game play (at that time a mutator is active) in regular intervals (easy to do with a timer) how many human players there are (also easy to do), and then if it reaches some configurable threshold (can be set in the mutators ini file), then we select which map cycle list should be active for the next round (no clue how easy that is, but can't be too hard I guess). Of course we need to prevent that we keep on repeating the same map.

But currently "active mutator" = "unranked" = "empty server", but they are working on that white-list

Last edited by Ducky; 01-24-2012 at 09:07 AM.
Reply With Quote
  #5  
Old 01-24-2012, 09:09 AM
Six_Ten's Avatar
Six_Ten Six_Ten is offline
Senior Member
 
Join Date: Mar 2006
Posts: 1,382
Default

Quote:
Originally Posted by Cat_in_da_Hat View Post
I'm a server admin / operator from RO1 / DH days.

With my RO1/DH server I would set up a number of map groups (or map cycles as in RO2) based on maps suitable for server numbers.

So i would have a group for small numbers 0-15, another of medium 15-30 and a large for 30+.

It worked well but it needed the admin (me) to be following it all and adjusting the map cycles.

What would be awesome is if I could simply tag a map and mark it as only being available to play if there were X number of people in the server.

That way I could remove that level of intervention for times when server numbers are low and building.

Is this a mutator thing or something needed to be deeper into the program.
This is already set up in individual maps -- the Kismet has chains that modify the gameplay to suit up to 16 , up to 32, or 64 players.

I didn't do it in Ogledow because Ogledow is great no matter how many are on it
__________________
NEMO ME IMPVNE LACESSIT
Reply With Quote
  #6  
Old 01-24-2012, 11:05 AM
Ducky's Avatar
Ducky Ducky is offline
Moderator
 
Join Date: May 2011
Location: Netherlands
Posts: 2,679
Default

Quote:
Originally Posted by Six_Ten View Post
This is already set up in individual maps -- the Kismet has chains that modify the gameplay to suit up to 16 , up to 32, or 64 players.

I didn't do it in Ogledow because Ogledow is great no matter how many are on it
I don't think this is what Cat in da Hat is looking for. With those settings you can't filter out maps. You can only specify if your map will be played either InfantryOnly, TankOnly or CombinedArms for the number of player groups 1-16, 17-32 and 33-64. Cat in da Hat is looking for something that will prevent the bigger maps for showing up in rotation if only a few players are on the server. And to prevent the small maps to show up when there are a lot of players. Or am I the one that is wrong?
Reply With Quote
  #7  
Old 01-24-2012, 01:05 PM
Six_Ten's Avatar
Six_Ten Six_Ten is offline
Senior Member
 
Join Date: Mar 2006
Posts: 1,382
Default

Quote:
Originally Posted by Ducky View Post
ICat in da Hat is looking for something that will prevent the bigger maps for showing up in rotation if only a few players are on the server. And to prevent the small maps to show up when there are a lot of players. Or am I the one that is wrong?
I think we both interpret what he is saying the same way. If you look at the Kismet for the stock maps you will see a series of gates that close off parts of the map (changing it to be smaller or larger), alter the number of objectives, hide stairways, etcetera.
__________________
NEMO ME IMPVNE LACESSIT
Reply With Quote
  #8  
Old 01-24-2012, 01:50 PM
Ducky's Avatar
Ducky Ducky is offline
Moderator
 
Join Date: May 2011
Location: Netherlands
Posts: 2,679
Default

Quote:
Originally Posted by Six_Ten View Post
I think we both interpret what he is saying the same way. If you look at the Kismet for the stock maps you will see a series of gates that close off parts of the map (changing it to be smaller or larger), alter the number of objectives, hide stairways, etcetera.
Got it now. I didn't know you could change that for the stock maps. I always thought it required re-cooking.
Reply With Quote
  #9  
Old 01-24-2012, 02:05 PM
Six_Ten's Avatar
Six_Ten Six_Ten is offline
Senior Member
 
Join Date: Mar 2006
Posts: 1,382
Default

Quote:
Originally Posted by Ducky View Post
Got it now. I didn't know you could change that for the stock maps. I always thought it required re-cooking.
You don't change the stock maps, theyre already built like that. If you do change a map it must be recooked.
__________________
NEMO ME IMPVNE LACESSIT
Reply With Quote
  #10  
Old 01-28-2012, 06:18 PM
Ducky's Avatar
Ducky Ducky is offline
Moderator
 
Join Date: May 2011
Location: Netherlands
Posts: 2,679
Default

Quote:
Originally Posted by Cat_in_da_Hat View Post
I'm a server admin / operator from RO1 / DH days.

With my RO1/DH server I would set up a number of map groups (or map cycles as in RO2) based on maps suitable for server numbers.

So i would have a group for small numbers 0-15, another of medium 15-30 and a large for 30+.

It worked well but it needed the admin (me) to be following it all and adjusting the map cycles.

What would be awesome is if I could simply tag a map and mark it as only being available to play if there were X number of people in the server.

That way I could remove that level of intervention for times when server numbers are low and building.

Is this a mutator thing or something needed to be deeper into the program.
I'm working on it now. About 90% of the work has been done. It basically comes to this:
  1. Mutator does nothing during game play
  2. At round end it wakes up and checks how many players there are on the server
  3. Next it browses trough the map cycle list (starting from current map) as it is set in the web-admin tool
  4. It will compare the maps with a configurable list in which all minimum and maximum player counts are listed for each separate map
  5. It will pick out the first map that matches the number of players condition and loads that map after all round end screens have been displayed
The mutator has an ini file which contains all available maps and there min and max values. This is an example of the ini file:

Code:
[DynamicMapSelector.DynamicMapSelector]
MapSelectors[0]=(MinPlayerCount=0,MaxPlayerCount=30,MapURL="TE-Apartments")
MapSelectors[1]=(MinPlayerCount=0,MaxPlayerCount=40,MapURL="TE-Barracks")
MapSelectors[2]=(MinPlayerCount=20,MaxPlayerCount=64,MapURL="TE-CommissarsHouse")
MapSelectors[3]=(MinPlayerCount=20,MaxPlayerCount=64,MapURL="TE-FallenFighters")
MapSelectors[4]=(MinPlayerCount=0,MaxPlayerCount=40,MapURL="TE-GrainElevator")
MapSelectors[5]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="TE-Gumrak")
MapSelectors[6]=(MinPlayerCount=20,MaxPlayerCount=64,MapURL="TE-PavlovsHouse")
MapSelectors[7]=(MinPlayerCount=20,MaxPlayerCount=64,MapURL="TE-RedOctoberFactory")
MapSelectors[8]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="TE-Spartanovka")
MapSelectors[9]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="TE-Station")
MapSelectors[10]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="CD-Apartments")
MapSelectors[11]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="CD-Barracks")
MapSelectors[12]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="CD-CommissarsHouse")
MapSelectors[13]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="CD-FallenFighters")
MapSelectors[14]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="CD-GrainElevator")
MapSelectors[15]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="CD-Gumrak")
MapSelectors[16]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="CD-PavlovsHouse")
MapSelectors[17]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="CD-RedOctoberFactory")
MapSelectors[18]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="CD-Spartanovka")
MapSelectors[19]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="CD-Station")
MapSelectors[20]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="FF-Apartments")
MapSelectors[21]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="FF-Barracks")
MapSelectors[22]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="FF-GrainElevator")
MapSelectors[23]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="FF-Station")
The advantage is that you only need to set-up the ini file once. For the rest you just use the Map Cycle screen in the web-admin tool. The mutator will honor that list and only pick out maps that are listed in the active list in your Map Cycle screen and that do match with the MinPlayerCount and MaxPlayerCount conditions.

@Cat_in_da_Hat
Is this what you are requesting?

PS:
Default the ini file only contains the RO2 stock maps. Adding Ogledow and Butovo just means to add the next two lines:
Code:
MapSelectors[24]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="TE-Ogledow_B9")
MapSelectors[25]=(MinPlayerCount=0,MaxPlayerCount=64,MapURL="TE-Butovo-B4")

Last edited by Ducky; 01-28-2012 at 06:19 PM.
Reply With Quote
  #11  
Old 01-28-2012, 06:34 PM
Cat_in_da_Hat Cat_in_da_Hat is offline
Senior Member
 
Join Date: Dec 2006
Posts: 837
Default

Ducky you are a mutator machine.

Ok so it will just pick the next map that meets the min player.

I think your previous idea of having it changing to different map cycle lists would run into repetition problems.

Let me know when you are ready to test and I'll throw it up on my server.

Got the Tank one running and turned off both gunner completely ! We don't do the tank map on the Aussie / NZ server so nothing lost with no Tank AI.

Though I might reactivate the hull MG but make its AI ridiculously inaccurate. Can you give an example of the settings to make the AI really bad a shooting.
Reply With Quote
  #12  
Old 01-29-2012, 04:55 PM
Ducky's Avatar
Ducky Ducky is offline
Moderator
 
Join Date: May 2011
Location: Netherlands
Posts: 2,679
Default

Quote:
Originally Posted by Cat_in_da_Hat View Post
Ducky you are a mutator machine.
Lol

Quote:
Originally Posted by Cat_in_da_Hat View Post
Ok so it will just pick the next map that meets the min player.

I think your previous idea of having it changing to different map cycle lists would run into repetition problems.

Let me know when you are ready to test and I'll throw it up on my server.
I'm not sure if I can give much attention to this mutator, because of a project at work that has to be done this week. If all goes well, then I can pick this mutator up somewhere after Thursday. Like I said, 90% of the work is already done. What's left if some bug fixes and fine tuning. The testing I will leave to you (sometimes I'm a lazy ugly duck )

Quote:
Originally Posted by Cat_in_da_Hat View Post
Got the Tank one running and turned off both gunner completely ! We don't do the tank map on the Aussie / NZ server so nothing lost with no Tank AI.

Though I might reactivate the hull MG but make its AI ridiculously inaccurate. Can you give an example of the settings to make the AI really bad a shooting.
Personally I prefer to have the hull MG enabled, but with less accuracy. The main gun I prefer to be disabled, because it can be very annoying if you drive around and the bot starts to turn and fire it.
An easy way to try out the best accuracy settings is by putting a lot of bots on your server and try out different settings. Just drive in your tank and drive into the area where the enemy bots are, then see how many will get killed by your hull MG bot. Also play around a bit with the movement and range settings. That way you can tweak your tank in such a way that the hull MG still has some chance of killing a none moving target in short range, but not when the target moves.

Last edited by Ducky; 01-29-2012 at 05:03 PM.
Reply With Quote
  #13  
Old 01-31-2012, 07:35 PM
Ducky's Avatar
Ducky Ducky is offline
Moderator
 
Join Date: May 2011
Location: Netherlands
Posts: 2,679
Default

Got the first beta ready. You can get it here:
http://dl.dropbox.com/u/54368035/Dyn...elector_B1.zip

The .ini files must be placed in the rogame\config folder.
The .u file goes in the rogame\cookedpcserver folder.

You have to edit the RODynamicMapSelector.ini file to set the MinPlayerCount and MaxPlayerCount for each map. That is generally the only thing you need to change in that file. Default all maps are set for all number of players.

Please don't forget to restart your server after putting the files on the server (or after editing the ini file).

To start the mutator can be started with ?Mutator=DynamicMapSelector.DynamicMapSelector

The mutator will use your normal map cycle as set in the web-admin tool, but it will check if the number of current players (at round end) is equal too or greater than MinPlayerCount and less than or equal too MaxPlayerCount (set in ini file). If it isn't, then that map will be skipped. If it is, then that map will be started.
It will use the complete map url for the map to load as it is specified in the Map Cycle list. If the DynamicMapSelector is not in that url, then it will add itself to prevent that it will not run for the next map.

I did test it a bit, but hard if I'm the only player. I hope someone can test it on there server. Server will become unranked (cos not yet white-listed), but will be ranked again after a server restart.

Enjoy
Reply With Quote
  #14  
Old 02-01-2012, 12:50 AM
Cat_in_da_Hat Cat_in_da_Hat is offline
Senior Member
 
Join Date: Dec 2006
Posts: 837
Default

hi mate,

I'll give it a test on the Aussie / NZ server but it is going to be difficult getting enough players on with the unraked status.

I tried to use this in the map change additional url

?MinPlayers=35?MaxPlayers=52?mutator=TankTweak.Tan kTweak?Mutator=DynamicMapSelector.DynamicMapSelect or

So it would load the two mutators. It only loaded the mapselector.

any clues on how to get both loaded ?

Last edited by Cat_in_da_Hat; 02-01-2012 at 12:58 AM.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 03:43 AM.


Powered by vBulletin®
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Copyright ©2005 - 2013, Tripwire Interactive, LLC