Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019

  • Login to see the comments

김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019

  1. 1. 할머니가 들려주신 마비노기 개발 전설
  2. 2. 할머니는 어디에…
  3. 3. 왜 이런 발표를
  4. 4. “다들 업계를 조용히 떠나시는 것인지 NDC에서 옛날 이야기를 듣기 어려운 것 같아서…
  5. 5. 옛날 게임 모으기 30년된 게임인데 아직 구할 수 있고 플레이 할 수 있다 요즘 취미?
  6. 6. 소스 코드가 공개된 것들도 있고 Prince of Persia 그 게임을 만든 사람이 발표하는 컨퍼런스도 있다 요즘 취미? Github에 올라와있는 페르시아의 왕자 소스코드 KensasFest 2012에서 존 로메로가 키노트 중
  7. 7. 그런데 한국게임들은 어디가서 찾을 수 있지?
  8. 8. 한국에 게임 개발 역사와 자료가 잘 남아있지 않다 패키지 게임 시절에는 자료를 남겨야 한다는 생각을 못했고 소스콘트롤도 안쓰던 시절 한국 게임 산업은 온라인으로 넘어오게 되었다 사라지는 한국게임들
  9. 9. 서버가 있어야 하는 게임은 서비스를 중단하면 더 이상 플레이해볼 수가 없다. 유튜브 세대 이전의 게임은 영상도 찾을 수 없음 대단히 안타까운 일 사라지는 한국게임들
  10. 10. 그렇게 게임이 사라져간다 생명이 짧음 어느 정도 수익을 내도 서비스를 지속하기가 쉽지 않다 스토어에서 내리면 못함 모바일 게임도 같음
  11. 11. 아직까지 서비스를 하고 있고 옛날 자료도 많이 남아있다 게임을 만든 스탭도 대부분 같은 스튜디오에 근무 마비노기는 매우 운좋은 케이스
  12. 12. “더 유실되고 기억이 사라지기 전에 옛날 이야기를 남겨야지!
  13. 13. 다음 세대의 더 나은 게임이 나올 때 토양이 되고 도움이 되길 다른 많은 게임들도 이렇게 공개된 기록으로 나왔으면…
  14. 14. 주의 현재의 마비노기와는 많이 다른 이야기 데브캣에서 개발과 라이브 하던 시절 이후엔 내용을 잘 모름!!
  15. 15. 발표내용 • 마비노기 그 이전 • 마비노기 기획서를 제안하다 • 마비노기 만든 이야기 • 탄생과 그 후 • 그 다음 들려줄 이야기
  16. 16. 아마추어 게임 개발로 시작해서 대학 때 패키지 게임을 제작 출시해봄 과정은 재미있었지만 돈은 잘 벌지 못함 직업으로는 불안 3년 개발해서 3천장 가량 판매하고 400만원 정도 남음 마비노기 그 이전 이야기부터
  17. 17. 통신과 인터넷에 눈을 뜸 패키지 게임 시절 하이텔 PC통신 동호회 활동 대학에서 남들보다 빨리 인터넷을 접했다 전산실에서 둠2를 네트워크로 플레이해보고 네트워크 게임의 매력을 알게 됨 비슷하게 시작한 개발자들이 패키지 게임쪽에 있을 때 나는 빨리 온라인으로 넘어오게 되었다
  18. 18. 게임 같은 BBS를 만들어보다 대학에서 telnet으로 접속하는 BBS를 만들고 운영해 봄 게시물을 읽고 써서 경험치를 얻고 레벨업을 한다 게시물을 읽다보면 아이템을 획득하기도 몬스터를 잡는다 = 글을 읽고 쓴다 채팅방에서 MUD를 할 수도 있는 등 본격적인 게임화 BBS를 만들고 운영하는 과정에서 온라인 게임을 만들고 싶다는 욕구가 강하게 들었다
  19. 19. BBS에서 얻은 아이디어 BBS에 늘 상주하는 사람들이 있음 모든 글을 읽고, 다른 일을 할 때도 접속자 상황을 띄워 놓음 새 글이 나오면 모두 읽음 열심히 BBS를 하지만 다른 사람에게 먼저 말을 걸지 않는 사람들 이들을 보고 이런 것을 떠올림
  20. 20. 새로 이사 온 아이의 장난감 • 놀이터에는 이미 자기들 끼리 친한 친구들 • 나도 친해지고 싶은데 너무 내성적… • 애들이 관심을 가질 만한 장난감을 들고 왔다갔다하면서 말 걸어주기를 기다림 아파트에 새로 이사를 왔다고 상상해보자 “신기한 장난감을 들고 놀이터를 서성이는 내성적인 아이”
  21. 21. 게임을 열심히 하는 목적 놀이터의 친구들이 말을 걸어줄 장난감을 구하는 것 물론 그 구하는 과정도 재미있고 두근거리면 더 좋고! A를 목표로하면서 B를 지속적으로 하게 한다 친구를 사귀는 것 = 사회적 욕구 = 가지지 못한 것 장난감을 구하는 것 = 게임의 전투 = 할 수 있는 것 A B
  22. 22. 사실 내가 그런 사람
  23. 23. “사람들과 친해지고 싶지만 내성적인 사람들을 위한 게임을 만들어야 겠다
  24. 24. 바람의 나라 하이텔, 천리안 등 PC통신에서 인기를 얻음 인터넷 태동기 ADSL(하나로 통신, 8Mbps) 보급중, 모뎀 56kbps 핸드폰 게임 시작 흑백 4줄 표시 파이날판타지9 당시 제일 잘나가던 게임, 500만장 판매 스타크래프트 프로게임협회창단(온게임넷 개국) 2000년 1월 1일 넥슨 입사
  25. 25. 게임 회사에는 들어갔으나 • 부루마불 온라인 = 돈 벌었을텐데! • 모험의 바다 = 지금으로 치면 대항해시대 온라인 같은 • 소사리언 온라인 = 팔콤에 라이센스 해서 온라인으로 만들자 • 로봇대전 온라인 = 반다이에 라이센스 해서... 여러개의 기획서를 냈으나 프로젝트 안시켜줌
  26. 26. 프로젝트 시작은 어떻게 하는거야? 프로젝트를 시작하는 과정이 블랙박스 이미 성공한 사람에게 (보상으로) “니 프로젝트 한번 해봐“ 신입이 기회를 잡기가 쉽지 않음
  27. 27. 튀는 기획서를 제안하다 이름도 튀어 마비노기가 뭐야!? 통과! 데브캣 스튜디오의 시작! 텍스트파일 1페이지 정도로 게임 개발을 시작했던 시절 스튜디오 로고 후보 기획서 타이틀 폰트
  28. 28. “ 마비노기 프로젝트 기획서 실물
  29. 29. 시작은 했는데…
  30. 30. 기술적 불안요소 3D 넥슨 내에서 3D를 해본 팀이 없음 DB 모든 프로젝트에서 DOOMVAS라는 file기반 서버를 사용 DB는 써보지 않음 중요한 목표인데 경험이 없다
  31. 31. 왜 3DDB 를 갖춰야 하는가 3D = 세일즈포인트 MMORPG에서 캐릭터 커스터마이징은 정말 중요하다고 생각 당시 유행한 프리렌더 방식과 차별화 콘솔 게임쪽이 3D로 바뀌는 변화를 봐왔음
  32. 32. 왜 3DDB 를 갖춰야 하는가 DB = 경쟁력 BBS를 운영하면서 파일기반 서버의 한계를 체감 데이터 필드의 추가나 확장 힘들다 안정성이 파일시스템에 의존적 통계를 보기 어려움
  33. 33. 친구인 이현기가 집에서 쉬면서 만든 3D엔진을 헐값에 구입 개발과정에서 코드는 다시 작성했지만 3D에 대한 기초가 없었던 팀이 빠르게 진도를 나갈 수 있었음 빠르게 눈에 보이는 결과물을 만드는데 집중 눈에 보여야 믿고 맡기고 팀도 뭘 만드는지 아니까 3D 그래픽스에 도전 서로 다르게 보이는 캐릭터가 최대한 많이 나오게 하는 것이 가장 기본적인 목표였다 쿼터뷰인 초기 프로토타입
  34. 34. 3D MMORPG 게임을 만든다고 외국 잡지에 소개됨
  35. 35. 카툰렌더링을 세일즈 포인트로 정함 세가의 젯 셋 라디오를 보면서 연구 카툰렌더링 젯셋라디오의 강렬한 스타일에 감명 받음 마비노기의 방식은 거리나 시점에 관계없이 일정한 두께의 외곽선을 그리는 독특한 결과물
  36. 36. Shader가 없음 TnL = Transform & Lignting 정해진 몇개의 연산식의 조합만 가능 * 0 라이팅으로 -1 pixel에 1회, +1 pixel에 1회 * 1 라이팅으로 1회 렌더링 총 3회 렌더링 버텍스 트렌스폼, 라이팅, 전송은 1회, 렌더링만 3회 = 빠름 DirectX 7에서 카툰렌더링
  37. 37. 풍부한 생활감의 큰 이유 중 하나. 잘 하고 싶었음 라이트는 1개만 쓸 수 있다 per vertex lighting 평소에는 주광인 태양에 영향을 받음 지역광원이 있으면 가장 가까운 1개에 영향을 받는다 지역광원이 지면에 텍스쳐를 프로젝션해서 per pixel lighting인 것처럼 속임 = 캠프파이어 라이팅 밤낮, 캠프파이어, 가로등 저녁놀 무렵에는 오렌지 빛이 된다 캠프파이어는 주변 캐릭터에 강한 음영을 남겨 분위기를 고조시킴 가로등 조명은 vertex에 베이킹. AO 처리도 했다
  38. 38. 화면이 부드러운 공간감을 표현하기를 원했음 특히 아웃라인은 늘 블랙이므로 평면적이 되지 않아야 한다. 2D TV 애니메이션에서 사용하는 전체 화면에 주광 방향으로 그라데이션을 깔아주는 기법을 사용 대기감과 공간감을 강조해주었다 색조 컨트롤 시간과 날씨에 따라 각 요소들의 색 변화를 아티스트가 작성한 16*16이미지를 읽어서 참고하도록 함
  39. 39. 텍스쳐는 단순하게 하고 배경 라이팅을 버텍스에 구워줌 PS1 Metal Gear Solid를 참고 캐릭터에도 수작업으로 페인팅 피부의 안쪽은 약간 분홍으로 한다거나 전체적으로 위에서 아래로 조명이 있다고 가정하고 Shadow 방향에 마젠타를 추가 캐릭터에 하는 작업은 비용이 비싸 라이브에 추가된 캐릭터와 의상에는 삭제함 vertex shadow & painting
  40. 40. 자체개발 3D 테크닉의 이면 낮은 버전의 DirectX API에서 개발되어 하드웨어 진보를 못따라감 저수준 툴에 의존하는 어셋 요즘 누가 버텍스컬러를 직접 칠하나 버텍스컬러에 스키닝 정보를 사람이 직접 기입해야함 좋은 하드웨어에서는 성능이 안나오고 나쁜 하드웨어에서는 유저들이 옵션을 꺼서 더 나쁘게 보임
  41. 41. 여기서 말하는 DB는 오라클, MSSQL같은 분리된 솔루션을 의미 넥슨은 당시 자체 파일기반 DB를 사용함 BBS나 이전 프로젝트들이 파일 기반 동기 API를 사용했고 이 부분에서 더 나가고 싶었음 DB DB가 없는 게임이라는게 말이 돼? 현대인
  42. 42. DB 오라클은 너무 비쌌고 MSSQL(도 비쌌지만)을 쓰기로 넥슨 내 최초의 windows server를 쓰는 게임 IOCP도 써보고 싶었다 (windows NT 4부터 쓰는 비동기 API) 결과적으로 이미 잘 돌고 있는 넥슨 내 다른 프로젝트의 코드를 하나도 못쓰게 됨
  43. 43. DB 배우면서 해야해서 속도도 안나고 시행착오를 많이 겪음 참고할 코드도 없음 결정적으로 file 기반 서버에 비해 너무 느렸음 베타테스트 기간 중 유저데이터를 기록하는데 5분이 걸리도 함 (write 중에 서버가 다운되면?) 라이브 서비스를 하면서 DB를 사용한 것이 좋은 선택이었다고 느낌 각종 통계 분석 메일을 아름다운 포멧으로 발송하니 사장님이 기뻐하심
  44. 44. 울티마온라인을 해본 경험이 많이 반영 나름의 법칙이 있는 실제 존재하는 것 같은 세계를 만들어야겠다 게임플레이 울티마 온라인 불친절함 인간 내면의 악함까지 충실히 구현
  45. 45. 다정함=누구나 원하지 않습니까? 다정함이라는 것은 경험해보기 어려운 체험 돌이켜보니 기억이 별로 없음 다정함은 남성답지 않은 것으로 배제하는 분위기도 한몫 게임에 다정함이 녹아있게 만들고 싶다 동물, 아이 = 악한도 다정하게 만드는 대상 친절한 조력자 = 빵을 챙겨주는 나오, 생일도 기억해 캠프파이어와 캠프쉐어링 = 작은 것을 나누는 분위기를 초반에 깔자
  46. 46. 원래는 플레이어와 늘 동행하는 요정 같은 것으로 계획 연애와 동경, 안전함 같은 감정이 느껴지도록 실체화를 하였다 나오 은하철도999 메텔에서 많이 따옴
  47. 47. 가위바위보 전투 턴 방식 전투를 벗어나려고 만든 것인데 유저들은 턴제 전투로 불렀다 동시대 다른 게임의 전투 방식 = MUD에서 기반한 일정 시간마다 자동으로 턴을 주고 받는 방식 = 내가 보는 턴 방식 게임 유저는 블로우되어 공격기회가 바뀌는 것까지를 턴으로 보고 마비노기를 턴 게임으로 인식함
  48. 48. 상성과 심리전을 기반으로 디자인 격투 게임의 빠른 공격, 강공격, 잡기 혹은 공격, 하단공격, 점프공격 등 3상성 시스템에서 착안 카운터>강공격>가드>약공격 카운터는 이동불가, 가드는 달리기 불가 평소 일부러 걷거나 이동하지 않는 식으로 심리전을 할 수 있도록 디자인 PVP를 대전 게임처럼 재미있게 하려고 디자인했으나 PVP는 인기 없었다 가위바위보 전투
  49. 49. 가위바위보 전투 게임을 차별화하는 인상적인 메카닉 한방 한방이 중요하고 묵직한 타격감이 어필 수백시간 플레이하는 온라인 게임에서는 피로하다 다대다 전투로 확장하는데 어려움 다운과 경직이 중요하여 레벨에 따른 밸런싱이 어려움 게임의 스케일을 한정시켜버리는 효과
  50. 50. 스토리 게임 세계가 낙원이고 낙원이라고 생각했던 세계가 현실이다 ‘캐릭터는 플레이어의 분신이므로 불사신이다’ 라는 큰 줄기는 처음부터 설정 고집해서 무리하게 넣은 것들 • 스토리상의 캐릭터로 직접 플레이한다 • 컷씬 연출을 넣는다 • 대략적 줄기만 정하고 NPC설정 등 세부 디테일은 스토리 작가인 이원씨가 작성
  51. 51. 스토리 MMORPG에 기승전결의 스토리가 있다는 것 자체가 도전 수많은 플레이어들이 있는데 각각이 주인공이 되는 연출을 고안해내는 것이 어렵다 마비노기는 이 부분을 잘 풀어냈다 스토리와 그와 관련된 플레이 분량을 만드는 것이 비용이 많이 들어서 라이브로 들어가면서 스토리 업데이트를 중단 스토리는 세계에 유저를 묶어주는 역할 당시엔 소중함을 잘 몰랐음 효율화를 꾀하면서 다른 방식으로 이어갔었어야… 후회
  52. 52. 작곡과 연주 마비노기의 악보는 MML(Music Mock-up Language) 당시에는 MML이라는 말을 몰랐다(없었거나) 8Bit MSX 컴퓨터에 들어있는 BASIC명령어 PLAY 문법을 따라함 옛날 컴퓨터 잡지에 나온 악보들을 그대로 쓸 수 있으니까 유저들이 초기부터 높은 퀄리티의 악보를 연주할 수 있을 것으로 생각했다
  53. 53. MIDI 파일을 생성 MIDI Play API를 사용해 연주 웹브라우저도 .mid를 연주할 수 있기 때문에 웹에서도 들을 수 있게 하려고 이렇게 함 MIDI의 채널 수 부족으로 합주시 음이 안들린다거나 하는 문제는 당시에는 예상을 못함 합주는 100% 유저가 만들어낸 콘텐츠 연주는 MIDI
  54. 54. 디렉터의 취향으로 고집스럽게 추구했다 • 플레이어인 내가 보는 것을 아바타가 보게 할 것 • 아바타가 쳐다보는 것을 플레이어가 자연스럽게 주목하게 할 것 • 플레이어가 의도하지 않은 불필요한 모션을 하지 말 것 ex) 두리번 거리는 과장된 아이들 포즈 너무 아크로바틱한 동작은 안돼 아바타와의 일체감 말하는 곳을 주목한다
  55. 55. 절제할 곳은 절제하고 과장할 곳은 과장할 것 전통적인 애니메이션을 많이 참고 애니메이션
  56. 56. 게임의 모든 부분에서 비율을 의식하고 만들었다 중요하게 생각한 비율 • 일상과 비일상의 비율 • 화면에서 녹색의 비율 • 남자 캐릭터와 여자 캐릭터의 비율 • 전투와 생활 게임의 비율 게임의 색을 만드는 역할을 함 인상이 오래 기억되는 게임이 되었다
  57. 57. 로나와 판 실제 게임 캐릭터를 이용한 최초의 TV 연재 방송 업무시간에 짬을 내서 대본을 직접 작성 로나와 판의 캐릭터 디자인도 직접 했다 대본을 날림으로 써도 연출자인 이진훈(현 마비노기 모바일 디렉터)이 찰떡 같이 잘 알아 듣고 만들었다 일본에서 특히 호평 로나의 플레이어는 “내성적인 나도 마비노기에서 친구를 사귀게 되어서 좋다” 라고 한다 마비노기의 개발 목표이자 전하고 싶은 메시지
  58. 58. 로나와 판
  59. 59. 그 외…
  60. 60. 사내 전체에 게임의 개발 상황을 지속적으로 공유 • 유머러스한 포맷 • 지금은 상상도 못할 일이지만 넥슨 전체 메일로 누구의 허락도 받지 않고 쐈다 (자주) • 계획대로 잘가고 있다 믿을만하다 라는 신뢰를 형성하려고 노력 우리가 만드는 게임은 이런 것이다를 지속적으로 홍보 그 결과 아무런 터치 안받고 자유롭게 개발
  61. 61. 유저와 친구처럼 지내도록 노력 당시엔 서로 친구라고 느꼈다고 믿음 개발진과 GM이 자기 캐릭터를 통해 소통 어려움도 솔직하게 이야기 요즘은 어렵지 않을지… 내부 홍보에서 에린워커로 이름은 TokyoWalker에서 따왔다
  62. 62. 클로즈베타 첫날 전투가 안됨 나무 때리기만… • 12시에 서버를 닫을때도 많은 유저들이 있었다 • 되는 것 하나도 없는 게임이지만 응원해주는 유저들에게 큰 힘을 얻음 누군가는 이 게임을 사랑한다는 생각이 팀에게 동력과 책임감을 불어넣었다 유저를 만나다
  63. 63. 런칭 후 끝날 줄 알았던 야근과 밤샘이 지속 서버가 다운되면 새벽에도 출근 팀 구성원들이 한 명씩 번아웃 번아웃이라는 용어를 이 때 처음 알았음 번아웃
  64. 64. G3를 마감할 무렵 즈음? 오프라인 간담회 후 (직설적인 이야기들에 상처도 좀 받고) 유저가 원하는 것들을 내가 채워주기 어려울 것 같다는 생 각이 들어 다른 디렉터에게 넘기기로 결심 세계를 만드는 것과 세계를 유지하는 것은 다르다고 느낌 • 개발과 라이브를 분리해야겠다는 생각 • 라이브 전문가의 필요성을 강하게 느낌 • 마지막으로 디렉터가 번아웃됨 유저를 만나다2 사죄 인터뷰 장면 아닙니다
  65. 65. 마비노기는 넥슨 라이브 본부로 이관됨 마비노기 운영에 대해서 책임도 권한도 완전히 없어졌다 새 프로젝트를 시작하고 디렉터에서 프로듀서로 커리어를 바꿈 그 뒤
  66. 66. 넥슨에 유일무이한 완전한 포멧의 개발완수보고서 초기 기획부터 개발과정 성과를 담고 있다. 프로젝트를 완전히 마무리 했다는 마침표의 역할 회사가 안시켜도 하나씩 만들어보시는 것을 권장 마비노기 개발 완수 보고서
  67. 67. 마비노기의 미래는? 마비노기 모바일의 개발은 마비노기를 미래로 전해주는 작업 • 옛날 게임의 충실한 복각이 목적이 아님 • 과거의 마비노기가 주었던 느낌, 보여주고자 했던 것들을 현 시점에 맞게 다시 만든다
  68. 68. 마비노기모바일 과거의 마비노기가 현재까지 주욱 이어지듯 마비노기 모바일이 미래로 연결되기를 바라는 게임 연말을 목표로 열심히 만들고 있다
  69. 69. 왜 과거 이야기를 해야하는가? 미래를 위해서 과거 이야기를 해야 한다고 생각
  70. 70. 한국 게임들은 늘 똑같다 발전이 없다 유저들의 지탄 - 우리 개발자들의 책임이지만 과거가 너무 빨리 유실되고 있기 때문일 수도 있다 여러분들의 기억, 경험 속에 있는 것들 그것들을 기록하고 나누는 것이 더 나은 게임을 만드는 방법 중 하나가 아닐까 한다
  71. 71. 이 게임들 어떻게 만들었는지? 어디가 재미있는지? 재미 없는지? 누가 만들었는지? 어떻게 성공했는지? 어떻게 실패했는지?
  72. 72. 과거에서 미래로 선을 이어가자 과거의 게임들이 각각의 점으로 존재 한국의 게임들은 아직 살아있는 몇 개를 제외하고는 모두 점으로만 남아있다. 어떤 것들은 사라져서 보이지 않는다 각각의 점을 이어서 미래의 게임으로 이어갔으면…
  73. 73. 버그 스샷들
  74. 74. 버그 스샷들
  75. 75. 버그 스샷들
  76. 76. 버그 스샷들

×