Unity3D로 만드는
Web Full 3D - MMORPG
         “삼국지를 품다” 의 테크니컬 아트

Ndoors
정종필
대충 살아가는 게임개발자
                                 http://chulin28ho.egloos.com

     정종필
Ndoors 개발1본부 기술지원팀
부장 / Technical Art Director
               -1992. H.Q team
        -충무공전1 캐릭터 디자이너
        -임진록 시리즈 그래픽 팀장
          -천년의 신화 그래픽 팀장
            -㈜ 조이온 아트디렉터
             -임진록 온라인 거상
                   -군주온라인
           -타임앤테일즈 기획팀장
      -아틀란티카 테크니컬 아티스트
   -삼국지를 품다 테크니컬 아트 디렉터
프로젝트의 시작 :
Unity3D 엔진을 결정하다
• 프로젝트의 시작

 o Ndoors H.Q.team
• 프로젝트의 시작

 o Ndoors H.Q.team
 o …남들 안 하는 것 도전하기로 유명한 회사
   • 정치 경제 역사 교육 …
   • 턴제 MMORPG…
시대는 (빠르게) 바뀌고 있다

o 무거운 게임의 시대는 저물고…
o 접근성이 쉬운 WEB 게임을 만듭시다
그럼, 고품질의 풀 3D 웹게임으로!!
프로젝트의 목표

o “정통” 스토리 삼국지라고?
 o 나관중, 삼국지연의 기반
 o 1천여개의 ‘드라마’ 삽입
프로젝트의 목표

o 고품질의 멀티 플렛폼 게임
 o WEB 버전과 스마트폰 게임의 연동
 o 각각 독립 플레이도 가능
Unity 3D
o 근래에 각광받고 있는 엔진
o 일단 우리의 요구에 가장 근접




                     소문조사
Unity 3D
o 근래에 각광받고 있는 엔진
              가격이 싸고
o 일단 우리의 요구에 가장 근접


       제작이 빠르다고 하고

멀티 플렛폼에 특화되어 있다니까
그리고 별 건 아니지만
조사하다 보니
알았는데
그리고 별 건 아니지만 있고
   개발팀은 덴마크에
조사하다 보니
 사무실은 미국에 있고
알았는데
    이번엔 캐나다 회사를 영입했고
 리투아니아에도 연구소가 있어?
                  별 의미 없지만
              뭔가 정체불명의 국적
                         소문은?
그 외 들려오는   불길한      소문들

    “1인 개발자용 엔진이라던데?
        여러 명은 못 쓴데”

     “퍼포먼스와 기능이 떨어져서
    MMO 같은 게임 만들기는 무리야”

 “그래픽이 구리고 렌더링이 엄청 느려”


   “해 보니까 모바일 게임 외엔 못만들어”



                            그렇지만
우리가 뭐
언제부터 소문 듣고
게임 만들어 왔냐
Unity3D 테스트를 시작하다
Unity3D 테스트 첫인상
 o 뭐야 몰라 무서워
  o 생각보다 훨씬 쉽다
   o 프로그래머 하루만에 … “헉”
   o 그래픽 아티스트들도 … “경악”
   o 툴이 하나 밖에 없어? ‘눈길’
Unity3D 테스트 첫인상
 o LEGO?
  o 컴포넌트만 가져다 끼우면 기능이 뚝딱 완성
  o MAX 파일이나 PSD 파일까지 몽땅 Asset으로 받음
  o 웹 /모바일 /콘솔 버전이 빌드 옵션만 바꿔주면
   알아서 빌드됨
Unity3D 테스트 첫인상
 o LEGO?
  o 컴포넌트만 가져다 끼우면 기능이 뚝딱 완성
  o MAX 파일이나 PSD 파일까지 몽땅 Asset으로 받음
  o 웹 /모바일 /콘솔 버전이 빌드 옵션만 바꿔주면
   알아서 빌드됨



 “괜히 개발팀이 *덴마크에 있는 게 아니었어요”
                                      * 레고는 덴마크 회사
Unity3D 테스트 첫인상
 o …게다가
  o 웬만한 미들웨어는 몽땅 내장되어 있어서
   인티그레이션 걱정이 없음
   o Umbra
   o Tree Creator
   o Beast
   o Physics
   o Substance
   o FMOD
   o Asset Server
   o Mono
Unity3D 테스트 첫인상

 o엔진에 앱스토어가 있어!!!
  o 정확히는 Asset Store
  o UI가 구려? 그럼…
  o 비주얼 셰이더 에디터가 없어? 그럼…
Unity3D 테스트 첫인상



 o엔진이 부분 유료화도 해?   넥슨이냐


  o 캐쉬 영역 50MB…




                          그래픽퀄리티
Unity3D 테스트 첫인상

o그래픽 퀄리티도 그다지 떨어지지 않음
 o Forward Renderer와 Deferred Renderer 도 지원
 o Shader Script가 쉬운 편
 o 3.0 부터는 그런대로 괜찮.
   o 3.5 부터는 밀리지 않음
Unity3D 테스트 첫인상

o 프로그래머들은 많이 우려
  o 접근이 안되는게 많다
  o 스크립트의 속도는?
  o C# 이다… C++이 아냐…




                      종합적으로 봤을때..
종합적으로 봤을 때


o 그것은 좋은 엔진 : 우리 프로젝트 / 제작 스타일과 잘 맞는 엔진
 o 엄청나게 빠른 피드백은 최강의 강점
 o 우리에게 빠른 것은 최고의 가치
종합적으로 봤을 때


