Unity3D로 풀3D web mmorpg 만들기

38,228
-1

Published on

Published in: Technology
4 Comments
67 Likes
Statistics
Notes
No Downloads
Views
Total Views
38,228
On Slideshare
0
From Embeds
0
Number of Embeds
16
Actions
Shares
0
Downloads
0
Comments
4
Likes
67
Embeds 0
No embeds

No notes for slide

Unity3D로 풀3D web mmorpg 만들기

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

×