SlideShare une entreprise Scribd logo
1  sur  44
Unity 를 이용한
대규모 프로젝트 개발 이야기
Collaboration Performance
for Big scale Game-project
1
#연사 소개
이승헌 - 현) 엔도어즈, 기술지원팀장
「영웅의 군단」 (2014~) 기술지원, – Unity
「삼국지를 품다」 (2012~) 기술지원, – Unity
- 데이터파서/ 모니터링시스템/패치시스템/패치자동화/모듈최적화…Etc
「아틀란티카」 (2008~) 기술지원, – Gamebryo
- 3D맵/오브젝트시스템(맵에디터/오브젝트에디터)/
거점시스템/패치시스템/로컬라이징관리도구(TMTool) … Etc.
2006.05~ NDOORS , 기술개발팀 창단 멤버
2005.10~ NDOORS , 「군주」 해외개발팀 입사
업무분야 : 성능최적화, 자동화, 규약화, 모듈화, 통합, 툴,
기술연구, 솔루션 적용, 업무조율, 개발환경개선
2
대규모 모바일 게임 프로젝트
삼국지를 품다(2012)
http://3p.nexon.com/
개발기간 : 3년
개발인원 : 100여명
개발비용 : 약 150억원
플랫폼 : Web, Android, iOS
영웅의 군단(2014)
http://yg.nexon.com/
개발기간 : 4년
개발인원 : 100여명
개발비용 : 미공개
플랫폼 : Android, iOS(개발중)
3
무엇을 이야기할까?
in 20min
Big Project!
4
대규모 프로젝트?
대규모
인원
레벨
디자이너 모델링
아티스트
원화
아티스트
모션
아티스트
사운드
아티스트
…
Server
엔지니어
Client
엔지니어
DBA
웹플랫폼
개발
테스터
운영자
5
대규모 프로젝트에서 중요한 요소
개발단계의
{협업 성능}
{Collaboration Performance}
대규모 프로젝트에서는 개발 단계의 협업 성능을 챙겨야 한다!
6
다음과 같이 이야기하고자 합니다.
Collaboration Performance 구현
개발자를 위한 개발 – UnityEditor, Editor, EditorWindow, EditorLayout 활용
플러그인 어셋 활용 – AssetStore, 외부 개발자와의 Collaboration
버전 컨트롤 시스템 – Unity AssetServer & 버전컨트롤 활용 TIP
빌드 자동화 – Unity BatchMode & CC.NET & TIP
 패치 자동화 – 누구든, 쉽고 빠르게 패치하게 하자. & TIP
#맺음 : 왜 Collaboration Performance 인가? – 개똥철학
7
Collaboration Performance-1
개발자를 위한 개발
For 레벨디자이너, 아티스트, 프로그래머
8
Collaboration Performance-1
개발자를 위한 개발
# 개발자에게 개발을 위한 도구 필요
# 개발단계 효율성 향상  게임 퀄리티 향상
9
Collaboration Performance-1
개발자를 위한 개발
Unity로 개발도구 만들기
UnityEditor 네임스페이스, EditorLayout 사용
Editor, EditorWindow 상속 구현, 빠른 도구 개발
10
Collaboration Performance-1
개발자를 위한 개발
3d 모델링 단계 개발 효율성 향상
3dMax Script 지원으로 업무 공정 자동화 / 검증화
11
Collaboration Performance-1
개발자를 위한 개발
개발 단계 성능 최적화  게임 성능 최적화 만큼 중요
사례 : <삼품>개발초기, DB & 웹툴 기반 데이터 편집 개발
• 데이터 병합/버전관리 문제를 해결하기 위한 시도.
Export
6분!
2초!
메모리 이해 필요!
StringBuilder로 해결
• 편집하기 쉽도록 TEXT 형식 사용
• 엑셀을 활용하여 편집할 수 있도록
DB & 웹툴 대체
12
Collaboration Performance-1
개발자를 위한 개발
개발 단계에서 동료들을 관찰하자
툴에 대한 다른 시각 - 아티스트/레벨 디자이너
바쁜 일정 - 개발 단계 개선 피드백 가뭄
필요한 건 - 찾아가는 서비스.
개발자를 위한 개발에도 – 성능 관점 필수!
13
Collaboration Performance-1
개발자를 위한 개발
개발도구의 지속적인 개선
개발도구도 지속적으로 업그레이드 – “되니까~” 라는 생각 버리기
재사용 및 유지보수 인계(협업) 등을 위해서 리팩토링 작업 필요 : 대규모 프로젝트 특성
14
Collaboration Performance-2
외부 플러그인 어셋 활용
We Are the “Hello-World”
World
15
Collaboration Performance-2
외부 플러그인 어셋 활용
# 모든 것을 직접 구현해야하는가?! – No~!
개발자들에게 전문화된 도구를 제공
AssetStore 의 전문화된 다양한 외부 어셋들을 활용
필요에 따라 커스터마이징하여 사용
T4M uSequencer 2DToolkit Code Guard EZGUI FAST
Shadows
FX Maker NGUI Prime31 iTween HoTween
16
Collaboration Performance-3
버전 컨트롤 시스템
O2
17
Collaboration Performance-3
버전 컨트롤 시스템
# 대규모 프로젝트, 산소같은 존재
• 무조건 중요!
• 많은 인원이 공동 작업 – 많은 용량의 데이터!
• 영군/삼품의 총 저장소 사용량 : 약 350 GB
사용중인 버전 컨트롤 시스템
Subversion – 소스, 최종 리소스
Unity AssetServer – 중간 리소스 (아티스트 사용)
18
Collaboration Performance-3
버전 컨트롤 시스템
AssetServer 장점
Meta 파일 guid 충돌을 방지
쉬운 사용방식 : 주 사용자 – 아티스트 (상대적으로, SVN 은 아티스트에게 어려움)
19
Collaboration Performance-3
버전 컨트롤 시스템
AssetServer 단점
좀 느리다… 좀 많이 느리다…
• 최초 HEAD 업데이트에 하루 종일
• 원인 불명으로 비정상적 현상 종종 발생
부가적인 기능이 부족 (SVN과 비교)
• 동기화 이슈 발생 시 어려움
유지 보수 종료
20
Collaboration Performance-3
버전 컨트롤 시스템
다른 버전 컨트롤 시스템 지원 (Unity 4.3 부터)
Plastic SCM
• 장점
– 간단한 조작성
– 직관적인 시각화
• 단점 (대규모 프로젝트에서의 단점)
– 4GB 이상 지원 불가 문제
– 한글 주석 불가
Perforce
• 장점
– 빠른 속도 (Perforce 자체 Client 인 경우)
– 4GB 이상 지원
• 단점 (대규모 프로젝트에서의 단점)
– 유니티 상에서 느림 (유니티 문제인가?)
– 한글 파일이 있는 경우 Lock 현상
21
Collaboration Performance-3
버전 컨트롤 시스템
AssetServer 를 Subversion(이하SVN) 으로 대체 중…
왜?
• 현재 사용중인 시스템
– 지원 비용 측면
• SVN 의 확장성/안정성
• 버전 컨트롤 통일성 유지
22
Collaboration Performance-3
버전 컨트롤 시스템
TIP : 유니티에서 SVN 을 제대로 사용하기
Version Control > Mode > Meta Files 로 설정
Asset Serialization > Mode > Visible Force Text 로 설정
 SVN 의 <pre-commit hook> 을 구현하자 : Meta File 커밋 관리
