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
- Unity projects
uLink
- Unity projects
- MuchDifferent Korea
- Testing Multiplayer Games
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
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
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
- Unity projects
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
- http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
- http://developer.valvesoftware.com/wiki/Lag_Compensation
- http://developer.valvesoftware.com/wiki/Working_With_Prediction
- Networking Entities
- http://www.gamasutra.com/resource_guide/20020916/lambright_01.htm
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/