[gameprogrammer] Re: Networking for games

That was actually my first choice.  The problem is
that SDL doesn't receive events unless you have a
window and I want the server to run without X.  If you
know of a way around that, please tell me, I'd love to
go back to FE and net2.

Vince~

--- Jake Briggs <jacob_briggs@xxxxxxxxxxxxxxx> wrote:
> Isnt Bob Pendletons SDL_net2 library threaded? If
> you used that, you 
> would get network threading for free.
> 
> Vince wrote:
> 
> >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
> >
> >
> >
> >
> >  
> >
> 
> -- 
> Jacob Briggs
> Systems Engineer
> Core Technology
> Ph: +64 (04) 499 1102
> 
> --
> 
> Named after its country of origin 'England', English
> is a little known dialect used by up to 1.5 billion
> non-Americans worldwide. Some interesting but
> obviously incorrect features of the language
> include:
> 
> - 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 words correctly
> 
> Many people using this bizarre gutter speak also
> subscribe to the pagan belief that water freezes at
> 0 degrees and that distances should be measured in
> the forbidden mathematical system of base-10...
> 
> 
> 
> ---------------------
> To unsubscribe go to
> http://gameprogrammer.com/mailinglist.html
> 
> 
> 


                
Discover Yahoo! 
Have fun online with music videos, cool games, IM and more. Check it out! 
http://discover.yahoo.com/online.html


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


Other related posts: