Need help developing 3.3.0 campaign

Discuss the future of Warzone 2100 with us.
User avatar
alfred007
Regular
Regular
Posts: 564
Joined: 31 Jul 2016, 06:25
Location: Stuttgart, Germany

Re: Need help developing 3.3.0 campaign

Post by alfred007 » 23 Feb 2019, 22:45

Because I'm no programmer this question might be stupid but I ask it anyway. In statsdef.h we have the following code for the string weaponEffect:

Code: Select all

enum WEAPON_EFFECT
{
	WE_ANTI_PERSONNEL,
	WE_ANTI_TANK,
	WE_BUNKER_BUSTER,
	WE_ARTILLERY_ROUND,
	WE_FLAMER,
	WE_ANTI_AIRCRAFT,
	WE_NUMEFFECTS,			/**  The number of enumerators in this enum. */
};
Shouldn't the weaponEffect ALL ROUNDER be also called there?

Forgon
Code contributor
Code contributor
Posts: 289
Joined: 07 Dec 2016, 22:23

Re: Need help developing 3.3.0 campaign

Post by Forgon » 23 Feb 2019, 23:06

alfred007 wrote:
23 Feb 2019, 22:45
Because I'm no programmer this question might be stupid but I ask it anyway. In statsdef.h we have the following code for the string weaponEffect:

Code: Select all

enum WEAPON_EFFECT
{
	WE_ANTI_PERSONNEL,
	WE_ANTI_TANK,
	WE_BUNKER_BUSTER,
	WE_ARTILLERY_ROUND,
	WE_FLAMER,
	WE_ANTI_AIRCRAFT,
	WE_NUMEFFECTS,			/**  The number of enumerators in this enum. */
};
Shouldn't the weaponEffect ALL ROUNDER be also called there?
"ALL ROUNDER" is apparently a synonym for "WE_ANTI_AIRCRAFT", judging from src/stats.cpp:

Code: Select all

const StringToEnum<WEAPON_EFFECT> mapUnsorted_WEAPON_EFFECT[] =
{
	{"ANTI PERSONNEL",      WE_ANTI_PERSONNEL       },
	{"ANTI TANK",           WE_ANTI_TANK            },
	{"BUNKER BUSTER",       WE_BUNKER_BUSTER        },
	{"ARTILLERY ROUND",     WE_ARTILLERY_ROUND      },
	{"FLAMER",              WE_FLAMER               },
	{"ANTI AIRCRAFT",       WE_ANTI_AIRCRAFT        },
	{"ALL ROUNDER",         WE_ANTI_AIRCRAFT        },  // Alternative name for WE_ANTI_AIRCRAFT.
};
const StringToEnumMap<WEAPON_EFFECT> map_WEAPON_EFFECT = mapUnsorted_WEAPON_EFFECT;

bool getWeaponEffect(const WzString& weaponEffect, WEAPON_EFFECT *effect)
{
	if (strcmp(weaponEffect.toUtf8().c_str(), "ANTI PERSONNEL") == 0)
	{
		*effect = WE_ANTI_PERSONNEL;
	}
	else if (strcmp(weaponEffect.toUtf8().c_str(), "ANTI TANK") == 0)
	{
		*effect = WE_ANTI_TANK;
	}
	else if (strcmp(weaponEffect.toUtf8().c_str(), "BUNKER BUSTER") == 0)
	{
		*effect = WE_BUNKER_BUSTER;
	}
	else if (strcmp(weaponEffect.toUtf8().c_str(), "ARTILLERY ROUND") == 0)
	{
		*effect = WE_ARTILLERY_ROUND;
	}
	else if (strcmp(weaponEffect.toUtf8().c_str(), "FLAMER") == 0)
	{
		*effect = WE_FLAMER;
	}
	else if (strcmp(weaponEffect.toUtf8().c_str(), "ANTI AIRCRAFT") == 0 || strcmp(weaponEffect.toUtf8().c_str(), "ALL ROUNDER") == 0)
	{
		*effect = WE_ANTI_AIRCRAFT;
	}
	else
	{
		ASSERT(!"Invalid weapon effect", "Invalid weapon effect: %s", weaponEffect.toUtf8().c_str());
		return false;
	}

	return true;
}