o 그것은 좋은 엔진 : 우리 프로젝트 / 제작 스타일과 잘 맞는 엔진
 o 엄청나게 빠른 피드백은 최강의 강점
 o 우리에게 빠른 것은 최고의 가치

  진짜임
종합적으로 봤을 때


o 그것은 좋은 엔진 : 우리 프로젝트 / 제작 스타일과 잘 맞는 엔진
 o 엄청나게 빠른 피드백은 최강의 강점


o우리는 처음 해보는 멀티 플렛폼에 도전하고 있다.
종합적으로 봤을 때


o 그것은 좋은 엔진 : 우리 프로젝트 / 제작 스타일과 잘 맞는 엔진
 o 엄청나게 빠른 피드백은 최강의 강점


o우리는 처음 해보는 멀티 플렛폼에 도전하고 있다.


o미래가 밝아 보인다
 o 엔진 개발사가 적극적이다
다소 성급할 수도 있지만

결 to the 정
Unity3D 를 실제로 써보니…
Unity3D 를 실제 써보니…


o (최상위 엔진급의) 차세대급 하이엔드 기능은 좀 부족
 o 실시간 GI 뭐 이런 수준은 아님
 o 그러나 엄청나게 빠른 업데이트
  o 3.5에서 HDR과 Gamma Correction, Light Probe 등 내장
  o 4.0 에서는 DirectX 11 기능 지원 예정
Unity3D 를 실제 써보니…

o과연 1인 개발자를 위해서는 모든 것이 준비
 o 모든 것이 간편
 o 아직 큰 프로젝트는 잘 “모르더라”


o강력한 시각화
 o 이게 은근히 대놓고 강력
Unity3D 를 실제 써보니…

o   프로그래머 입장 : 단점이 확실히 있음!!!
     o 스크립트로 접근이 한계가 있어!

     o메모리가 새!!!!!!!!!        에디터 잘 죽어!!!
     o 확실히 무거워!!! UI/Terrain 구려!!! Collision 무거워!!!
     o Mono구려!!! 디버깅도 안돼!!! 가비지 컬렉터 느려!!
     o 버그 어쩔꺼야!!!
     o 레퍼런스가 빈약해!!!
                                          보고 있나
                                           유니티
Unity3D 를 실제 써보니…

o 그래픽 아티스트나 디자이너는 대 환영
 o “ 가벼운 언리얼 같은 느낌이었어요”
 o “퀄리티도 잘 나오고 금방 배울 수 있어요”
 o 조금 과장하면 “쯔꾸르 같았다” 라는 평도
 o 시간도 없고 그래픽 프로그래머도 없는 회사에게는 최고의 물건




                                       프로그래머들은 다운된다던데..
Unity3D 를 실제 써보니…
                                “툴이 좀 다운되지 않아?”

o 그래픽 아티스트나 디자이너는 대 환영
 o “ 가벼운 언리얼 같은 느낌이었어요”          “페인터 보다는 백배 나아”
 o “퀄리티도 잘 나오고 금방 배울 수 있어요”
 o 조금 과장하면 “쯔꾸르 같았다” 라는 평도
 o 시간도 없고 그래픽 프로그래머도 없는 회사에게는 최고의 물건




                                                   그렇지만..
Unity3D 를 실제 써보니…

o너무 쉬운 엔진의 함정
 o 너무 쉽게 core한 부분에 접근 가능
 o 관리를 잘 못하면 퍼포먼스 저하가 쉬움
 o TA 제어가 꼭 필요한 엔진
어쨌건 Unity3D 의 최종 평가는
o 전체적으로는 기대 이상 : 포스트 겜브리오?
o 툴 기반 엔진 : 작업 프로세스의 재 확립 필요
o 메모리 문제만 어떻게 좀 하면…
 o 엔진 개발사의 적극적 협력 – 본사 개발자 파견
“삼국지를 품다”의
Technical Art
Technical Artist

o Full – Time TA 2명,
  Part – Time TA 2명
oTechnical Support Team / Artist
Technical Artist

o “ 프로그래머의 머리로, 아티스트의 감성으로 ”
 o 프로그래머의 한계와 아티스트의 한계
 o 무조건 그래픽 데이터부터 타협하는 사태 방지
 o 아트 팀이 원하는 것을 게임에 구현 / 가격대 성능비 체크, 결정
 o 편리한 작업 환경 구현 / 높은 품질을 위한 기술 제안
 o “영업 사원 마인드” : 우리의 고객은 모든 개발자
 o R&D , Script, Shader, Trouble Shooting , Education
어쨌건 프로젝트는 시작되었는데
가장 불안했던 것은…
o 일단 WEB에서   “돌아가긴 하냐?”
o 돌아간다면, 어느 수준을 만들어야 하는 겁니까?
“다른 웹게임과
확연히 다른 수준을
   만들어”
“근데 무거우면
  안됨ㅋ”
 웹게임이잖아ㅋ
이런걸 원하는 거였..
구체적으로는..
구체적으로는..



o 어떤 세부기준으로 제작해야 하나?
 o 모바일 버전도 고려

o 어떤 기술을 어디까지 사용해야 하나?


                         가이드라인
가이드라인 없이는
아무것도 안될 거야…
              @agebreak “개불” 박민근 선생. 네오위즈
제작 가이드라인 &
옵션을 결정하다
       -퍼포먼스 1차 테스트
       -퍼포먼스 2차 테스트
       -리소스 제작 가이드라인
       -셰이더 커스터마이즈
       -퍼포먼스 3차 테스트
       -최종 사양 / 옵션 결정
