Slide 1

Slide 1 text

MMORPG Server Massively Multi-player Online Role-Playing Games

Slide 2

Slide 2 text

Game Server 의 종류 - Simple servier Account / Rank / Store / Reward

Slide 3

Slide 3 text

Game Server 의 종류 - Simple servier exports.createAccount = function(req, res) { User.createAccount(req.body.deviceId, req.body.id, req.body.pw, function(err, session) { return common.sendJson(res, {'sessionKey': session.key}); }); }; exports.login = function(req, res) ...생략… exports.submitScore = function(req, res) ...생략… exports.getRankings = function(req, res) ...생략… exports.getProducts = function(req, res) ...생략…

Slide 4

Slide 4 text

Game Server 의 종류 - Realtime network (P2P/Central)

Slide 5

Slide 5 text

Game Server 의 종류 - Realtime network (P2P/Central) Command Packet의 예시 출처

Slide 6

Slide 6 text

Game Server 의 종류 - Realtime network (P2P/Central) Command를 Frame 번호와 함께 서버로 전송 출처 Server

Slide 7

Slide 7 text

Game Server 의 종류 - Realtime network (P2P/Central) 출처: Authority Distribution in a Proxy-Based Massively Multiplayer Game Architecture Justin F. Christofoli

Slide 8

Slide 8 text

Game Server 의 종류 - Realtime network (P2P/Central)

Slide 9

Slide 9 text

Game Server 의 종류 - Realtime network (P2P/Central) 출처 Host * Lobby server 는 central server

Slide 10

Slide 10 text

Game Server 의 종류 - Realtime network (P2P/Central) // TCP 소켓 사용 / Packet 단위 처리 // GameSession.java // 10 ticks / second public void read(Buffer rbuff) { Packet inpkt; while ((inpkt = receivePacket(rbuff)) != null) { processProtocols(inpkt); } } public void processProtocols(Packet packet) throws Throwable { int opCode=packet.buffer().getShort(); switch (opCode) { case OP_COMMAND: processCommand(packet); Break; … 생략 … } } private void processCommand(Packet packet) { gameFrame=match.getFrame(); if (packet.hasRemaining()) { match.putCommand(this, packet); } }

Slide 11

Slide 11 text

Game Server 의 종류 - MMORPG

Slide 12

Slide 12 text

Game Server 의 종류 - MMORPG 출처

Slide 13

Slide 13 text

Game Server 의 종류 - MMORPG 월드맵 .. Linked list

Slide 14

Slide 14 text

Game Server 의 종류 - MMORPG 월드맵 // Creature.m - attack:(int)weapon victim:(Creature*)victim damage:(int)damage { void effect(Creature* obj) { [obj notifyFight:weapon attacker: self victim: victim at: [victim point] sound: sound damage: damage]; } [[victim world] doCreatures: (Function) effect visible: [victim view]]; } // World.m + initialize { // local world pool } - doUsers: (Function) function ...

Slide 15

Slide 15 text

Game Server 의 종류 - MMORPG (Optimize) 출처 참고: 1, 2