Offtopic: Fixing Magic Duels two-headed Giant-Mode

Joining-Problem while playing two-headed Giant Match

mx_offtopic_borderI was trying to play Magic Duels with a friend via steam on the internet. When we tried to play a two-headed Giant Match and invited each other we could not join the game. The hosting player did only see “Waiting for players to join the game” and the other player “Joining game“. Nothing happened.

Sometimes if the host quit, the other player received the message “Unable to join game, as that session is full or no longer available“, sometimes there was no other message than “Joining game” for the joining player and we had to quit the game via task manager.

When Magic was not launched and one of us was invited to play and clicked “Join game”, Magic started and the player received the message “Network error occurred“.

Skip the troubleshooting part and read how to solve this issue…

Troubleshooting

Surprisingly, sometimes it worked…this was strange.

While researching the forums we read several tricks about deleting the decks, rebooting the computer or by changing the firewall settings. We even tried to adjust the NTFS settings and reset our network connections with netsh winsock reset.

We tried everything. There was no way to figure out, why this was happening: sometimes it worked, sometimes it didn’t.

We were frustrated so I captured my network traffic:

When it did not work, I saw some TCP Out-of-order segments, which means that some packets are been received in a different order from which they were sent.

magic_duels

When it worked, there was no single TCP Out-of-order segment captured.

magic_duels_success

I sent my captures to the Wizards Customer support. Alan C. (Game Support Operations) assisted me and forwarded my files to the games’ developers.

He also gave me a valuable clue to figure out the solution of the problem…

The Solution

Because Magic Duels is an online game, we thought there might be problems regarding the firewall ports or something like that.

But when our problem occured, we did both had the same internal IP address assigned. When we changed our internal IP addresses manually, it worked like a charm!

So it seems that there is a problem with the game internal NAT (Network address translation) function… I already reported this issue to Wizards Customer support.

Maybe they will fix it soon – but maybe the code working with the NAT functionality is very complicated, so it will take it’s time to develop a network patch. Anyhow, I would like to share my experiences to others who are – like me – looking for a way to play Magic Duels with a friend.

Changing your IP address (for beginners)

Change your IP address to something other than the standard DHCP leases, your DHCP host (in the most common cases, this is your router) assigns to you:
If you have access to the DHCP host, you can assign a static IP, your DHCP host will assign to your device every time you connect. If not, assign your IP address manually on your pc:

  • Open a cmd Shell
    • Run -> cmd -> Enter
  • Type in ipconfig and hit enter
  • Look for the following values
    • IPv4 Address
    • Subnet Mask
    • Default Gateway
  • Configure your IP address manually
    • Run -> ncpa.cpl -> Enter
    • Right-Click on your network adapter and choose Preferences
    • Mark Internet Protocol Version 4 (TCP/IPv4) and click on Properties
    • Check Use the following IP address and enter your values you just have looked up with ipconfig, but change your IPv4 address to a new one
    • Leave the option Optain DNS server addresses automatically checked
    • Confirm all dialogs with OK

Hint for technicians

If you know what you do, I recommend using another private subnet, such as 10.0.0.0/8 or 172.16.0.0/12. Please be aware that you might configure your other network devices, too.
I will not help, fixing your network, so be sure about what you configure.

Conclusion

This trick works for us when we want to play Magic Duels together. In some cases when we already initiated a game there is still the problem that some players are disconnecting before the game starts: Sometimes it’s one of us.

It seems like if two players have been assigned the same (internal) IP address, that this is the reason why some players get disconnected while loading the match. This is a bit annoying, because you can’t fix it permanently with this workaround. The Magic Duels developers have to fix this issue.

This should happen less to you if you use an uncommon IP address which not everybody is using, so that your address does not cause a conflict.

Useful information to debug Magic Duels

If you are in a situation in which you have to debug your Magic Duels game instance, this information can help you.

Magic Duels uses the following ports:

  • 914
  • 907
  • 80
  • 443

All connections should be TCP (though I also captured UDP connections).

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s