Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MMORPG Server
Search
Buzzvil
December 01, 2021
Programming
510
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MMORPG Server
By Alan
Buzzvil
December 01, 2021
More Decks by Buzzvil
See All by Buzzvil
220903_GFS
buzzvil
0
680
Git 해부하기 2 + 3
buzzvil
0
76
Metastable Failure
buzzvil
0
400
Git 해부하기
buzzvil
0
100
Introduction to Plate Solving
buzzvil
0
92
Airbnb Minerva
buzzvil
0
580
Shape up 방법론
buzzvil
0
1.1k
Buzzvil Billing Data Pipeline
buzzvil
0
750
Journey of Dash's release-cycle
buzzvil
0
300
Other Decks in Programming
See All in Programming
ソフトウェアラスタライザ
fadis
1
790
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
110
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
430
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
自分的「カンファレンスの楽しみ方」
syumai
0
190
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
160
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
170
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
260
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
typoなんかねぇよ
raspython3
0
670
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
220
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
510
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
250
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
Paper Plane (Part 1)
katiecoart
PRO
1
11k
Code Reviewing Like a Champion
maltzj
528
40k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
570
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Amusing Abliteration
ianozsvald
1
290
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Transcript
MMORPG Server Massively Multi-player Online Role-Playing Games
Game Server 의 종류 - Simple servier Account / Rank
/ Store / Reward
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) ...생략…
Game Server 의 종류 - Realtime network (P2P/Central)
Game Server 의 종류 - Realtime network (P2P/Central) Command Packet의
예시 출처
Game Server 의 종류 - Realtime network (P2P/Central) Command를 Frame
번호와 함께 서버로 전송 출처 Server
Game Server 의 종류 - Realtime network (P2P/Central) 출처: Authority
Distribution in a Proxy-Based Massively Multiplayer Game Architecture Justin F. Christofoli
Game Server 의 종류 - Realtime network (P2P/Central)
Game Server 의 종류 - Realtime network (P2P/Central) 출처 Host
* Lobby server 는 central server
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); } }
Game Server 의 종류 - MMORPG
Game Server 의 종류 - MMORPG 출처
Game Server 의 종류 - MMORPG 월드맵 <Segment matrix> ..
Linked list
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 ...
Game Server 의 종류 - MMORPG (Optimize) 출처 참고: 1,
2