게임 오브젝트와 네트워크통신
Server
NPC1 Player1 NPC2
Server Server
Server
Object Object
Object
Client Client Client Client Client Client
Object Object Object Object Object Object
NPC1 Player1 NPC2 NPC1 Player1 NPC2
Client Client
49.
NPC1 Player1 NPC2
Server Server
Server
Object Object
Object
Server
Base
50.
NPC1 Player1 NPC2
Server Server
Server
Object Object
Object
Server
Base
51.
NPC1 Player1 NPC2
ID : 0 ID : 1 ID : 2
Server Server
Server
Object Object
Object
Server
Base
52.
NPC1 Player1 NPC2
ID : 0 ID : 1 ID : 2
Server Server
Server
Object Object
Object
Server
Base
Client
Base
53.
NPC1 Player1 NPC2
ID : 0 ID : 1 ID : 2
Server Server
Server
Object Object
Object
Server
Base
Client
Base
Client Client Client
Object Object Object
ID : 0 ID : 1 ID : 2
NPC1 Player1 NPC2
54.
NPC1 Player1 NPC2
ID : 0 ID : 1 ID : 2
Server Server
Server
Object Object
Object
Server
Base
Client
Base
Client Client Client
Object Object Object
ID : 0 ID : 1 ID : 2
NPC1 Player1 NPC2
55.
NPC1 Player1 NPC2
ID : 0 ID : 1 ID : 2
Server Server
Server
Object Object
Object
Server
Base
Client
Base
Client Client Client
Object Object Object
ID : 0 ID : 1 ID : 2
NPC1 Player1 NPC2
56.
NPC1 Player1 NPC2
ID : 0 ID : 1 ID : 2
Server Server
Server
Object Object
Object
Server
Base
Client Client
Base Base
Client Client Client Client Client Client
Object Object Object Object Object Object
ID : 0 ID : 1 ID : 2 ID : 0 ID : 1 ID : 2
NPC1 Player1 NPC2 NPC1 Player1 NPC2
57.
NPC1 Player1 NPC2
ID : 0 ID : 1 ID : 2
Server Server
Server
Object Object
Object
Server
Base
Client Client
Base Base
Client Client Client Client Client Client
Object Object Object Object Object Object
ID : 0 ID : 1 ID : 2 ID : 0 ID : 1 ID : 2
NPC1 Player1 NPC2 NPC1 Player1 NPC2
Entity
Script Controller 정보
Controller
Manager lua_state에 입력
Entity별로
lua table과
lua thread 생성
Controller의 owner로 Controller Instance
EntityWrapper 생성 후 lua table 생성하여
Controller Instance Controller userdata와 연결
lua table에 “owner” Set
Set up
Thread1
Game Thread2
Thread0 Thread3
Loop
Process
Result
85.
현재 구조를 보면…
•Controller는 Owner가 가지고 있는 것만 접근
-> Owner의 Component / Controller
• 다른 Entity에는 DoAction으로 할 일 전달
• Entity별로 Controller들 업데이트
Entity별로 Action Queue 처리
Component별로 업데이트
86.
다시 정리해보면
• Entity는다른 Entity에 직접 접근 X
• Component는 다른 Component에 직접 접근 X
• Entity별로 Controller들 업데이트
Entity별로 Action Queue 처리
Component별로 업데이트
Set up
Thread1 Thread2
Thread0 Thread3 Controller
Set up
Thread0 Thread2
Game Thread1 Thread3 Action
Loop
Set up
Thread1
Thread0 Thread2 Thread3 Component
Process
Result