MegaDomination + MegaTDM

Discussions about GameTypes
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

MegaDomination + MegaTDM

Post by MrLoathsome »

Get it here: http://www.ecoop.tk/load/megadomination ... m/1-1-0-54

Here is the current readme:
8:13 AM 4/29/2013 MegaDOM + MegaTDM RC1 - by MrLoathsome

I decided I wanted to extend and improve the Domination gametype, without changing gameplay at all, and also
make scriptedpawns, (Monsters), play Domination without recoding any new versions of them.

Tried to write this so it works with the default engine and code, instead of any "brute force" methods
that would involve changing the core behaviour of the game or any aspect of it.


Features:

1. Full support for Domination games with up to 64 Control Points.
2. Support for playing Domination and TDM versus monsters.
3. Optimized the core Domination gametype code considerably.**
4. Fixes most of the issues that cause log file warnings/errors and other problems that occur when adding Unreal monsters to UT games.
5. Adjusted HUD to correctly support display of the 1st 5 ControlPoints on the left of the screen, and added count of control points currently held under team icon on the right.

-------------

New config variables:

bScoreSPKills=True // If True, players score point for killing monsters.
bNegScoring=False // If True, players lose a point for killing monsters. (bScoreSPKills must be False)
bMonsterTeam=True // If True game adds a dummy Bot/Player named "The Monsters" to the game. Will score a point whenever monster kills a bot or player.
bScoreSPvsSP=True // If True, and bMonsterTeam=True, "The Monsters" will score a point when a monster kills another monster.
MonsterTeamNum=3 // Team number to put "The Monsters" on. Valid range 1-3. Default of 255 will set the Monster's team number to MaxTeams+1.
ExtraControlPoints=3 // Number of extra Control Points to add. Valid range 0-64 for fixed value. 101-164 will result in random number of extra points between 1 and ExtraControlPoints-100.
// *For MegaTDM, you still want to have this set. Points will be hidden, but needed as they are what instruct the monsters to attack nearby bots.
// Recommended range 1-9 for both DOM and TDM games. Perhaps higher for very large maps.
// If you add more than 9 Control Points to your DOM games, be aware that the scoring is exponential. You will want to increase the GoalTeamScore and/or Time Limit accordingly.

These new options may be accessed 2 ways.

1. Via the UT menu. Options - Advanced Options - Game Types*
2. Edit the new gametype sections in your UT.ini file.

-------------

The new gametypes:

BP5DOM.Domination - Domination on Domination maps.
BP5DOM.TeamGamePlus - Team Death Match on Domination maps.
BP5DM.Domination - Domination on DM maps.
BP5DM.TeamGamePlus - Team Death Match on DM maps.
BP5CTF.Domination - Domination on CTF maps. // Note, this will put 1st 2 Control Points where the flags would usually be.
BP5CTF.TeamGamePlus - Team Death Match on CTF maps.


After you play a game with one of the new gametypes, a new section should be appended to
you UnrealTournament.ini file.

Look for sections: [BP5DM.TeamGamePlus], [BP5DOM.Domination] etc.

You can edit the settings there.

-------------

Installation:

Drop the files into your UnrealTournament\System folder.
Configure a SwarmSpawn.ini file as you wish.
Select one of the new gametypes and play.

For servers uz files provided for your redirect.

-------------

Note regarding MaxTeams.

The game setup menus will not allow you to set this to be 1.
If you wish to have all players and bots on Red, and all Monsters on Blue, edit the UnrealTournament.ini file section for the
gametype, and set MaxTeams to 1 and MonsterTeamNum to either 1 or 255.

-------------

Adding Monsters.

Although this will work with most any mutator you use to add monsters to your games with, it is recommened
that you use the SwarmSpawn mutator to add them. (Sample ini files included.)

For this to work well, you need to use a mutator that will maintain a fixed number of monsters in the game all the time.
SwarmSpawn was designed to do just that.

-------------

**Code optimizations.

The default Epic domination gametype code is an abomination and full of unoptimized horror.
Details available on request.

-------------

Enjoy !

*Credits:

Thanks to Dr.Flay over at UT99.org for the int file tweak that gives access to the
gametype settings in Advanced Options.
Note you must have OldSkool installed for the Advanced Options menu to be available.

Also thanks to Feralidragon for the bit of code that does the maxMapSize calculation.
Next version should include integrated version of the SwarmSpawn mutator, with support for
the monsters spawning in correct team area rather than randomly.

* Edit - 05/01/2013

