• Save
고대특강   게임 프로그래머의 소양
Upcoming SlideShare
Loading in...5
×
 

고대특강 게임 프로그래머의 소양

on

  • 42,489 views

 

Statistics

Views

Total Views
42,489
Views on SlideShare
28,971
Embed Views
13,518

Actions

Likes
58
Downloads
0
Comments
2

58 Embeds 13,518

http://devcatpublications.wordpress.com 6094
http://gyunny.com 1763
http://choso.tistory.com 1454
http://beforu.egloos.com 1424
http://www.slideshare.net 611
http://www.onspatial.com 578
http://editoy.com 383
http://ifyouprogrammer.tistory.com 257
http://cafe414.daum.net 102
http://gyunny.tistory.com 98
http://adolys.tistory.com 73
url_unknown 66
http://whohastheapp.tistory.com 63
http://win2jah.tistory.com 61
http://blog.naver.com 47
http://sneer.tistory.com 40
http://www.editoy.com 36
http://translate.googleusercontent.com 34
http://www.hanrss.com 33
https://twitter.com 30
http://narusegawa.tistory.com 28
http://www.ipocs.com 27
http://mgun.tistory.com 27
http://ddayin.tistory.com 26
http://ipocs.com 17
http://jmproot.tistory.com 16
http://endlessthirst.tistory.com 15
https://twimg0-a.akamaihd.net 14
http://info.dragonflygame.com 14
http://isl.kangnam.ac.kr 11
http://cowalker.net 7
https://si0.twimg.com 7
http://www.gyunny.com 7
http://kkabdol.blogspot.kr 6
http://kkabdol.blogspot.com 6
http://www.wearethebest.co.kr 6
http://kwrep.phps.kr 4
http://hellonewworld.tistory.com 4
http://webcache.googleusercontent.com 3
http://devcatpublications.wordpress.com HTTP 3
http://himichani.tistory.com 3
http://static.slidesharecdn.com 3
http://cafe412.daum.net 2
http://kin.dragonflygame.co.kr 1
https://zariski.wordpress.com 1
http://192.168.0.114 1
http://www.insoya.com 1
http://facebook.slideshare.com 1
http://asheain.tistory.com 1
http://feeds.feedburner.com 1
More...

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • 정말 좋은데, 대학생 고작 4년에 정말 해야 할게 많다.
    '졸업하기 전에 해야 할 100가지 일'이라는 책을 보는 듯한.

    이것 저것 하고 싶은거 다 하다보면 아무것도 안된다는 말이 있긴 하지만, 이것만 하나만 하는 것도 결국엔 아무것도 안되는게 문제.....ㅠㅠ
    Are you sure you want to
    Your message goes here
    Processing…
  • 좋은 강의 감사합니다.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

