Please refer to the Compiler Setup page, as all your questions should be answered there. If you have additional problems please refer to the FAQ, http://www.jenkinssoftware.com, or contact us. Advanced users can jump to the code tutorial. Beginners or those wishing to learn more about RakNet should keep reading.
RakNet is a game engine solely managing networking and related services. It includes game-level replication, patching, NAT punchthrough, and voice chat. It allows any application to communicate with other applications that also uses it, whether that be on the same computer, over a LAN, or over the internet. Although RakNet can be used for any networked application, it was developed with a focus on online gaming and provides extra functionality to facilitate the programming of online games as well as being programmed to address the most common needs of online games.
Game network connections usually fall under two general categories: peer to peer and client/server. Each of these are implemented in a variety of ways and with a variety of protocols. However, RakNet supports any topology.
Generally speaking, the fastest computer with the best connection should act as the server, with other computers acting as the clients.
While there are many types of ways to encode packets, they are all transmitted as either UDP or TCP packets. TCP packets are good for sending files, but not so good for games. They are often delayed (resulting in games with a lot of lag) and arrive as streams rather than packets (so you have to implement your own scheme to separate data). UDP packets are good because they are sent right away and are sent in packets so you can easily distinguish data. However, the added flexibility comes with a variety of problems:
|How does RakNet help me with these issues?
|At the lowest level, RakNet's peer to peer class, RakPeerInterface provides a layer over UDP packets that handle these problems transparently, allowing the programmer to focus on the game rather than worrying about the engine.
Unlike some other networking APIs:
|What else can RakNet do for me?
Working at the level of byte streams and packets is bandwidth efficient and gives you a great deal of control but is time consuming. RakNet
provides many features to make networking easier, including remote function
calls, the BitStream class, and automatic object synchronization.
Lastly, RakNet includes programs and services that work in conjunction with your game, such as the master server or real time voice