Tested online tonight. TDM works fine I think. New DOM HUD fails to replicate correctly. (Game still works however.)
Next update will also fix that issue.
Last edited by MrLoathsome on Wed May 01, 2013 8:13 am, edited 1 time in total.
blarg
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: MegaDomination + MegaTDM

Post by Higor »

Is there already a map that fits a gametype of these characteristics? I mean, huge with lots of control points.
Never bothered to search.
User avatar
EvilGrins
Godlike
Posts: 9668
Joined: Thu Jun 30, 2011 8:12 pm
Personal rank: God of Fudge
Location: Palo Alto, CA
Contact:

Re: MegaDomination + MegaTDM

Post by EvilGrins »

Higor wrote:Is there already a map that fits a gametype of these characteristics? I mean, huge with lots of control points.
Never bothered to search.
I'd have to search what I've got. Most control points I've ever seen was 5.
http://unreal-games.livejournal.com/
Image
medor wrote:Replace Skaarj with EvilGrins :mrgreen:
Smilies · viewtopic.php?f=8&t=13758
UT99.org

Re: MegaDomination + MegaTDM

Post by UT99.org »

medor wrote:The file name is BP5_RC1.zip so why BP5 ?
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: MegaDomination + MegaTDM

Post by MrLoathsome »

Higor wrote:Is there already a map that fits a gametype of these characteristics? I mean, huge with lots of control points.
Never bothered to search.
Hellscraig did 2 huge DOM maps that have 5 control points on them.

There is 1 small map that has 64 control points on it, but it is barely playable. Almost just a novelty map.

But that doesn't really matter for this gametype. It will support maps with anywhere from 1 to 64 points that were placed there
by the map author, but will add more control points itself up to the number you set in the ExtraControlPoints variable on pretty much
any map.
On CTF maps, it places control points where the flags would usually be, but you can also add a few extra ones if you with.

For most maps, I have found 3-5 control points works best, but this will let you add a lot more if you want to play DOM on
big DM sniper maps or something.
Medor wrote:The file name is BP5_RC1.zip so why BP5 ?
Why not? It is shorter. And if/when a RC2 of this is released, the file and classnames will remain the same.
Older versions will just be replaced by the new.
blarg
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: MegaDomination + MegaTDM

Post by Higor »

I've always liked to play on DOM-Eruption, mainly due to the fact it was probably my first downloaded map ever (lol?) and that it has an extra control point, with nice playable areas.
Playing these maps and gametypes is in me after all (I also play ONS and Siege and both involve zone control too).

...
Realized I didn't add BotZ paths to Eruption, brb lol.
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: MegaDomination + MegaTDM

Post by MrLoathsome »

Just tested this a bit with Botz. (v11.7) And something odd was happening.
On regular DOM maps, this gametype hides/disables the default ControlPoints, and replaces them with my new ControlPoint class.

If a botz touches the point, the default controlpoint somehow becomes un-hidden.
No clue why that would happen. Botz are the only pawns so far I have found that do that.....
blarg
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: MegaDomination + MegaTDM

Post by Higor »

Point me to the mod, I'll look into it
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: MegaDomination + MegaTDM

Post by MrLoathsome »

Link to download the mod there at the top of post 1 in this thread.

Was just playing the Domination on Dom maps with a couple extra control points.

Here is the bit of code that attempts to hide the default controlpoints:

Code: Select all

		ControlPoint(N).bHidden = true;
		ControlPoint(N).Disable('Touch');
		ControlPoint(N).SetTimer(0.0, false);
		ControlPoint(N).SetPhysics(PHYS_None);
		ControlPoint(N).RemoteRole = ROLE_None;
		ControlPoint(N).SetCollision(false, false, false);
Was a bit surprised to see them show up again after a Botz touched them.
Why would botz need to mess with the bHidden value for a control point?
blarg
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: MegaDomination + MegaTDM

Post by Higor »

My first guess is, hacky behaviour on BotZ when camping a control point, calling Touch() without doing collision check on the control point.
I'll take a look at the mod tomorrow and find a less hacky way to do it.
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: MegaDomination + MegaTDM

Post by MrLoathsome »

Another thought. If the botz are finding the ControlPoints by searching the whole navigation points list, they will only find the default
ControlPoints but wont find any of the extra ones added by my gametype.

However, I think there is a better way, that will work with the default UT Domination and MegaDomination.
This is directly related to a bunch of optimizations I made in the MegaDomination code so this is a good thread
to discuss it in.

