-
Notifications
You must be signed in to change notification settings - Fork 387
Welcome to pinus
Pinus is an easy to use, fast, scalable, distributed game server framework for Node.js. It provides a core network architecture and a series of tools and libraries that can help developers eliminate boring duplicate work for common underlying logic. The goal of Pinus is to improve development efficiency by eliminating the need to spend time on repetitious network related programming.
While developed originally for games, Pinus is not game specific and could be used for any real-time web application. The scalability and flexibility of Pinus makes it usable as a general-purpose distributed real-time application development framework.
In addition, Pinus supports several major client SDKs, making communication with the game server(s) a breeze to set up for varying platforms, including:
While several of these are under construction, they can certainly be used for example code. We are also looking for contributors.
The network framework is the core of pinus.
Pinus provides a lot of libraries. These include game-specific AI, AOI, path-finding, etc. as well as general functionalities like timing task execution, data synchronization, etc.
Pinus provides a lot of tools, including a server management & control tool, command-line tools (pinus list
, pinus kill
, pinus stop
, for example), a stress testing tool, etc.
Pinus provides client SDKs for all major platforms, including JavaScript, C, C#, Android, iOS, and Unity3D. As the communication protocol of pinus is open and customizable, developers can easily customize their own communication protocol, so pinus can be extended to support any client platform.
Pinus offers several demos to help with developer ramp-up:
- Chat of Pinus: a chat demo that can run on all the major platforms and includes channels, multiple connector servers, etc.
- Treasures: a simple game demo and a HTML5 client.
- Lord of Pinus: a full HTML5-based MMO game demo (source code) .
Developing a high concurrency real-time game server is a complex task. Up until recently, there were few suitable open source solutions in the field of game server development. Pinus aims to fill that need by providing:
Pinus introduces a single-threaded multiprocess architecture. Each server is its own node-based process. It is easy to add or remove servers to an existing cluster by modifying the configuration file, without requiring any changes to the source code of the application.
Pinus is based on Node.js and was developed similar to a web application (think Express). Similar to Ruby on Rails, Pinus follows the "convention over configuration" principle and requires virtually no configuration out of the box to get a basic application running.
Following the micro module principle of Node.js, Pinus itself has a small core. All the components, libraries, and tools are provided as loosely coupled NPM modules that extend the core framework. We encourage third parties to develop their own Pinus extension modules.
All major functionality is documented here in this Wiki. We welcome any suggestions or questions so we can improve your experience with the framework.
Pinus includes a complete open source MMO game demo called [Lord of Pinus] (http://pinus.netease.com/lordofpinus/ "Lord of pinus online") (Source Code), which consists of more than 10k lines of JavaScript.
Pinus was designed for server-side applications like real-time games, social games, mobile games, etc of all sizes.
Pinus is not recommended for use when developing large-scale MMORPG game servers, especially large-scale 3D games. For applications like that, the commercial engine such as Bigworld may be a better choice.
Well, let's Install pinus and try it .