Any plans for multiplayer improvements?

Post » Thu Apr 06, 2017 6:02 pm

I think I'm starting to see it. Users are spoiled by the sync feature and not going through the work of building their own. There are many, many ways to handle netcode - that is how different multiplayer games optimize for their specific systems. The sync behavior the multiplayer object was a nice feature included by Scirra, but it really isn't suitable for all uses.

However, the multiplayer object has everything you need to write your own netcode. The problem is that it is not a simple endeavor at all, which is probably why Scirra designed Sync to begin with. Unfortunately, users run into situations where it doesn't meet their needs, and think that they are unable to continue.

So to nail down a specific request I think people are asking for to improve multiplayer would be to expand on the sync options and behaviors to make it easier to use.

But right away I'm going to say that is mostly impossible (besides the fact that Scirra has made it clear they are not interested in doing so) - there are just too many ways to do it, and netcode really should be tailored towards its specific application. Basically - do it yourself, because there is no way they'll be able to make sync cover all the situations it needs to. The tools you need to do so are already there.

A tutorial with a different approach and focus on simple data communication via messaging may be the most useful at this point, then moving on to interpolation, lag compensation, and bandwidth limitations/message efficiency. Then users will be able utilize the shortcut tools provided by the plugin as they see fit, and understand why the plugin behaves the way it does.
Mistakes were made.
B
54
S
28
G
115
Posts: 1,705
Reputation: 65,083

Post » Thu Apr 06, 2017 6:10 pm

Everade wrote:
oosyrag wrote:Curious, it works fine and has full functionality as dedicated host, regards if you're running it in nw.js or a browser tab, so wondering what the problem is there. Is not like clients ever see what the host sees, depending on how you approach it.

Also, what is the benefit of running for own signalling server? Honest question, I really don't see it.

The main question I guess would be what exactly you want to see improved and how?

The solids issue you mention is hardly unique to multiplayer projects, and there are logical workarounds. Also it will likely be addressed in a C3 runtime update, which is planned for the future.


Full dedicated host functionality?
Do you mean if i let the game itself run on a windows server or what?
That's a really non-performant ugly workaround. I think Ashley even said that himself from what i can remember in a private message.

Benefit of running an own signalling server is:
I have full control over availability and geographical location (about 1 year ago the scirra signalling server was down for several days and i've offered my signalling server to others (and yes it has been used by several people))

And the solid issue i've mentioned has no logical workaround.
I've been testing tons of different things but everything was an ugly workaround which ended up with specific bugs which are impossible to be fixed.

Maybe someone could write a plugin for that, no idea since i'm not a coder (that's why i'm here using Construct in the first place).
And "likely" be adressed is a huge word.
I would love to here some feedback from Ashley on this particular case.


Makes sense, thanks for clarifying. I myself don't really care about running nw.js on a dedicated windows server - All servers are software running on some type of dedicated platform. Maybe I just haven't really pushed any limits in terms of performance. In terms of reliability, I can imagine a few ways to have redundancy and messaging/feedback for clients based on the availability of servers.

Also reasons not relying on a third party (Scirra) signalling server makes sense too. Although for me theirs is probably more reliable than anything I would set up ;) No work or cost involved using theirs either. But still - the option IS available to purchase/use your own, so isn't the free one just a bonus? If you have a huge money generating project with paying users, it absolutely makes sense to invest in your own signalling server. If not, then there is no one to complain about occassional downtime anyway :lol:

Solids issue - I must have been thinking of something else. Hopefully this can be addressed in the new runtime.
Mistakes were made.
B
54
S
28
G
115
Posts: 1,705
Reputation: 65,083

Post » Thu Apr 06, 2017 8:52 pm

@Everade
https://www.scirra.com/blog/204/the-fut ... -3-runtime
Enable hosting the runtime in new environments like a Web Worker, or a headless mode in Node


This sounds like what you want.
B
21
S
8
G
6
Posts: 346
Reputation: 4,891

Post » Thu Apr 06, 2017 10:05 pm

Oh can I also suggest that every instance of "Signalling Server" ever mentioned be changed to "Signalling Service"?

Might clear up a lot of entry level confusion.
Mistakes were made.
B
54
S
28
G
115
Posts: 1,705
Reputation: 65,083

Post » Thu Apr 06, 2017 10:40 pm

lennaert wrote:
brushfe wrote:..... the multiplayer engine was built more for top down..


It can be used in near all game types, it's all in the approach.

Last (for fun) project I was working on was a RTS space game:
I managed to pull it off, did tests with 4 players on a lan each able to create up to a dozen ships and able to control each ship individually or as group(s) and fight each other.

The amount of ways you can develop a multiplayer mechanic are about as diverse as the options to move a sprite from a to b.


That's awesome to hear. I'm sure it worked great for RTS (and it sounds like a fun game).

Have you seen any examples or references for multiplayer games based on platform behaviour? To make games like Towerfall, for example, where precise platform calculations for players and projectile collision/overlap are the core.
B
21
S
5
G
3
Posts: 68
Reputation: 2,852

Post » Thu Apr 06, 2017 10:44 pm

The developers for Towerfall specifically decided not to do online multiplayer for exactly the reasons you specified. It would be too difficult to account for lag in that system, so they opted for local only.

