Warzone 2100: Contingency (Beta now released)

Did you create a mod, map, music, or a tool? Present them here and earn feedback!
Note: addon requests do not belong here.
Note, everything uploaded to this forum, MUST have a license!
User avatar
NoQ
Special
Special
Posts: 6175
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: Warzone 2100: Contingency (Beta now released)

Post by NoQ » 16 Oct 2014, 21:20

Goth Zagog-Thou wrote:*looks around* I guess I'm the "De-facto" maintainer of Contingency now. :twisted: If that's the case ...
This package has a few tweaks by me - minor fixes for stderr warning messages (some of which were sensible). Also, i can keep the addons page updated through my addons-moderator rights, if necessary.

User avatar
Iluvalar
Regular
Regular
Posts: 1782
Joined: 02 Oct 2010, 18:44

Re: Warzone 2100: Contingency (Beta now released)

Post by Iluvalar » 16 Oct 2014, 23:55

Goth Zagog-Thou wrote: *looks around* I guess I'm the "De-facto" maintainer of Contingency now. :twisted: If that's the case ...
Then I feel compelled to warn you as well. Some design choice made this mod IMPOSSIBLE to balance properly. One specific research path will beat any other research path. 90% of what you will add in it will not be used by anyone (but instant loser).

Even a magic balance fairy wouldn't be able to overcome the mathematical reality behind that fact. i know you say "one day i'll work on balancing the stuff correctly" but that day you will realize it's just impossible.

If you want a competitive mod, you should restart a new one instead. I'm not saying that to be mean or anything, I'm just trying to save people some useless work.
Heretic 2.3 improver and proud of it.

User avatar
Goth Zagog-Thou
Regular
Regular
Posts: 1582
Joined: 06 Jan 2007, 08:08
Location: Delta Base
Contact:

Re: Warzone 2100: Contingency (Beta now released)

Post by Goth Zagog-Thou » 17 Oct 2014, 01:22

NoQ, if you're maintaining Contingency then by all means do so .. didn't mean to step on your toes. :) Are there any balance changes stat-wise or changes in the .pie files in that bugfix version? If so I'll want to get my own copies that are in Cam 4 updated and the changes applied so that everything is consistent.

@Iluvalar: Noted. :)

User avatar
NoQ
Special
Special
Posts: 6175
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: Warzone 2100: Contingency (Beta now released)

Post by NoQ » 17 Oct 2014, 05:58

I was meaning, like, "hey maintainer guy, i made some patches, make sure they get merged" :lol2: There seems to be some mess with "download from here", "download from there", we just need to stay merged somehow.

I don't remember what exactly i changed, the easiest way to see is to run a diff against v0.7.9. There were no balance changes or model changes, though i think i fixed the PIE hash collision problem somehow.

User avatar
Goth Zagog-Thou
Regular
Regular
Posts: 1582
Joined: 06 Jan 2007, 08:08
Location: Delta Base
Contact:

Re: Warzone 2100: Contingency (Beta now released)

Post by Goth Zagog-Thou » 17 Oct 2014, 19:33

Oh good, I was looking at that hash collision thing last night. Guess I need to do a merge then. Thanks for fixing it. Gold star and a smiley face for you. :lol2:

User avatar
Shadow Wolf TJC
Regular
Regular
Posts: 1047
Joined: 16 Apr 2011, 05:12
Location: Raleigh, NC

Re: Warzone 2100: Contingency (Beta now released)

Post by Shadow Wolf TJC » 18 Oct 2014, 06:20

I haven't posted in a long time, but I thought I should stop by every now and then. Sadly, very little work has been done on Contingency since I was last present, mostly due to a loss of interest in Warzone 2100, but also because I'm back in college, working on a degree in game development.

What little work I've been doing on Warzone 2100 related stuff was mostly tweaking NullBotSW, the modified version of NullBot that I began tweaking to provide a more competent AI for use in Contingency. Lately, I've been working on adding in 1 or 2 personalities (specifically, the Flamer/Laser personality, although a personality that focuses on Mortars and Howitzers is currently in the brainstorming phases) and reducing the file size by replacing some redundant code with simpler constants that are called frequently. For example, in nullbotsw-contingency.js.inc, where the various personalities are defined, I'm planning on replacing this:

