Advertisement

Game Machine - Open source multiplayer engine

Started by June 07, 2014 07:57 AM
1 comment, last by snacktime 10 years, 5 months ago

This is a culmination of roughly a years worth of work. In some ways it is still a WIP, mostly with getting good documentation in place for the server api. But the core is solid and it's completely usable.

This started as a side project while I was still working as the lead server architect at a largish game studio, and getting really frustrated with the complete lack of a good server platform for multiplayer games. In one way or another none of them met my criteria, and the ones we did test basically fell over when we tested them for use at the scale we were working at (Billions of requests per day).

Some of the main goals that Game Machine strives for:

  • Inherently scalable using modern architectures.
  • Provide higher level abstractions for hard problems like concurrency and persistence.
  • Be a productive system to work with, and simple enough for indie developers to dive into
  • Open source

Currently there is one working client in C# that includes some examples that work in Unity. The entire api is based on messaging using protocol buffers, so integration is fairly straight forward.

The getting started page is up to date and should get you a working server. Documentation for the server api is still sparse. I spent some time today to get at least something up, enough so a determined individual could figure it out:) I'm working hard on getting decent docs up asap.

You can access it all on the github repo:

https://github.com/gamemachine/gamemachine

Cheers,

Chris Ochs

That sounds great! I would be even more interested in checking it out of you could provide a napkin sketch of it.

What particular part of "game servers" does this solve? Does it do real-time position updates for an FPS? Does it do transactional auction house settlement for trading? Does it do Facebook sign-in for user registration? Does it store user entity state and wind-forward simulation each time it's requested? What back-end technology is used, and how does it address scaling? An app server for Oracle is different from a horizontally sharded proxy for Cassandra, etc.

Edit: I answered some of the questions myself: This is using protocol buffers, and JVM with Akka, mainly in JRuby and Java. The "getting started" documentation tells me how to build it, but tells me nothing about what it actually does, or how I change what it does. How do I add a new web service? How do I add a new kind of game entity? What are the consistency guarantees? How do I structure interactions between game entities?

What you have there might be great, if I was able to actually make anything with it :-)

enum Bool { True, False, FileNotFound };
Advertisement

Ya documentation is next and it will be up asap as I also have a business side to this that will offer a cloud hosted version and additional monitoring/admin tools.

I'll update this thread when there are significant enough changes to be of interest, such as a fully documented api, etc..

This topic is closed to new replies.

Advertisement