<div> <div> <div>게임 제작을 하면서 몇 년간 대학과 학원에서 강의도 했던 게임 업계 아재입니다.</div> <div><br></div> <div>제가 학생들 가르칠 때 말씀 드렸던 몇 가지 내용입니다.</div> <div><br></div> <div>수학:</div> <div>다 알 필요는 없어요. 정석 책 볼 필요 없습니다. 도움 된다는 분들 있지만 제 생각은 별 도움 안됩니다. 고등학교 때 안 좋은 기억이 떠오를 수 도 있고...</div> <div>암튼 클라이언트 게임프로그래머가 가장 많이 수학이 삼각 함수, 벡터, 행렬입니다. 정석보다 대학에서 가르치는 선형 대수학이나 대학 수학 책이 더 도움이 됩니다.</div> <div>책을 구입한다면 연습문제가 많은 책을 추천합니다. 그리고 혹시 선형 대수학에서 미적분 나오면 건너 뛰세요. 미적분 알면 좋지만 써 볼일 거의 없을 것입니다.(10만줄에 한번 나온다고 생각하시면 됩니다.)</div> <div>제가 본 책 중에서 제 생각과 가장 근접한 책은 "3D 게임 프로그래밍 & 컴퓨터 그래픽을 위한 수학 -류광, 정보문화사" 입니다.</div> <div>이 책을 지옥에서라도 구할 수 있다면 구하세요.</div> <div><br></div> <div>물리:</div> <div>실제 게임에서 다루는 물리는 고전 역학(뉴턴 역학)입니다. 제 생각은 고등학교 물리 교과서는 좀 떨어집니다. 이유는 3차원 벡터를 제대로 이용하지 않기 때문입니다.(이 부분은 수학도 마찬가지 입니다.)</div> <div>대학에서 배우는 일반 물리 서적 중에서 힘과 운동에 관련한 부분에서 문제가 많은 책을 고르세요.</div> <div>간혹 폭격기, 견인포 또는 잠수함 어뢰로 선박 격침 시키는 것을 계산하는 문제가 있는 책이 있습니다. 이런 문제들이 게임 프로그램에 도움이 됩니다. 그런 책을 구입하세요.</div> <div><br></div> <div>게임 엔진:</div> <div>혹시 엔진 만들고 싶다는 분들 있을 텐데요, 이론이라면 참 많이 들어 갑니다. 제 생각은 평범한 사람이 이론을 공부했다고 에디터에서 엔진을 바로 코딩할 수 있는 분들은 별로 없다고 봅니다.</div> <div><br></div> <div>엔진은 남들이 만든 것을 보는 것이 제일 많이 공부가 됩니다.</div> <div><br></div> <div>저는 쫌 오래 됬지만 irrlicht를 강력히 추천합니다. 꽤 오래 전에 ogre도 봤었는데 뭔가 지우고 바꿔보고 떼내어 보고, 쪼물락 거리기가 irrlicht 엔진이 게임 업계 초보 였을 때 참 좋았습니다. </div> <div>제가 몇 년전에 근무했던 어떤 외국계 회사는 이 엔진을 개량해서 쓰고 있더군요.</div> <div>엔진 개발한다면 자료 구조, 그래프, 추상화 등 컴퓨터 공학 과목에서 중요한 이론들 여기서 빛을 발합니다. 아 그렇다고 엔진 만드는데 자료구조 먼저 봐야지 할 필요는 없습니다. 공부는 필요에 의해서 하는 것이니까 그 때 그때 하세요.</div> <div><br></div> <div>프로그래밍 실력:</div> <div>뭐든지 많이 만들어 보세요. 한만큼 실력이 는다는 것은 다들 인정하실 것입니다. 저는 그 중에서 툴을 많이 만들어 보라고 합니다. 툴은 만들면, 특히 설계, 자료구조, 자인 패턴 등에 대해서 실력이 많이 늡니다.</div> <div>맥스나 포토샵 등의 플러그인도 꼭 제작해 보세요.</div> <div><br></div> <div>다른 언어들:</div> <div>현재 사용하고 있는 언어를 2년 이상 써서 익숙해져 있다면 다른 언어 써볼 기회가 있다면 하세요. 저는 php, java, c#, visual basic, php, lua 등 대충 쓸 줄압니다.</div> <div>어떻게 알게 되었는 가 생각해보면 php는 대학원생 여자 후배 좋아해서 봉사활동을 했었고, java 는 혹시 sun 자격증이 있으면 도움 될까 해서 땄었는데, 써 본적 없다가 안드로이드에서 외부 라이브러리 jni관련 작업 땜에 쓰고 있습니다.</div> <div>visual basic은 c# 나오기 전 excel exporting 할 때 c로 고생했는데 몇시간 만에 필요한 프로그램 나오더군요. 한 동안 잘 썼고..., lua는 스크립트를 프로그램에 내장시키기 위해서 사용했었습니다.</div> <div>c#은 유니티로 몇년간 밥 벌어 먹고 살았기 때문에... 이래다보니 늙다리인데도 암튼 현 직장에서 이것 저것 잡부처럼 그냥 다 합니다.</div> <div>암튼 다른 언어 써보면 그들 언어의 목적과 장점을 볼 수 있구요, 어떤 경우에는 언어들간 공통점이 많이 보이기도 하고, 주류로 사용하는 언어의 깊이를 높이기도 합니다. 그리고 또 다른 새로운 언어 배우는 데 부담감이 많이 사라집니다.</div> <div>그냥 쓰게 된다고나 할까... 그런 것이 보입니다.</div> <div><br></div> <div>책:</div> <div>책 많이 읽으세요. 저는 예전에 관련 기술을 구할 때가 마땅치 않을 때 단 한 줄이라도 도움이 된다면 구입했었습니다.</div> <div>요즘은 스택오버플로를 많이 의존 하지만 그래도 새로운 기술은 책을 먼저 구해서 읽어보는 편입니다.</div> <div>어떤 책은 중요한 책인데 절판 되어서 구할 수 없을 때도 있습니다. 이길을 계속 가겠다 싶으면 중요한 책들은 구입해 놓으세요.</div> <div><br></div> <div>이런 말씀 드려도 몇 년있으면 다 낡은 기술이 될 테인데 뭣하러 돈 아깝게 버리나? 할 수 있지만 오래되니 가장 추억이 남더군요.</div> <div>가끔씩 대학교 때 후배 친구 녀석 한 때 반 강제로 뺏은 강의프린트 제본한 터보씨 책 보면서 그 때의 기억을 떠올리곤 합니다.</div> <div><br></div> <div>블로그:</div> <div>저는 블로그는 꼭 사용하라고 합니다. 블로그가 처음에는 별 내용이 없어서 쓸쓸하지만 자신이 연습한 짬짬히 코드 올려 놓으면 몇 달만 지나도 꽤 도움이 많이 됩니다.</div> <div>일단 블로그 올리는 행위가 내 코드를 정리한다는 과정이 있기 때문에 기억이 잘 됩니다.</div> <div>저 같은 경우도 게임 프로그래밍 독학할 때 사설로 홈페이지 만들어서 정리해서 올려 놓곤 했었는데(아.. 이 때도 php 했네요) 강의할 때 많은 도움이 됬었고 기억력이 떨어진 지금도 저 스스로에게 많이 도움이 되었습니다.</div> <div><br></div> <div><br></div> <div>기타:</div> <div>마지막으로 모든 것을 다 이해해야 게임을 만들 있는 것은 아닙니다. 프로그램을 잘 모르는 고등학생도 게임 만드는 것을 본적이 있었고(그것도 c 언어로), 서울에 있는 상당히 좋은 대학교 나왔어도 시작 조차 하지 못하는 사람도 봤습니다.</div> <div>제 생각은 게임프로그래밍은 응용이 아주 강하기 때문에 알고 있는 지식을 조합해서 최대한 활용하려는 궁리를 하는 것이 더 중요하다고 생각합니다.</div> <div><br></div> <div>산업계가 원하는 것이 T형 인재라 하는데 그딴 거 필요 없고 게임 업계에서 "지식은 빈대떡 붙이듯 넓고 얇게."</div> <div>이론을 깊이있게 물으면 내가 그걸 이해하면 기술 이사나 교수하지 이거 하겠냐 라는 반문도 꼭 하시길...</div></div></div> <div><br></div>