Jump to content
  • Advertisement

Mako_energy

Member
  • Content Count

    7
  • Joined

  • Last visited

Community Reputation

100 Neutral

About Mako_energy

  • Rank
    Newbie
  1. Mako_energy

    Thinking about rolling my own network library

    That's encouraging. I'll give the tutorials another look through. I understand what you mean, I really do. I think there is a soft spot for configurabilty and simplicity though default/high level options that do most if not all the generic configuration for you. If I can't find a way to do this and/or find myself with too many things to set then I will address it. It's not my goal to overwhelm anyone.
  2. Mako_energy

    Thinking about rolling my own network library

    I think the reference documentation for boost::asio is actually pretty decent, and you do have the source if you should need to go really deep. That being said, if you want to write "a game" rather than "a library," then I recommend something like RakNet (if one of the licensing options work for you) or Enet (which is BSD style license AFAICT -- good enough for most people!) [/quote] Have you worked with boost ASIO before and were able to figure out everything you needed? Did you have any complications? Unfortunately our needs exclude the use of RakNet as I mentioned in my previous post...otherwise I would have integrated it already. Enet was another we looked at closely, but it seems to force the way the reliability of packets is setup. That's fine if you are making a game and know it's ok up front, but this will be going in an engine for use with multiple games, so we can't make that assumption. We'd also like a c++ solution if at all possible. For existing solutions, everything seems to go back to Boost ASIO.
  3. Mako_energy

    Thinking about rolling my own network library

    Well, obviously I haven't written a thesis on the implementations of every possible feature of a networking engine. What I'm hoping to achieve is a re-usable networking sub-system for an open source game engine/framework. As for why various libraries haven't worked out...there are a multitude of reasons. First one usually being the license. We want something that is zlib/mit or equally liberal. That eliminates most of the larger, commercial libraries we could choose right there. Next we need something that is cross-platform, at a minimum Windows, Linux, MacOS, and iOS. Andriod would also be good, but not as critical. While a number of network engines may work on iOS even if it's not explicitly said, we're more of the mindset "if it wasn't tested, it doesn't work". Spending time troubleshooting untested behavior in code that isn't yours, to the point where you are forced to become an expert on the code to fix it...is not desired. Even less so then just rolling our own library. Next thing I look for is documentation, which is where another large sweep of eliminations occur. This goes back to the "being forced to become an expert on the code" complaint. Trying to learn to use undocumented code is a massive time sink...I dare say comparable to rolling your own. At least with rolling your own you actually are an expert and changes can be made swiftly to whatever needs you may have. After that it's usually the smaller things that I can get over with some work, such as clarity of the API, and any potential architectures that may be forced on you. I can't recall which library it was, but there was one that I was looking at that was older and forced one thread per connection. Granted that is extreme case, but simply not acceptable. My initial needs are somewhat basic. No super high level stuff. No NAT punch-through, no SSL, no lobbies. Pretty much just basic socket access and transmission of packets to a server(for uploading and saving of high scores). But the needs to would be expanded as we moved on to future projects...so it would be a rolling work in progress over the course of many game projects.
  4. I'm having some trouble finding a good, modern, c++, liberally licensed, and documented library. I've looked through all the usual suspects(including all the libraries listed in the FAQ of these forums), and up till recently we were opting to use Boost ASIO. But...I'd like to explore more reckless options before diving into something so...undocumented. So here I am, thinking about just rolling my own network library that would make calls to either Berkeley Sockets or Winsock depending on the platform. My question is...how bad of an idea is this? What are some issues I can expect? How scarce are the resources to learning to do this? Edit: Winsock explainations and tutorials seem abundant from a little bit more digging.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!