User avatar
Berserk Cyborg
Code contributor
Code contributor
Posts: 813
Joined: 26 Sep 2016, 19:56

Re: Need help developing 3.3.0 campaign

Post by Berserk Cyborg » 24 Feb 2019, 22:00

Forgon wrote:
23 Feb 2019, 23:06
"ALL ROUNDER" is apparently a synonym for "WE_ANTI_AIRCRAFT", judging from src/stats.cpp:
Yeah, pretty much. I remember that something suspicious would happen if both are specified at the moment (anti-aircraft overrides all-rounder in that case and would likely confuse a mod maker). One day we should be able to load a file with as many modifiers as we want.

--

Alpha 12 observations/suggestions:

1. Hardcrete structures were destroyed too quickly when up against a few heavy-cannons. All the multiplayer structure counterparts have 2-3 times the amount of hitpoints which I am considering applying to campaign to see if it helps solve this issue.

2. Rocket cyborgs are too powerful for how cheap and fast they are. My suggestion would be to low ROF.

3. Flamer cyborgs didn't appear to be OP. They do, however, destroy small bodies very quickly and do decent against
the hovers.

4. MRA might need a small increase in base damage since it seemed to me, more often than I would like, that cyborgs would just survive enough to successfully flee to the repair bays.

5. Wasn't impressed with the HMG against cyborgs, unfortunately. It can't even efficiently fit the role of anti-personnel here so we'll need to buff this weapon somehow.

And with that we can identify other potential issues before moving onto Beta.

camBalance.wz

User avatar
Turin86
Greenhorn
Posts: 11
Joined: 25 May 2018, 17:18

Re: Need help developing 3.3.0 campaign

Post by Turin86 » 24 Feb 2019, 22:59

I think to make the game even more challenging. The player could start with Scav bodies and structures, and have to find more as the campaign progresses. You could have the first few artifacts unlock things like the scav rocket pits and other things. And not unlock the Viper body until later in the campaign (perhaps the first away mission)

User avatar
alfred007
Regular
Regular
Posts: 564
Joined: 31 Jul 2016, 06:25
Location: Stuttgart, Germany

Re: Need help developing 3.3.0 campaign

Post by alfred007 » 26 Feb 2019, 04:34

Turin86 wrote:
24 Feb 2019, 22:59
I think to make the game even more challenging. The player could start with Scav bodies and structures, and have to find more as the campaign progresses. You could have the first few artifacts unlock things like the scav rocket pits and other things. And not unlock the Viper body until later in the campaign (perhaps the first away mission)
This would break the plot and I don't think that this would be implemented. Even with the current changes some players are complaining that we are too far away from the original as you can see here for example.

The first missions are made easier so that new players can learn how the game works without getting frustrated by failing. With the new difficulty "Insane" the game became more challenging. With the new balance we are working on we try to make it a little bit more challenging. The overpowered Lancer got weaker and the useless cannons became more powerful so the player has more viable choices. Every help is welcome so please download the camBalance mod from Berserk Cyborg, play the game with it and give us your feedback.

User avatar
alfred007
Regular
Regular
Posts: 564
Joined: 31 Jul 2016, 06:25
Location: Stuttgart, Germany

Re: Need help developing 3.3.0 campaign

Post by alfred007 » 26 Feb 2019, 04:47

Berserk Cyborg wrote:
Forgon wrote:"ALL ROUNDER" is apparently a synonym for "WE_ANTI_AIRCRAFT", judging from src/stats.cpp:
Yeah, pretty much. I remember that something suspicious would happen if both are specified at the moment (anti-aircraft overrides all-rounder in that case and would likely confuse a mod maker). One day we should be able to load a file with as many modifiers as we want.
Aaaah, I remember the problems we had when we implemented the ALL ROUNDER weaponEffect in the campaign modifier.

