Do any game libraries/studios/kits include "automatic" networking support?

Discussion in 'Game Development (Technical)' started by sofakng, Apr 27, 2008.

  1. sofakng

    sofakng New Member

    Joined:
    Sep 27, 2006
    Messages:
    21
    Likes Received:
    0
    I'm looking for a game library / studio / kit that includes "automatic" networking support. What I mean is that I would like to instantiate an object and simply tell the networking library to ghost it and automatically interpolate it's position (if it's moving), etc.

    Why does nothing like this exist?

    I know that RakNet somewhat supports this but it's only for C++ and I'm hoping to find something to C# or a standalone game studio (eg. like BlitzMax or Torque Game Builder, etc).

    Everytime I ask this question it seems like the answer is that networking can't be implemented in a generic way but I don't understand because it seems like only two things need to be created:

    1) Position interpolation (eg. using dead-reckoning, etc)
    2) Object synchronization (eg. hit points, etc)

    Does anything like this exist? (for 2D or 3D)
     
  2. Desktop Gaming

    Moderator Original Member Indie Author

    Joined:
    Feb 24, 2005
    Messages:
    2,296
    Likes Received:
    12
  3. zoombapup

    Moderator Original Member

    Joined:
    Nov 25, 2004
    Messages:
    2,890
    Likes Received:
    0
    TGE to a certain extent.
     
  4. sofakng

    sofakng New Member

    Joined:
    Sep 27, 2006
    Messages:
    21
    Likes Received:
    0
    Unfortunately this wrapper only include BitStream stuff so it doesn't include RakNet's ghosting or interpolation functionality.

    I own TGE as well as TGB but TGE requires modification to the C++ code if you want to make anything except for an FPS. Unfortunately I'm not an expert in C++ so it's difficult for me to understand and modify the source code :(
     
  5. ChrisP

    Indie Author

    Joined:
    Feb 5, 2007
    Messages:
    971
    Likes Received:
    0
    I too would like to find something like this, except that I'm fine with C++ and don't like C# so much (too much runtime baggage and not cross-platform enough). :) Bonus points if it integrates with a physics engine out of the box.

    (This is just me being lazy, though. I expect it wouldn't take me more than a week to sufficiently integrate (say) Ogre + RakNet + Newton well enough for my purposes.)

    I did spend quite a bit of time messing around with BYOND, which has completely-transparent networking built in. (And I do mean completely. It's not even visible to your code.) But it's slow, restricted to tile-based 2D (you can hack around this but not easily), and all games have to run in the provided client (BYOND doesn't make .exe files; games run in a special-purpose virtual machine), which comes with some baggage that you may not want. Like requiring users to sign up for a BYOND account.
     
  6. sofakng

    sofakng New Member

    Joined:
    Sep 27, 2006
    Messages:
    21
    Likes Received:
    0
    Yeah, BYOND is pretty much exactly what I'm looking for but the network code is pretty awful. Every game I've seen has terrible movement code so that when you try and move it's delayed then you move too far, etc, etc...

    Aside from that it doesn't look that bad and it does seem to be the ONLY engine that has built-in networking support like that. I just wish some alternatives existed :(
     
  7. ChrisP

    Indie Author

    Joined:
    Feb 5, 2007
    Messages:
    971
    Likes Received:
    0
    You really do have to get used to the way BYOND's networking works in order to play games effectively. I found early on that tapping the movement keys rather than holding them down worked much better. This is because every time the app gets a keydown event, another "move in this direction" packet is sent. That's the entirety of the movement code...

    So, yeah, that makes for pretty laggy games. Still, if you stay away from action-heavy/twitch-based games, or just use it as a prototyping tool, then it works well enough.
     
  8. Byondo

    Byondo New Member

    Joined:
    Apr 23, 2008
    Messages:
    8
    Likes Received:
    0
    I just recently discovered these forums and made an informative post about BYOND, only to see it mentioned here. Regarding the movement bug-- this is something we observed and attempted to fix a few months back. As of release 415 (current release: 420), BYOND should no longer exhibit this "drunk hamster" walking behavior due to better queuing of the movement events client-side. If you still have any interest, you could help us out by confirming that, or posting further reports at our forums: http://www.byond.com/developer/forum

    Thanks!

    Tom of BYOND
     
  9. ChrisP

    Indie Author

    Joined:
    Feb 5, 2007
    Messages:
    971
    Likes Received:
    0
    Hey Tom, thanks for dropping by. Some of the recent changes do sound interesting, especially the movement improvement (hey it rhymes) and account-less singleplayer mode. Though I'm still hanging out for account-less multiplayer! ;) Using IP addresses or whatever instead of account names, as with the telnet support. The transparent multiplayer is BYOND's single biggest selling point, yet forcing players to register accounts to take advantage of it is possibly its biggest problem from the point of view of this crowd.

    I'd want to be allowed to transparently bundle the BYOND client with my own installer too, and last I checked that wasn't allowed? Still, you've addressed most of the other sticking points, which is great. BYOND is certainly a lot closer to being a seriously viable platform for indies than it used to be.
     
  10. Byondo

    Byondo New Member

    Joined:
    Apr 23, 2008
    Messages:
    8
    Likes Received:
    0
    Hi Chris P. / Crispy!

    Yeah, I've considered ip-based logins in the past. I suppose if we made allowing those an option for the developer (default: off), it'd be pretty safe to support. We'd just pass the ip-address as the key name and disallow creation of such keys. The developer could then map those ips to names of his own choosing if he wants.

    In theory, this would allow you to distribute a script ("package files") including your game link. If the user has BYOND installed, it'll just connect to the game anonymously with the ip; if not, it'll point the user to the BYOND download (and maybe we could come up with a way to install and direct to your game seamlessly).
     
  11. ChrisP

    Indie Author

    Joined:
    Feb 5, 2007
    Messages:
    971
    Likes Received:
    0
    Curses, recognised! ;) (I guess if I really wanted to hide I should have chosen screen names that weren't homophones...)

    That all sounds good to me. Hoping to see it implemented one day. :)
     
  12. Byondo

    Byondo New Member

    Joined:
    Apr 23, 2008
    Messages:
    8
    Likes Received:
    0
    Just FYI, the latest version of BYOND allows developers to distribute their applications as EXE files as well as bypass the built-in login system (such users implicitly login as a unique "guest"). Hopefully this will add to the professionalism of such games.
     
  13. mchurchill

    mchurchill New Member

    Joined:
    Aug 11, 2008
    Messages:
    3
    Likes Received:
    0
    Hey Sofakng

    I've been developing Entanglar, which is a multiplayer game networking framework for .Net providing the automatic entity sync that you are after.

    The main downside at the moment is that its an alpha release. So bits aren't as polished as I would like them to be, and the API may change if I think theres a good reason to do so.

    It supports a client/server topology, with authority on entities existing on either the client or server. Its supports synchronised properties and methods (a little like UnrealScript) simply by putting a [Synchronised] attribute on them in code. Everything else is handled for you.

    But, as you mentioned, there did seem to be a bit of a gap in the indie developers toolkit which I decided to address.

    I've included a wrapper for Box2DX as well (a 2D physics engine) as I do inertial error prediction for remote simulations to work out what data to send first.

    Take a look: http://entanglar.dunnchurchill.com

    Cheers,
    Mark
     
  14. Brian A. Knudsen

    Brian A. Knudsen New Member

    Joined:
    Aug 17, 2006
    Messages:
    72
    Likes Received:
    0
    raknet is superior drop in for any game type as far as i know .. but not fully automatic as such.

    Clanlib had in past some ways to let objects self replicate over internet. it might be such you need.
     

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