Design Document for:

ParaEngine

ParaWorld Application Development Guide

Document No.6.10

"Extensible"

All work Copyright 2004-2007 ParaEngine Corporation

Written by Li, Xizhi

Email: LiXizhi@yeah.net

lxz1982@hotmail.com

Version # 1.00

Friday, March 28, 2008

Version history:

2008-1-2

Initial draft by LiXizhi

ParaWorld Application Development Guide

Xizhi Li

_Email :

url : http://www.lixizhi.net/

Abstract:

This article assumes that the reader is familiar with the REST based architecture as documented here http://developers.facebook.com/ . This article presents a guide for paraworld application developers. From the high level point of view, the entire ParaWorld architecture is comprised of three layers:

  • - A central REST and/or SOAP based enterprise service architecture providing user profile and social graph API to a distributed large number of application servers. ParaEngine is responsible for developing and maintaining this service free of charge to all application developers. Communication between central server and application servers uses MD5 with a shared secret. All communications are both application aware and user aware except for the authentication process.
  • - A distributed large number of application servers which are developed and deployed by either ParaEngine (considered official applications) or other application developers (considered third-party applications). At the core, all application servers communicate with the central server using the same set of API and serve requests from the clients. Most application servers are light-weighted like those on facebook; however, there are two official app servers which are special. One is map app server. Another is game server. There may be cross application communications between third party application servers and these official app servers. The communication protocol between application servers is not defined in this article and is usually subject to the design choices of application developers. For example, the map server uses a soap interface; whereas the game server uses jabber:xmpp protocol. Application developers can use any familiar technology for their application server, such as ASP.NET, php, etc.
  • - Application add-in or client code is installed on the computer of each user. The app add-in contains client side logics (UI) and art resources for rendering in 2D/3D environment. For standalone applications, the client add-in does not communicate with a remote application server. However, most social applications will need to communicate with their application servers, which in turn communicate with the central server to take advantage of the shared user profiles and social graphs, therefore providing more fun and interactivities among ParaWorld user communities. Application developers can only use the NPL scripting language for the client code. NPL is the scripting system in ParaEngine. Please refer to the NPL reference manual for more information.

An application developer is responsible for coding both the app server and client code. This article covers basic API of the central server as well as how to develop client application using NPL.

When observing the ParaWorld game, you will notice that 90% of its UI are actually from official or third-party applications, such as map system, IM system, pet system, new world wizard, artist SDK tools, MMORPG development kit, MMORPG play kit, building blueprints, world creation, world assets, etc.

Key words: NPL, REST or Soap service, application add-in, client code, ParaWorld, ParaEngine, jabber:xmpp, facebook.

目录

1 Introduction. 5

1.1 Architecture design goals 6

1.2 Source code distribution. 6

2 Authentication. 7

2.1 Login Procedure. 8

2.1.1 Client Side Login. 8

2.1.2 Application Side Login. 8

2.2 Infinite Sessions 9

2.3 Making Requests with Sessions 10

2.4 Logout Procedure. 11

3 Writing Client Code. 12

3.1 Overview.. 12

3.2 Anatomy of ParaWorld Client application. 13

3.2.1 Product Directory. 13

3.2.2 About 13

3.2.3 UI Setup. 13

3.2.4 Action Feed. 15

3.2.5 Profile. 15

3.2.6 Tradable Items 16

3.2.7 Homepage. 17

3.2.8 Privacy Settings 17

4 Writing application server code. 18

4.1 MicroCosms Markup Language (MCML) 18

4.2 ParaWorld API 18

4.2.1 Auth. 18

4.2.2 Action Feed. 19

4.2.3 Profile. 19

4.2.4 Friends 20

4.2.5 Users 20

4.2.6 File Application. 20

4.2.7 Map Application. 21

4.2.8 Inventory. 22

4.2.9 MarketPlace. 23

4.2.10 Lobby. 23

4.2.11 Apps 23

5 A Discussion and conclusion. 24

Topic revision: r1 - 2008-03-28 - LiXizhi
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2018 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback