Page 1 of 2

Network Programmer who knows how to use Irrlicht?

Posted: Sun May 23, 2004 7:04 pm
by DarkWhoppy
Hey hey, is there anyone here in the Irrlicht Community who knows how to program with WinSocket and Irrlicht? Or would write me a socket class that can send/receive data through Irrlicht? I'm not having such a good time with learning socket programming... I know it seems like alot to ask... but.. ya never know. :roll:

(I didn't know where to post this... so I put it here.)

Posted: Sun May 23, 2004 8:41 pm
by Tyn
I don't know much about programming with networking but I do know what people who do know have told me. They basically say that it isn't as simple as just having a function that you never have to look at, it's something that spans all design decision. That's the reason games that don't have multi-player functionality over the net don't just add it. It's something about knowing what data you can/should be sending and modifying how you do things to reflect this.

Saying this, I recon you can get away with knowing how it works and not necessarily being able to replicate the code. If you can then there are open source libraries that can help you. One that the project I was on was going to use ( I think it may be a good'n ) is Torque http://sourceforge.net/projects/opentnl/. Don't know much else apart from that, if you have been leaning about WinSocket maybe you'd be able to implement it. Good luck m8 :)

Posted: Mon May 24, 2004 12:37 am
by stodge
There are a number of networking SDKs you can use:

RakNet
Quazal's Net-Z or Eterna

And one other that I can't recall right now. Just hit GOogle and see what you can find.

yeh for real...

Posted: Mon May 24, 2004 5:02 am
by buhatkj
hehe yeh me too DW. I found some simple c++ libs that would allow me to do the most basic sort of networking, sending and recieving strings over a network. unfortunately this isnt the half of it, you need to be able to serialize your game objects into strings then, and have a full string based message passing system for events (none of this is built into irrlicht...yet...heh) so I set to work trying to build that sort of structure, but hot damn if it doesnt take a frickin eon to try and make it work. you end up with this massive network event listener function which is basically a HUGE switch-case statement that passes strings to game objects. It works, but its not fast, it has no error checking, and its no good at all for action games (no prediction, no smarts, just a dumb ping-pong sync between the client and server)
basically, (for me anyway) it bacame a disaster. probably the best option is to use an existing networking system and to build your project around it. I have heard many times that if you dont build your game with networking in mind from the beginning you may as well forget about it. its not something you can splice in later.

Posted: Mon May 24, 2004 1:43 pm
by saigumi
I'm actually using RakNet 2.0 right now in my project. It's a solid wrapper for Winsock and makes writing client/servers easy. It lets you make Network objects that update themselves between clients, allows for Remote Procedure Calls, and has a system for setting up packet structures.

Posted: Mon May 24, 2004 2:10 pm
by Peter Müller
Sounds interessting, saigumi!
Tell us, when its done

Posted: Mon May 24, 2004 6:19 pm
by DarkWhoppy
For RakNet, if I use the Freeware version then my game has to be freeware right? (making sure I understand the license... but I do plan on my game being free anyway.)

Posted: Tue May 25, 2004 12:41 am
by saigumi
Yep.. freeware software is free.

Shareware (online distributed) $100
Retail Boxed Softwares $2000

Posted: Tue May 25, 2004 2:38 am
by DarkWhoppy
I can't get RakNet to compile with Dev-C++... grr...

Posted: Sat May 29, 2004 6:08 am
by Luke923
saigumi wrote:I'm actually using RakNet 2.0 right now in my project. It's a solid wrapper for Winsock and makes writing client/servers easy. It lets you make Network objects that update themselves between clients, allows for Remote Procedure Calls, and has a system for setting up packet structures.
I'm using 2.0 of RakNet. It's great because it's everything I like about IrrLicht. It's simple to understand, very robust, quick to implement, and even POSIX-compliant (I've gotten my server to work in FreeBSD of all places). The only drawback to the free license is the 32 player limit. But, if you're going the MMOG route, $99 is mere chump change.

The only thing any network game programmer needs to worry about, regardless of the network library, is player synching issues - making sure each client has the same copy of the gamestate at any given time. Because, even with broadband, you can only hope for 10-20fps from the network - compared to 60+fps desired from games nowadays. To achieve this, a network RTT (round trip time) of 16ms or less is required. Some LANs cannot even acheive this. Whoever is considering adding multiplayer capabilities to your game, do a search on Google for "Dead Reckoning". As a matter of fact, GameDev has a good article on it. Understanding lag, and building algorithms to compensate for it, will help add smoother gameplay to your game.

Posted: Sat May 29, 2004 2:33 pm
by saigumi
Actually, the 32 player limit was removed. The doc that says that is old. Rakkar confirmed that the free (now GPL) license can have unlimited players.

Posted: Sat May 29, 2004 10:05 pm
by DarkWhoppy
Wow... with RakNet, Newton Physics, The GIMP, and the Irrlicht Engine anyone can complete a nice 3D game and even make it multiplayer ;) (The GIMP is a MUST have paint program :lol: )

Oh yah, gotta find yourself a freeware modelers too: Anim8or! (or JTEdit)

Posted: Wed Jun 09, 2004 11:37 pm
by DarkWhoppy
Anyone know of a network library that'll compile with Dev-C++?

Posted: Sun Jun 13, 2004 8:57 am
by ZDeveloper
HawkNL

You can compile it with DevCpp.

I tried it out and there were no error, but it can be that I made a mistake. Try it out.

Posted: Thu Jul 08, 2004 4:49 am
by DarkWhoppy
I've found that HawkNL is very useful :) I've connected two of my PC's on my LAN with it. Going to experiment further and see if I can get it to work with the engine.