꽃미남 프로그래머 김포프가 창립한 탑 프로그래머 양성 교육 기관 POCU 아카데미 오픈!
절찬리에 수강생 모집 중!
프로그래밍 언어 입문서가 아닌 프로그래밍 기초 개념 입문서
문과생, 비전공자를 위한 프로그래밍 입문책입니다.
jobGuid 꽃미남 프로그래머 "Pope Kim"님의 이론이나 수학에 치우치지 않고 실무에 곧바로 쓸 수 있는 실용적인 셰이더 프로그래밍 입문서 #겁나친절 jobGuid "1판의내용"에 "새로바뀐북미게임업계분위기"와 "비자관련정보", "1판을 기반으로 북미취업에 성공하신 분들의 생생한 경험담"을 담았습니다.
Posted by zinzza


제가 이런 글을 쓸 깜냥이 되는지는 조금 생각해봤습니다.  저는 게임 개발자도 아니고, 게임(3D)을 만들 능력도 안되는 쪼랩 유틸리티 개발자입니다. 여기 글을 쓰시는 분들과는 쨉도 안되는 사람이지요.


하지만 이 글을 쓰기로 결심한 이유는 제가 교사 출신이라는 한가지 작은 자부심을 갖고 있기 때문입니다.  머리속에 많은것이 있는것과 그것을 전달하는것과 다르거든요.  또 한가지 일에 전문가가 되는것과 그 일 전반에 걸쳐서 다른사람에게 두리뭉실 설명하는 능력도 좀 다르고요^^; 

아무튼 본론을 좀 시작해 보겠습니다.



자~ 우리("놀게영"에 드러와서 이 글을 읽는 사람들) 주변에 보면 이미 직업적으로 게임을 만들고 있는 사람도 있지만, 게임을 만들고 싶어하는 사람도 있고, 만들려고 공부하는 사람도 있습니다.
저는  위에서 한참 썰을 푼것처럼 게임을 만들고 싶어하거나 만들려고 공부하는 사람들을 대상으로 글을 쓰도록 하겠습니다.
우선 게임개발을 공부하는 사람들이 기본적으로 알고 있는 순서를 보면요. 보통...

1. C
2. C++
3. Win32
4. DirectX || OpenGL


이렇게들 공부합니다.

이 방법은 어쩔 수 없는 순서라고 생각하면 될거같습니다. 아~ 경우에 따라 "1. C" 가 빠질 수도 있겠네요(빼고 C++로 시작하시는게 좋을듯^^).

응? 우린 친군데-_-?


그런데 여기서 제가 생각하는 문제점은 저 위에 있는 순서대로 쭉~ 책보고 쭉~ 쭉쭉~ 진도를 빼는 사람들이 많다는겁니다.



좀 더 많이 해본걸로 예를 들어볼까요?
우리가 게임보다 정말 많이 공부한 영어! 자~ 저는 영어를 초딩때 카세트테이프(윤선생이니 정철이니)사서 공부한거 1년정도? 중학교 3년(학원3년), 고등학교 3년(역시 학원3년ㅜㅜ), 대학교 1년 + α... 정말 많이 공부했지만 다시 말해서 6~7년간 진도 쭊쭊~ 뺐지만
영어 공포증 + 실제로도 못함 입니다-_-;
비웃지 마세요~ 여러분도 마찬가지면서-o-+

그동안 저와 우리의 선조들을 비롯해 열심히 공부했지만 영어를 못하는 분들은 대부분 이렇게 생긴 문법책을 기본으로 공부했습니다.


(성문... 아우 이거 우리집에 아직도 있어 ㅜㅜ)

사전을 철근같이 씹어먹었습니다.

떡볶이를 철근같이... 가 아니고 사전이야?


아오 그니까 책을 왜 먹냐고... 양이냐-_-?

그런데 외국인 보면 얼어붙었고, 도망가기 바빴지요.

얼어붙고,