“대응하는 메타파일이
같이 커밋되지 않았습니다!”
“다음 메타파일은 저장소에
추가될 필요가 없습니다!”
23
Collaboration Performance-3
버전 컨트롤 시스템
 꾸준한 버전 컨트롤 개선 연구
 보다 진보된 버전 컨트롤 시스템
 DVCS(distributed version control systems) – 적용 연구 진행중
새 버전 컨트롤 시스템
Education
Migration
Setup
24
Collaboration Performance-4
빌드 자동화
2rd Workmate, Build-Server
No LostTime!
25
Collaboration Performance-4
빌드 자동화
# 왜 필요한가?
• 빌드Tasks x 구성요소 x 플랫폼 x 개발자수 x 배포 단계
• x Source (Resource) 업데이트 수  대규모 프로젝트 : 컨텐츠 규모
• 협업 지연 발생 요소 증가
• ex) (전체요소)빌드Tasks M 분 x N 명 x I 회 업데이트 = NIM !!!!
DEPLO
Y
BUILD
SOURCE
UPDATE Server
Client
Resource
프로그래머
레벨
디자이너
아티스트 테스터
26
Collaboration Performance-4
빌드 자동화
# 빠르고 정확하게 - 빌드 서버에게!
• 빌드 결과물이 배포될 동안, 더 생산적인 일을 하자
• 자동화 시, 예외 처리는 매우 중요
Build
Server
DEPLO
Y
BUILD
SOURCE
UPDATE
27
No
LostTime!
Collaboration Performance-4
빌드 자동화
Unity.exe Batch Mode ★ ★ ★
활용 유형
.APK / .IPA 빌드
Assetbundle 변환 빌드 – 유니티 캐싱 사용을 위한 데이터 형식
AssetServer 로 부터 업데이트 – 속도개선 테스트 연구중
https://docs.unity3d.com/Documentation/Manual/CommandLineArguments.html
28
Collaboration Performance-4
빌드 자동화
Unity.exe Batch Mode TIP ★ ★ ★
1) 빌드 서버 필수 옵션
: -nographics
2) Unity.exe 프로세스 중복 실행
: -logfile
3) BatchMode 코드 작성시, 실행 실패 처리
: EditorApplication.Exit(에러레벨)
4) Windows 에서 iPhone 플랫폼 빌드하기
: x-code 빌드를 iOS 에 맡긴다
29
Collaboration Performance-4
빌드 자동화
Unity.exe Batch Mode 실행을 위한, NUnityBatch.exe 제작
유니티 BatchMode 를 위한 콘솔 프로그램 자체 제작
로그 추적 편의성, 실행 편의성
여러 프로젝트 빌드 설정 구조화
30
Collaboration Performance-4
빌드 자동화
자동화에 필요한 콘솔 프로그램 만들기
콘솔 활용도를 높이자
예외 처리 중요 : 모든 실패 가능성 예측 필요
31
Collaboration Performance-4
빌드 자동화
# CC.NET - Unity 클라이언트 빌드 -> 업로드까지
32
Collaboration Performance-4
빌드 자동화
# CC.NET - 서버 빌드 자동화 : 개발용 서버 [종료 > 빌드 > 재가동]
33
Collaboration Performance-4
빌드 자동화
# CC.NET –모든 자동화 통합 관리
장점1 : DEBUG / RELEASE & WIN32 / WIN64 / …ETC 일괄 빌드 테스트
장점2 : 공통 라이브러리의 적용 상태 판단
빌드 문제 발생 여부  빠르게 진단
Project-A
Project-B
Project-C
Library
Update
Project-A 에 필요하여, Library 를
수정했는데, B-C에 영향이 있는가?34
Collaboration Performance-5
패치 자동화
New PM?! – Patch Manager…..
Project Manager
No LostTime!
35
Client
소스업데이트
Client
빌드
Server
소스업데이트
Client
빌드
변경된
리소스 추출
리소스
변환/검사
패치목록
생성
USB으로 복사
(내부망)
USB에서 복사
(외부망)
Client/리소스
업로드
IDC
보안 접속
Server/리소스
복사
서버
내리기
새로운 서버
올리기
Collaboration Performance-5
패치 자동화
36
서버 70 여대, 서버 App 200 여개, 5개 군의 Database
- [영웅의군단] Live -
LostTime!
Collaboration Performance-5
패치 자동화
37
외부망
Collaboration Performance-5
패치 자동화
# 패치 공정 자세히 보기
Client
소스업데이트
Client
빌드
Server
소스업데이트
Client
빌드
변경된
리소스 추출
리소스
변환/검사
패치목록
생성
USB으로 복사
(내부망)
USB에서 복사
(외부망)
Client/리소스
업로드
IDC
보안 접속
Server/리소스
복사
서버
내리기
새로운 서버
올리기
38
언제 끝나…?
Collaboration Performance-5
패치 자동화
 패치 자동화 내부망 빌드  USB  외부망 배포까지
 예외 처리 중요 : 모든 실패 가능성 예측 필요
 단계 선택 가능
 패치 작업자와 로그 기록
