You are on page 1of 49

Jinuk Kim

rein01@gmail.com


C# MMORPG
.Net JVM




1 8
PvE
Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

2 / 40

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

3 / 40

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

4 / 40

6=
6=
C++ C#

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

5 / 40




()
C#/C++


Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

6 / 40


, (operation)
, .

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

7 / 40

1 : +


C# 2.0
Lightweight code generation (.NET IL )
C# 4.0 ExpressionTree
C++
VislauStudio

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

8 / 40

1 : +

Pros & Cons


Pros
C#
.

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

9 / 40

1 : +

Pros & Cons


Pros
C#
.
Cons
C++ .
C# generic

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

9 / 40

1 : +


Client
var op = new Operation();
op.onComplete += () => {...};
op.onFail += () => {...};
RequestOperation(op);

Server
IEnumerable<Object> Run() {
yield return info.ID;
yield return info.Name;
}

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

10 / 40

1 : +

Pros & Cons


Pros
,

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

11 / 40

1 : +

Pros & Cons


Pros
,

Cons
enumerator
C++
,
enumerator
Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

11 / 40

2 : delegate

delegate

C# delegate IDL
Client C++ , Service CIL

HindelyMilner . ref,
out, return ,
in
Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

12 / 40

2 : delegate

Pros & Cons


Pros
C# IDL

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

13 / 40

2 : delegate

Pros & Cons


Pros
C# IDL
Cons

/

(C++ CIL)

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

13 / 40

3 : interface

C# interface
1

Client/Service code DOM

C++ CIL

MS asynchronous programming design patterns1


serialize C++

http://msdn.microsoft.com/en-us/library/ms228969.aspx

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

14 / 40

3 : interface

Pros & Cons


Pros

C++/Common language spec.

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

15 / 40

3 : interface

Pros & Cons


Pros

C++/Common language spec.

Cons

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

15 / 40

Issues I


RPC

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

16 / 40

Issues II
C# enumerator ?
Enumerator .
?
Operation delegate
C++0x lambda closure

2 C#

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

17 / 40

Issues III
C# IDL ?
C#

(Property )
C++ boost::spirit
...

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

18 / 40

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

19 / 40

?
MMORPG

2
+

MMO

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

20 / 40

Goal


(horizontal scaling)

,

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

21 / 40

Architecture




Operation: /

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

22 / 40

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

23 / 40


TCP

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

23 / 40


TCP
Operation

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

23 / 40


TCP
Operation

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

23 / 40

Frontend, Character, Item, Quest, Party, Story,


Microplay, Postal

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

24 / 40

Frontend, Character, Item, Quest, Party, Story,


Microplay, Postal

1 1

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

24 / 40

Frontend, Character, Item, Quest, Party, Story,


Microplay, Postal

1 1

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

24 / 40

I

operation

II

, ,




DB

Grand Open 2010. 01 I



30
2 DB

Grand Open 2010. 01 II

5

DB log insert

I

:
: Dangling reference
(GC ) GC ?

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

29 / 40

II

1

2

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

30 / 40

III

1

2

? () DoS

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

31 / 40

IV




Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

32 / 40

V


(
X)

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

33 / 40

VI

,


I/O CPU
( 1
)

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

34 / 40

http://en.wikipedia.org/wiki/File:OS-structure.svg, public domain


Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

35 / 40

I

IPC
,

IPC

II

IPC :
(I/O, CPU)
:

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

37 / 40

III
Fault Tolerance



p N ,
(1 p)N
1 p = 0.01, N = 32 ,
72%


.NET Garbage collector:

GC

DB

10 , 20
?
Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

39 / 40

Q&A

Q&A

Jinuk Kim (rein01@gmail.com)

NDC 2011 Report

40 / 40

You might also like