Code: Select all

		this.atWeaponsMedium = [
		[
			"MG-AntiTankGss",
			"MG-AntiTank2",
			"MG-AntiTank",
		],
		[
			"MG-AntiTankGss",
			"MG-AntiTank2",
			"MG-AntiTank",
		],
		[
			"MG-AntiTankGss",
			"MG-AntiTank2",
			"MG-AntiTank",
		],
		[
			"Mortar-GaussRamjet",
			"Mortar-Ramjet",
		],
		[
			"Mortar-GaussRamjet",
			"Mortar-Ramjet",
		],
		[
			"Mortar-GaussInc",
			"Mortar-Incenediary",
		],
		];
		
with this:

Code: Select all

		this.atWeaponsMedium = [
			contingencyATMachinegunsMedium,
			contingencyATMachinegunsMedium,
			contingencyATMachinegunsMedium,
			contingencyATMortarsMedium,
			contingencyATMortarsMedium,
			contingencyIncMortarsMedium,
		];
		
with these constants being defined in nullbotsw-contingency-defs.js.inc, where a whole bunch of other variables and constants, such as arrays full of bodies and propulsions, are defined before they're used.

As for the Contingency mod itself, since I haven't played Warzone 2100 in a long time, I'll need to know how well this plays in the current version of Warzone 2100: version 3.1.1. Over the past, I've made a minor balance adjustment that would, unfortunately, break NoQ's Contingency version of Nullbot's compatability with the mod, which was why I've been mostly working on finishing up my own version of Nullbot, which I planned to bundle with Contingency, starting with the next build: version 8.0. The changes to the Contingency mod's files were long finished, but NullBotSW was not yet ready to be bundled, so I've had to put the update on hold until NullBotSW had enough finished personalities to be able to replace the original NullBot.

Here's a breakdown of the changes that I had planned for version 8.0, from the readme file that I had made in anticipation of the new version:
Change log:
Version 0.8:
- Downgraded some Gauss Mortar and Gauss Howitzer defenses from Plasteel status to Plascrete status so that they could be researched sooner.
- Added missing prerequisites for T3 Railgun upgrades. (They should've required Neural Synapse Research Brain as a prerequisite.)
- Fixed price errors of a few Mortar defenses.
- NullBotSW will be bundled with this mod from now on since compatability with NullBot was broken with this update.
- Fixed bug that prevented the tier limiting mods from working.
@NoQ and Goth Zagog-Thou: I do appreciate your eagerness to help continue work on Contingency while I'm absent, and I don't mind if anyone made derivative works from it, but I'd appreciate it more if you made a fork of it instead of modifying the original that I uploaded (although I'll incorporate the stderr warning message fixes made by NoQ), since I might want to make some changes that are contrary to what changes you (or anyone else) have made.

For now, I'm mostly interested in what others can do to 1. update Contingency files to be compatable with version 3.2, and 2. submit .pie models that could possibly replace the various placeholders that I've been using for Cyborg weapons and the new vehicle bodies.

@Iluvalar: Still feel that way, huh? If you honestly believe that 90% of whatever's added into Contingency would never be used, except by losers, then care to tell me what's the 10% that's guaranteed to win? I've watched a few matches where I pitted various personalities of my modified Nullbot AI against eachother, and from the looks of things, they tended to reach a stalemate where, despite using different droid builds, neither side gained an edge over the others, even as they reached the end-game stuff.

By the way, if balance is something that you're keenly interested in studying, I'd suggest watching this episode of Extra Credits, and this one (and maybe this one as well). Alot of the tech in the mod, along with vanilla Warzone 2100, is most certainly situational, whether it's according to the opponent's tech choices or according to the map that's being played. Although I'm still aiming to provide players who specialize in Machineguns, Cannons, Rockets, Flamers, Lasers, and/or Artillery ways to counter tanks, cyborgs, VTOLs, and structures alike, I'm actually looking to keep the game more interesting by adding in some subtle imbalances, whether it's that certain research paths require more time and power to research them, or that certain weapon lines have weaknesses that are inherent in their design (such as Lasers' lower damage per second in exchange for longer range, or Rockets' exceedingly-long reload times, and sometimes accuracy penalties, to compensate for their high damage per shot or salvo). If I do find that some research choices are being underused over a wide variety of different situations, then I may wish to find ways to make them more useful, such as reducing their research and/or build costs, and buffing their HP, attack power, etc.

Also, I'm pretty much done adding in new content to Contingency, so nobody should have to worry about the addition of anything new that could upset the mod's balance. :wink:

