Networking study - XianWorld/xxxgame GitHub Wiki

Requirements

  • Integrated with Unity3D, use lots of advantages of unity such as editor/ECS/assets/crossplatform
  • Client/Server can develop with same framework/library/plugins
  • Reliable/Unreliable UDP, support TCP/HTTP
  • Open source/C#(C++) for optimization and extension
  • Support State synchronization and RPC
  • Support Unity Netview like components
  • Support MO/MMO ARPG
  • Support extended server such as Lobby/Scene/Zone
  • Support Redis/MySql/PostgreSQL as DB cache/persistent layer
  • For Indie game development
  • Design & Implementation features
    • byte[] Stream wrapper, basically support efficient stream read/write without any middle layer translation.
    • object pool for buffer/parser/message object/others.

Solution

References

Unity3D

Photon

uLink

Forge Networking

Forge Networking is a set of core networking libraries developed as a plugin for Unity for communication between multiple devices over a network or the internet. Forge Networking is stand alone, you can develop networked games with this one time purchase plugin. This will allow you to create all of the network communications you have enjoyed (and bug found) since day one of the beta. You can host servers at no cost with this system. The catch is that you host them all yourself, manage them yourself and so forth. This plugin runs in a Unity instance :).

Bolt

Build networked games in Unity without having to know the details of networking or write any complex networking code.

TNet: Tasharen Networking

in-depth research

Tasharen Networking makes the creation of multi-player games easier than ever before. Just like NGUI before it, TNet sports clean, elegant, minimalistic and thoroughly-commented code. Written for developers, but simple enough to be used by non-devs, it may just be the networking framework you've been waiting for.

jbruening/PNet

This library uses Lidgren(client/server) and SlimMath(server), with some patches to Lidgren to work with Unity. An SVN patch file is included, as well as svn repo addresses. You will need to check out both of these repos, as well as patch Lidgren. Instructions are included in an additional text file.

The PNet.dll, PNetC.dll, PNetU.dll, and Lidgren.Network.dll should be copied to a Plugins folder in unity. PNet, PNetS, SlimMath, and Lidgren.Network should be referenced in the server. When writing for Unity, reference the PNetU namespace, as it is Unity glue code to PnetC.

MultiLan - Multiplayer network kit

MultiLan is a kit for add easily a network multiplayer mode on your games.

MultiOnline - Multiplayer online kit

MultiOnline is a kit to easily add an online multiplayer mode to your games.

DarkRift

in-depth research

DarkRift Servers are fast - they were designed to be.

DarkRift is a new, fast and highly flexible networking solution for your project allowing you to build authorative and passive servers that suit your project perfectly. Server side plugins can be written in C# and allow you to moderate and check every peice of data coming through - No more hacked clients playing on your game!

massivenet

Unity3d UDP networking library focused on high-CCU, multi-server architecture.

SmartFoxServer

Others

Pomelo

A fast,scalable,distributed game server framework for Node.js. http://pomelo.netease.com

Yahoo Games Network

Build fantastic games faster with the Backend Game Services. Access hundreds of millions of users via the Yahoo Games Channel.

SuperSocket

SuperSocket is a light weight, cross platform and extensible socket server application framework. You can use it to build a server side socket application (like game server, GPS server, industrial control system, data acquisition server etc) easily without thinking about how to use socket, how to maintain the socket connections and how socket works.

It is a pure C# project which is designed to be extended, so it is easy to be integrated to your existing system. If your systems (like forum/CRM/MIS/HRM/ERP) are developed in .NET language, you must be able to use SuperSocket to build your socket application as a part of your current system perfectly.

Netty

Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network programming such as TCP and UDP socket server.

'Quick and easy' doesn't mean that a resulting application will suffer from a maintainability or a performance issue. Netty has been designed carefully with the experiences earned from the implementation of a lot of protocols such as FTP, SMTP, HTTP, and various binary and text-based legacy protocols. As a result, Netty has succeeded to find a way to achieve ease of development, performance, stability, and flexibility without a compromise.

OculusVR/RakNet

RakNet is a cross platform, open source, C++ networking engine for game programmers.

KBEngine

An open source MMOG server engine, the clients and server communications can through a simple protocol. To use the KBEngine-plugins quick combine with (Unity3D, OGRE, Cocos2d-x, HTML5, etc.) to form a complete client. Engine framework written using C++, game logic layer using Python(Support the hotfix), developers do not need to re-implement some common server technology, allows developers to concentrate on the game logic development, quickly create a variety of games.

Source Engine

Atavism MMO Creator

Introduction Atavism opens up the development of MMO games to everyone regardless of programming knowledge or artistic ability. Integrated with the Unity engine as the client, developers now have direct access to one of the most anticipated MMO engines in the market. http://www.atavismonline.com/