KGC06_적응성 있는 자원 흐름 관리
Upcoming SlideShare
Loading in...5
×
 

KGC06_적응성 있는 자원 흐름 관리

on

  • 635 views

 

Statistics

Views

Total Views
635
Views on SlideShare
635
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

KGC06_적응성 있는 자원 흐름 관리 KGC06_적응성 있는 자원 흐름 관리 Presentation Transcript

  • 온라인 게임을 위한적응성 있는 자원 흐름 관리adaptive data management for online game programming 김성익,엔트리브소프트 noerror@hitel.net KGC2006
  • OVERVIEW• 적응성(Adaptive)의 의미• 게임에서 적응성 아이디어 / 방법 / 응용범위• 네트웍 객체 동기화의 적용 데모
  • 적응성 adaptive• 적응성(Adaptive)란 ?• 데이터 값은 서로 다른 중요도를 가진다 데이터의 변화 값은 서로 다른 중요도를 가진다• 좀 더 중요한 데이터 값에 집중한다 좀 더 중요한 데이터 변화 값에 집중한다
  • 적응성 adaptive #2• ADPCM(Adaptive Differential Pulse Modulation) [libs1]
  • 적응성 adaptive #3• Adaptive Multimedia Modulation Technique• AGS : Adaptive Transmission Control
  • 게임 시스템 특성• 제한된 네트웍 대역폭• 제한된 렌더링 퍼포먼스• 제한된 시스템 자원들
  • 온라인 게임 시스템의 특성• 더 많은 유저로 인해 필요한 더 많은 네트웍 대역폭• 더 많은 유저로 인해 필요한 더 빠른 렌더링 퍼포먼스• 더 많은 유저로 인해 필요한 더 많은 시스템 자원
  • 데이터의 제한• 객체 동기화 : 데이터를 약간 오버해서 사용하는 상황
  • 데이터의 제한 #2• 일괄적으로 데이터의 빈도를 2/3로 낮춘다• 전체 빈도는 낮추되 각 빈도는 중요도에 맞춘다
  • 적응성 정책• 좀 더 중요한 데이터 위주로 처리한다• 좀 더 중요한 데이터 = 좀 더 필요한 데이터 – 나에게서 가까이 있는 캐릭터 : 거리 – 움직이는 캐릭터 – ...
  • 평가방법• Fuzzy Logic [fuz1] 크다/작다 많이 크다/조금 크다/크다/중간이다/조금 작다/작다/…• 데이터의 평가 함수를 만들어 수치화한다
  • 동기화 객체 함수• 나와의 거리 (_distance) func = (_distance * A + _reservetime * B) * _priority + _extra• 캐릭터의 중요도 (_netpriority) [unr1] (ex 주인공 1.0/보스 0.9/적 0.6) func = (_distance * A + _reservetime * B) * _priority + _extra• 이전에 데이터를 보낸 시간 (_reservetime) func = (_distance * A + _reservetime * B) * _priority + _extra
  • 동기화 객체 함수#2• 특별한 데이터인가 (_extra) : 특별한 이벤트 func = (_distance * A + _reservetime * B) * _priority + _extra• 평가치를 적용하기 if (func(object) > C) { Sync(object); _reservetime[object] = 0; } else { _reservetime[object] += dt; }• MagicKey
  • 동기화에 영향을 주는 요소• 거리 : 가까운 객체가 중요함• 동기화를 보낸 시간• 이동량 : 정지 오브젝트에게 자비를• 방향의 변화 : 예측의 중요key• 동작의 변화• 객체의 종류• |융통성|
  • 데모• Download http://www.digibath.com/noerror/download/kgc2006_adaptivedemo.zip
  • 사운드 플레이 사례• 평가함수 : 중요할수록, 가까울수록, 소리가 클수록• 평가적용 : 함수 결과로 소팅, 생존한다
  • 데모#2• Download http://www.digibath.com/noerror/download/kgc2006_adaptivedemo.zip
  • 적용 분야• 네트워크에서 : 동기화 객체의 많은 정보• 렌더링에서 : 많은 객체, 많은 이펙트• 사운드에서 : 많은 소리
  • 요약• How much does it weigh ??• 최대한 효과를 보는 자원(데이터)만으로 한계치까지 사용
  • 질문
  • Reference• [libs1] libsndfile http://www.mega-nerd.com/libsndfile• [fuz1] What is Fuzzy Logic http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/fuzzy/part 1/faq-doc-2.html• [unr1] Unreal network architecture http://unreal.epicgames.com/network.htm