Make your games multiplayer with Artillery

24 posts

Flag Post

Hey gamedevs,

At Artillery we’re working hard to build a platform to enable game developers to build scalable, synchronous multiplayer games. We want to let you focus on gameplay and not worry about networking code, running servers or building lobbies.

We’re very close to releasing a scalable lobbying, matchmaking and multiplayer runtime with client libraries for easy integration. Our current implementation is best suited for “battle arena” type games or RTSes with 2-10 players. Currently, our tech is based on HTML5, but we’re working on Flash integration as well. We’d love to work closely with some Flash developers and understand all the nuances of building a Flash game so that we can offer the best product.

Whether your game is in development or ready to deploy, you might benefit from using our hosted multiplayer services. We’d love to power multiplayer gameplay for you.

Reply here if you’ve got any questions, or email us. Thanks!

-Ian from Artillery

 
Flag Post

Could we get some info regarding:

1) Existing demos that make use of technology
2) Behind the scenes info regarding your equipment (using a centralized server center, what language do we need for serversides if we can write our own backends, what features do you have like cdns or databases or administration)
3) Benefits over existing frameworks (such as PlayerIO or Gamooga)
4) Pricing estimates

 
Flag Post

Sure!

1) We’ve finished an HTML5 game which we’re about to announce along with the rest of our platform — probably this week or next. I’ll reply here when it’s been released.

2) Our infrastructure is built using Amazon Web Services, which lets us to scale up quickly and provides redundancy through multi-region hosting. Latency is minimized by connecting players to nearby gameservers in their region, and static assets can be served via a CDN.

3) From what we can see, PlayerIO and Gamooga appear to be message-passing frameworks — they send the messages, but you do the hard work of latency compensation, movement prediction, and handling nasty things like player teleports. In contrast, we’re providing an interface that lets you write code as if there’s a single console and each controller just has a really long wire — all of the hard stuff is handled for you. We’ll even provide lobbying and matchmaking — stuff that’s extremely tedious to build and test.

As for server-side logic, with JavaScript, the same code runs on both the client and server. We’re still exploring the options for Flash, which is why we want to talk to developers like you.

4) We think you’ll be pleasantly surprised by our pricing. For more details, write to us and tell us about what you’re building.

Again, we’ll have a demo out soon, and I think it’ll speak for itself :)

 
Flag Post
Originally posted by ianartillery:

Sure!

1) We’ve finished an HTML5 game which we’re about to announce along with the rest of our platform — probably this week or next. I’ll reply here when it’s been released.

2) Our infrastructure is built using Amazon Web Services, which lets us to scale up quickly and provides redundancy through multi-region hosting. Latency is minimized by connecting players to nearby gameservers in their region, and static assets can be served via a CDN.

3) From what we can see, PlayerIO and Gamooga appear to be message-passing frameworks — they send the messages, but you do the hard work of latency compensation, movement prediction, and handling nasty things like player teleports. In contrast, we’re providing an interface that lets you write code as if there’s a single console and each controller just has a really long wire — all of the hard stuff is handled for you. We’ll even provide lobbying and matchmaking — stuff that’s extremely tedious to build and test.

As for server-side logic, with JavaScript, the same code runs on both the client and server. We’re still exploring the options for Flash, which is why we want to talk to developers like you.

4) We think you’ll be pleasantly surprised by our pricing. For more details, write to us and tell us about what you’re building.

Again, we’ll have a demo out soon, and I think it’ll speak for itself :)

Sounds good. I’d be interested- will you guys have a Free plan?

 
Flag Post

Sounds good. I’d be interested- will you guys have a Free plan?

We’re exploring various pricing options, but it’s important that getting started is as easy as possible for developers. It is possible that we’ll offer a free plan, but it’ll be on a case-by-case basis.

 
Flag Post

To start off, sorry about spam filter. It’s eating your posts up. I’m unhiding them as I see them.

2) Amazon Web Services. They are pricey from my experience (though not unreasonably so). 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.

3) 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)