도망가고

 
이렇게 우리가 짤방에 지쳐있을 무렵... 이 문제에 대해 교육부는 엄청나게 고민하고 영어 몰입교육이니 뭐니 해서 해결책을 고민했습니다.
그리고 제가 학교에서 재직할때 해결의 실마리를 보았습니다. 제가 97년에 고등학교를 졸업하고 2003년부터 교직에 있었으니 그 사이에 있었던 일은 몰라겠네요^^;
아무튼 제가 본 실마리는 간단합니다.

영어선생님들이 학생들이랑 영어로 대화를 합니다^^;


아~ 물론 어버버버 하는 학생도 있고요, 제가 문법공부 좀 해봐서 아는데...가 이나고 누가봐도 헛소리를 하는 학생도 많습니다.  하지만 그냥 대화합니다.  원어민 선생님도 많이 오셨죠.

브로닌 보셨나요? 말도 안되는 말이지만 대충 알아먹습니다.

여자들 뽕 모~두 필요합니다. 현아! 필요없습니다. 뽕 엄마가 배속에서 달아줬습니다.


이런식의 대화가 학생과 선생님 사이에 오갑니다.

결국 어떠냐구요?
학생들은 영어로 말을 하고 외국인을 만나서 길을 알려주더군요.



아... 갑자기 영어공부 얘기만 했네요. 엄청 돌아왔습니다-_-;

다시 게임 얘기를 해볼까요?  위에서 얘기한것처럼 게임 개발진도를 잘 뺐는데도 불구하고 게임 개발이 어렵다~ 하는경우를 많이 봤습니다.  이에 대한 해결방법은 영어공부와 마찬가지의 방법으로 해결이 가능할것입니다.

바로 다른사람에게 미안하지 않을 게임을 만들어봐라!


먼저 언어를 배우면서 숫자야구라도 만들어봐야 합니다.  숫자야구는 소스가 널려있다구요?  책에도 나와요?  하지만 버그 없이 친구에게 줘도 미안하지(부끄럽지가 아닙니다)않을 수준인가요?

