What is the main challenge in implementing multiplayer?

I would just like to ask the Devs on what is the main reason why Multiplayer is cut from the game (for now at least).

The reason I ask is so that maybe we, the community could come up with workarounds, compromises, etc.

Me and my friends are really excited about this game, and are dying to play multiplayer :(

11,933 views 9 replies
Reply #1 Top

I have longed for someone to ask this question.

Here is the reason:

In a multiplayer game, the game needs to send messages back and forth from the "Server" to the player.  Nearly every part of Elemental was written this way.

Let me show you what I mean in pseudo-code:

Message Base:

MySoldier->PostMessage(MSG_ATTACK_ENEMY,params);

This would be sent to an event queue which would then handle the message MSG_ATTACK_ENEMY which in multiplayer would send the message to the server and then send the results to the clients.

However, the tactical battles were not written this way.  In tactical battles, they instead are: MySoldier->AttackUnit(pEnemy). It's all done locally, that is' on YOUR computer. The results are never sent off until after the battle is done. 

In order to do multiplayer, we would need to convert this to a message based system. 

Now, I'm not going to lie to you. I'm pretty pissed off about this. Everyone internally knows about this because we developed a world-wide virtual machine server system for Elemental. That is, when YOU create a game, your geographical location is used to tell a local licensed data center (We have them in australia, Na, and Europe) to create a virtual server for you and your friends to join.

Rewriting the tactical battles to be event driven isn't a massive thing but it would probably add a couple of months to development and because people like me (and you) are in such a minority, I can't justify that time until AFTER FE comes out and we see how it does.  Multiplayer won't make or break the game. It's a "nice to have".  

There are other, smaller, elements as well such as just having to constantly re-test that part of the game each new build which strains our QA resources at a time when Sins of a Solar Empire: Rebellion, which is a much more popular title, is using most of those resources.  But the main thing is the missing message passing.

IF FE is a hit, I definitely want to add MP.

Reply #2 Top

Someone please make an unofficial patch (hack?) MP-without-tactical-battles.exeO:)  Just kidding...  :grin:

Reply #3 Top

I definitely agree with your logic Brad though I am puzzled that you wrote the code without the event based system in the first place. Is it customary to go back and add-in the event based system after the code is working or was this a deliberate decision that was inherited from EWoM?

Reply #4 Top

Quoting UmbralAngel, reply 3
I definitely agree with your logic Brad though I am puzzled that you wrote the code without the event based system in the first place. Is it customary to go back and add-in the event based system after the code is working or was this a deliberate decision that was inherited from EWoM?
End of UmbralAngel's quote

When the tactical system was rewritten during WOM, it was made without consideration to MP. And we've inherited this.

Reply #5 Top

You know, a 2nd expansion was promised at some point.

 

Adding this functionality would be a good idea for the 2nd expansion, though I'd probably prefer adding some other things instead such as navies, FFH-style random events, and just more "toys" in general.

 

Reply #6 Top

Text Based adventures would be a nice idea for an expansion :)

Reply #7 Top

Quoting Tasunke, reply 6
Text Based adventures
End of Tasunke's quote

Space Rangers 2 style?  Those were frequently funny :grin:

Reply #8 Top

Quoting Frogboy, reply 1
I have longed for someone to ask this question.

Here is the reason:

In a multiplayer game, the game needs to send messages back and forth from the "Server" to the player.  Nearly every part of Elemental was written this way.

Let me show you what I mean in pseudo-code:

Message Base:

MySoldier->PostMessage(MSG_ATTACK_ENEMY,params);

This would be sent to an event queue which would then handle the message MSG_ATTACK_ENEMY which in multiplayer would send the message to the server and then send the results to the clients.

However, the tactical battles were not written this way.  In tactical battles, they instead are: MySoldier->AttackUnit(pEnemy). It's all done locally, that is' on YOUR computer. The results are never sent off until after the battle is done. 

In order to do multiplayer, we would need to convert this to a message based system. 

Now, I'm not going to lie to you. I'm pretty pissed off about this. Everyone internally knows about this because we developed a world-wide virtual machine server system for Elemental. That is, when YOU create a game, your geographical location is used to tell a local licensed data center (We have them in australia, Na, and Europe) to create a virtual server for you and your friends to join.

Rewriting the tactical battles to be event driven isn't a massive thing but it would probably add a couple of months to development and because people like me (and you) are in such a minority, I can't justify that time until AFTER FE comes out and we see how it does.  Multiplayer won't make or break the game. It's a "nice to have".  

There are other, smaller, elements as well such as just having to constantly re-test that part of the game each new build which strains our QA resources at a time when Sins of a Solar Empire: Rebellion, which is a much more popular title, is using most of those resources.  But the main thing is the missing message passing.

IF FE is a hit, I definitely want to add MP.
End of Frogboy's quote

Got it. Thank you very much.

It would seem now the best way for the game to have MP is to have a VERY strong PR campaign. Even war of magic wasn't very popular on release.

I think you should reach out to communities of similar games, namely the Might and Magic community as their new release was a huge disappointment.

Still, I pray there will be a multiplayer

Reply #9 Top
Thanks Brad for the very detailed explanation. Speaking as a software developer myself, I find these sorts of insights into the inner workings of the game to be very interesting.