Skip to content
This repository was archived by the owner on Sep 25, 2023. It is now read-only.

Welcome to pomelo

Ken Fehling edited this page Jul 13, 2014 · 9 revisions

Pomelo is a game server framework. Compared to single-process game server frameworks, 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 eliminate boring duplicate work for common underlying logic. By using pomelo, developers don't need to "re-invent the wheel", so they can focus more on game-specific logic, and it will also significantly improve developmental efficiency.

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 existing real-time application frameworks. Pomelo supports all major platform clients and provides client SDKs, making the development of clients very friendly.

Composition of Pomelo

Pomelo is a combination of a number of parts, and 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. 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 a server management & control tool, command-line tool, stress testing tool, etc.

  • Client SDK

Pomelo provides client SDKs for all major platforms, including JavaScript, C, C#, Android, iOS, and Unity3D. As the communication protocol of pomelo is open and customizable, developers can easily customize their own communication protocol, so pomelo can be extended to support any client platform.

  • 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 a high concurrency real-time game server is a complex task. For web applications, a powerful framework for game server can reduce developmental complexity greatly. Unfortunately, there are no suitable open source solutions in the field of game server development currently. 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 multiprocess architecture. It is very convenient to scale servers up or down through modifying the configuration file, without impacting the source code of the application. The advantages of Node.js in terms of network I/O provides high scalability as well.

  • Easy to Use

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

  • Loosely coupled and High-extensibility

Following the micro module principle of node.js, pomelo itself is a small core. All the components, libraries, and tools can be provided as npm modules to extend the framework, and they are all loosely coupled from one another. Any third party can develop customized modules according to their own demands, and integrate them into pomelo.

  • Complete Demo and Documentation

Pomelo provides all of 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 learn its design and development ideas from the demo.

Pomelo Positioning

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

It is not recommended to use pomelo when developing large-scale MMORPG game servers, 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