퍼포먼스 1차 초벌 테스트/ 정리

o 예상보다 너무 낮게 나오는 프레임…
 o 렌더링 옵션 수정 / 제어
 o 브라우저의 프레임 제한 확인
 o 의미없는 후처리 정리
퍼포먼스 2차 테스트
o 리소스 데이터 표준화 테스트
 o 30마리의 Batch 처리 안된 캐릭터
 o 해상도 1024*600
 o 예상 ‘중간’옵션값으로 강제 설정
 o 카메라 최대 Zoom Out 예상값
퍼포먼스 2차 테스트
o 제작된 맵 프로파일링
 o 프로파일러 깎는 노인
퍼포먼스 2차 테스트
o Asset 제작 스타일 파악
o 제작 개선점 분석
o 리소스 외의 프레임 저하요소 분석 /해결
o“표준 맵” 결정
리소스 제작 가이드라인
o 캐릭터는 30-40마리 동시 출현이 한계
 o Dynamic Batch를 이용하면 좀 더 가능
 o 커스터마이징은 제약 좀…
 o 캐릭터 폴리곤은 4000-5000
oTexture Size는 좀 더 크게
 o 언제든 줄일 수 있는 것은 넉넉하게 사용한다
 o 최후의 최적화 방법으로 선택
리소스 제작 가이드라인


o 카메라 뷰 제한
 o 게임의 특성
 o 안정된 퍼포먼스
 o 디자인 집중
리소스 제작 가이드라인


o 카메라 뷰 제한
 o 게임의 특성
 o 안정된 퍼포먼스
 o 디자인 집중
리소스 제작 가이드라인


o 카메라 뷰 제한
 o 게임의 특성
 o 안정된 퍼포먼스
 o 디자인 집중
리소스 제작 가이드라인
oDP Call은 그래픽팀에서 적극적으로 신경쓴다
 o ‘보통’ 옵션에서 Dpcall을 400 이하로 나오게 할 것
 o 배경 그래픽 팀에 적극적으로 교육
 o 폴리곤 수는 지금에서 더 늘지만 않을 정도로
    o 너무 복잡한 제약은 아티스트들을 주눅들게 한다.
Shader 작업
o 캐릭터 Shader 제작
 o 염색, Rim light 기능요구
 o 너무 고급 기술은 사용 않기로



         -Specular *2
         -Half Lambert
         -SSS
         -Hemisphere
         Ambient
         -Rim
         -Dye
Shader 작업
o 캐릭터 Shader 제작          별론데요
 o 염색, Rim light 기능요구
 o 너무 고급 기술은 사용 않기로



         -Specular *2
         -Half Lambert
         -SSS
         -Hemisphere
         Ambient
         -Rim
         -Dye
Shader 작업

                 o 예쁘면 장땡



 -Specular *2
 -Half Lambert
 -SSS
 -Hemisphere     -Lambert
 Ambient         -Rim
 -Rim            -Dye
 -Dye
이런 시도 저런 시도
o Toon Shader
   o Texture Color를 Sampling한 외각 라인
   o 게임 성격과 맞지 않아 포기
에라 그럼 가볍게라도 만들자
o Handmade Shader : Full Vertex Light로 교체
o DP call 감소 효과
   o 파츠가 있는 군주 캐릭터의 경우, 캐릭터 1마리당 약 10 드로우콜 절약
   o 30마리 상황에서 2-3 프레임 증가 효과
그래도 아쉬워서
o 그 대신 Gamma Correction 추가
  o 해 놓고 나니까 3.5에서
    기본으로 추가된다능…
Water Shader 작업
o 가벼운 물은 구리고, 예쁜 물은 무거워요
Water Shader 작업
o Vertex Color / Alpha 마스킹
o 2Pass / Cubemap Reflection / Realtime Refraction / Normalmap / Fixed specular
Water Shader 작업
o Water Shader 수정
  o 3단계 Shader LOD
  o 옵션별 대응
TA는 신이 아니라고요…
o 기타 예상되는 무서운 부정적인 변수들
 o 인터페이스의 퍼포먼스
 o 게임 로직의 부하
 o 이펙트 / UI 반투명 부하
 o 기타 예상 못한 변수들




                         본격적으로 서버연결
본격 퍼포먼스 3차 테스트
o 레퍼런스 CPU 추출
본격 퍼포먼스 3차 테스트
o 레퍼런스 VGA 추출
o
o 레퍼런스 하드웨어들 결정
o 기준 맵에서 교차 테스트
o 리얼 게임 서버에서 최종 테스트
o 결과도출
최종결과 도출
o주관적 판단 +a
o프로파일러 응용
 o이상 증상 체크
 o부하 영역 체크
사양 / 옵션 결정               최저사양                   권장사양

                         CPU                    CPU
o 가능한 한 가볍게              Intel Pentium4 2.8G    Intel Pentium4 3.2G
                         AMD Athlon 2600+       AMD Athlon 64 3200+

o 최저사양의 정의               Memory                 Memory
                         1G                     2G
  o 최저옵션
  o 최저해상도 (1024*600)     Graphic Card           Graphic Card
                         Geforce FX5900 128MB   Geforce 7600 256MB
  o 동시작업 무리
                         ATI X600 128MB         ATI X1650 256MB

                         Hard Disk              Hard Disk
o 권장사양의 정의
                         여유공간 10 G 이상           여유공간 10 G 이상
  o ‘보통’ 옵션
                         Internex Explorer      Internex Explorer
  o 권장 해상도 (1280*1024)
                         8.0 이상                 9.0 이상
  o 간단한 동시작업 가능