By the way, I've been thinking about designing a new mod for the game, one that's themed around modern/near-futuristic warfare (with military technology being modeled more closely to real-life tanks, helicopters, and such), and doesn't take place in a post-apocalyptic setting (a la Command & Conquer: Generals), with a smaller research system that allows players to quickly have access to amphibious and VTOL propulsion systems and long-range artillery weapons, a smaller but more varied selection of vehicle bodies (including such lightweight but lightly-armored bodies as a technical or gun truck, along with heavyweight but heavily-armored bodies such as a tank or IFV), more interconnected weapon lines in which traditional upgrades could benefit most weapon lines simultaneously, allowing players to better afford to field a wider variety of unit mixes and weapon types (such as fast rocket jeeps supporting heavier cannon-sporting main battle tanks), and upgrades that are more abstract in their effects (such as range bonuses and lighter versions of some earlier turrets). I'd imagine that such a mod would play like a mixture of Contingency, WZ Mini: Scavenger Wars, and NRS.

@ZombiehunterRT: Sadly, I don't know of any way to get buildings to build on water, so I wouldn't be able to incorporate player-built naval units, even if I wanted to. I might want to incorporate some placeable Scavenger-controlled naval units in the future though.

Regarding the addition of walkers, or mecha as I'd much rather prefer to call them, aubergine made this post from last year:
aubergine wrote:Per and Berg got the old XanaxPrime mech mod working in 3.x series: viewtopic.php?f=30&t=10997#p121993

Image

Would be cool to have them in Contingency as mid-late game cyborg option.
My response was that incorporating them into the game would've been problematic, particularly when it comes to how to design and research them.

Also, I don't quite picture them working with the Warzone 2100 canon all that well, since according to Warzone 2100's backstory, the cyborgs that use the Synaptic Link technology were 1st patented in 2080, which is only 5 years before the Collapse happened. I have doubts that mecha that use the Synaptic Link technology would've been developed within that short of a time period, or that anyone, including Nexus, would bother trying to develop them in the post-apocalyptic period between the Collapse and the game's setting. (Then again, I've got beam-powered artillery missiles in the game, but the canon never mentioned anything related to their development, so... :roll: )
Creator of Warzone 2100: Contingency!
Founder of Wikizone 2100: http://wikizone2100.wikia.com/wiki/Wikizone_2100

User avatar
NoQ
Special
Special
Posts: 6175
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: Warzone 2100: Contingency (Beta now released)

Post by NoQ » 18 Oct 2014, 07:24

Guys, don't bother about balance too much.
Few mods have ever reached any close to it anyway.

But of course AI tests are a completely irrelevant thing to balance testing.
Always-stalemate is a bad thing though, probably better to avoid (overpowered defenses?)
1. update Contingency files to be compatable with version 3.2
Not the best time right now, a lot of things are still to change in 3.2.

User avatar
Shadow Wolf TJC
Regular
Regular
Posts: 1047
Joined: 16 Apr 2011, 05:12
Location: Raleigh, NC

Re: Warzone 2100: Contingency (Beta now released)

Post by Shadow Wolf TJC » 18 Oct 2014, 20:04

NoQ wrote:
1. update Contingency files to be compatable with version 3.2
Not the best time right now, a lot of things are still to change in 3.2.
You mean to say that 3.2 may not use the .ini file format after all? That was honestly all that I had planned on doing in an attempt to make it compatable with 3.2 builds. :o
Creator of Warzone 2100: Contingency!
Founder of Wikizone 2100: http://wikizone2100.wikia.com/wiki/Wikizone_2100


User avatar
Goth Zagog-Thou
Regular
Regular
Posts: 1582
Joined: 06 Jan 2007, 08:08
Location: Delta Base
Contact:

Re: Warzone 2100: Contingency (Beta now released)

Post by Goth Zagog-Thou » 19 Oct 2014, 06:00

Oh. I had no idea either. Gosh. JSON, huh. No experience with that at all. I'll look up the particulars about it later on.

And welcome back, Shadow. We missed you.

No plans on my end to mess with original Contingency stuff, since anything I had done with it for the Unified Dataset Project (what Campaign 4 uses) was already considered a fork.

Original Contingency as it already has been was going to get updated to work on 3.2 and some bugfixes (already applied, as you've likely read earlier) and that was all that had been discussed so far.

As far as the Mechs go, I already have them nicely compatible and co-existy with Cyborgs and Contingency files -- no Templates or Researches have been made yet though, and I've yet to add the Mech stuff to Names.txt. Would you like the updated files? This is Berg's version using different prefixes for the files to make them compatible (Mech_ instead of Cyb_ ). A more detailed description of what I did to them can be found here.

User avatar
NoQ
Special
Special
Posts: 6175
Joined: 24 Dec 2009, 11:35
Location: /var/zone

Re: Warzone 2100: Contingency (Beta now released)

Post by NoQ » 19 Oct 2014, 08:48

JSON, huh. No experience with that at all.
You don't need any. That's roughly the same thing as JavaScript inline structure or array declaration:

Code: Select all

/* kinda sorta JSON loading */
var MyPoint = { x: 15, y: 16, MyFancyDataStruct: { MyArray: [41, 42, 43] } };

/* what it turns out to be */
MyPoint.x; // 15
MyPoint.MyFancyDataStruct.MyArray[1]; // the answer
So, the point is, once the conversion is done, all stats can be loaded to scripts through simple eval() call (usually a bit saner way is employed, but still trivial - we do not need to manually re-implement all fields in the structures or something like that).

If this is done, many dreams may come true, from modding through scripting (contents of a small mod would boil down to "make MG3Mk1 damage double of MG2Mk1 damage", rather than storing the whole weapon stats, or even exact damage value), to game-rules-unaware AI (imagine the same NullBot code that would work without changes on vanilla, Contingency, NRS, WZMini, and all future mods you may imagine, automagically finding good weapon and combinations in any game rules set).

User avatar
Goth Zagog-Thou
Regular
Regular
Posts: 1582
Joined: 06 Jan 2007, 08:08
Location: Delta Base
Contact:

Re: Warzone 2100: Contingency (Beta now released)

Post by Goth Zagog-Thou » 19 Oct 2014, 09:02

I see.

Too bad we can't load all of our stats that way ... set up arrays in the scripts and load the data dynamically. It would use a lot more memory but would allow for doing some interesting things like having access to the stats in the scripts. I could also see the potential for abuse, so yeah. Toss up.

Looks pretty, though. :)

[EDIT] Great minds think alike. ;)

