Jump to content

Posted by Evayr, 28 February 2017 · 0 views

Attached Image

An interesting new project of mine. I've always wanted to become a network programmer and made many multiplayer games (like Ravage Online and SIEGE) because it really excites me to see it all work. For those games I used existing networking libraries like RakNet and ENet. Although, I found it was time to make my own for once. Not to make a new wheel, but to see how it rolls. This will make the finding of an internship easier as well.

For every project you will need an end goal. I want my networking library to be fast and UDP only, as you can build the reliability layer yourself. So I started off in a blank project and made three projects: Client, Server and EvayrNet. EvayrNet is only producing a .lib file which both Client and Server are using to get their functionality from (and eventually your own project).

I kept my progress hidden for a while on a private repository on GitHub until it's ready for testing, which I feel is now (although it currently has some slight issues). You can check it out here.

The initial integration
I now want to make a simple game to see if my networking library actually does like it is intended to. I quickly wanted to make a simple game like golf or something similar to a "marble racing game" so I started off by making loads of ball objects and see if I can make the server run some AI for stress-testing. This is the result so far:

Attached Image

Looking good so far. Posted Image Works okay up to 64 players, but any more is killing the server right now due to too many physics calculations. I'll be looking into threading before next time.

For an extended video explaining the library, check it out below:

Holy hell.  This is very very impressive.

All I can ask is that you make the example as simple as possible so it's easy to get into.  I'd love to try it and play with it.  I might even try my luck mixing this with the Steam matchmaking to see if I can get them to work together as I like your data sending/receiving better.
Thanks Gamecreator :)

Yes, my goal with this library is to make it as compatible as possible with any kind of project. I think this use case of balls flying around and such will fully test the library's functionality. After ironing the small flaws I'll make a tutorial on how to effectively use this in Leadwerks.
good luck with the project looks well

Have a look at this tool it catches all kind of programming errors related to memory and works on windows also:
Will the leadwerks client use a separate thread to send and receive packets?
You could make it do that with Leadwerks::Thread :)

March 2017

262728 29 3031 

Search My Blog