39
완료 시
음악!
Collaboration Performance-5
패치 자동화
# 서버 일괄 종료, 복사, 실행
• 네트워크 폴더 공유 방식
• AWS 콘솔 이용
• 서버 에이전트 제작
40
맺음.
왜 Collaboration Performance 가 중요한가?
개똥 철학
41
맺음. 왜 Collaboration Performance 가 중요한가?
기술 범람의 시대
42
맺음. 왜 Collaboration Performance 가 중요한가?
대규모 프로젝트 = 많은 동료
동료들과의 협업 성능을 높여
즐겁게 일할 수 있는 개발 하기
43
UNITY 를 이용한
대규모 프로젝트 개발 이야기 엔도어즈/기술지원팀
beargene@ndoors.net
www.facebook.com/beargene
-END-
44

Contenu connexe

Tendances

NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!영호 김
 
빌드 속도를 올려보자
빌드 속도를 올려보자빌드 속도를 올려보자
빌드 속도를 올려보자KyeongWon Koo
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 iFunFactory Inc.
 
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵NAVER Engineering
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018devCAT Studio, NEXON
 
Kgc2014 삼한제국기 포스트모템 김찬웅
Kgc2014 삼한제국기 포스트모템 김찬웅Kgc2014 삼한제국기 포스트모템 김찬웅
Kgc2014 삼한제국기 포스트모템 김찬웅Chanwoong Kim
 
[IGC 2017] 오토데스크 박준석 - 3ds Max 2018과 Shotgun을 이용한 게임 제작 Pipeline 소개
[IGC 2017] 오토데스크 박준석 - 3ds Max 2018과 Shotgun을 이용한 게임 제작 Pipeline 소개[IGC 2017] 오토데스크 박준석 - 3ds Max 2018과 Shotgun을 이용한 게임 제작 Pipeline 소개
[IGC 2017] 오토데스크 박준석 - 3ds Max 2018과 Shotgun을 이용한 게임 제작 Pipeline 소개강 민우
 
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017devCAT Studio, NEXON
 
[KASA] Game Engine???
[KASA] Game Engine???[KASA] Game Engine???
[KASA] Game Engine???changehee lee
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재NAVER D2
 
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)NAVER D2
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...JinKwon Lee
 
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규ChangKyu Song
 
Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅JinKwon Lee
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔NAVER D2
 

Tendances (20)

NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
 
빌드 속도를 올려보자
빌드 속도를 올려보자빌드 속도를 올려보자
빌드 속도를 올려보자
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
 
Visual shock vol.2
Visual shock   vol.2Visual shock   vol.2
Visual shock vol.2
 
JS Game Engines
JS Game EnginesJS Game Engines
JS Game Engines
 
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
Kgc2014 삼한제국기 포스트모템 김찬웅
Kgc2014 삼한제국기 포스트모템 김찬웅Kgc2014 삼한제국기 포스트모템 김찬웅
Kgc2014 삼한제국기 포스트모템 김찬웅
 