급조한 숫자야구 이미지 (출처 http://rabe.egloos.com/1284555)

숫자를 입력해야 하는데 아무것도 입력 안하고 엔터를 누르면 어떻게 되죠?
알파벳을 넣으면요?
숫자를 입력할때  책에 나온데로 붙여쓰지 않고 그냥 띄어쓰기만 했다면?
숫자를 3개만 넣어야 하는데 100개 정도 넣어주면 어떻게 될까요?
혹시 한글 넣어보셨나요?
한판 끝나면 다시 할 수 있나요? 그냥 끝 아니고? y/n이라고 써있는데 yes를 넣으면?
혹시 최고 기록을 저장하고 싶은 생각은 안해보셨나요?
숫자를 랜덤하게 만들었는데 게임을 실행할때마다 똑같이 나오진 않던가요? 

 
제가 적어놓은 8줄이 왜 에러인지 아신다면 이제...Win32로 넘어가시...ㅁ ㅡ.ㅡ;



자... 이제 Win32로 넘어와서 테트리스를 만들어볼까요?  이것도 책에보면 소스가 나와있습니다.(제가본 책에는 꼭 있더라구요--)  하지만 대부분의 책에 나온 소스는 기본에 충실하기때문에 모자라는 점이 있기 마련이지요.  여기에도 버그가 있고 개선할 방향이 있을껍니다.


역시 급조한 테트리스 이미지(출처  http://aseuka.tistory.com/entry/%ED%85%8C%ED%8A%B8%EB%A6%AC%EC%8A%A4 )

블럭의 색깔이 구릴껍니다. 
모양도 구리겠네요.
배경에 테트리스 성이라도 넣고 싶을껍니다.
배경음악이 없네요-o-?
한줄이 사라질때 뾱! 하는 효과음도 넣고 싶지 않으세요? 
여러줄이 사라질때 한번에 3줄,4줄이  사라지는게 아니고 한줄씩 뾱뾱뾱! 하면서 사라지면 멋지겠네요 




위에 내용을 해결하기 위해 여러가지 공부를 더 해야하며 대표적으로 GDI를 공부해야 이쁘게 만들 수 있을꺼 같습니다.

GDI를 공부하고 그 다음은 갤러그를 만들어봅시다. 아... 좀 어려우니까 스페이스 인베이더? 이제는 좀 한다고 책에 소스가 없어도 만들거 같습니다.

당연히 급조한 인베이더.(내가 갤러그보단 좀 더 쉽지)

어! 이상하다! 테트리스에서는 상관없었는데 비행기 움직임이 버벅버벅 느립니다-_-;
총알이 나갈때 잔상이 마구 생기네요.
총알을 다다다다다닷 눌렀더니 삐삐삐삐삐 키보드 에러음이 납니다-o-;;;;;


자... 이걸 해결하려면  Win32 API로는 힘들어요~  결국 DX로... 넘어가서 열심히 DirectDraw, DirectInput, DirectSound를 사용해야 할껍니다.  그런데 제가 게임 제작쪽은 여기까지밖에 공부를 안해봤어요. 더이상 설명하면 밑천이 들어나니까 이쯤에서 그만하고...ㅡ.ㅡ;;



이제 주저리주저리 늘어놓은 글의 정리를 좀 해보겠습니다.
 
틀린 표현이지만 완성된 문장을 말해본 학생들은 외국인과 대화(억지로 끼워맞춰가면서라도)가 가능하지만 완성된 문장을 말해보지 못하고 선생님이 물어보신 말에 억지로 책보고 대답했던 사람들은 결국 아무 말도 못하게 되더라는거죠.

프로그램도 마찬가지입니다.  퀘퀘묵은 아저씨 프로그래머들에게 물어보면 공부, 경력이 중요하단 말을 할껍니다.  여기서 경력이란 그냥 프로그램을 짜는게 아닌 어떤문제가 닥쳤을때 그 문제를 분석하는 능력과, 해결하는 능력과, 해결하려면 어디를 뒤져야 하는지... 하는 등의 능력을 보기 위해 확인하는겁니다.  
하지만 아무 고민도 안하고 책을  참고해서 만들어본 학생이 경력을 만들기는 쉽지 않죠.  틀려본적이 없거든요.(안틀렸는데 왜 고민하겠습니까-_-?)  하지만 본인이 직접 버그도 없에고 업데이트도 하고, 개선도 하려고 노력한 그 프로그램이 바로 하나의 완성된 프로젝트고 경력(인정은 안해줄지 모르지만)이 되는겁니다.

물론 그 프로그램(프로젝트)을 스샷도 뜨고, 만든 과정도 정리하고, 
개선한 부분도 정리해서 포트폴리오로 만들면 말이 달라지지만 말이죠.

이건 취업에 관련된 팁입니다.  이런게 중요하지 않아보이게 도둑방구처럼 나오는 핵심이란거죠.

결국 프로그램을 공부하는것에 가장 중요한점은 하나의 완성된 프로그램을 만드는것이라고 생각합니다. 그 프로그램이 잘 돌아가던 돌아가지 않던 말이죠(그레도 잘 돌아가는게 좋죠-_-)



사실 너무 부족한 설명입니다.  또한 게임개발이라고 하기엔 다른 모든 공부에 적용해도 될법한 내용이라 "놀게영"에 어울리지 않는 글일 수도 있구요.
하지만 학교에 있으면서,  이 일을 하면서, 이력서를 받아보면서(저희회사는 이력서를 받으면 메일로 공유합니다-_-) 주변 사람들이 조금 모자라다고 느낀점들을 좀 정리해서 적어봤습니다. 

마지막으로 한번만 더 강조하겠습니다.
아무튼 버그 투성이의 소스코드를 한번 타이핑해보고 넘어가면 안됩니다.  발전이 없죠~  
문제 생길 부분을 해결하고 개선할 부분을 찾아서 개선해봐야 합니다.

그렇지 않으면 ... 

형처럼 되고싶냐? (인권아저씨 죄송... 저보다 훨씬 훌륭하신분입니다)
 
그럼 전 이만 자러 가겠습니다.


반응형
,