4) 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.

 
Flag Post

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.

 
Flag Post

I like the banner. Its cute, comical, and draws me in.
Also, I’ve read all the posts thus far, and it is very interesting. I may be interested in using it as well. I agree with UnknownG on the free option, it can be limited however, as long as its something I can use to take a look into how everything works.

 
Flag Post

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.

 
Flag Post

I like the banner. Its cute, comical, and draws me in.

Thanks! It’s a preview of the realtime, multiplayer HTML5 game we’re about to release.

 
Flag Post
Originally posted by ianartillery:

Thanks! It’s a preview of the realtime, multiplayer HTML5 game we’re about to release.

You know what, this game looks suspiciously like XBlast, which I was playing in the times of old (1997, and I have data it existed earlier). Having a correctly frame-synced XBlast over Internet would be great!

 
Flag Post

You know what, this game looks suspiciously like XBlast, which I was playing in the times of old (1997, and I have data it existed earlier). Having a correctly frame-synced XBlast over Internet would be great!

That’s the idea! (A few of us are XPilot veterans, too. There wasn’t much else to play in a lab full of Solaris machines.)

 
Flag Post

We released our HTML game today: http://powderkeg.artillery.com/

You can read more on our blog: http://blog.artillery.com/2012/10/play-powderkeg-html5-multiplayer.html

 
Flag Post

Can I know what language you use for the serverside?

 
Flag Post
Originally posted by qwerberberber:

Can I know what language you use for the serverside?

Pretty sure Ian mentioned Node.js once

Also, games looks nice! A couple of bugs I had though:

  • Rendering bugs. Strange lines would appear near the edges of animations.
  • Players could kick barrels through rocks at one point
  • The game froze at the start of a round once and nobody could move
  • The game definitely felt laggy when playing with 4 people. My latency was listed at around 130ms, which is strange, as when I get the rare chance to play other online games, it’s normally sub 50ms.
 
Flag Post

Yep, it’s Node.js underneath, but we only chose it so that we could run easily game logic on the server. It’s also not an interface that we’d expose to a developer.

Bob, thanks for the feedback. We’ve never seen the rendering or kick bugs. What browser and OS are you using?

 
Flag Post

I got a bunch of errors (it never loaded):

Error: WebGL: Error during ANGLE OpenGL ES initialization
"NetworkError: 404 Not Found - http://ec2-23-22-52-125.compute-1.amazonaws.com/"
Channel error 'BROWSER_WS_ERROR': 'undefined'
Firefox can't establish a connection to the server at ws://ec2-23-22-52-125.compute-1.amazonaws.com/.

FF 15.0.1

 
Flag Post
Originally posted by Senekis93:

I got a bunch of errors (it never loaded):

A lot of people have complained about that error. Are you behind a firewall or proxy?

 
Flag Post

Do developers get to program thier own serverside?

 
Flag Post
Originally posted by qwerberberber:

Do developers get to program thier own serverside?

What specifics are you looking for?

 
Flag Post
Originally posted by ianartillery:
Originally posted by Senekis:

I got a bunch of errors (it never loaded):

A lot of people have complained about that error. Are you behind a firewall or proxy?

Nope.

 
Flag Post
Originally posted by ianartillery:

Yep, it’s Node.js underneath, but we only chose it so that we could run easily game logic on the server. It’s also not an interface that we’d expose to a developer.

Bob, thanks for the feedback. We’ve never seen the rendering or kick bugs. What browser and OS are you using?

It could just by computer, as I’ve been having some other strange text rendering issues, but I’m using FF16 and Windows 8.

 
Flag Post

I’m getting a lot of jittery movement in game.

Using FF15 with Windows 7.

 
Flag Post
Originally posted by ianartillery:

That’s the idea! (A few of us are XPilot veterans, too. There wasn’t much else to play in a lab full of Solaris machines.)

This brings back memories… I wonder if that was the very same lab I studied in. (Moscow State University, Computational Mathematics and Cybernetics, 1997-2000)