고대특강   게임 프로그래머의 소양 고대특강 게임 프로그래머의 소양 Presentation Transcript

  • 고려대게임트랙특강 | 김주복 게임프로그래머의소양 Ⓒ 2008-2009 NEXON Corporation & devCAT Studio. All Rights Reserved M2 team, Game Development Team for Mabinogi in devCAT (The 3rd Development Division in NEXON Corp.). M2 team Director is Kim, Dong-Gun | Project W is produced by Kim, Dong-Gun devCAT Engine team, Engine Development Team for Project W and more. Engine Team Technical Director is Jeon, Hyeong-Kyu
  • 게임프로그래머의소양? 게임 프로그래머로써 스스로 만족하고 좋은 평가를 받으며 일할 수 있는 요건과 준비 방법에 대해서 학부 졸업 기준으로 설명
  • 이미 진로를 게임 쪽으로 생각하고 계신 분들일테니 솔직한 내용 위주로… 그렇지 않은 분들 대상으로는 듣기 좋은 얘기를 많이 하는 대신에 아무래도 실속이 덜하니까…
  • 굳이 전산학이나 게임 프로그래밍에 한정되지 않는 포괄적인 이야기 당신 뭐하는 사람이길래…
  • 김주복 넥슨9년차 | 기술면접5년 2001 무선사업팀 도트디자이너 2001 마비노기팀 리드 프로그래머 2003 마비노기 프로그래밍팀 팀장 2005 그룹웨어 개발팀 팀장 2006 W팀 테크니컬 디렉터 2008 3 실 실 장 2009 마비노기 2 개발 디렉터
  • 5년간 기술 면접을 봐 온 경험을 통해서 말하자면, 학부 졸업생은… 많이 아쉬운 게 사실 전산학 기본, 문제 해결 능력, 코딩 숙련도 등의 전문 지식도 회사에서 프로페셔널로 일하는 자세 면에서도 현업 기준 미달인 경우가 대부분
  • 학부 졸업하면서 모든 걸 갖추고 오는 걸 기대하는 건 아니지만… 중요한 것을 모른다는 인상 학교에서 배우는 개념과 과목은 정말로 중요하다는 사실 취업 준비도 면접에 집중되어 있지 취업 후의 조직 생활에 대해서는 준비하지 않는다 세상에 널려있는 레퍼런스를 못 찾아서 뭘 보고 공부해야 할 지 모른다 그런 의미에서 고려대 게임 트랙은 현업 입장에서 고무적이고 반가움
  • 정작 회사에서 중요하다고 생각하는 건 하나도 모르는데… 게임 프로그래머가 된 후에 어떻게 살아갈 것인가?
  • 눈 앞에 있는 허들을 넘는 것도 중요하지만, 장기적인 비전을 가져라 게임 프로그래머가 되어서 장기적으로 어떤 목표를 갖고 어떤 성과를 내고 싶은가? 이 강연은 이런 것까지 필요한 줄 몰랐다 싶은 것에 발목 잡히지 않고 여러분이 원하는 목표에 집중할 수 있도록 도와주는 힌트
  • 고려대게임트랙특강 회사에서 일을 하는 자세의 문제 1 | 마음가짐 프로그래머가 아니라 게임 개발자라면 가져야 할 역량 2 | 공통 역량 게임 프로그래머를 게임 프로그래머답게 만드는 역량 3 | 전문 역량 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 고려대게임트랙특강 회사에서 일을 하는 자세의 문제 1 | 마음가짐 프로그래머가 아니라 게임 개발자라면 가져야 할 역량 2 | 공통 역량 게임 프로그래머를 게임 프로그래머답게 만드는 역량 3 | 전문 역량 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • ‘어른이 되자’라니 무슨 소리인가? 이미 어른인데? 법적으로도 생물학적으로도 사실이긴 한데…
  • <어른>의 사전적인 정의는 다 자라서 자신의 일에 책임을 질 수 있는 사람 세금도 내고 죄 지으면 감옥도 가고… 자신의 선택에 책임을 지는 것이 어른
  • 부모님도 국적도 마음대로 고를 수 없지만 직업은 인생에서 몇 안 되는 선택할 수 있는 것 중 하나
  • 어른이라면 자신의 일에 책임을 져야 하는데… 자신의 직업과 캐리어를 책임질 준비가 되어 있나? 직업 선택과 직장 생활에서의 성공과 실패, 양쪽 모두 여러분 자신의 책임
  • 직업을 선택하고 직장을 고르는 데 있어서 성공의 요건? 직업 선택과 직장 생활에서 실패하고 싶은 사람은 없을테니까…
  • 내가 하고 싶은 것 내가 잘 하는 것 다른 사람들이 원하는 것 이 세 가지를 일치시키는 직업과 직장을 선택하는 것이 성공 가능성을 높여준다
  • 내가 하고 싶은 것 ‘폼나고 창의적이고 재미있는 무언가’보다 끊임없이 구체화 내가 잘 하는 것 다른 사람들이 원하는 것
  • 내가 하고 싶은 것 ‘폼나고 창의적이고 재미있는 무언가’보다 끊임없이 구체화 내가 잘 하는 것 사람은 누구나 자신의 역량을 과대평가하기 쉽다, 조금 냉정해지자 다른 사람들이 원하는 것
  • 내가 하고 싶은 것 ‘폼나고 창의적이고 재미있는 무언가’보다 끊임없이 구체화 내가 잘 하는 것 사람은 누구나 자신의 역량을 과대평가하기 쉽다, 조금 냉정해지자 다른 사람들이 원하는 것 보통 관심을 갖기 쉽지 않고 내가 어떻게 바꿀 수가 없다
  • 어려운 선택이지만 직업과 직장 선택은 시작에 불과하다 입사 이후의 캐리어 관리 역시 자신의 책임 나중에 가서 이런 걸 공부해뒀으면 좋았겠다든가 적성에 안 맞거나 프로젝트가 별로라든가 얘기해도 결국은 자신의 책임 올바르게 선택하기 위해서는 잘 아는 것도 필요하다
  • 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 여기서 말하는 프로페셔널의 의미는 전문 지식을 활용해서 대가를 받고 일하는 사람 일정 수준 이상의 전문성이 결여되어 있다면 프로페셔널이라고 부르지 않는다
  • 그런데 사람들이 어떤 재화나 서비스에 대가를 지불하려면… 객관적 가격 < 주관적 가치 즉 프로페셔널은 전문 지식을 활용해서 클라이언트가 지불한 대가보다 더 싼 비용을 사용해서 더 가치가 있는 결과물을 만들어내는 사람을 의미한다
  • 클라이언트가 지불한 가격보다 자신의 작업물의 가치를 높이는 방법? 여기서 클라이언트는 게임을 플레이하는 플레이어일 수도 있고, 작업을 지시하는 디렉터일 수도 있고, 내 작업물을 바탕으로 작업하는 팀 동료일 수도 있다
  • 클라이언트의 의도를 읽어라 디테일에 집중하라 갖고 있는 스킬을 발전시켜라
  • 클라이언트의 의도를 읽어라 말로 드러난 요구사항의 이면을 읽어내는 것은 감동을 더하는 좋은 방법 디테일에 집중하라 갖고 있는 스킬을 발전시켜라
  • 클라이언트의 의도를 읽어라 말로 드러난 요구사항의 이면을 읽어내는 것은 감동을 더하는 좋은 방법 디테일에 집중하라 이런 부분은 신경 안 쓰겠지, 한 부분이 모여 결과물의 격을 떨어뜨린다 갖고 있는 스킬을 발전시켜라
  • 클라이언트의 의도를 읽어라 말로 드러난 요구사항의 이면을 읽어내는 것은 감동을 더하는 좋은 방법 디테일에 집중하라 이런 부분은 신경 안 쓰겠지, 한 부분이 모여 결과물의 격을 떨어뜨린다 갖고 있는 스킬을 발전시켜라 전문성이 떨어지는 프로의 인건비는 전문성이 높은 쪽보다 비싼 셈이다
  • 전문직이라면 프리랜서라도 프로페셔널 자긍심을 가진 프로가 되자 직업에 대한 자부심과 자신감을 갖고 일하는 것은 매우 중요하고, 그 자부심과 자신감을 계속 가질 수 있도록 노력해야 한다
  • 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 회사가 신입 사원을 채용하는 이유? 다양성과 활력을 보충 모든 조직은 지속적으로 신규 구성원의 유입을 필요로 한다 그렇지 않은 조직은 경직되고 관습화되어 가치가 있는 일을 이뤄낼 수가 없다 조직에서 빠져나가는 사람이 없다고 해도 마찬가지다
  • 특히 게임 업계는 컨텐츠를 만들어야 하는 업무 특성상 창의적인 분위기가 중요 게임 회사 입장에서도 사원 하나 하나의 재능과 개성이 중요하다는 의미
  • 그렇다면 내 개성과 재능을 맘껏 펼쳐서 일할 수 있겠네요? 창의적 환경 != 무제한의 자유 이 부분을 오해하는 사원의 경우, 창의적인 분위기가 사원들에게 아무런 규칙도 적용하지 않아야 한다고 생각하고 조직이란 것 자체나, 조직 고유의 규칙이나 문화에 반감을 갖는 경우도 많다
  • 여러분들이 개성과 재능과 하고 싶은 일을 갖고 있는 것처럼 회사도 지금까지의 이뤄온 성과와 문화, 사업 계획을 갖고 있다
  • 조직과 개인간의 관계에 있어서도 상호 이해가 중요 여러분의 개성과 재능을 인정받으려면 조직의 문화와 규칙을 이해하고 받아들이려는 노력도 필요하다 조직이란 실체가 없는 무엇인가가 아니라 결국 구성원 하나하나의 모임이다
  • 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 현대 컨텐츠 산업은 규모가 크고 전문화되어 있다 상업적으로 가치 있는 결과를 혼자 만들어내기는 어렵다 아마도 지금 우리 나라에서 가능한 건 신문 만화 정도? 팀 작업이 필요한 근본적인 이유
  • 프리랜서의 그룹이 만들어내는 것도 가능할텐데 팀으로 모여 일하는 의미? 모든 구성원이 재택 근무한다 치면 회의도 힘들고 커뮤니케이션 코스트의 문제가 크기도 하지만…
  • 물리적으로 부대끼고 가까운 거리에서 일하는 ‘의미’ 팀 = 운명공동체 아니, 암만 그래도 겨우 직장 동료인데 운명공동체는 오버 아닌가??
  • 운명공동체라는 표현은 전혀 과장이 아니다 한 프로젝트에 걸리는 시간은 짧게는 2년에서 5년 정도 캐주얼 게임의 경우 2~3년, MMORPG의 경우는 3~5년 정도 걸리고 상용화 이후에도 라이브 팀과 인수인계를 위해서 1년 가량은 같이 일하게 된다 라이브 모드로 들어가면 10년 이상 서비스하는 게임도 비일비재
  • 게임 개발은 아직도 리스크가 높은 분야 실패의 리스크는 너무 크다 상업적으로 성공하는 게임의 수는 손에 꼽을 만큼 적은 반면, 프로젝트가 실패하면 팀이 해체되어 동료와 뿔뿔히 흩어지는 경우도 있고 이직을 하려고 해도 이력서에 마땅히 적을 내용이 없다
  • 여러분을 비롯하여 팀 동료들은 소중한 20대를 걸고 프로젝트란 항해에 임하는 셈 대학 졸업한 뒤에 게임 하나 두 개쯤 만들고 나면 성공하든 실패하든 30대 결혼해서 가정 꾸릴 걱정을 해야… 30대인 사람들이 맘 편하게 일하는 것도 아니고, 나이가 들 수록 실패의 리스크가 더 올라갈 뿐이다
  • 적어도 나는 프로젝트와 팀 동료를 소중히 여기며 최선을 다하는 사람과 같이 일하고 싶다 아마도 프로젝트에 수십 수백억 투자하는 투자자도 마찬가지일 것이다
  • 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 게임을 만들면 게임 개발자 아닌가? 그 이상 또 필요한 게 있나? 게임 개발자는 게임에 대해서 잘 이해하고 있는 편인가? 게임 개발자라고 해도 게임을 많이 하는 사람도 드물고 많이 해도 장르가 치우치지 않는 경우도 드물고 이론적으로 공부하는 경우는 더더욱 드물다
  • 다른 컨텐츠 업계는 어떨까? 다른 업계를 생각해보자 영화 쪽 일을 하는 사람이라면 영화를 많이 보기도 하고 영화 이론에 대해서도 공부할 것이다 대중음악도 마찬가지고…
  • 게임 플레이를 직업적 역량에 투자하는 것으로 만들어라 전문적으로 게임을 플레이하라 게임 개발자가 게임을 이해하지 못하고 좋은 게임을 만들 수 있나? 많이 플레이하고 분석해보지 않고서 게임이라는 미디어를 이해할 수가 있나?
  • 게임을 이해하고 설명할 수 있는 제작자가 되자 게임을 공부하자 여러분이 속해있는 프로젝트의 재미를 냉정하게 평가하고 더 나은 게임으로 만들자면 어떻게 해야겠는가? 다른 미디어에 비해서는 자료가 적은 편이지만 조금씩 늘어나고 있다
  • 여러가지 마음가짐에 대해서 설명했지만… 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자
  • 무엇보다 게임 제작에 애정을 갖자 진심으로 게임 제작이란 직업을 좋아하게 된다면 자연스럽게 관심을 갖고 연구하고 더 많이 이해하고 싶어지는 게 당연할 것
  • 고려대게임트랙특강 회사에서 일을 하는 자세의 문제 1 | 마음가짐 프로그래머가 아니라 게임 개발자라면 가져야 할 역량 2 | 공통 역량 게임 프로그래머를 게임 프로그래머답게 만드는 역량 3 | 전문 역량 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 고려대게임트랙특강 2 | 공통역량 커 뮤 니 케 이 션 스 킬 | 문 제 해 결 능 력 | 자 기 계 발 능 력 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 게임 제작은 팀 단위로 이루어지는 것이 보통이고 의사 소통은 게임 제작에 필수 업무 지시를 비롯해서 요구 사항 명세, 각종 회의, 다른 작업자와의 구두 논의 등, 개발 과정에서 의사 소통이 일어나는 횟수는 이루 헤아릴 수가 없다
  • 하지만 불행하게도 프로그래머들은 보통 의사 소통에 약하다 합리적으로 문제를 해결하려는 성향이 강하기 때문에 일반 대화도 문제를 해결하거나 지식을 공유하는 등 실용적 목적이 없으면 불편해한다 사용하는 어휘나 사고 방식, 관심 분야가 일반 대중과 너무나 다르다
  • 팀에서 대화하게 될 상대는 여러분과 같은 사고가 익숙하지 않다 의식적으로 상대를 배려하라 기술적 지식이 전혀 없는 팀 동료에게 툴 사용법을 설명해야 할 수도 있고 지금 그런 복잡한 이야기를 들을 정신이 없는 상황일 수도 있고 전혀 그런 기술적 이슈에 관심이 없을 수도 있고 기획의 참신함에는 관심 없고 구현이 어렵단 얘기만 해서 기분이 상했을 수도 있다
  • 글을 잘 쓰게 되면 말을 잘 하는 데도 도움이 된다 다독, 다작, 다상량 문자로 된 미디어를 많이 읽고 블로그 등의 공개된 미디어를 통해서 독자를 고려한 글 쓰기를 연습하라
  • 고려대게임트랙특강 2 | 공통역량 커 뮤 니 케 이 션 스 킬 | 문 제 해 결 능 력 | 자 기 계 발 능 력 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 문제 해결이란 문제를 정의하고 알려진 방법을 검토하고 실천적으로 해결하는 일 어떤 회사에서 어떤 업무를 하더라도 문제 해결 과정은 포함된다 연차가 낮을 때는 그냥 이미 문제가 해결된 업무 지시를 받을 수도 있겠지만…
  • 다른 모든 직군도 마찬가지긴 하지만 프로그래머에게 특히 중요 게임 디자이너가 재미없는 기획을 만들어도 대재앙이지만 게임 프로그래머의 문제 해결 능력이 떨어져서 디자인된 게임 플레이를 만들지 못하면 마찬가지로 대재앙
  • 문제 해결 능력은 꾸준한 훈련이 필요한 스킬 스포츠선수 : 기초 체력 = 프로그래머 : 문제 해결 능력 프로그래밍도 악기 연주나 스포츠와 마찬가지로 어릴 때부터 시작해서 오랫동안 연습할 수록 더 높은 수준의 스킬을 획득할 가능성이 높다
  • 전문 ‘지식’은 일 하면서도 습득하는 것이 가능 알고리즘 등 기초 과목을 강조하는 이유 자료구조나 알고리즘의 디테일을 외우는 게 아니라 그런 자료구조가 나온 이유나 알고리즘이 전개되는 과정에 대한 이해가 중요하다
  • 고려대게임트랙특강 2 | 공통역량 커 뮤 니 케 이 션 스 킬 | 문 제 해 결 능 력 | 자 기 계 발 능 력 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 사실 꼭 자기 계발을 하고 기술을 다듬을 필요는 없다 목표하는 보상의 문제 연차가 지나면 연봉이 오르길 기대할텐데 작년이랑 업무에 활용하는 스킬도 같고 생산하는 가치도 작년과 똑같다면?
  • 하지만 신입 사원의 경우는 의무적이라고 할 수도 있다 신입 사원은 얘기가 다르다 채용에는 신입 사원 연봉의 n배수에 달하는 비용이 추가로 발생한다 팀과 조직 입장에서도 신입 사원을 교육하기 위해서 숙련자의 시간을 사용해야 한다
  • 적어도 입사 1~2년차에는 꾸준히 공부하는 게 좋다 평생 쓸 기반을 만드는 시기 연차가 올라가고 나이가 들게 되면 공부하기 위해서 마음 먹는 게 쉽지 않다
  • 그리고 그 뒤에도 계속 공부하는 것이 즐겁게 일하는 데 도움이 된다 배우는 것 자체가 모티베이션 사람은 기본적으로 배우고 익히는 것을 재밌어 하도록 만들어져 있다 반복되는 업무 가운데서 스스로 자극을 만들면서 일할 수 있다
  • 학생 때는 공부하는 방법 자체를 익히는 게 중요하다 관심 분야 중 하나를 학부 수준 이상 깊이로 파보자 분야가 달라도 공부하는 방법은 대동소이하기 때문에 한 분야에서 일정 수준에 도달하면 다른 분야로 역량을 넓혀가는 것도 쉽다 학생 때는 돈이 안 되도 좋으니 좋아하고 즐길 수 있는 분야를 파 볼 수 있으니 유리
  • 고려대게임트랙특강 회사에서 일을 하는 자세의 문제 1 | 마음가짐 프로그래머가 아니라 게임 개발자라면 가져야 할 역량 2 | 공통 역량 게임 프로그래머를 게임 프로그래머답게 만드는 역량 3 | 전문 역량 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 게임 프로그래머의 전문적인 스킬을 정의하는 것은 학부 수준에서 어렵다 시스템 프로그래머 | 비주얼 프로그래머 | 네트웍 프로그래머 애니메이션 프로그래머 | AI 프로그래머 | 물리 프로그래머 사운드 프로그래머… 너무나 다양한 분야가 있고, 각 분야마다 높은 전문성을 요구한다 필요한 전문 지식이 실질적으로 거의 겹치지 않는 경우도 많다
  • 다른 방식으로 생각해보자 게임 프로그래머 vs 플래시로 원맨 개발이 가능한 게임 디자이너 이런 상황이라면 게임 프로그래머가 팀에 필요할까?
  • 아니, 플래시는 3D도 안 되고 네트웍도 안 되고… 엔진이나 플랫폼 수준에서 기술적 해결책을 지원한다면? 분명히 게임 업계의 개발 방법론은 그 쪽을 향하고 있다
  • 단지 코드를 작성해서 게임이 돌아가게 만드는 것을 넘어서는 대체할 수 없는 게임 프로그래머의 공통 전문 역량을 살펴보자
  • 고려대게임트랙특강 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 거지 같은 부분도 많고 복잡한 것도 사실인데 어찌되었든 게임 개발 주류 언어는 C++ 툴에서는 C++/CLI 등으로 닷넷 언어를 믹싱해서 사용하지만 미들웨어나 배포 문제, 콘솔 개발 환경 등을 고려하면 당분간 큰 변동은 없을 것
  • 애매하고 어렴풋이 아는 걸로 밥 벌어 먹는 것은 불안하다 하지만 요즘 같은 세상에 C++ 문법책 한 번 다 읽어본 학부생 찾아보기 드물다
  • C++ 언어에 대한 레퍼런스는 넘칠 정도로 충분하다 학생 때부터 기초를 다지자 특히 상속과 포인터, STL이나 템플릿 등의 문법적 측면과 C++ 언어를 관용적으로 사용하는 방법 양쪽 모두를 공부해두자
  • 고려대게임트랙특강 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • C++과 OOP 패러다임을 사용해서 작업하고 있는 이상 프로그램은 객체의 모델링 한 객체가 어떤 데이터를 포함하고, 다른 객체와 어떤 관계를 맺을 것이며 어떤 동작을 할 것인가 어느 순서로 수행할 것인가
  • 게임에는 정말로 많은 수의 객체가 등장한다 관계가 엉키면 그곳이 지옥 캐릭터 | 파라메터 | 대미지 | 대미지 속성 | 아이템 | 아이템 속성 | 아이템 개조식 | 인벤토리 | 인벤토리 UI | 퀘스트 | 퀘스트 목표 | 퀘스트 인디케이터 | 몬스터 | AI 프로세서 | AI 스크립트 | AI 스케줄러 | … 추상화 수준에 따라서 엄밀하게 구분하지 않으면 유지보수가 거의 불가능해진다
  • 그렇다면 소프트웨어 엔지니어링을 공부해두면 될까요? 경험이 뒷받침되지 않은 SE는 주화입마로 가는 왕도 정적 상속과 디자인 패턴이 특히 그렇다
  • 클래스 설계의 기본인 추상화와 분류의 기반이 되는 추상적 사고력을 길러라 형이상학, 논리학, 분석철학, 기호학, 구조주의 같은 철학/인문학 분과는 프로그래밍을 하기 위한 기초 체력을 제공해줄 뿐만 아니라 디버깅 스킬과 커뮤니케이션 스킬 향상에도 도움이 된다
  • 고려대게임트랙특강 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 다른 모든 비즈니스 서비스와 마찬가지로 게임은 복잡하다 매우 많은 객체와 관계가 엉키며, 사용되는 기술의 종류도 많고 특히 실시간 반응 제약 때문에 구조에 많은 제약이 가해진다
  • 이런 복잡한 시스템을… 10년 넘도록 수정해야 한다 아마도 그 시점에 처음 코드를 만든 사람은 그 팀에 남아 있지 않을 것이고 게임에 새롭게 추가된 기능 만큼 차차 코드에서 손댈 수 없는 부분이 늘어나고 작업 효율은 떨어진다
  • 일정 통제 불가능 상태를 피하고 새 게임 디자인을 적용할 수 있도록 복잡도를 관리하는 것은 프로그래머의 중요한 의무 이것만큼은 다른 어느 직군에서 일하는 사람도 할 수 없는 프로그래머만의 전문 소양
  • 대학을 졸업하고 취업하기 전에 프로젝트에서 LOC 10K를 경험하라 온라인 게임의 LOC (Line of Code)는 수백만에 달한다 1K, 10K, 100K, 1M마다 관리 이슈가 달라지기 때문에 미리미리 경험하고 자신만의 복잡성 제어 기법을 연구하고 발전시켜라
  • 고려대게임트랙특강 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 게임은 다른 소프트웨어에 비교했을 때 반응성 제약이 까다롭다 물론 당연히 전화 교환기에 사용되는 소프트웨어가 훨씬 더 어려운 제약을 갖지만 그런 소프트웨어를 제외한 일반 애플리케이션 중에서는 가장 까다롭다
  • 복합적인 기술적 지식을 요구하기 때문에 최적화 역시 프로그래머의 의무 애플리케이션을 빠르게 만드는 것은 물론 반응성을 유지하기 위한 가이드라인을 만들고 팀에 공유하는 것도 포함된다
  • 세세한 기법을 익히는 것보다 아키텍처와 시공간 복잡도의 이론을 철저하게 숙지하라 모든 회사의 면접에서 아키텍처와 알고리즘을 강조하는 이유 중 하나다 암기하는 것보다 원리와 구조를 이해하는 것이 훨씬 더 중요하다
  • 고려대게임트랙특강 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 모든 프로그래머의 공통 역량이자 직업적 전문성의 핵심 디버깅은 프로그래밍의 꽃 문제 해결 능력과 논리적 사고력, 시스템 구조에 대한 이해와 그 간의 경험이 복합적으로 적용된다
  • 기법 한두 가지를 익히거나 짧은 경력으로 커버할 수 없는 경험이 지배하는 영역 그렇다면 학부생이 준비할 여지가 없는 것 아닌가?
  • 하루라도 더 빨리 더 많이 프로그래밍하라 다독, 다작, 다상량 기초적인 디버깅 스킬을 학부때 익히고 온다면 회사의 상급자는 여러분을 완전히 다른 눈으로 볼 것이다
  • 고려대게임트랙특강 요약 및 급결론 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 당장의 학업이나 취업 준비도 중요하지만 회사원으로, 게임 개발자로, 게임 프로그래머로 어떻게 살아갈까 비전을 만들어라 장기적으로 어떻게 살아야 할 지를 다각적으로 고민해보고 자신만의 청사진을 구체적으로 만들어보는 것이 중요하다
  • 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2 | 공통역량 커 뮤 니 케 이 션 스 킬 | 문 제 해 결 능 력 | 자 기 계 발 능 력 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2 | 공통역량 커 뮤 니 케 이 션 스 킬 | 문 제 해 결 능 력 | 자 기 계 발 능 력 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2 | 공통역량 커 뮤 니 케 이 션 스 킬 | 문 제 해 결 능 력 | 자 기 계 발 능 력 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO
  • 고려대게임트랙특강 1 | 마음가짐 어른이 되자 | 프로페셔널이 되자 | 조직의 구성원이 되자 | 팀원이 되자 | 게임 개발자가 되자 2 | 공통역량 커 뮤 니 케 이 션 스 킬 | 문 제 해 결 능 력 | 자 기 계 발 능 력 3 | 전문역량 언어에 대한 이해 | 추상화 능력 | 복잡성 관리 능력 | 최적화 스킬 | 디버깅 스킬 QA/끝 2009 Korea University Game Track Crash Course on ‘Being a Good Game Programmer’; Jubok Kim, devCAT STUDIO