Skip to content
Charlie Crane edited this page Oct 29, 2013 · 3 revisions

Pomelo is a game server framework. Comparing to a single-process game server framework, pomelo is a fast, scalable , distributed game server framework for Node.js, and it is easy to use. It provides the core development framework and a series of related tools and libraries that can help developers to eliminate boring duplicate work for some common underlying logic. Based on pomelo, developers don't need to "re-invent the wheel", so they can focus more on game-specific logic, and it will also improve developmental efficiency observably.

Also, the powerful scalability and flexibility of pomelo makes pomelo can be used as a general-purpose distributed real-time application development framework. It is more scalable and adaptable than the existing real-time application framework. Pomelo supports all major platform clients and provides client SDKs, it makes the development of client become very friendly.

Composition of Pomelo

Pomelo is a combination of a number of parts, every part is loosely coupled to each other, it includes:

  • Framework

Framework is the core of pomelo.

  • Libraries

Pomelo provides a lot of libraries, some of them are perfectly related with game logic, such as AI, AOI, path-finding, etc.; but some have nothing to do with game logic but are general functionalities to application, such as timing task execution, data synchronization, etc.

  • Tools

Pomelo provides a lot of tools, including server management & control tool, command-line tool, stress testing tool, etc.

  • Client SDK

Pomelo provides client SDK for various platforms, including js, C, C#, Android, iOS, Unity3D, etc., which covers all the major platforms now. As communication protocol of pomelo is open and customizable, developers can easily customize their own communication protocol to support special platforms.So, pomelo can supports the client on any platforms.

  • Demo

A framework requires powerful demos to show its features and demonstrate how to use it to developers. Pomelo offers a chat demo that can run on all the major platforms, "treasures" that is simple game demo and its client is HTML5-based. Pomelo also provides a big HTML5-based MMO game demo [Lordofpomelo] (http://pomelo.netease.com/lordofpomelo/ "Lordofpomelo") ([source code] (https://github.com/NetEase/lordofpomelo "Lordofpomelo source")) .

Why Pomelo?

The development of high concurrency and high real-time game server is a complex task. As web application, a powerful framework for game server can reduce developmental complexity greatly. Unfortunately, There is no suitable open source solutions in the field of game server development now. Given this situation, pomelo aims to create a completely open-source, high-performance, high-concurrency game server framework. The advantages of pomelo are presented as follows:

  • High scalability

Pomelo introduces a single-threaded multi-process architecture, it is very convenient to scale servers up or down through modifying the configuration file of servers easily without impacting the source code of application. Node.js's advantages on network io provides high scalability, too.

  • Easy to Use

Pomelo is based on nodejs that is very lightweight. And its development model is similar to web application. It follows a principle "convention over configuration" to reduce configuration work, that makes the application be almost zero-configured. Its api design is also very simple and very easy to use, so development of game server based on pomelo will be very quick and easy;

  • Loosely coupled and High-extensibility

Following micro module principle of node.js, pomelo itself is a small core, all the components, libraries, tools can be a npm module that can be used to extend the framework, and they are all loosely coupled to others. Any third-party can develop customized module according to their own demands, and integrate it into pomelo.

  • Complete Demo and Documentation

Pomelo provides all its documentation and a complete and powerful open source MMO game demo - [Lordofpomelo] (http://pomelo.netease.com/lordofpomelo/ "Lord of pomelo online") (Source Code), which is implemented by more than 10,000 lines source code written in javascript, so developers can always learn its design and development ideas from the demo.

Pomelo Positioning

Pomelo is a lightweight server framework, the most suitable fields of pomelo are the server-side application for web games, social games, mobile games, etc.. Developers will find that it is possible to achieve high-scalability and high-flexibility by only writing so little code. Of course, pomelo is also suitable to high real-time web applications, and it makes the application be more scalable than other frameworks.

It is not recommended to use pomelo when developing large-scale MMORPG game server, especially large-scale 3D games, the commercial engine such as Bigworld may be a better choice.

Well, let's [Install pomelo] (Installation "pomelo Installation") and try it .

Clone this wiki locally