CyberConnect2에서는 2013년부터 DirectX11세대용 멀티플랫폼엔진 개발을 시작하였으며, 제작 시 발생하였던 문제점을 DirectX9와의 차이점을 바탕으로 공유하고자 합니다.
이 세션은 DirectX11의 개발이 처음이거나 관심 있으신 분을 대상으로 합니다. Tessellation 이나 OIT와 같은 최신기술은 다루지 않으므로 주의하시기 바랍니다.
오픈 소스 Actor Framework 인 Akka.NET 을 통해 온라인 게임 서버를 어떻게 구현할 수 있는지를 설명합니다. Actor Model 에 대한 기본 이해부터 Scale-out 가능한 게임 서버 구축까지 전반적인 내용에 대해 알 수 있습니다. 설명을 위해 클라이언트는 Unity3D 를 사용할 예정입니다.
CyberConnect2에서는 2013년부터 DirectX11세대용 멀티플랫폼엔진 개발을 시작하였으며, 제작 시 발생하였던 문제점을 DirectX9와의 차이점을 바탕으로 공유하고자 합니다.
이 세션은 DirectX11의 개발이 처음이거나 관심 있으신 분을 대상으로 합니다. Tessellation 이나 OIT와 같은 최신기술은 다루지 않으므로 주의하시기 바랍니다.
오픈 소스 Actor Framework 인 Akka.NET 을 통해 온라인 게임 서버를 어떻게 구현할 수 있는지를 설명합니다. Actor Model 에 대한 기본 이해부터 Scale-out 가능한 게임 서버 구축까지 전반적인 내용에 대해 알 수 있습니다. 설명을 위해 클라이언트는 Unity3D 를 사용할 예정입니다.
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) YoungSu Son
모바일 앱 성능 분석 방법에 대해서 설명을 드립니다
- 기존 서버 APM과 모바일에서의 성능 기준의 차이
- 모바일 제약사항및 아키텍처
- 안드로이드는 어떻게 발전해 왔나
- Vectorization
- Loop
- Redex / Optimized Layout
- Garbage Collector
- 제조사가 보장해야 되는 성능
- 개발사가 고민해야 되는 영역
- 실사례 설명
- 갤럭시노트 2의 점유율
- Xiaomi 폰의 국내 4위 시장 점유율
- 여러가지 모바일 성능 리포트
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
프로젝트를 어떻게 진행하지
1. 프로젝트를 어떻게 진행하지?
일단 기획서 내용을 먼저 파악하고 코어부터 만들어 보자.
Freeze 게임에서 코어는
- 플레이어의 움직임 과 적이동을 정지하는 기능.
- 디바이스 특성에서 오는 배경 및 이동 제한 구역의 View 문제.
- 많은 수의 객체를 생성 / 회수 해야 하므로 memory pool 기능구현.
- 게임플레이 시간 과 적 생성 시간(동적으로 변경)을 컨트롤.
2. 사용할 외부 Asset 선택 후 각 코어 부분을 담당하
는 구조부터 설계.
[사용 Asset]
- 2DToolkit
- NGUI
[각 기능 별 Manager 객체 및 기본 스크립트 추가]
- 적 생성 담당 Manager
- 사운드 담당 Manager
- 시간 처리 담당 Manager
- UI처리 담당 Manager
[그외 필수 객체 생성]
- 플레이어 (TK2D)
- 이동 제한 영역 (TK2D)
- 배경 (TK2D)
- 카운트 (NGUI)
3. Character Controller 컴포넌트 추가.
플레이어 스크립트 추가.
[플레이어 움직임 담당 및 터치 영역에 따른 Freeze게이지 호
출, 플레이어 상태값 보유.]
- 테스트를 위한 플레이어 스피드 설정 함수
- 테스트를 위한 노멀라이즈 적용 여부 함수
- 카운트 종료 후 타임스크립트에서 호출될 함수
- 입력 처리 함수(Update 에서 호출)
- 모바일일 때 플레이어 이동 함수.
- 기타 관련 내용은 직접 스크립트에서 확인.
Itweenpath 및 tween scale 은 프로젝트 마지막에 추가한 컴
포넌트
5. 플레이어 이동영역 제한 작업
플레이어 이동 영역은 월드좌표형식으로 2dtoolkit을 사용하여 붉은색으로 카
메라 위치에 padding 영역을 약 20픽셀 정도 좌/후/하단 안쪽으로 지정.
상단의 위치의 경우 멈춤게이지 영역과 플레이어 이동 영역을 분리하는 것으로
기획자와 이야기 후 임의의 상단 영역을 붉은색으로 보이도록 처리하여 영역
설정.
이후 해당 영역에 box 충돌체를 추가하여 플레이어가 안쪽으로만 이동할 수 있
도록 함.
6. - 터치 영역은 Rect 두개를 생성해서 터치 시작 영역이 어느 Rect의 지점내부인지 파악하여 처리.
- Rect를 스크린에서 활용하므로 GUI 좌표계와는 다른 (0, 0) 왼쪽 아래 좌표로 계산하여 그려야함.
(이것때문에 하루를 삽질함 ㅠㅠ)
- 분리영역의 y좌표를 참고할 빈 객체
자세한 내용은 PlayerScript.cs 내용에서 직접 확인.
PlayerScript 핵심 구현 내용
7. Memory pool 구현
적 생성 및 회수. (원활한 테스트를 위해 적 이동을 간단하게 구현하고 객체를
프리팹화시킴)
데드존 설정.
직접 스크립트를 보면서 설명~
8. Time Manager 부분 구현
- 카운트 , 플레이타임을 전체적으로 컨트롤할 스크립트.
- 각 분기점마다 누적 여부를 결정해야 함.
(카운트 종료 후 플레이타임 누적, 게임 중 일시정지)
자세한 내용은 스크립트에서 확인.