Jump to content

  • Log In with Google      Sign In   
  • Create Account


#Actualhplus0603

Posted 23 July 2013 - 10:48 AM

Do you have a particular game you want to support, or is this "a general purpose server"?

It's specific to massive multliplayer.  The physics area is where I'm most lacking in knowledge and experience.
 
The main focus of the engine is to have a solid architecture with the right abstractions that make concurrent programming as easy as possible.  It should be easy to write game logic that can run in a highly concurrent environment, but that's not the situation in most game engines out there, and there are 0 open source engines specific to games that even try to do this.
 
Currently the solved problems are ones I have personal experience with and I consider core to any large multiplayer game.  It uses the actor model which is based on Akka, with Udp/Udt networking via Netty.  There is a built in entity-component system, and a persistence system designed for high write volumes.  90% of the code is ruby.  Leveraging java for the heavy lifting but being able to stay in ruby most of the time makes it a highly productive environment without sacrificing performance where it matters.  
 
So anyways,  Physics in general,and server side physics specifically, is one of  the few areas that I haven't had experience with at any scale.   I want to put in place functionality that will be common to  3d multiplayer games in general.   
 
Based on the feedback I'm getting already from this forum and other places, is that I should probably put in a full blown physics engine, but make it a bit modular so you can pick what to use,and tunable so you can run it at varying update frequencies.
 
Also just to give some context, I spent the last several years working on around a dozen successful social games, some multiplayer some not.  Some of these were at very large scale, and the problems that come into play at scale were the first ones I tackled in this engine.   I was growing increasingly frustrated with working at what had become a large game company, and decided to take what I had learned and go create something I really wanted to create on my own terms.    Things like using jruby instead of pure java or C/C++ came from practical experience that showed language performance actually has very little to do with system performance on the server side.  I also wanted an engine that provides fully integrated unit/functional testing, which is another gripe I had about the game industry in general.  Being able to test game logic using tools like rspec and cucumber is kind of a game changer compared to what most game dev's currently do.  There is just flat out nothing comparable on the java/C side.  And being able to stub java methods from ruby is seriously cool:)

#1snacktime

Posted 23 July 2013 - 12:54 AM

Do you have a particular game you want to support, or is this "a general purpose server"?

 

It's specific to massive multliplayer.  The physics area is where I'm most lacking in knowledge and experience.

 

The main focus of the engine is to have a solid architecture with the right abstractions that make concurrent programming as easy as possible.  It should be easy to write game logic that can run in a highly concurrent environment, but that's not the situation in most game engines out there, and there are 0 open source engines specific to games that even try to do this.

 

Currently the solved problems are ones I have personal experience with and I consider core to any large multiplayer game.  It uses the actor model which is based on Akka, with Udp/Udt networking via Netty.  There is a built in entity-component system, and a persistence system designed for high write volumes.  90% of the code is ruby.  Leveraging java for the heavy lifting but being able to stay in ruby most of the time makes it a highly productive environment without sacrificing performance where it matters.  

 

So anyways,  Physics in general,and server side physics specifically, is one of  the few areas that I haven't had experience with at any scale.   I want to put in place functionality that will be common to  3d multiplayer games in general.   

 

Based on the feedback I'm getting already from this forum and other places, is that I should probably put in a full blown physics engine, but make it a bit modular so you can pick what to use,and tunable so you can run it at varying update frequencies.

 

Also just to give some context, I spent the last several years working on around a dozen successful social games, some multiplayer some not.  Some of these were at very large scale, and the problems that come into play at scale were the first ones I tackled in this engine.   I was growing increasingly frustrated with working at what had become a large game company, and decided to take what I had learned and go create something I really wanted to create on my own terms.    Things like using jruby instead of pure java or C/C++ came from practical experience that showed language performance actually has very little to do with system performance on the server side.  I also wanted an engine that provides fully integrated unit/functional testing, which is another gripe I had about the game industry in general.  Being able to test game logic using tools like rspec and cucumber is kind of a game changer compared to what most game dev's currently do.  There is just flat out nothing comparable on the java/C side.  And being able to stub java methods from ruby is seriously cool:)

 

Chris

 


PARTNERS