Would it be possible to use ANTI AIRCRAFT and ALL ROUNDER at the same time if we change the code that way?:

src/statsdef.h

Code: Select all

enum WEAPON_EFFECT
{
	WE_ANTI_PERSONNEL,
	WE_ANTI_TANK,
	WE_BUNKER_BUSTER,
	WE_ARTILLERY_ROUND,
	WE_FLAMER,
	WE_ANTI_AIRCRAFT,
	WE_ALL_ROUNDER,
	WE_NUMEFFECTS,			/**  The number of enumerators in this enum. */
};
and src/stats.cpp

Code: Select all

const StringToEnum<WEAPON_EFFECT> mapUnsorted_WEAPON_EFFECT[] =
{
	{"ANTI PERSONNEL",      WE_ANTI_PERSONNEL       },
	{"ANTI TANK",           WE_ANTI_TANK            },
	{"BUNKER BUSTER",       WE_BUNKER_BUSTER        },
	{"ARTILLERY ROUND",     WE_ARTILLERY_ROUND      },
	{"FLAMER",              WE_FLAMER               },
	{"ANTI AIRCRAFT",       WE_ANTI_AIRCRAFT        },
	{"ALL ROUNDER",         WE_ALL_ROUNDER          }, 
};
If this works, mod makers wouldn't be any more confused. Maybe too easy thinking but I think it's worth a try.

User avatar
Berserk Cyborg
Code contributor
Code contributor
Posts: 813
Joined: 26 Sep 2016, 19:56

Re: Need help developing 3.3.0 campaign

Post by Berserk Cyborg » 27 Feb 2019, 00:16

alfred007 wrote:
26 Feb 2019, 04:47
Would it be possible to use ANTI AIRCRAFT and ALL ROUNDER at the same time if we change the code that way?:
Almost. I made a pull-request months ago about that same thing. But it's not really needed, and, IIRC, fully fixing this affected multiplayer cyborg-cannon and needle and maybe other cannons.
Turin86 wrote: I think to make the game even more challenging. The player could start with Scav bodies and structures, and have to find more as the campaign progresses. You could have the first few artifacts unlock things like the scav rocket pits and other things. And not unlock the Viper body until later in the campaign (perhaps the first away mission)
The "challenge" aspect can mostly be achieved by fixing the balance plus any future AI improvements. The Alpha intro video already shows the Project having the Viper body so that wouldn't be officially feasible. Though, an immediate Alpha prequel could do that.

User avatar
WZ2100ModsFAn
Trained
Trained
Posts: 358
Joined: 15 Apr 2018, 17:25
Location: United States.

Re: Need help developing 3.3.0 campaign

Post by WZ2100ModsFAn » 27 Feb 2019, 00:55

Berserk Cyborg wrote:
27 Feb 2019, 00:16
The "challenge" aspect can mostly be achieved by fixing the balance plus any future AI improvements. The Alpha intro video already shows the Project having the Viper body so that wouldn't be officially feasible. Though, an immediate Alpha prequel could do that.
Alpha Prequel would be almost at the devastation part right?
Or should i re read the warzone wiki.
The one by aubergine.
I use Ubuntu GamePack By UALinux for gaming. Best Ubuntu Distro for Warzone :D

Forgon
Code contributor
Code contributor
Posts: 289
Joined: 07 Dec 2016, 22:23

Re: Need help developing 3.3.0 campaign

Post by Forgon » 02 Mar 2019, 20:11

I finally pushed ticket #4850, which turns the campaign weapons
Angel Missile and Archangel Missile into guided weapons which behave like their
equivalent weapons in skirmish and multiplayer games.

Hopefully, the change can be taken into account by the new campaign balance.
If not, I will obviously revert my commit.

User avatar
Berg
Regular
Regular
Posts: 2199
Joined: 02 Sep 2007, 23:25
Location: Australia

Re: Need help developing 3.3.0 campaign

Post by Berg » 02 Mar 2019, 21:20