User avatar
Goth Zagog-Thou
Regular
Regular
Posts: 1582
Joined: 06 Jan 2007, 08:08
Location: Delta Base
Contact:

Re: Warzone 2100: Contingency (Beta now released)

Post by Goth Zagog-Thou » 19 Oct 2014, 09:07

Damn ... this could finally open up Structures Editing like Vehicle Editing ... maybe. Reference here. And yes, I know it requires more than that to get it working properly.

User avatar
Shadow Wolf TJC
Regular
Regular
Posts: 1047
Joined: 16 Apr 2011, 05:12
Location: Raleigh, NC

Re: Warzone 2100: Contingency (Beta now released)

Post by Shadow Wolf TJC » 22 Oct 2014, 03:47

Speaking of, I personally believe that the whole process of having to research new defensive structure templates after having to research the weapon and structure body, even if it's been set to finish research instantly, is rather tedious, :roll: though until now, I haven't thought of any ideas on how to automatically give players the new templates once the prerequisites for unlocking said defensive structures are researched. Although I thought about accomplishing this in a similar manner to how I automatically give power to all players over time through rules.js, unfortunately, I've found that eventResearched() and enumResearch() lack the ability to allow programmers to specify a player id in place of the one that's provided by default, so sadly, I'm unable to make effective use of the completeResearch(), or even the enableStructure() actions in-game. :dontknow: My only option left would have to be to automatically force the player to pursue these research items through pursueResearch() once eventResearch() is fired, and once enumResearch() finds a valid tech to readily pursue. :nea:

If I can somehow pull this off, then that addition alone may be worthy of a major update. That, and the addition of (almost) every combination of every possible weapon or system being mounted on every possible tier of defensive structures (Hardcrete, Supercrete, Plascrete, and Plasteel), since I may want to help out players who feel that having to research more advanced tiers of structure bodies in order to be able to use defenses armed with more advanced weapons (for example, requiring Plasteel Hardpoints just to be able to build Hardpoints that mount Plasma Cannons) seem annoyingly tedious. I'll just have to hope that the game can handle an additional 1000 or so additional research and structure entries. :ninja:
Creator of Warzone 2100: Contingency!
Founder of Wikizone 2100: http://wikizone2100.wikia.com/wiki/Wikizone_2100

stiv
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 876
Joined: 18 Jul 2008, 04:41
Location: 45N 86W

Re: Warzone 2100: Contingency (Beta now released)

Post by stiv » 22 Oct 2014, 04:13

Too bad we can't load all of our stats that way ..
Funny you should mention that. Berg and I have been playing with Mongodb as a way to store interesting WZ bits. Mongodb uses JSON as its native format. Very nice since it translates directly into Python dicts and lists.

Post Reply