[IGC 2017] 오토데스크 박준석 - 3ds Max 2018과 Shotgun을 이용한 게임 제작 Pipeline 소개
[IGC 2017] 오토데스크 박준석 - 3ds Max 2018과 Shotgun을 이용한 게임 제작 Pipeline 소개[IGC 2017] 오토데스크 박준석 - 3ds Max 2018과 Shotgun을 이용한 게임 제작 Pipeline 소개
[IGC 2017] 오토데스크 박준석 - 3ds Max 2018과 Shotgun을 이용한 게임 제작 Pipeline 소개
 
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
 
[KASA] Game Engine???
[KASA] Game Engine???[KASA] Game Engine???
[KASA] Game Engine???
 
Cooking jquery
Cooking jqueryCooking jquery
Cooking jquery
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
Wecanmakeengine
WecanmakeengineWecanmakeengine
Wecanmakeengine
 
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
 
Jenkins
JenkinsJenkins
Jenkins
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
 
Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
 

En vedette

[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013NDOORS
 
16회 오픈업/사례1-블랙썬 개발에서 겪은 시행착오들_블랙펄이지훈대표
16회 오픈업/사례1-블랙썬 개발에서 겪은 시행착오들_블랙펄이지훈대표16회 오픈업/사례1-블랙썬 개발에서 겪은 시행착오들_블랙펄이지훈대표
16회 오픈업/사례1-블랙썬 개발에서 겪은 시행착오들_블랙펄이지훈대표VentureSquare
 
유니티 Rpg게임배경 스타트업 첫번째자료
유니티 Rpg게임배경 스타트업 첫번째자료유니티 Rpg게임배경 스타트업 첫번째자료
유니티 Rpg게임배경 스타트업 첫번째자료Je Lyoung Kim
 
디자이너를 위한 NGUI의 이해
디자이너를 위한 NGUI의 이해디자이너를 위한 NGUI의 이해
디자이너를 위한 NGUI의 이해Je Lyoung Kim
 
Project-E Demo 리소스 사례 발표
Project-E Demo 리소스 사례 발표Project-E Demo 리소스 사례 발표
Project-E Demo 리소스 사례 발표Jong Won Park
 
5시간만에 유니티로 카드보드용 VR게임 만들기
5시간만에 유니티로 카드보드용 VR게임 만들기5시간만에 유니티로 카드보드용 VR게임 만들기
5시간만에 유니티로 카드보드용 VR게임 만들기GukHwan Ji
 
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다Dae Kim
 
유니티 그래픽 최적화, 어디까지 해봤니 (Optimizing Unity Graphics) NDC15 Ver.
유니티 그래픽 최적화, 어디까지 해봤니 (Optimizing Unity Graphics) NDC15 Ver.유니티 그래픽 최적화, 어디까지 해봤니 (Optimizing Unity Graphics) NDC15 Ver.
유니티 그래픽 최적화, 어디까지 해봤니 (Optimizing Unity Graphics) NDC15 Ver.ozlael ozlael
 
내 회사를 위한 커뮤니티마케팅 커뮤니케이션
내 회사를 위한 커뮤니티마케팅 커뮤니케이션내 회사를 위한 커뮤니티마케팅 커뮤니케이션
내 회사를 위한 커뮤니티마케팅 커뮤니케이션oeclab
 
Ngui3 5 5_example_5_기타정리
Ngui3 5 5_example_5_기타정리Ngui3 5 5_example_5_기타정리
Ngui3 5 5_example_5_기타정리Je Lyoung Kim
 
세일즈 커뮤니게이션 스킬 12의 교관을 소개합니다.
세일즈 커뮤니게이션 스킬 12의 교관을 소개합니다.세일즈 커뮤니게이션 스킬 12의 교관을 소개합니다.
세일즈 커뮤니게이션 스킬 12의 교관을 소개합니다.SP&S 컨설팅
 
KGC04_실시간애니메이션이해와응용
KGC04_실시간애니메이션이해와응용KGC04_실시간애니메이션이해와응용
KGC04_실시간애니메이션이해와응용noerror
 
09_Dxt 압축 알고리즘 소개
09_Dxt 압축 알고리즘 소개09_Dxt 압축 알고리즘 소개
09_Dxt 압축 알고리즘 소개noerror
 
16회 오픈업/사례2-디스코판다:진경의 2013을 회고한다_로드컴플릿배수정부사장
16회 오픈업/사례2-디스코판다:진경의 2013을 회고한다_로드컴플릿배수정부사장16회 오픈업/사례2-디스코판다:진경의 2013을 회고한다_로드컴플릿배수정부사장
16회 오픈업/사례2-디스코판다:진경의 2013을 회고한다_로드컴플릿배수정부사장VentureSquare
 
Game programing gems 4.11
Game programing gems 4.11Game programing gems 4.11
Game programing gems 4.11Sehyeon Nam
 
[Gpg2권 박민근] 4.4 압축된 축 정렬 경계상자 트리
[Gpg2권 박민근] 4.4 압축된 축 정렬 경계상자 트리[Gpg2권 박민근] 4.4 압축된 축 정렬 경계상자 트리
[Gpg2권 박민근] 4.4 압축된 축 정렬 경계상자 트리MinGeun Park
 
[박민근] 3 d렌더링 옵티마이징_3 공간분할
[박민근] 3 d렌더링 옵티마이징_3 공간분할[박민근] 3 d렌더링 옵티마이징_3 공간분할
[박민근] 3 d렌더링 옵티마이징_3 공간분할MinGeun Park
 
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들Young Keun Choe
 

En vedette (20)

[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
 
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
 
16회 오픈업/사례1-블랙썬 개발에서 겪은 시행착오들_블랙펄이지훈대표
16회 오픈업/사례1-블랙썬 개발에서 겪은 시행착오들_블랙펄이지훈대표16회 오픈업/사례1-블랙썬 개발에서 겪은 시행착오들_블랙펄이지훈대표
16회 오픈업/사례1-블랙썬 개발에서 겪은 시행착오들_블랙펄이지훈대표
 
유니티 Rpg게임배경 스타트업 첫번째자료
유니티 Rpg게임배경 스타트업 첫번째자료유니티 Rpg게임배경 스타트업 첫번째자료
유니티 Rpg게임배경 스타트업 첫번째자료
 
디자이너를 위한 NGUI의 이해
디자이너를 위한 NGUI의 이해디자이너를 위한 NGUI의 이해
디자이너를 위한 NGUI의 이해
 
Project-E Demo 리소스 사례 발표
Project-E Demo 리소스 사례 발표Project-E Demo 리소스 사례 발표
Project-E Demo 리소스 사례 발표
 
5시간만에 유니티로 카드보드용 VR게임 만들기
5시간만에 유니티로 카드보드용 VR게임 만들기5시간만에 유니티로 카드보드용 VR게임 만들기
5시간만에 유니티로 카드보드용 VR게임 만들기
 
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
 
유니티 그래픽 최적화, 어디까지 해봤니 (Optimizing Unity Graphics) NDC15 Ver.
유니티 그래픽 최적화, 어디까지 해봤니 (Optimizing Unity Graphics) NDC15 Ver.유니티 그래픽 최적화, 어디까지 해봤니 (Optimizing Unity Graphics) NDC15 Ver.
유니티 그래픽 최적화, 어디까지 해봤니 (Optimizing Unity Graphics) NDC15 Ver.
 
내 회사를 위한 커뮤니티마케팅 커뮤니케이션
내 회사를 위한 커뮤니티마케팅 커뮤니케이션내 회사를 위한 커뮤니티마케팅 커뮤니케이션
내 회사를 위한 커뮤니티마케팅 커뮤니케이션
 
Ngui3 5 5_example_5_기타정리
Ngui3 5 5_example_5_기타정리Ngui3 5 5_example_5_기타정리
Ngui3 5 5_example_5_기타정리
 
세일즈 커뮤니게이션 스킬 12의 교관을 소개합니다.
세일즈 커뮤니게이션 스킬 12의 교관을 소개합니다.세일즈 커뮤니게이션 스킬 12의 교관을 소개합니다.
세일즈 커뮤니게이션 스킬 12의 교관을 소개합니다.
 
Kotler Keller 마케팅관리론 14판 요약 강의 17장. IMC
Kotler Keller 마케팅관리론 14판 요약 강의 17장. IMCKotler Keller 마케팅관리론 14판 요약 강의 17장. IMC
Kotler Keller 마케팅관리론 14판 요약 강의 17장. IMC
 
KGC04_실시간애니메이션이해와응용
KGC04_실시간애니메이션이해와응용KGC04_실시간애니메이션이해와응용
KGC04_실시간애니메이션이해와응용
 
09_Dxt 압축 알고리즘 소개
09_Dxt 압축 알고리즘 소개09_Dxt 압축 알고리즘 소개
09_Dxt 압축 알고리즘 소개
 
16회 오픈업/사례2-디스코판다:진경의 2013을 회고한다_로드컴플릿배수정부사장
16회 오픈업/사례2-디스코판다:진경의 2013을 회고한다_로드컴플릿배수정부사장16회 오픈업/사례2-디스코판다:진경의 2013을 회고한다_로드컴플릿배수정부사장
16회 오픈업/사례2-디스코판다:진경의 2013을 회고한다_로드컴플릿배수정부사장
 
Game programing gems 4.11
Game programing gems 4.11Game programing gems 4.11
Game programing gems 4.11
 
[Gpg2권 박민근] 4.4 압축된 축 정렬 경계상자 트리
[Gpg2권 박민근] 4.4 압축된 축 정렬 경계상자 트리[Gpg2권 박민근] 4.4 압축된 축 정렬 경계상자 트리
[Gpg2권 박민근] 4.4 압축된 축 정렬 경계상자 트리
 
[박민근] 3 d렌더링 옵티마이징_3 공간분할
[박민근] 3 d렌더링 옵티마이징_3 공간분할[박민근] 3 d렌더링 옵티마이징_3 공간분할
[박민근] 3 d렌더링 옵티마이징_3 공간분할
 
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
NDC16 - 화성에서 온 사업팀 금성에서 온 개발팀 : 성공적인 라이브 서비스를 위해 필요한 것들
 

Similaire à 대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014

TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST_NHNent
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재Hankyo
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
지속적인 통합
지속적인 통합지속적인 통합
지속적인 통합중선 곽
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트Chanwoong Kim
 
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)SangIn Choung
 
프로젝트 에코시스템(개발환경의 효율적 개선)
프로젝트 에코시스템(개발환경의 효율적 개선)프로젝트 에코시스템(개발환경의 효율적 개선)
프로젝트 에코시스템(개발환경의 효율적 개선)Daekwon Kang
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.효근 박
 
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_계획과 검토
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_계획과 검토[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_계획과 검토
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_계획과 검토Devgear
 
작품요약서 이영식
작품요약서 이영식작품요약서 이영식
작품요약서 이영식Yeongsik
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트iFunFactory Inc.
 
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정funmeate
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해Terry Cho
 
개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호용호 최
 
Configuration management best practices
Configuration management best practicesConfiguration management best practices
Configuration management best practicesHyunil Shin
 
좋은 개발자 되기
좋은 개발자 되기좋은 개발자 되기
좋은 개발자 되기Sunghyouk Bae
 
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5Manyoung Cho
 
Visual Studio 해부학
Visual Studio 해부학Visual Studio 해부학
Visual Studio 해부학준일 엄
 

Similaire à 대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014 (20)

TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례 Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
 
지속적인 통합
지속적인 통합지속적인 통합
지속적인 통합
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트
 
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
 
프로젝트 에코시스템(개발환경의 효율적 개선)
프로젝트 에코시스템(개발환경의 효율적 개선)프로젝트 에코시스템(개발환경의 효율적 개선)
프로젝트 에코시스템(개발환경의 효율적 개선)
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.
 
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_계획과 검토
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_계획과 검토[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_계획과 검토
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_계획과 검토
 
작품요약서 이영식
작품요약서 이영식작품요약서 이영식
작품요약서 이영식
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
 
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
 
개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호
 
Dev team chronicles
Dev team chroniclesDev team chronicles
Dev team chronicles
 
Configuration management best practices
Configuration management best practicesConfiguration management best practices
Configuration management best practices
 
좋은 개발자 되기
좋은 개발자 되기좋은 개발자 되기
좋은 개발자 되기
 
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
엔터프라이즈 웹애플리케이션 솔루션 Sencha ExtJS 5
 
Visual Studio 해부학
Visual Studio 해부학Visual Studio 해부학
Visual Studio 해부학
 

대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014

  • 1. Unity 를 이용한 대규모 프로젝트 개발 이야기 Collaboration Performance for Big scale Game-project 1
  • 2. #연사 소개 이승헌 - 현) 엔도어즈, 기술지원팀장 「영웅의 군단」 (2014~) 기술지원, – Unity 「삼국지를 품다」 (2012~) 기술지원, – Unity - 데이터파서/ 모니터링시스템/패치시스템/패치자동화/모듈최적화…Etc 「아틀란티카」 (2008~) 기술지원, – Gamebryo - 3D맵/오브젝트시스템(맵에디터/오브젝트에디터)/ 거점시스템/패치시스템/로컬라이징관리도구(TMTool) … Etc. 2006.05~ NDOORS , 기술개발팀 창단 멤버 2005.10~ NDOORS , 「군주」 해외개발팀 입사 업무분야 : 성능최적화, 자동화, 규약화, 모듈화, 통합, 툴, 기술연구, 솔루션 적용, 업무조율, 개발환경개선 2
  • 3. 대규모 모바일 게임 프로젝트 삼국지를 품다(2012) http://3p.nexon.com/ 개발기간 : 3년 개발인원 : 100여명 개발비용 : 약 150억원 플랫폼 : Web, Android, iOS 영웅의 군단(2014) http://yg.nexon.com/ 개발기간 : 4년 개발인원 : 100여명 개발비용 : 미공개 플랫폼 : Android, iOS(개발중) 3
  • 6. 대규모 프로젝트에서 중요한 요소 개발단계의 {협업 성능} {Collaboration Performance} 대규모 프로젝트에서는 개발 단계의 협업 성능을 챙겨야 한다! 6
  • 7. 다음과 같이 이야기하고자 합니다. Collaboration Performance 구현 개발자를 위한 개발 – UnityEditor, Editor, EditorWindow, EditorLayout 활용 플러그인 어셋 활용 – AssetStore, 외부 개발자와의 Collaboration 버전 컨트롤 시스템 – Unity AssetServer & 버전컨트롤 활용 TIP 빌드 자동화 – Unity BatchMode & CC.NET & TIP  패치 자동화 – 누구든, 쉽고 빠르게 패치하게 하자. & TIP #맺음 : 왜 Collaboration Performance 인가? – 개똥철학 7
  • 8. Collaboration Performance-1 개발자를 위한 개발 For 레벨디자이너, 아티스트, 프로그래머 8
  • 9. Collaboration Performance-1 개발자를 위한 개발 # 개발자에게 개발을 위한 도구 필요 # 개발단계 효율성 향상  게임 퀄리티 향상 9
  • 10. Collaboration Performance-1 개발자를 위한 개발 Unity로 개발도구 만들기 UnityEditor 네임스페이스, EditorLayout 사용 Editor, EditorWindow 상속 구현, 빠른 도구 개발 10
  • 11. Collaboration Performance-1 개발자를 위한 개발 3d 모델링 단계 개발 효율성 향상 3dMax Script 지원으로 업무 공정 자동화 / 검증화 11
  • 12. Collaboration Performance-1 개발자를 위한 개발 개발 단계 성능 최적화  게임 성능 최적화 만큼 중요 사례 : <삼품>개발초기, DB & 웹툴 기반 데이터 편집 개발 • 데이터 병합/버전관리 문제를 해결하기 위한 시도. Export 6분! 2초! 메모리 이해 필요! StringBuilder로 해결 • 편집하기 쉽도록 TEXT 형식 사용 • 엑셀을 활용하여 편집할 수 있도록 DB & 웹툴 대체 12
  • 13. Collaboration Performance-1 개발자를 위한 개발 개발 단계에서 동료들을 관찰하자 툴에 대한 다른 시각 - 아티스트/레벨 디자이너 바쁜 일정 - 개발 단계 개선 피드백 가뭄 필요한 건 - 찾아가는 서비스. 개발자를 위한 개발에도 – 성능 관점 필수! 13
  • 14. Collaboration Performance-1 개발자를 위한 개발 개발도구의 지속적인 개선 개발도구도 지속적으로 업그레이드 – “되니까~” 라는 생각 버리기 재사용 및 유지보수 인계(협업) 등을 위해서 리팩토링 작업 필요 : 대규모 프로젝트 특성 14
  • 15. Collaboration Performance-2 외부 플러그인 어셋 활용 We Are the “Hello-World” World 15
  • 16. Collaboration Performance-2 외부 플러그인 어셋 활용 # 모든 것을 직접 구현해야하는가?! – No~! 개발자들에게 전문화된 도구를 제공 AssetStore 의 전문화된 다양한 외부 어셋들을 활용 필요에 따라 커스터마이징하여 사용 T4M uSequencer 2DToolkit Code Guard EZGUI FAST Shadows FX Maker NGUI Prime31 iTween HoTween 16
  • 18. Collaboration Performance-3 버전 컨트롤 시스템 # 대규모 프로젝트, 산소같은 존재 • 무조건 중요! • 많은 인원이 공동 작업 – 많은 용량의 데이터! • 영군/삼품의 총 저장소 사용량 : 약 350 GB 사용중인 버전 컨트롤 시스템 Subversion – 소스, 최종 리소스 Unity AssetServer – 중간 리소스 (아티스트 사용) 18
  • 19. Collaboration Performance-3 버전 컨트롤 시스템 AssetServer 장점 Meta 파일 guid 충돌을 방지 쉬운 사용방식 : 주 사용자 – 아티스트 (상대적으로, SVN 은 아티스트에게 어려움) 19
  • 20. Collaboration Performance-3 버전 컨트롤 시스템 AssetServer 단점 좀 느리다… 좀 많이 느리다… • 최초 HEAD 업데이트에 하루 종일 • 원인 불명으로 비정상적 현상 종종 발생 부가적인 기능이 부족 (SVN과 비교) • 동기화 이슈 발생 시 어려움 유지 보수 종료 20
  • 21. Collaboration Performance-3 버전 컨트롤 시스템 다른 버전 컨트롤 시스템 지원 (Unity 4.3 부터) Plastic SCM • 장점 – 간단한 조작성 – 직관적인 시각화 • 단점 (대규모 프로젝트에서의 단점) – 4GB 이상 지원 불가 문제 – 한글 주석 불가 Perforce • 장점 – 빠른 속도 (Perforce 자체 Client 인 경우) – 4GB 이상 지원 • 단점 (대규모 프로젝트에서의 단점) – 유니티 상에서 느림 (유니티 문제인가?) – 한글 파일이 있는 경우 Lock 현상 21
  • 22. Collaboration Performance-3 버전 컨트롤 시스템 AssetServer 를 Subversion(이하SVN) 으로 대체 중… 왜? • 현재 사용중인 시스템 – 지원 비용 측면 • SVN 의 확장성/안정성 • 버전 컨트롤 통일성 유지 22
  • 23. Collaboration Performance-3 버전 컨트롤 시스템 TIP : 유니티에서 SVN 을 제대로 사용하기 Version Control > Mode > Meta Files 로 설정 Asset Serialization > Mode > Visible Force Text 로 설정  SVN 의 <pre-commit hook> 을 구현하자 : Meta File 커밋 관리 “대응하는 메타파일이 같이 커밋되지 않았습니다!” “다음 메타파일은 저장소에 추가될 필요가 없습니다!” 23
  • 24. Collaboration Performance-3 버전 컨트롤 시스템  꾸준한 버전 컨트롤 개선 연구  보다 진보된 버전 컨트롤 시스템  DVCS(distributed version control systems) – 적용 연구 진행중 새 버전 컨트롤 시스템 Education Migration Setup 24
  • 25. Collaboration Performance-4 빌드 자동화 2rd Workmate, Build-Server No LostTime! 25
  • 26. Collaboration Performance-4 빌드 자동화 # 왜 필요한가? • 빌드Tasks x 구성요소 x 플랫폼 x 개발자수 x 배포 단계 • x Source (Resource) 업데이트 수  대규모 프로젝트 : 컨텐츠 규모 • 협업 지연 발생 요소 증가 • ex) (전체요소)빌드Tasks M 분 x N 명 x I 회 업데이트 = NIM !!!! DEPLO Y BUILD SOURCE UPDATE Server Client Resource 프로그래머 레벨 디자이너 아티스트 테스터 26
  • 27. Collaboration Performance-4 빌드 자동화 # 빠르고 정확하게 - 빌드 서버에게! • 빌드 결과물이 배포될 동안, 더 생산적인 일을 하자 • 자동화 시, 예외 처리는 매우 중요 Build Server DEPLO Y BUILD SOURCE UPDATE 27 No LostTime!
  • 28. Collaboration Performance-4 빌드 자동화 Unity.exe Batch Mode ★ ★ ★ 활용 유형 .APK / .IPA 빌드 Assetbundle 변환 빌드 – 유니티 캐싱 사용을 위한 데이터 형식 AssetServer 로 부터 업데이트 – 속도개선 테스트 연구중 https://docs.unity3d.com/Documentation/Manual/CommandLineArguments.html 28
  • 29. Collaboration Performance-4 빌드 자동화 Unity.exe Batch Mode TIP ★ ★ ★ 1) 빌드 서버 필수 옵션 : -nographics 2) Unity.exe 프로세스 중복 실행 : -logfile 3) BatchMode 코드 작성시, 실행 실패 처리 : EditorApplication.Exit(에러레벨) 4) Windows 에서 iPhone 플랫폼 빌드하기 : x-code 빌드를 iOS 에 맡긴다 29
  • 30. Collaboration Performance-4 빌드 자동화 Unity.exe Batch Mode 실행을 위한, NUnityBatch.exe 제작 유니티 BatchMode 를 위한 콘솔 프로그램 자체 제작 로그 추적 편의성, 실행 편의성 여러 프로젝트 빌드 설정 구조화 30
  • 31. Collaboration Performance-4 빌드 자동화 자동화에 필요한 콘솔 프로그램 만들기 콘솔 활용도를 높이자 예외 처리 중요 : 모든 실패 가능성 예측 필요 31
  • 32. Collaboration Performance-4 빌드 자동화 # CC.NET - Unity 클라이언트 빌드 -> 업로드까지 32
  • 33. Collaboration Performance-4 빌드 자동화 # CC.NET - 서버 빌드 자동화 : 개발용 서버 [종료 > 빌드 > 재가동] 33
  • 34. Collaboration Performance-4 빌드 자동화 # CC.NET –모든 자동화 통합 관리 장점1 : DEBUG / RELEASE & WIN32 / WIN64 / …ETC 일괄 빌드 테스트 장점2 : 공통 라이브러리의 적용 상태 판단 빌드 문제 발생 여부  빠르게 진단 Project-A Project-B Project-C Library Update Project-A 에 필요하여, Library 를 수정했는데, B-C에 영향이 있는가?34
  • 35. Collaboration Performance-5 패치 자동화 New PM?! – Patch Manager….. Project Manager No LostTime! 35
  • 36. Client 소스업데이트 Client 빌드 Server 소스업데이트 Client 빌드 변경된 리소스 추출 리소스 변환/검사 패치목록 생성 USB으로 복사 (내부망) USB에서 복사 (외부망) Client/리소스 업로드 IDC 보안 접속 Server/리소스 복사 서버 내리기 새로운 서버 올리기 Collaboration Performance-5 패치 자동화 36 서버 70 여대, 서버 App 200 여개, 5개 군의 Database - [영웅의군단] Live - LostTime!
  • 38. 외부망 Collaboration Performance-5 패치 자동화 # 패치 공정 자세히 보기 Client 소스업데이트 Client 빌드 Server 소스업데이트 Client 빌드 변경된 리소스 추출 리소스 변환/검사 패치목록 생성 USB으로 복사 (내부망) USB에서 복사 (외부망) Client/리소스 업로드 IDC 보안 접속 Server/리소스 복사 서버 내리기 새로운 서버 올리기 38 언제 끝나…?
  • 39. Collaboration Performance-5 패치 자동화  패치 자동화 내부망 빌드  USB  외부망 배포까지  예외 처리 중요 : 모든 실패 가능성 예측 필요  단계 선택 가능  패치 작업자와 로그 기록 39 완료 시 음악!
  • 40. Collaboration Performance-5 패치 자동화 # 서버 일괄 종료, 복사, 실행 • 네트워크 폴더 공유 방식 • AWS 콘솔 이용 • 서버 에이전트 제작 40
  • 41. 맺음. 왜 Collaboration Performance 가 중요한가? 개똥 철학 41
  • 42. 맺음. 왜 Collaboration Performance 가 중요한가? 기술 범람의 시대 42
  • 43. 맺음. 왜 Collaboration Performance 가 중요한가? 대규모 프로젝트 = 많은 동료 동료들과의 협업 성능을 높여 즐겁게 일할 수 있는 개발 하기 43
  • 44. UNITY 를 이용한 대규모 프로젝트 개발 이야기 엔도어즈/기술지원팀 beargene@ndoors.net www.facebook.com/beargene -END- 44