[gameprogrammer] Re: Networking for games

You don't need threading if you use NET2 from Bob Pendleton - it
builds ontop of the SDL event system. It's well documented too, all
you need to do is add two extra source files (fastevents.c and net2.c)
to your project (and of course the corresponding .h files). (but I'm
not sure you are using SDL at all..?)

I agree  -  threading makes a project a whole lot more complex and
harder to debug. I've built a net-text-game (client-server) and it
worked fine with only one thread until I realized I wanted the server
to respond nicely to other clients trying to connect. But then again,
the result with only one thread was not worse than client getting
timeouts trying to connect.

/Olof

On 5/9/05, Jake Briggs <jacob_briggs@xxxxxxxxxxxxxxx> wrote:
> Isnt Bob Pendletons SDL_net2 library threaded? If you used that, you
> would get network threading for free.
>=20
> Vince wrote:
>=20
> >I've been reading through the Quake II source and it
> >heavily agrees with your advice here.  Now I'm in the
> >middle of a discussion with a friend about threading.
> >I was contemplating having a thread dedicated to
> >networking, but it looks like that will make my
> >project more complex than I want it to be.  I'm also
> >hearing that debugging threads is a real pain.  Right
> >now we fork on new connections since we're not going
> >for multiplayer right now.
> >What are your (or anyone's) experiences with
> >threading?
> >
> >Vince~
> >
> >--- Olof Bjarnason <olof.bjarnason@xxxxxxxxx> wrote:
> >
> >
> >>I don't know of any industry standard way for this -
> >>after all it is
> >>your own protocol.
> >>
> >>One way of doing this, which is easily re-used later
> >>on, is NOT
> >>putting any "type" specifier in the header, ONLY the
> >>size and the
> >>data. The type could then be put in the data instead
> >>- making re-use
> >>of this protocol easy in the future.
> >>
> >>Decide on a max-length first of all. Say you decide
> >>200 bytes to be
> >>max length. Then a one-byte-header is enough, and
> >>you could go with a
> >>c structure like
> >>
> >>struct Message {
> >>  unsigned char length;
> >>  unsigned char data[200];
> >>};
> >>
> >>.. and the corresponding read/write procedure
> >>prototypes:
> >>
> >>int writeToSocket(SockStructure* sock, Message*
> >>msg);
> >>int readFromSocket(SockStructure* sock, Message*
> >>msg);
> >>
> >>Decide whether you want these to be blocking or
> >>non-blocking. If you
> >>are already using threads, then blocking is quite
> >>feasible. If your in
> >>a single-thread situation, non-blocking (ie.
> >>polling) is easier on the
> >>responsiveness of the application.
> >>
> >>Be careful in the implementation, especially in the
> >>readFromSocket()
> >>procedure, since the whole message might not arrive
> >>and also two
> >>messages in a row might be concatenated. [ use some
> >>helper
> >>array/structure in order to store parts of arrived
> >>messages ..
> >>memcpy() might be handy here ].
> >>
> >>Good luck!
> >>
> >>/Olof
> >>
> >>
> >
> >
> >
> >__________________________________
> >Yahoo! Mail Mobile
> >Take Yahoo! Mail with you! Check email on your mobile phone.
> >http://mobile.yahoo.com/learn/mail
> >
> >
> >---------------------
> >To unsubscribe go to http://gameprogrammer.com/mailinglist.html
> >
> >
> >
> >
> >
> >
>=20
> --
> Jacob Briggs
> Systems Engineer
> Core Technology
> Ph: +64 (04) 499 1102
>=20
> --
>=20
> Named after its country of origin 'England', English is a little known di=
alect used by up to 1.5 billion non-Americans worldwide. Some interesting b=
ut obviously incorrect features of the language include:
>=20
> - queues of people
> - wonderful coloUrs
> - the useful metal aluminIum
> - the exotic herbs (h-urbs), basil (ba-zil) and oregano (o-re-gaa-no)
> - specialiSed books called 'dictionaries' that tell you how to spell word=
s correctly
>=20
> Many people using this bizarre gutter speak also subscribe to the pagan b=
elief that water freezes at 0 degrees and that distances should be measured=
 in the forbidden mathematical system of base-10...
>=20
>=20
> ---------------------
> To unsubscribe go to http://gameprogrammer.com/mailinglist.html
>=20
>


---------------------
To unsubscribe go to http://gameprogrammer.com/mailinglist.html


Other related posts: