Welcome, Guest. Please login or register. Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - RedxDev

Pages: [1]
1
General discussions / SFML.Net NuGet package
« on: April 18, 2014, 07:14:19 pm »
I've been using SFML.Net for a while now, but I noticed that no one had made a nuget package for it on nuget.org, so I decided to create one. This is the first package I have created for nuget, and it was surprisingly easy to do.

You'll notice that there is a third part of the version in the nuget package, which is because I couldn't figure out how to upload a new version of the package without incrementing the version number. The actual version is the same version available at http://www.sfml-dev.org/download/sfml.net/

The package depends on Baseclass.Contrib.Nuget.Output, which is simply used for copying the csfml dlls into your build directory. NuGet should automatically download and install this along with SFML.Net.

You can find the package at https://www.nuget.org/packages/SFML.Net, and can install it with the package manager console:

Code: [Select]
Install-Package SFML.Net

2
Network / Re: SFML network library vs ?
« on: June 04, 2012, 10:26:49 pm »
It probably is true, but you have to realize that whatever they say, it has to be put into perspective. That article talks about a worst-case scenario, and TCP and UDP are used together all the time without problems. So 1 or 2 extra UDP packets are dropped because of it. A program using UDP should be set up to handle dropped packets anyway.

Still, use whatever you think will fit with your project. If you need both reliable communication and fast communication, then use TCP and UDP, or use a library like enet that handles UDP packet loss (or make your own!). If you just need it to be fast, use UDP. If you only need reliability and the slowness of TCP isn't too bad for your project, then by all means, use it.

3
Network / Re: SFML network library vs ?
« on: June 04, 2012, 05:43:45 pm »
I've never heard of that being true (that doesn't mean it isn't), but one program using both protocols won't make it any worse, since in all likelihood all computers on a network are using both anyway. That article talks about TCP and UDP being used at the same time, but not by the same program or even computer. Its talking about using them at the same time in the same network. If you really want to avoid packet loss, then you shouldn't run any web browsers when playing games on any computer on your network.

And honestly, if many multiplayer games use both and don't have problems, then it won't be a problem except for the fact that it does complicate things.

I believe Source engine uses both TCP and UDP (TF2, L4D, L4D2, CS:S, Portal 2 Co-op, Garry's Mod, and a bunch more).

4
Network / Re: SFML network library vs ?
« on: June 03, 2012, 08:45:18 pm »
No, it isn't. Many high-profile multiplayer games use both. It just makes things more complicated.

5
Network / Re: SFML network library vs ?
« on: June 03, 2012, 07:45:23 pm »
Yeah, you don't always need it, especially if you use TCP for the more important messages (like game events) and UDP for things like position updates.

6
Network / Re: SFML network library vs ?
« on: June 03, 2012, 05:36:34 pm »
The only real downside to using SFML for a multiplayer game is that TCP isn't that fast (though depending on the game, that might not matter) and SFML doesn't provide reliable UDP. If you do need a fast reliable network system, I suggest enet (which is pretty simple on its own).

7
SFML projects / Re: RoveNet Network Library
« on: June 02, 2012, 07:39:55 pm »
That's a good point, though I am also using the ip address class... I'll probably rewrite it to not depend on SFML when I get a chance. Also, the license is zlib, so copying the packet class won't be a problem.

EDIT:

I've started moving this away from SFML. Also, I've added a script on my website that will auto-build the documentation whenever the repository is updated. You can find the docs here: http://docs.redxdev.com/rovenet

EDIT 2:

The first stable version is in the 'stable' branch (which is default). It includes a basic wrapper around enet, and I've tested most of it. In the 'development' branch I'm starting to work on an object management system similar to the Replica system in RakNet. There will be a download in addition to the repository on bitbucket soon.

Also, the docs at docs.redxdev.com/rovenet are only for the stable branch. For the development branch, you have to build them yourself (with doxygen 1.8+, since markdown support is needed).

8
SFML projects / Re: RoveNet Network Library
« on: June 02, 2012, 06:00:00 pm »
Um, everything. I'm not using SFML's network package for the actual networking, only for the sf::Packet class. enet already implements a protocol on top of UDP for high-speed reliable networking (if you don't believe me, it was made to be used in the Cube engine).

My library, for now, is just a set of classes over enet to make it more C++-like. I'm going to be adding more features later.

9
SFML projects / Re: RoveNet Network Library
« on: June 01, 2012, 10:15:37 pm »
Oh, I forgot to say that I'm using SFML 2.0 for this project. It may work with 1.6, and even if it doesn't it should only require minor changes.

EDIT:

I've finished the basic library, and it has been pushed to the bitbucket repository. I've also added a sample program for reference (though I haven't documented the sample yet). There is one major problem with the sample, which is touched on in the readme file in the sample's directory.

10
SFML projects / RoveNet Network Library
« on: June 01, 2012, 09:37:35 pm »
Heya!

Ever since I found SFML, I've always loved working with it, except for one thing: the network package. Yeah, it is easy to use, but it just isn't cut out for use in a fast-paced multiplayer game. TCP is not good for this, since it is fairly slow, and the UDP it provides is just plain UDP with no extra layer for reliability.

In the past, I've used enet (enet.bespin.org) for reliable UDP, but the problem with that is, although it is simple to use, it is written in C and can't take advantage of classes and such in C++.

I've taken the best parts of the SFML network package (mainly the sf::Packet class) and enet to create a more powerful network library that I call RoveNet (named after a game engine I'm currently working on).

The only dependency is enet.

As of right now, it is only set up to compile into a static library, though I will fix that in the future.

Features/WIP/Todo list:
  • Reliable UDP (part of enet)
  • Class-based layer over enet (done)
  • Server/Client framework (done)
  • Object management similar to RakNet's replica system (todo)
  • Full Doxygen documentation

Project Wiki: http://wiki.redxdev.com/rovenet
Bitbucket Mercurial repository: https://bitbucket.org/redxdev/rovenet
Stable branch documentation: http://docs.redxdev.com/rovenet
Development branch documentation: http://docs.redxdev.com/rovenet-dev

The server/client framework is pretty much done, and is ready to be used, though really it just provides a class-based layer over enet.

The object management framework is under development, and some of the progress can be seen on bitbucket.

RoveNet is under the same license as SFML, the zlib/png license.

For more details, see the bitbucket page.

Pages: [1]