Entanglar: Transparent Networking Framework

Discussion in 'Announcements' started by mchurchill, Aug 17, 2008.

  1. mchurchill

    mchurchill New Member

    Joined:
    Aug 11, 2008
    Messages:
    3
    Likes Received:
    0
    I'd like to announce the alpha release of Entanglar, a framework for creating multiplayer games in .Net - aimed at developers of indie games.

    http://entanglar.dunnchurchill.com

    Entanglar provides the "spooky action at a distance", entity spawn, destruction, time sync, property sync and synchronised method invocations. It does this transparently, all you need to do is inherit from Entity, and put [Synchronised] attributes on the appropriate properties and methods.

    Entanglar provides a stable fixed-step timer and integration with Box2DX physics. It doesn't force you into using any particular sound, input or rendering, and these aren't provided.

    Entanglar uses an inertial error prediction algorithm (which is still being tweaked) to determine which data should be sent to minimise drift in remote simulations.
     
  2. TMichael

    TMichael New Member

    Joined:
    Aug 11, 2008
    Messages:
    14
    Likes Received:
    0
    My game project involves 2D, networking and C#, so your framework might be a nice fit. I've been learning enough about network programming over the past year to realize that I'd rather spend less time on the networking :confused: and more time on the game itself. :D

    Anyway, I'll take a look at the alpha sometime this week.

    Cheers,
    Tim
     
  3. MrPhil

    Original Member

    Joined:
    Aug 4, 2004
    Messages:
    671
    Likes Received:
    0
    What framework did you target? Have you considered support for Silverlight?
     
  4. mchurchill

    mchurchill New Member

    Joined:
    Aug 11, 2008
    Messages:
    3
    Likes Received:
    0
    I targeted framework 2.0, mainly for support of generics.

    Entanglar.Core is pure .Net, and the end goal is to provide support on the 360 (which will probably enable Silverlight and Compact).

    In regards to Silverlight/Compact/360 support I will likely need to remove the use DynamicProxy as it uses Reflection.Emit to generate proxies so I can intercept property setters and method invocations. This could be through using the inbuilt framework proxying support (which is a bit weaker and forces inheritance from MarshalByRefObject for all entities - probably ok), if this facility is avaliable on the cut-down frameworks. If not (which it may not be, as it probably requires Reflection.Emit as well) then I'll have to go with a post-compile step, which I'd like to avoid, or users will have to expose properties which call the SetValue(....) on Entity.NetworkState. Not ideal, unfortunately.

    Additionally the alpha only has a single Network3 implementation, which wraps Lidgren UDP. This is avaliable under XNA, but not on the 360 (to my knowledge). It may work in Silverlight with the appropriate runtime permissions. Core is transport independant - it only really cares about providing the best possible message at any one time - so this really means I should provide more transports ;)
     
  5. MrPhil

    Original Member

    Joined:
    Aug 4, 2004
    Messages:
    671
    Likes Received:
    0
    The network abilities of Silverlight are still somewhat in the air. At first it was restricted to webservice calls, but it looks like they are adding sockets now. As far as I know stuff like MarshalByRefObject is right out. There is Reflection but I dunno anything about Emit. In fact, I don't know a lot about multi-player network code, which is why I'd be a great customer ;)
     

Share This Page

  • About Indie Gamer

    When the original Dexterity Forums closed in 2004, Indie Gamer was born and a diverse community has grown out of a passion for creating great games. Here you will find over 10 years of in-depth discussion on game design, the business of game development, and marketing/sales. Indie Gamer also provides a friendly place to meet up with other Developers, Artists, Composers and Writers.
  • Buy us a beer!

    Indie Gamer is delicately held together by a single poor bastard who thankfully gets help from various community volunteers. If you frequent this site or have found value in something you've learned here, help keep the site running by donating a few dollars (for beer of course)!

    Sure, I'll Buy You a Beer