ONP - OGWNN Network Protocol
This page is under construction ... I will attempt to make it more spiffy later.
Table of Contents:
What is ONP?
The purpose of the ONP project is to create a library to handle the networking needs of online game programmers.
What is OGWNN?
OGWNN is an online RPG that I am in the process of developing.
What does ONP do?
- ONP is designed to handle client-server (both client and server), peer-to-peer, and cross platform systems. It was initially developed as a part of a MMORPG (which is from where "OGWNN" comes, as that is the working title for the game) that is currently in developement. As such, ONP uses UDP rather than TCP (for speed), but does have the optional functionality of guarunteed delivery and guarunteed ordering.
- ONP is written in C++ and attempts to use good OO programming and design at all levels.
- ONP's interface is queue based, with a great deal of control from connection management (accept incoming connections, prioritize existing connections, timeouts, etc.) to individual packets (confirmation, ordering, priority, etc.).
- ONP is currently functioning on Linux using gcc 3.2, with built-in hooks for development on other platforms. In fact, one of the initial requirements for ONP was that it needed to be useable on both server (Linux) and client (Windows, Linux, etc.) machines.
- ONP is heavily STL dependent (with hash table extensions), but other than that, ONP is not dependant on any other 3rd party libraries.
Where can I get ONP?
- Source tarballs can be found at SourceForge.
- The latest snapshot of the source is available via anonymous CVS.
For an example of how to use ONP, download the ogwnn-np-demo package, a simple echo server, from sourceforge. To run it:
- run build
- mkdir output in the ONP-demo directory
- run run [num-clients], where [num-clients] is, obviously, the number of clients to run.
- after letting it run for a couple seconds, run stop, which will kill the server, clients, and packet-jugglers (used to simulate a lossy, loggy internet connection on one computer)
- go to the output directory and take a look at the output files
Where can I find out more about ONP?
Feel free to email me with any questions or comments about ONP at dfavre at users.sourceforge.net
This page is hosted by the nice people at SourceForge: