OnME Platform Tutorial Ken Hui System Analyst OnME Research Laboratory
Content Part 1: Overview of OnME Platform Engine Architecture Engine Logic Flow Engine System Overview Engine Component View
Engine Architecture 1.User 2.Player 3.Monster 4.Item 5.Battle 1.Map 2.Event 3.NPCs 1.GUI Elements 2.Server Communication Game ServerDatabaseClient
Game Server Interaction MapEvent Player Game World
Engine Logic Flow Game World Time Line server User 1 User 2 Communication Unit – “Control” How is the “Game World” affected by clients??
Control Main Communication Elements Update the game world status Forward to all other clients for action announcement e.g. Move, Teleport, Declare as Leader, Join a Group, Exchange, etc… Please refer to technical specification STANDARD LANGUAGE FOR SERVER AND CLIENTS
Linkage Between DB and Server Database Manager (DBM) User Manager Player Manager Item Manager Monster Manager Battle Manager etc… DBM => Convert the data in DB to Game Objects DBMDatabaseGame Objects
Linkage Between Server and Client The Protocol is a collection of HTTP doGet Requests with format [?a=1&b=2] The HTTP doGet Requests are: 1) Control Transmission Request 2) Full Update Request 3) Event Download Request 4) Player and NPC Retrieval Request 5) Battle and Monster Pre-fetch Request 6) Player Status Update Request 7) Transaction System Request 8) Chat Message Upload/Download Request Details are written in our technical specification server HTTP protocol client
Engine System Overview Game server has 10 systems: 1Login Systemfor registered player to enter the game 2Logout Systemfor player to exit the game 3Register Systemfor user to register a new player 4Teleport System (Full Update System)for client to retrieve a new Game Map 5Movement System (Synchronization System) for clients to synchronize their movement with server’s support 6Grouping Systemfor clients to group together 7Event Systemfor client to retrieve game events, e.g. NPC dialogs 8Emotion Systemfor clients to exchange the emotion icons 9Chat Message Systemfor clients to communicate using message (Strings) 10Trading Systemfor clients to exchange the Game Items
Engine System Components
World server class diagram
Game World Server Logic Flow HttpConnector.doGet() Handler.receive Handler.doXXX() HttpConnector.send() MODEL CONTROL VIEW Client Interface
Battle server class diagram
Game Battle Server Logic Flow HttpConnector.doGet() RequestHandler Planning Stage Processing Stage Result Ready Stage ActionHandler.run
Client Library Library Documentation Base on Finite State Machine By Class named “Logic” Apply MVC model View MODEL Controller Select view User event Change modification queries Model updates Common.Logic Common.View Player, BagItem, etc…
Client Library Implement your own game by inserting states Just “fill-in” your own game’s logic INIT GAME MENU WAIT User input Event Ready
End of tutorial Thank You Very Much