Multiplayer Campaigns in 1.4 (Test)

Discussion of all aspects of multiplayer development: unit balancing, map development, server development, and so forth.

Moderator: Forum Moderators

Post Reply
Rhuvaen
Inactive Developer
Posts: 1272
Joined: August 27th, 2004, 8:05 am
Location: Berlin, Germany

Multiplayer Campaigns in 1.4 (Test)

Post by Rhuvaen »

Here's a campaign to test the MP campaign capabilities of the releases heading for 1.4. It's designed a tool to find and root out remain bugs, and ensure they don't crop up again.

It's a complete, four scenario campaign based loosely around a story of developers fighting bugs, so, yeah, it's full of drama and pathos. Nothing to take too seriously. But testing, too, should be as fun as possible. ;)

It's made to be played through quickly for convenient testing, but it can also be played out a bit.

Currently, I have a big problem with bug #11094. In most cases the game will freeze at the end of scenario 2 because of this bug. I sometimes got past that, though.

I'm going to make this into a more detailed, up-to-date HowTo later on. For now, you can just look at the scenarios to find out how it's done.

Update: Version 1.3 now attached.

Version 1.3 is just an update - the LOYAL_UNIT macro has changed in core and these new scenarios take that into account.

For the version 1.2 I've added a difficulty selection in scenario 1, which makes it branch into two difficulties:
NORMAL - no side switching (player sides are always 2 and 3)
HARD - including side switching and recall list swaps

Here's a list of what will be tested (and yes, some of these are pretty simple):

Scenario One: Test MP Campaigns Scenario 1
1. story tags
2. side setup from MP game options and defined by the scenario
3. random traits

Scenario Two: Gathering Bug Reports
1. rearranged player sides 2,3 -> 1,2
2. progressing from no shroud to shroud on
2. player recalling
3. storing units for later scenarios

Scenario Three: Turncoat Madness
1. restoring units from variables
2. storing a leader over to another side (from variable)
3. replacing a side's leader (from the recall list)
4. progressing from shroud on to no shroud

Scenario Four: A Patch is Wrought
1. adding an additional human-controlled side
2. swapping the recruit lists / save_ids between the player sides
3. auto-recall (unstoring from recall list)
Attachments
MP_Test_Campaign.zip
Test Campaign, Version 1.3
(22.08 KiB) Downloaded 218 times
Last edited by Rhuvaen on March 4th, 2008, 12:41 pm, edited 3 times in total.
User avatar
Doc Paterson
Drake Cartographer
Posts: 1973
Joined: February 21st, 2005, 9:37 pm
Location: Kazakh
Contact:

Post by Doc Paterson »

I saw you playing this on the server, and immediately fell in love with it. :)
I will not tell you my corner / where threads don't get locked because of mostly no reason /
because I don't want your hostile disease / to spread all over the world.
I prefer that corner to remain hidden /
without your noses.
-Nosebane, Sorcerer Supreme
Karo
Posts: 121
Joined: February 2nd, 2007, 6:48 pm

Post by Karo »

There are OOS errors when playing with two or more players (either substituted or assigned at the beginning).

The OOS errors were mainly position errors.

At the beginning of scenario two, player 1 had recruited units, but neither I nor the observers could see them.

When subbing in players at scenario 4, the first move by the subbed-in player showed up on my client, but an OOS also showed up for that move.

An additional bug:

Other players/observers cannot advance unless the host is in the first player slot. If the host is second, this causes an error in which the host goes first, since she/he loads into the scenario first, he appears to have side 1 units to the other player. The observers see the correct units.

[edit]

More buggage:

Scenario 3 cannot advance with multiple players. Side 1 (the host) gets a defeat message, thus ending the scenario.
[/edit]
Rhuvaen
Inactive Developer
Posts: 1272
Joined: August 27th, 2004, 8:05 am
Location: Berlin, Germany

Post by Rhuvaen »

Thanks, Doc, for the thumbs up. I can only wonder what minion of yours was watching ;).

Karo, thanks for the test!
Karo wrote:There are OOS errors when playing with two or more players (either substituted or assigned at the beginning).

The OOS errors were mainly position errors.

At the beginning of scenario two, player 1 had recruited units, but neither I nor the observers could see them.

When subbing in players at scenario 4, the first move by the subbed-in player showed up on my client, but an OOS also showed up for that move.
That's bug #11049, basically, starting from a start-of-scenario save, all the side information is lost for the client and observer players. That means when substituting a player from observer mode, he doesn't have the correct side info. At least I think it's the same issue (hm... or not. Needs further testing).

EDIT: further testing reveals that it's buggy to substitute an observer when a player is kicked or quits. But if you make that side a local player first, then give control to the observer during its turn it works.
Karo wrote:Other players/observers cannot advance unless the host is in the first player slot. If the host is second, this causes an error in which the host goes first, since she/he loads into the scenario first, he appears to have side 1 units to the other player. The observers see the correct units.
This is a nice one. I also tested this, and both the client and host believed it was their turn simultaneously. When one of them recruits, the other will see a recruit matching their own recruit list (thus two different units). Unrecoverable OOS, and you can't use the starting save either. :shock:
I'll report this as a new bug (done: bug #11114). Good news: this only happens with the side switching. Try version 1.2 in NORMAL difficulty to prove that.
Karo wrote:Scenario 3 cannot advance with multiple players. Side 1 (the host) gets a defeat message, thus ending the scenario.
Ah, that was a WML problem. I've fixed that for version 1.2.

One more minor bug: statistics information is stored on a side number basis, not per save_id. That means on switching the sides all the info is reset. Not a big deal, but still...

Karo, you didn't run in bug #11094 (see my first post), which freezes/crashes the game between scenario 2 and 3 sometimes?
Karo
Posts: 121
Joined: February 2nd, 2007, 6:48 pm

Post by Karo »

Rhuvaen wrote:That's bug #11049, basically, starting from a start-of-scenario save, all the side information is lost for the client and observer players. That means when substituting a player from observer mode, he doesn't have the correct side info. At least I think it's the same issue (hm... or not. Needs further testing).

EDIT: further testing reveals that it's buggy to substitute an observer when a player is kicked or quits. But if you make that side a local player first, then give control to the observer during its turn it works.
Well, the thing is, I started that particular scenario with only myself, meaning that I had one as a local player and one with my handle. I played through most of Scenario 4, until all hope was lost due to my tactical ineptitude. At that point, I assigned the additional sides to two observers, specifically to test out if it would be buggy, and lo and behold, it was. I'm not really sure if I've understood the bug exactly, but this doesn't seem to match it. The OOS came when a unit was moved, not when a unit was recruited/recalled.
Rhuvaen wrote:Karo, you didn't run in bug #11094 (see my first post), which freezes/crashes the game between scenario 2 and 3 sometimes?
I've only gotten past scenario 2 twice: once when I was playing with myself as a local player, and once with a network player (after figuring out the host slot problem). Neither time did I encounter that bug, but perhaps I did not run enough trials to bring about the bug.
Boucman
Inactive Developer
Posts: 2119
Joined: March 31st, 2004, 1:04 pm

Post by Boucman »

this needs to be included in mainline post 1.5
Fight key loggers: write some perl using vim
Post Reply