최저    낮음    보통     좋음        최상

 사양 / 옵션 결정            Pixel light count    0     1      2      3         4

                           shadow                                     hard Only

                      shadow resolution                                  High
o 5단계 옵션 완성
                       shadow cascade                                     1
 o 낮은 사양쪽에 집중         shadow distance                                     30

 o 고급기술은 최고급 옵션에 집중     blend weight        1     2      4      4         4

                        texture quality     1/4   1/2   Full   Full      Full
 o 공식을 이용한 자동설정 완성
                      anisotropic texture                             ForceEnable

                      Terrain Pixel Error   150   150   50     0.1        0.1

                         Shader LOD         200   200   300    500       500

                           SkyBox                 O      O      O         O



                       Color Correction                  O      O         O

                        Depth of Field                          O         O

                         Bloom (LDR)                            O         O

                      Contrast Enhance                          O         O

                            SSAO                                          O
옵션-최상

Realtime Shadow
            SSAO
            Bloom
Contrast enhance
 Color correction
 Full Texture size
       Anisotropic
          Filtering
 Terrain error low
 Shader LOD 500
옵션-상

Realtime Shadow
            SSAO
            Bloom
Contrast enhance
 Color correction
 Full Texture size
       Anisotropic
          Filtering
 Terrain error low
 Shader LOD 500
옵션-보통

Realtime Shadow
            SSAO
            Bloom
Contrast enhance
 Color correction
 Full Texture size
       Anisotropic
          Filtering
 Terrain error mid
 Shader LOD 300
옵션-하

 Realtime Shadow
             SSAO
             Bloom
 Contrast enhance
  Color correction
MiddleTexture size
       Anisotropic
           Filtering
  Terrain error mid
  Shader LOD 200
옵션-최하

Realtime Shadow
            SSAO
            Bloom
Contrast enhance
 Color correction
Low Texture size
      Anisotropic
          Filtering
Terrain error high
 Shader LOD 150
삼국지를 품다
-SPT
삼국지를 품다
-SPT
삼국지를 품다
-SPT
정리   • 돌아 가긴 하더군요
     • 묵직한 건 사실입니다
정리   • 돌아 가긴 하더군요

     • 사양과 옵션은 예상에
       거의 근접 성공
     • 물론 점점 더 높아질 겁니다만
정리   • 돌아 가긴 하더군요
     • 사양과 옵션은 예상에 거의 근접 성공

     • 좀 더 자동화를
       궁리해 봐야 할 듯
     • 그렇지만 수작업도 의미가 있었음
정리   • 돌아 가긴 하더군요
     • 사양과 옵션은 예상에 거의 근접 성공
     • 좀 더 자동화를 궁리해 봐야 할 듯

     • 하드코어하게 만들면
       (당연하게도)
       프로그래머가 고생합니다
     • 나란엔진 그런엔진
정리   • 돌아 가긴 하더군요
     • 사양과 옵션은 예상에 거의 근접 성공
     • 좀 더 자동화를 궁리해 봐야 할 듯
     • 하드코어하게 만들면 (당연하게도)
       프로그래머가 고생합니다

     • 노하우를 꽤 쌓았습니다
     • 프로그래머 분들이 고생 많았습니다
정리   • 돌아 가긴 하더군요
     • 사양과 옵션은 예상에 거의 근접 성공
     • 좀 더 자동화를 궁리해 봐야 할 듯
     • 하드코어하게 만들면 (당연하게도)
       프로그래머가 고생합니다
     • 노하우를 꽤 쌓았습니다

     • 몇가지 문제를 극복하면
       훨씬 더 높은
       퀄리티도 충분히 가능합니다
     • 웹게임으로는 2-3 배 이상 퀄리티도
       곧 가능하지 않을지
정리   • 돌아 가긴 하더군요
     • 사양과 옵션은 예상에 거의 근접 성공
     • 좀 더 자동화를 궁리해 봐야 할 듯
     • 하드코어하게 만들면 (당연하게도)
       프로그래머가 고생합니다
     • 노하우를 꽤 쌓았습니다
     • 몇가지 문제를 극복하면 훨씬 더 높은
       퀄리티도 충분히 가능합니다




         …그렇지만
그치만
모바일은
다른 차원의
문제였습니다…
   To be continued…
Ndoors 개발1본부 기술지원팀                                           감사합니다
부장/ Technical Art Director
정종필 @Jpcorps
jpcorp@ndoors.net

대충 살아가는 게임개발자
http://chulin28ho.egloos.com
http://chulin28ho.tistory.com

게임개발 포에버 / 대마왕J
http://gamedevforever.com




참고자료                                                        Special Thanks to                                   사용된 이미지
                                                                       “삼국지를 품다” 개발팀                                이말년 „이말년시리즈‟
http://www.sampoom.com
                                                                                            TS팀                           귀귀 „정열맨‟
http://chulin28ho.egloos.com                                                  Pope kim 스승님                            小畑 健,DeathNote
                                                   Tis/ Ozlael/ Hybrid/ agebrake/ Silverchime                  あずまきよひこ “よつばと!”)
http://www.unity3dkorea.com/
                                                      Cagetu/ lune00/ storm / Viiiiito / zinzza /
