Topic: Game Programming /
Make your games multiplayer with Artillery
Thanks! I appreciate the unhides.
If you are using multi-region hosting though, how do you divide players into regions? And what if some regions don’t have anyone. That might get a bit weird for some people. Also, it might not let 2 friends that are on separate continents play together unless some region selecting option exists.
Great point. The current algorithm uses a combination of latency and the time you’ve spent waiting for a game. Low-latency players should be matched with other low-latency players for the best experience. But if there isn’t enough player density, and you’ve been waiting a while, you’ll be matched with whoever is closest to you. This algorithm will change as we incorporate leaderboards and other metrics.
How does your code handle the interpolation that we normally code? I’d love some examples. Don’t get me wrong because I’d love something that would do that, but it sounds a bit too good to be true. Are you doing a ‘simulation’ based connection to handle that? (e.g. both clients run the game which uses seeded information and only changes from player interaction are sent, along with a frame stamp, similar to the way Age Of Empires 2 handles networking)
Our current networking engine is lockstep, like AoE. Each client runs an identical simulation and therefore must be in sync with each frame tick, as you described. However, waiting for a round trip from the server for every input produces an unresponsive game, so our HTML5 engine supports “hinting” so that the player you’re controlling moves immediately when you press a key. This is all hidden away so your feature code can be very clean, e.g.,
if (input.down) player.translate(0, 10);
With lockstep you only need to send player input across the network, but there are benefits to running the complete simulation on the server.
Will the game framework be confining? What I mean is, will I be able to make a CCG, live action fighting game, turn-based game, FPS, etc. all with your framework? Or will it be more limited? Even if it is, it still may be a fine service you’re offering.
Thanks! We started with lockstep because it’s a great solution for many types of realtime action games, such as RTSes, battle arena games (think SmashTV), bullet hell, platformers and more. We have plans to support other networking engines, such as for FPSes and MMOs, and those would be require completely different synchronization engines.
Right now a lot of this is tied closely to our HTML5 framework. We’re excited to see what’s possible with Flash, and we’re looking for partners to help us make the best product possible.
Pleasantly surprised as in multiple tiers? Pay what you use or what? Having a request for pricing probably isn’t going to attract a lot of devs. I’d like to see what I want to get into before spending time working on the platform. For example, I’ve invested many hours into Playerio because of their free option. I haven’t upgraded though because (well I don’t really need it) the service can be unstable at times. But if they never had that free option I don’t think I would have ever spent the time to check it out. A free option can be quite limited too, but probably should be open enough to attract new developers.
That’s good insight. To be honest, we’re still very new and we don’t have a public API and platform that anyone can pick up and use. We’re engineers too, and we know the importance of accessible frameworks and “try before you buy” services. As the API and platform begin to become solidified out we’ll be able to hone in on a pricing structure.