Forgon wrote:
02 Mar 2019, 20:11
Hopefully, the change can be taken into account by the new campaign balance.
Why?
Did you not test it?
This will change balance don't you think and make everything different in campaign.
Hoping it don't break is a code practice forgon?
I hope you got it tested before asking for a review!

pastdue
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 217
Joined: 13 Aug 2017, 17:44

Re: Need help developing 3.3.0 campaign

Post by pastdue » 02 Mar 2019, 21:25

Forgon wrote:
02 Mar 2019, 20:11
I finally pushed ticket #4850, which turns the campaign weapons
Angel Missile and Archangel Missile into guided weapons which behave like their
equivalent weapons in skirmish and multiplayer games.

Hopefully, the change can be taken into account by the new campaign balance.
If not, I will obviously revert my commit.
Since the goal is to move from Trac to GitHub, perhaps this is an example of a change that would be best made as a Pull Request on GitHub, instead of being pushed directly to the master branch.

User avatar
alfred007
Regular
Regular
Posts: 564
Joined: 31 Jul 2016, 06:25
Location: Stuttgart, Germany

Re: Need help developing 3.3.0 campaign

Post by alfred007 » 03 Mar 2019, 20:00

Berg wrote:
02 Mar 2019, 21:20
Forgon wrote:
02 Mar 2019, 20:11
Hopefully, the change can be taken into account by the new campaign balance.
Why?
Did you not test it?
This will change balance don't you think and make everything different in campaign.
Hoping it don't break is a code practice forgon?
I hope you got it tested before asking for a review!
You get the Angel Missile late in Gamma 07 and Archangel Missile during Gamma 09. So there are only two levels (Gamma 08 and 09) that are affected by this change. In Gamma 08 it shouldn't change too much but in Gamma 09 it could possibly be. As I wrote here I think decreasing the base damage of these two missiles by 20-25 % should be enough not to break the balance.

User avatar
Berg
Regular
Regular
Posts: 2199
Joined: 02 Sep 2007, 23:25
Location: Australia

Re: Need help developing 3.3.0 campaign

Post by Berg » 03 Mar 2019, 23:00

alfred007 wrote:
03 Mar 2019, 20:00
As I wrote here I think decreasing the base damage of these two missiles by 20-25 % should be enough not to break the balance.
It will end up chasing down a rabbit hole I don't see the need to change it just so its like multi player.
Why not go the other way and make multi player like campaign is!!!
I'm being sarcastic.
The campaign has been worked on to fix all these issues it has why not see how it goes bafore making magor changes to how its balanced.
At least test the new changes in 3.3.0beta1 before you run off changing others things!!
I like to see the work that Berserk Cyborg did with others does not get wasted.

User avatar
Berserk Cyborg
Code contributor
Code contributor
Posts: 813
Joined: 26 Sep 2016, 19:56

Re: Need help developing 3.3.0 campaign

Post by Berserk Cyborg » 03 Mar 2019, 23:37

We can consider this when we get to Gamma in the camBalance mod. Until then this change should be reverted. Only bugfixes should be going into campaign at this time.

User avatar
alfred007
Regular
Regular
Posts: 564
Joined: 31 Jul 2016, 06:25
Location: Stuttgart, Germany

Re: Need help developing 3.3.0 campaign

Post by alfred007 » 09 Mar 2019, 20:46

Testing the unit limit patch from Forgon I moved forward using the "let me win" cheat until Gamma 06. No units are disappearing. In every level where you get units donated you have more units than the limit allows for a moment. But you can't produce new units until you recycled enough units so that you have again space under the limit.
With insane difficulty, you have the logical problem in Beta 01 that a fifth transport gets shot down that never started. Maybe it's possible to increase the limit only for this transition level to 50 for insane difficulty.
In every transport level, the transporter is counted as a normal unit so that you just can produce one unit less than the limit allows, for example, 39 with insane difficulty.
I'm still of the opinion that we should have a step between hard and insane difficulty so I suggest limits of 80/60/50/40.

Post Reply