http://www.facebook.com/groups/172155986199569/       Template_NANA / zeyspapa / zoohae /           Usuta Kyosuke . “ピューと吹く! ジャガー”
                                                  jun0683 / kgun86 / eiaserinnys / siyoskii /               増田こうすけ. ギャグマンガ日和
                                                                 dwloiter / banhae / sehaya /                   롤러코스터 남녀탐구생활
                                                                             Mysterion_Rises/                           MBC „무한도전‟
                                                                                                                       조석 „마음의소리‟

Unity3D로 풀3D web mmorpg 만들기

  • 1.
    Unity3D로 만드는 Web Full3D - MMORPG “삼국지를 품다” 의 테크니컬 아트 Ndoors 정종필
  • 2.
    대충 살아가는 게임개발자 http://chulin28ho.egloos.com 정종필 Ndoors 개발1본부 기술지원팀 부장 / Technical Art Director -1992. H.Q team -충무공전1 캐릭터 디자이너 -임진록 시리즈 그래픽 팀장 -천년의 신화 그래픽 팀장 -㈜ 조이온 아트디렉터 -임진록 온라인 거상 -군주온라인 -타임앤테일즈 기획팀장 -아틀란티카 테크니컬 아티스트 -삼국지를 품다 테크니컬 아트 디렉터
  • 3.
    프로젝트의 시작 : Unity3D엔진을 결정하다
  • 4.
    • 프로젝트의 시작 o Ndoors H.Q.team
  • 5.
    • 프로젝트의 시작 o Ndoors H.Q.team o …남들 안 하는 것 도전하기로 유명한 회사 • 정치 경제 역사 교육 … • 턴제 MMORPG…
  • 6.
    시대는 (빠르게) 바뀌고있다 o 무거운 게임의 시대는 저물고… o 접근성이 쉬운 WEB 게임을 만듭시다
  • 8.
    그럼, 고품질의 풀3D 웹게임으로!!
  • 9.
    프로젝트의 목표 o “정통”스토리 삼국지라고? o 나관중, 삼국지연의 기반 o 1천여개의 ‘드라마’ 삽입
  • 10.
    프로젝트의 목표 o 고품질의멀티 플렛폼 게임 o WEB 버전과 스마트폰 게임의 연동 o 각각 독립 플레이도 가능
  • 11.
    Unity 3D o 근래에각광받고 있는 엔진 o 일단 우리의 요구에 가장 근접 소문조사
  • 12.
    Unity 3D o 근래에각광받고 있는 엔진 가격이 싸고 o 일단 우리의 요구에 가장 근접 제작이 빠르다고 하고 멀티 플렛폼에 특화되어 있다니까
  • 13.
    그리고 별 건아니지만 조사하다 보니 알았는데
  • 14.
    그리고 별 건아니지만 있고 개발팀은 덴마크에 조사하다 보니 사무실은 미국에 있고 알았는데 이번엔 캐나다 회사를 영입했고 리투아니아에도 연구소가 있어? 별 의미 없지만 뭔가 정체불명의 국적 소문은?
  • 15.
    그 외 들려오는 불길한 소문들 “1인 개발자용 엔진이라던데? 여러 명은 못 쓴데” “퍼포먼스와 기능이 떨어져서 MMO 같은 게임 만들기는 무리야” “그래픽이 구리고 렌더링이 엄청 느려” “해 보니까 모바일 게임 외엔 못만들어” 그렇지만
  • 16.
    우리가 뭐 언제부터 소문듣고 게임 만들어 왔냐
  • 17.
  • 18.
    Unity3D 테스트 첫인상 o 뭐야 몰라 무서워 o 생각보다 훨씬 쉽다 o 프로그래머 하루만에 … “헉” o 그래픽 아티스트들도 … “경악” o 툴이 하나 밖에 없어? ‘눈길’
  • 19.
    Unity3D 테스트 첫인상 o LEGO? o 컴포넌트만 가져다 끼우면 기능이 뚝딱 완성 o MAX 파일이나 PSD 파일까지 몽땅 Asset으로 받음 o 웹 /모바일 /콘솔 버전이 빌드 옵션만 바꿔주면 알아서 빌드됨
  • 20.
    Unity3D 테스트 첫인상 o LEGO? o 컴포넌트만 가져다 끼우면 기능이 뚝딱 완성 o MAX 파일이나 PSD 파일까지 몽땅 Asset으로 받음 o 웹 /모바일 /콘솔 버전이 빌드 옵션만 바꿔주면 알아서 빌드됨 “괜히 개발팀이 *덴마크에 있는 게 아니었어요” * 레고는 덴마크 회사
  • 21.
    Unity3D 테스트 첫인상 o …게다가 o 웬만한 미들웨어는 몽땅 내장되어 있어서 인티그레이션 걱정이 없음 o Umbra o Tree Creator o Beast o Physics o Substance o FMOD o Asset Server o Mono
  • 22.
    Unity3D 테스트 첫인상 o엔진에 앱스토어가 있어!!! o 정확히는 Asset Store o UI가 구려? 그럼… o 비주얼 셰이더 에디터가 없어? 그럼…
  • 23.
    Unity3D 테스트 첫인상 o엔진이 부분 유료화도 해? 넥슨이냐 o 캐쉬 영역 50MB… 그래픽퀄리티
  • 24.
    Unity3D 테스트 첫인상 o그래픽퀄리티도 그다지 떨어지지 않음 o Forward Renderer와 Deferred Renderer 도 지원 o Shader Script가 쉬운 편 o 3.0 부터는 그런대로 괜찮. o 3.5 부터는 밀리지 않음
  • 25.
    Unity3D 테스트 첫인상 o프로그래머들은 많이 우려 o 접근이 안되는게 많다 o 스크립트의 속도는? o C# 이다… C++이 아냐… 종합적으로 봤을때..
  • 26.
    종합적으로 봤을 때 o그것은 좋은 엔진 : 우리 프로젝트 / 제작 스타일과 잘 맞는 엔진 o 엄청나게 빠른 피드백은 최강의 강점 o 우리에게 빠른 것은 최고의 가치
  • 27.
    종합적으로 봤을 때 o그것은 좋은 엔진 : 우리 프로젝트 / 제작 스타일과 잘 맞는 엔진 o 엄청나게 빠른 피드백은 최강의 강점 o 우리에게 빠른 것은 최고의 가치 진짜임
  • 28.
    종합적으로 봤을 때 o그것은 좋은 엔진 : 우리 프로젝트 / 제작 스타일과 잘 맞는 엔진 o 엄청나게 빠른 피드백은 최강의 강점 o우리는 처음 해보는 멀티 플렛폼에 도전하고 있다.
  • 29.
    종합적으로 봤을 때 o그것은 좋은 엔진 : 우리 프로젝트 / 제작 스타일과 잘 맞는 엔진 o 엄청나게 빠른 피드백은 최강의 강점 o우리는 처음 해보는 멀티 플렛폼에 도전하고 있다. o미래가 밝아 보인다 o 엔진 개발사가 적극적이다
  • 30.
    다소 성급할 수도있지만 결 to the 정
  • 31.
  • 32.
    Unity3D 를 실제써보니… o (최상위 엔진급의) 차세대급 하이엔드 기능은 좀 부족 o 실시간 GI 뭐 이런 수준은 아님 o 그러나 엄청나게 빠른 업데이트 o 3.5에서 HDR과 Gamma Correction, Light Probe 등 내장 o 4.0 에서는 DirectX 11 기능 지원 예정
  • 33.
    Unity3D 를 실제써보니… o과연 1인 개발자를 위해서는 모든 것이 준비 o 모든 것이 간편 o 아직 큰 프로젝트는 잘 “모르더라” o강력한 시각화 o 이게 은근히 대놓고 강력
  • 34.
    Unity3D 를 실제써보니… o 프로그래머 입장 : 단점이 확실히 있음!!! o 스크립트로 접근이 한계가 있어! o메모리가 새!!!!!!!!! 에디터 잘 죽어!!! o 확실히 무거워!!! UI/Terrain 구려!!! Collision 무거워!!! o Mono구려!!! 디버깅도 안돼!!! 가비지 컬렉터 느려!! o 버그 어쩔꺼야!!! o 레퍼런스가 빈약해!!! 보고 있나 유니티
  • 35.
    Unity3D 를 실제써보니… o 그래픽 아티스트나 디자이너는 대 환영 o “ 가벼운 언리얼 같은 느낌이었어요” o “퀄리티도 잘 나오고 금방 배울 수 있어요” o 조금 과장하면 “쯔꾸르 같았다” 라는 평도 o 시간도 없고 그래픽 프로그래머도 없는 회사에게는 최고의 물건 프로그래머들은 다운된다던데..
  • 36.
    Unity3D 를 실제써보니… “툴이 좀 다운되지 않아?” o 그래픽 아티스트나 디자이너는 대 환영 o “ 가벼운 언리얼 같은 느낌이었어요” “페인터 보다는 백배 나아” o “퀄리티도 잘 나오고 금방 배울 수 있어요” o 조금 과장하면 “쯔꾸르 같았다” 라는 평도 o 시간도 없고 그래픽 프로그래머도 없는 회사에게는 최고의 물건 그렇지만..
  • 37.
    Unity3D 를 실제써보니… o너무 쉬운 엔진의 함정 o 너무 쉽게 core한 부분에 접근 가능 o 관리를 잘 못하면 퍼포먼스 저하가 쉬움 o TA 제어가 꼭 필요한 엔진
  • 38.
    어쨌건 Unity3D 의최종 평가는 o 전체적으로는 기대 이상 : 포스트 겜브리오? o 툴 기반 엔진 : 작업 프로세스의 재 확립 필요 o 메모리 문제만 어떻게 좀 하면… o 엔진 개발사의 적극적 협력 – 본사 개발자 파견
  • 39.
  • 40.
    Technical Artist o Full– Time TA 2명, Part – Time TA 2명 oTechnical Support Team / Artist
  • 41.
    Technical Artist o “프로그래머의 머리로, 아티스트의 감성으로 ” o 프로그래머의 한계와 아티스트의 한계 o 무조건 그래픽 데이터부터 타협하는 사태 방지 o 아트 팀이 원하는 것을 게임에 구현 / 가격대 성능비 체크, 결정 o 편리한 작업 환경 구현 / 높은 품질을 위한 기술 제안 o “영업 사원 마인드” : 우리의 고객은 모든 개발자 o R&D , Script, Shader, Trouble Shooting , Education
  • 42.
  • 43.
    o 일단 WEB에서 “돌아가긴 하냐?” o 돌아간다면, 어느 수준을 만들어야 하는 겁니까?
  • 44.
  • 45.
    “근데 무거우면 안됨ㅋ” 웹게임이잖아ㅋ
  • 46.
  • 47.
    구체적으로는.. 구체적으로는.. o 어떤 세부기준으로제작해야 하나? o 모바일 버전도 고려 o 어떤 기술을 어디까지 사용해야 하나? 가이드라인
  • 48.
    가이드라인 없이는 아무것도 안될거야… @agebreak “개불” 박민근 선생. 네오위즈
  • 49.
    제작 가이드라인 & 옵션을결정하다 -퍼포먼스 1차 테스트 -퍼포먼스 2차 테스트 -리소스 제작 가이드라인 -셰이더 커스터마이즈 -퍼포먼스 3차 테스트 -최종 사양 / 옵션 결정
  • 50.
    퍼포먼스 1차 초벌테스트/ 정리 o 예상보다 너무 낮게 나오는 프레임… o 렌더링 옵션 수정 / 제어 o 브라우저의 프레임 제한 확인 o 의미없는 후처리 정리
  • 51.
    퍼포먼스 2차 테스트 o리소스 데이터 표준화 테스트 o 30마리의 Batch 처리 안된 캐릭터 o 해상도 1024*600 o 예상 ‘중간’옵션값으로 강제 설정 o 카메라 최대 Zoom Out 예상값
  • 52.
    퍼포먼스 2차 테스트 o제작된 맵 프로파일링 o 프로파일러 깎는 노인
  • 53.
    퍼포먼스 2차 테스트 oAsset 제작 스타일 파악 o 제작 개선점 분석 o 리소스 외의 프레임 저하요소 분석 /해결 o“표준 맵” 결정
  • 54.
    리소스 제작 가이드라인 o캐릭터는 30-40마리 동시 출현이 한계 o Dynamic Batch를 이용하면 좀 더 가능 o 커스터마이징은 제약 좀… o 캐릭터 폴리곤은 4000-5000 oTexture Size는 좀 더 크게 o 언제든 줄일 수 있는 것은 넉넉하게 사용한다 o 최후의 최적화 방법으로 선택
  • 55.
    리소스 제작 가이드라인 o카메라 뷰 제한 o 게임의 특성 o 안정된 퍼포먼스 o 디자인 집중
  • 56.
    리소스 제작 가이드라인 o카메라 뷰 제한 o 게임의 특성 o 안정된 퍼포먼스 o 디자인 집중
  • 57.
    리소스 제작 가이드라인 o카메라 뷰 제한 o 게임의 특성 o 안정된 퍼포먼스 o 디자인 집중
  • 58.
    리소스 제작 가이드라인 oDPCall은 그래픽팀에서 적극적으로 신경쓴다 o ‘보통’ 옵션에서 Dpcall을 400 이하로 나오게 할 것 o 배경 그래픽 팀에 적극적으로 교육 o 폴리곤 수는 지금에서 더 늘지만 않을 정도로 o 너무 복잡한 제약은 아티스트들을 주눅들게 한다.
  • 59.
    Shader 작업 o 캐릭터Shader 제작 o 염색, Rim light 기능요구 o 너무 고급 기술은 사용 않기로 -Specular *2 -Half Lambert -SSS -Hemisphere Ambient -Rim -Dye
  • 60.
    Shader 작업 o 캐릭터Shader 제작 별론데요 o 염색, Rim light 기능요구 o 너무 고급 기술은 사용 않기로 -Specular *2 -Half Lambert -SSS -Hemisphere Ambient -Rim -Dye
  • 61.
    Shader 작업 o 예쁘면 장땡 -Specular *2 -Half Lambert -SSS -Hemisphere -Lambert Ambient -Rim -Rim -Dye -Dye
  • 62.
    이런 시도 저런시도 o Toon Shader o Texture Color를 Sampling한 외각 라인 o 게임 성격과 맞지 않아 포기
  • 63.
    에라 그럼 가볍게라도만들자 o Handmade Shader : Full Vertex Light로 교체 o DP call 감소 효과 o 파츠가 있는 군주 캐릭터의 경우, 캐릭터 1마리당 약 10 드로우콜 절약 o 30마리 상황에서 2-3 프레임 증가 효과
  • 64.
    그래도 아쉬워서 o 그대신 Gamma Correction 추가 o 해 놓고 나니까 3.5에서 기본으로 추가된다능…
  • 65.
    Water Shader 작업 o가벼운 물은 구리고, 예쁜 물은 무거워요
  • 66.
    Water Shader 작업 oVertex Color / Alpha 마스킹 o 2Pass / Cubemap Reflection / Realtime Refraction / Normalmap / Fixed specular
  • 67.
    Water Shader 작업 oWater Shader 수정 o 3단계 Shader LOD o 옵션별 대응
  • 68.
    TA는 신이 아니라고요… o기타 예상되는 무서운 부정적인 변수들 o 인터페이스의 퍼포먼스 o 게임 로직의 부하 o 이펙트 / UI 반투명 부하 o 기타 예상 못한 변수들 본격적으로 서버연결
  • 69.
    본격 퍼포먼스 3차테스트 o 레퍼런스 CPU 추출
  • 70.
    본격 퍼포먼스 3차테스트 o 레퍼런스 VGA 추출
  • 71.
  • 72.
    o 레퍼런스 하드웨어들결정 o 기준 맵에서 교차 테스트 o 리얼 게임 서버에서 최종 테스트 o 결과도출
  • 73.
    최종결과 도출 o주관적 판단+a o프로파일러 응용 o이상 증상 체크 o부하 영역 체크
  • 74.
    사양 / 옵션결정 최저사양 권장사양 CPU CPU o 가능한 한 가볍게 Intel Pentium4 2.8G Intel Pentium4 3.2G AMD Athlon 2600+ AMD Athlon 64 3200+ o 최저사양의 정의 Memory Memory 1G 2G o 최저옵션 o 최저해상도 (1024*600) Graphic Card Graphic Card Geforce FX5900 128MB Geforce 7600 256MB o 동시작업 무리 ATI X600 128MB ATI X1650 256MB Hard Disk Hard Disk o 권장사양의 정의 여유공간 10 G 이상 여유공간 10 G 이상 o ‘보통’ 옵션 Internex Explorer Internex Explorer o 권장 해상도 (1280*1024) 8.0 이상 9.0 이상 o 간단한 동시작업 가능
  • 75.
    최저 낮음 보통 좋음 최상 사양 / 옵션 결정 Pixel light count 0 1 2 3 4 shadow hard Only shadow resolution High o 5단계 옵션 완성 shadow cascade 1 o 낮은 사양쪽에 집중 shadow distance 30 o 고급기술은 최고급 옵션에 집중 blend weight 1 2 4 4 4 texture quality 1/4 1/2 Full Full Full o 공식을 이용한 자동설정 완성 anisotropic texture ForceEnable Terrain Pixel Error 150 150 50 0.1 0.1 Shader LOD 200 200 300 500 500 SkyBox O O O O Color Correction O O O Depth of Field O O Bloom (LDR) O O Contrast Enhance O O SSAO O
  • 76.
    옵션-최상 Realtime Shadow SSAO Bloom Contrast enhance Color correction Full Texture size Anisotropic Filtering Terrain error low Shader LOD 500
  • 77.
    옵션-상 Realtime Shadow SSAO Bloom Contrast enhance Color correction Full Texture size Anisotropic Filtering Terrain error low Shader LOD 500
  • 78.
    옵션-보통 Realtime Shadow SSAO Bloom Contrast enhance Color correction Full Texture size Anisotropic Filtering Terrain error mid Shader LOD 300
  • 79.
    옵션-하 Realtime Shadow SSAO Bloom Contrast enhance Color correction MiddleTexture size Anisotropic Filtering Terrain error mid Shader LOD 200
  • 80.
    옵션-최하 Realtime Shadow SSAO Bloom Contrast enhance Color correction Low Texture size Anisotropic Filtering Terrain error high Shader LOD 150
  • 81.
  • 82.
  • 83.
  • 84.
    정리 • 돌아 가긴 하더군요 • 묵직한 건 사실입니다
  • 85.
    정리 • 돌아 가긴 하더군요 • 사양과 옵션은 예상에 거의 근접 성공 • 물론 점점 더 높아질 겁니다만
  • 86.
    정리 • 돌아 가긴 하더군요 • 사양과 옵션은 예상에 거의 근접 성공 • 좀 더 자동화를 궁리해 봐야 할 듯 • 그렇지만 수작업도 의미가 있었음
  • 87.
    정리 • 돌아 가긴 하더군요 • 사양과 옵션은 예상에 거의 근접 성공 • 좀 더 자동화를 궁리해 봐야 할 듯 • 하드코어하게 만들면 (당연하게도) 프로그래머가 고생합니다 • 나란엔진 그런엔진
  • 88.
    정리 • 돌아 가긴 하더군요 • 사양과 옵션은 예상에 거의 근접 성공 • 좀 더 자동화를 궁리해 봐야 할 듯 • 하드코어하게 만들면 (당연하게도) 프로그래머가 고생합니다 • 노하우를 꽤 쌓았습니다 • 프로그래머 분들이 고생 많았습니다
  • 89.
    정리 • 돌아 가긴 하더군요 • 사양과 옵션은 예상에 거의 근접 성공 • 좀 더 자동화를 궁리해 봐야 할 듯 • 하드코어하게 만들면 (당연하게도) 프로그래머가 고생합니다 • 노하우를 꽤 쌓았습니다 • 몇가지 문제를 극복하면 훨씬 더 높은 퀄리티도 충분히 가능합니다 • 웹게임으로는 2-3 배 이상 퀄리티도 곧 가능하지 않을지
  • 90.
    정리 • 돌아 가긴 하더군요 • 사양과 옵션은 예상에 거의 근접 성공 • 좀 더 자동화를 궁리해 봐야 할 듯 • 하드코어하게 만들면 (당연하게도) 프로그래머가 고생합니다 • 노하우를 꽤 쌓았습니다 • 몇가지 문제를 극복하면 훨씬 더 높은 퀄리티도 충분히 가능합니다 …그렇지만
  • 91.
  • 92.
    Ndoors 개발1본부 기술지원팀 감사합니다 부장/ Technical Art Director 정종필 @Jpcorps jpcorp@ndoors.net 대충 살아가는 게임개발자 http://chulin28ho.egloos.com http://chulin28ho.tistory.com 게임개발 포에버 / 대마왕J http://gamedevforever.com 참고자료 Special Thanks to 사용된 이미지 “삼국지를 품다” 개발팀 이말년 „이말년시리즈‟ http://www.sampoom.com TS팀 귀귀 „정열맨‟ http://chulin28ho.egloos.com Pope kim 스승님 小畑 健,DeathNote Tis/ Ozlael/ Hybrid/ agebrake/ Silverchime あずまきよひこ “よつばと!”) http://www.unity3dkorea.com/ Cagetu/ lune00/ storm / Viiiiito / zinzza / http://www.facebook.com/groups/172155986199569/ Template_NANA / zeyspapa / zoohae / Usuta Kyosuke . “ピューと吹く! ジャガー” jun0683 / kgun86 / eiaserinnys / siyoskii / 増田こうすけ. ギャグマンガ日和 dwloiter / banhae / sehaya / 롤러코스터 남녀탐구생활 Mysterion_Rises/ MBC „무한도전‟ 조석 „마음의소리‟