Examine this bit of code from the default Botpack.Domination class:

Code: Select all

var ControlPoint ControlPoints[16]; // control point list used for AI
.
.
.
function PostBeginPlay()
{
	local NavigationPoint N;
	local int TempTotal;

	Super.PostBeginPlay();

	for ( N=Level.NavigationPointList; N!=None; N=N.NextNavigationPoint )
		if ( N.IsA('ControlPoint') )
		{
			ControlPoints[TempTotal] = ControlPoint(N);
			TempTotal++;
		}
}
They made a nice short list of all the ControlPoints in the map at game startup, but failed to make the
total number of them a Global variable for the gametype. (DERP!!!)

If you look closer at the default Epic code, they do the same check on the entire navigation point list in 4
places. Including the Timer function for the gametype, and twice in the PostRender function for the
ChallengeDominationHUD class. When they have them already loaded into an array, which is seldom
going to have more than 3-5 entries in it. (DERP! Again...)

There were also 4 places where the code checks all 16 entries in the ControlPoints array, and checks to see if they are == None
before doing anything with them when 99% of the time there are only going going to be 3-5 used. (Yet more DERP!)

In MegaDomination, I made a new Global Variable for the count of entries in the ControlPoints array, and use that to optimize
all the loops that were doing anything with the ControlPoints. It only does 1 check of NavigationPointList when the game starts.

You should be able to access the ControlPoints list using something like:

Code: Select all

Domination(Level.Game).ControlPoints[i]
If you just check that array until an element = None, your code would work perfect with both default UT domination
and this thing I did. (I think.... Haven't tested that.)

Note, the Botz shouldn't have to force a call to the Touch function if you use them with MegaDomination, but I don't think it will
break anything. MegaDomination ControlPoints should activate for any pawn that has bIsPlayer set to true. (With a separate bit for ScriptedPawns...)

The Botz must be looking at the NavigationPointList array to find the control points as that is the only thing that explains the default ones
becoming visible when the botz trigger them.

Looking at the code, I am still not exactly sure why the Botz need to force the call to Touch. If they have bIsPlayer set true, they should
be set as the Controller when the controlpoint itself detects they have touched it. Let me know what you find out.
blarg
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: MegaDomination + MegaTDM

Post by Higor »

The 11.5 features a couple of quick fixes, but still doesn't behave like real Domination.
(BotZ goes to Freelancing state instead of the special Domination freelance)

At least it will be playable now.
User avatar
UTDeath
Skilled
Posts: 248
Joined: Sat Apr 20, 2013 11:35 pm
Personal rank: Tournament Champion.
Location: Mexico.

Re: MegaDomination + MegaTDM

Post by UTDeath »

I downloaded this and I didn't really understand it, maybe I just had to read more. Anyway, I only want to play Double Domination on CTF maps replacing the flags with control points, that would save me a lot of space as I could use my CTF maps instead of getting a bunch of DDOM maps. Like that other post says but it's now obsolete, anyone wants to help?
You cannot kill what is already dead.
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: MegaDomination + MegaTDM

Post by MrLoathsome »

Hello UTDeath, and welcome to the site.

To play CTF maps with ControlPoints replacing the flags but no extra ControlPoints, you will need to edit the [BP5CTF.Domination]
section in your UT.ini file that should show up after you play the gametype once.

Set ExtraControlPoints=0
For all the Domination gametypes this will always put the new ControlPoints where it finds any default Flagbases and/or ControlPoints on a map, regardless of the map prefix.
ExtraControlPoints is how many it will add in addition to the default ones it finds on the map.

If you are not adding any monsters to your games, you should also set bMonsterTeam to False.

Also, hope to have an update for this soon.
I almost have the new DOM hud working online, except for a few details.
(Replication is a pain in the ass.....)
blarg
User avatar
UTDeath
Skilled
Posts: 248
Joined: Sat Apr 20, 2013 11:35 pm
Personal rank: Tournament Champion.
Location: Mexico.

Re: MegaDomination + MegaTDM

Post by UTDeath »

Alright, I tried that and I have to say, I think it works the way you planned it but it isn't what I thought.
Now it is great but it's Domination on a CTF map, what I meant was Double Domination, like, you take both control points for a couple of seconds and then you get a point if the other team didn't take one of them.
I got Eavy Domination Plus which is exactly that only in DOM maps which keeps it in three control points, that's cool and all but I want to do it on CTF maps.
You cannot kill what is already dead.
Post Reply