However, there are games like Street Fighter IV with highly optimized netcode for their specific engine that allows for frame dependant game play (mostly simulated latency to buffer any jitter)
Mistakes were made.
B
54
S
28
G
115
Posts: 1,705
Reputation: 65,083

Post » Thu Apr 06, 2017 10:57 pm

oosyrag wrote:The developers for Towerfall specifically decided not to do online multiplayer for exactly the reasons you specified. It would be too difficult to account for lag in that system, so they opted for local only.

However, there are games like Street Fighter IV with highly optimized netcode for their specific engine that allows for frame dependant game play (mostly simulated latency to buffer any jitter)


True, sorry — I only meant Towerfall as an example of a 2D game possible in Construct, and then multiplayer added to that.

I've just not found any examples of the multiplayer, platform, and bullet behaviour working together properly, and have had no luck (despite my efforts) creating one.

If it's possible, I'd love to see an example. In fact, I wonder if Scirra-grade examples of the many uses of multiplayer would spur interest in the plugin again (a multiplayer R-Type; a multiplayer Mario; a board game; a chat app; etc).

(EDIT: or if it's not possible, I think it'd be a good idea to put that in the manual, to prevent others from the same fate)
B
21
S
5
G
3
Posts: 68
Reputation: 2,852

Post » Thu Apr 06, 2017 11:02 pm

I just wanted to chime in and request that anyone who has a good grasp on the multiplayer plug-in or using photon by all means feel free to write some tutorials or link me to some information... I'm not looking for someone to give me all the answers, but to show me the way so I can learn.
B
13
S
4
Posts: 6
Reputation: 841

Post » Fri Apr 07, 2017 2:46 pm

brushfe wrote:True, sorry — I only meant Towerfall as an example of a 2D game possible in Construct, and then multiplayer added to that.

I've just not found any examples of the multiplayer, platform, and bullet behaviour working together properly, and have had no luck (despite my efforts) creating one.

If it's possible, I'd love to see an example. In fact, I wonder if Scirra-grade examples of the many uses of multiplayer would spur interest in the plugin again (a multiplayer R-Type; a multiplayer Mario; a board game; a chat app; etc).

(EDIT: or if it's not possible, I think it'd be a good idea to put that in the manual, to prevent others from the same fate)


I think Construct 3 fixed the precision issue already (I'm not 100% sure)
https://www.scirra.com/blog/203/some-bo ... onstruct-3
Read the Enhanced acceleration precision part


And which issue exactly are you talking about ?
Do you mean that bullets fly through players and did not hit them?
Construct 3 also enhanced the bullet behaviour to fix exactly that.

I personally created my own bullet system which works very well within multiplayer environments.
Instead of moving a small particle, i'm shooting a line which stretches over time.
My goal was to create realistic bullet speeds, so the lines stretch extremly fast!
I've even extended the system with penetration, depending on the bullet type being fired.
So you can easily adjust it for each bullet that it penetrates multiple enemies before it gets destroyed.

But i guess this should now be possible with Construct 3 new bullet behaviour which according to the blog does not fly through objects anymore because it moved faster than the frames have been updated.


Please note that you will require lag compensation (rewinding time) if you try to create a real-time shooter or something similiar.
https://www.scirra.com/tutorials/892/mu ... pts/page-8

Ashley covered that already in his tutorial.


And there's a pretty good real-time multiplayer template in the store:
https://www.scirra.com/store/royalty-fr ... plate-2846

It's not perfect and some things are a little bit complicated.
It also has some precision issues when jumping. Which should be fixed in Construct 3 (read above)
But it's great if you really want to get into it.

But you can achieve exactly that by reading through ashley's multiplayer tutorials.
B
40
S
8
G
3
Posts: 159
Reputation: 3,024

Post » Sat Apr 08, 2017 3:39 pm

Everade wrote:I think Construct 3 fixed the precision issue already (I'm not 100% sure)
https://www.scirra.com/blog/203/some-bo ... onstruct-3
Read the Enhanced acceleration precision part

And which issue exactly are you talking about ?
Do you mean that bullets fly through players and did not hit them?
Construct 3 also enhanced the bullet behaviour to fix exactly that.


Nice to know, but I'm not planning to upgrade. I'd love the same upgrade in C2!

Everade wrote:Please note that you will require lag compensation (rewinding time) if you try to create a real-time shooter or something similiar.
https://www.scirra.com/tutorials/892/mu ... pts/page-8

Ashley covered that already in his tutorial.


I had implemented this, and other user's suggestions on how to work around it using functions.

Bullets were easy to sync; one set of instructions were synced to all players. But because each player's platform position was inconsistent on each machine, none of that mattered.

The big problem was that the player's position was never the same. Especially when jumping. There was a discussion about this some time ago.

Everade wrote:And there's a pretty good real-time multiplayer template in the store:
https://www.scirra.com/store/royalty-fr ... plate-2846

It's not perfect and some things are a little bit complicated.
It also has some precision issues when jumping. Which should be fixed in Construct 3 (read above)
But it's great if you really want to get into it.


I'll check it out, but it sounds like it has the same issues as above. Thanks for the recommendation.

Whether C2 gets any of the benefit (hopeful but it sounds like not), I do hope this is all resolved in C3. Especially with multiplayer gaming touted on the new site.
B
21
S
5
G
3
Posts: 68
Reputation: 2,852

PreviousNext

Return to General Discussion

Who is online

Users browsing this forum: No registered users and 5 guests