티스토리 툴바


jobGuid 꽃미남 프로그래머 "Pope Kim"님의 이론이나 수학에 치우치지 않고 실무에 곧바로 쓸 수 있는 실용적인 셰이더 프로그래밍 입문서 #겁나친절 jobGuid 캐나다로 날아가서 실력만으로 수석 그래픽 프로그래머가 된 꽃미남 프로그래머 "Pope Kim" 님의 북미취업 가이드북이 전자책으로 출간되었습니다. 블랙썬  for Kakao 클래식한 던젼 RPG와 간편한 모바일 게임이 만났다! 당신을 검과 마법의 장대한 서사시로 초대하는 [블랙썬 for Kakao]!! 3ds Max를 사용해서 게임용 3D 캐릭터를 셋업하는 방법
이를 위해 오랜 실무를 경험해 온 저자의 고급 노하우들이 공개
위 내용은 GameDevForever의 저자분들의 홍보를 위하여 운영진 자체적으로 올린 광고이며 일체의 수익이 없습니다.(밥좀사줘요~)
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를 사용해야 할껍니다.  그런데 제가 게임 제작쪽은 여기까지밖에 공부를 안해봤어요. 더이상 설명하면 밑천이 들어나니까 이쯤에서 그만하고...ㅡ.ㅡ;;



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

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

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

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

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



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

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

그렇지 않으면 ... 

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


저작자 표시 비영리 변경 금지

댓글을 달아 주세요

  1. Favicon of http://www.gamedevforever.com 김포프 2012/02/29 03:36  댓글주소  수정/삭제  댓글쓰기

    제가 언제나 주창하는것과 비슷하군요.

    - 게임을 만들고 싶으면 일단 게임을 만들면서 공부해라..
    - 영어를 배우고 싶다면 일단 쓰면서 공부해라..
    - 곧바로 실전에 써먹어야만 뼛속에 베어서 평생 기억한다...
    - 실제로 해봐야만 알 수 있는 내용이 너무나 많다. (공부만 해서 준비하려고 하면 절대 모른다)

    가장 큰 문제는 실수를 용납하지 않는 사회분위기인 거 같습니다. 그래서 다들 실수를 무서워해서 준비가 된 뒤에야만 거사를 치르려고 하지요.

    "차라리 어릴 때, 별짓 다 해보며 실패하는게 ... 정말 중요할 때 한방에 성공할 수 있는 지름길입니다."

    p.s. 넵 이 글 올리세요.. .단 문단정리만 좀 잘해서... 왜 문장이 바뀔 때마다 엔터쳐요? -_-; 선생 맞아요?

    • Favicon of http://www.gamedevforever.com zinzza 2012/02/29 09:23  댓글주소  수정/삭제

      많이 쓴거처럼 보일라고-o-+
      는 농담이고, 한줄에 줄줄 써있으면 좀 읽기 불편한거같아서요-_-; 문장 끝나고 엔터 문단 끝나면 엔터 두번...
      예전에 PC통신 할땐 한줄끝나고 엔터번씩 해줬는데 ㅎ
      암튼 Pope아저씨가 때릴지도 모르니 고칠께요.

      P.S. 이제 선생 아님다-_-;

    • Favicon of http://kindtis.tistory.com 친절한티스 2012/03/10 16:26  댓글주소  수정/삭제

      옳으신 말씀~

    • Favicon of http://dishdev.me/ Dish 2012/04/10 10:49  댓글주소  수정/삭제

      그러게요 ㅋㅋㅋ 예전에 VT 쓸 땐 한 줄에 엔터 두 번 한 글들이 읽기 좋았었는데

    • Favicon of http://www.gamedevforever.com zinzza 2012/04/10 17:14  댓글주소  수정/삭제

      ㅎㅎㅎ 맞아요 Dish님도 기억하시는군요.
      습관이란게 무섭더라구요.(이문장도 써놓고 한줄 앞으로 땡겼음-_-)

  2. Favicon of http://joshuajh.tistory.com 죠쉬 2012/02/29 11:51  댓글주소  수정/삭제  댓글쓰기

    음... 개인적인 생각엔...

    1. C는 필요없지 싶습니다. C와 C++은 비슷하게 생긴거 같지만 사실은 완전히 다른 언어이지요
    C에서 배운 개념을 가지고 C++로 접근을 시도하면 시간이 훨씬 오래 걸립니다.
    C와 C++은 친족도, 친구도 아닙니다.
    서울 사람과 히우데자네이루 사람이 우연히 닮은겁니다.
    그러므로 1은 안해도 되는게 아니라 해서는 안된다고 믿씹니다!

    2. 수학은 필수라고 생각합니다. 특히 정수론과 논리는 다른 것 보다 조금 더 중요하다고 봅니다.
    3D 프로그램은 해본지 20년이 넘어서 잘 모르겠지만
    20년 전엔 그거 잘하려면 Matrix 연산 잘했어야 했어요

    3. 영어는 포프님 말에 100% 동의!
    쓰면서 배워야 자기가 필요한 말을 배우지요
    비지니스 영어 미친듯이 공부해 봐야 친구 사귀고 일하는데 반푼어치도 도움이 안됩니다.
    뭐, 일이 비지니스라면... 패~스!

    아... 이게 아니지,
    프로그래밍을 하려면 영어도 쫌 해야 합니다. 최소한 매뉴얼을 읽을 만큼은 해야지요
    어차피 우리가 다 맹그는거 아니고, 넘의 것 가져다 쓰는게 99.7% 정도 되니
    영어, 억울해도 해야 합니다.

    4. 언어를 배우는 것 이전에 생각을 논리적으로, 풀어서 표현하는 연습도 필요하지요
    그래서, 개인적으로는 말빨 좋은 사람이 프로그램도 잘 짠다고 생각 한답니다.

    뭐... 그렇습니다.

    • Favicon of http://www.gamedevforever.com zinzza 2012/03/01 00:23  댓글주소  수정/삭제

      1. 저도 그렇게 생각합니다. 저도 절차적 프로그래밍에 익숙한 사람이라 회사에서 객체위주의 프로그래밍에 익숙해지기 힘들었습니다. 그런데 이상하게 아직도 C부터 해야 한다고 생각하는 사람이 많더군요. 그레서~ 설명엔 없습니다^^;

      2. 수학얘긴 안했지만..ㅡ.ㅡ;;; 100% 동의합니다. 수학적 지식 없이는 다른 사람 도움이 없이 아무것도 못하게 되더군요. 코딱지만큼 배워가며 적응하고 있습니다.(게임은 아니지만 쫌 필요한쪽이라...)

      3. ㅇㅇ 맞아요. 그냥 영어를 예를 들려고 썼는데 얻어걸린 기분이네요. 매뉴얼 볼 수 있어야 합니다! 구글링, 구글신, 구글느님이라고 표현하지만 구글느님은 영어가 주 언어십니다.

      4. 그건 좀 아닌거 같습니다. 제가 말을 조리있게 못하는 편은 아닌데 프로그램은 조리있게 못짜요-_-;

      ㅎㅎ 읽어주셔서 감사합니다.

    • Favicon of http://www.gamedevforever.com zinzza 2012/03/01 00:24  댓글주소  수정/삭제

      아! 1번을 수정하라고 알려주신건 아니시죠? 잘못알고 계시는분들이 댓글보고 깨우침을 얻으시라고 그냥 두겠습니다^^;

    • Favicon of http://joshuajh.tistory.com 죠쉬 2012/03/02 01:41  댓글주소  수정/삭제

      ㅡ,.ㅡa
      감히 얻다대구 수정하라 마라 하겠습니까...
      그냥 제 생각이 그렇다구요

    • Favicon of http://www.gamedevforever.com zinzza 2012/03/02 10:01  댓글주소  수정/삭제

      소심하게 줄 하나 찍 그어서 수정했습니다^^;

  3. Favicon of http://chulin28ho.tistory.com 대마왕J 2012/03/01 00:59  댓글주소  수정/삭제  댓글쓰기

    아... 개발자라는 의미가 프로그래머라는 의미셨군요. 언제 그래픽 아티스트 얘기가 나오나 기다렸습니다 :) 그건 그렇고 요즘에도 다이렉트 드로우가 있나요?

  4. Favicon of http://ozlael.tistory.com ozlael 2012/03/14 03:44  댓글주소  수정/삭제  댓글쓰기

    구구절절 옳으신 말씀입니다 ㅠㅠ

  5. Silverchime 2012/04/09 10:31  댓글주소  수정/삭제  댓글쓰기

    감동했어요 ㅠㅠ

  6. 안놀아 2012/04/09 13:09  댓글주소  수정/삭제  댓글쓰기

    사실 목표 문제기도 하죠. 제가 어린시절 시작했을때는 저는 퀴즈 게임 프로그램을 만들어 보고 싶다는 마음이 먼저 들었었는데. 그 당시에는 게임도 그렇게 많지 않았고, 프로그래밍 자체가 동네 서점까지 잘 들어오지도 않던 시절이니 그 정도 수준으로도 "만들어 보고 싶어!", "하고 싶어." 라는 생각이 간절히 들었거든요.

    하지만 요즘 친구들이 프로그래밍을 시작할때 보는 게임들은 이미 혼자서 배워 만들기에는 너무 수준이 높은데다가 기본 공부만 하더라도 일이년은 후딱 갈 정도 라는 거지요. 누군가 도와주지 않는다면 작은 목표 부터 잡아서 한단계씩 올라가기 쉽지 않거든요.

    그래서 개인적으론 면접볼 때, 작은 프로그램이라도 직접 완성까지 해본 사람을 뽑습니다. 그리고 뽑고 나면 테트리스 같은 과제로 설계 -> 개발 -> 목표 수정을 주기적으로 시켜 1주 가량의 교육을 했었구요. 사실 테트리스에는 현대 게임에 필요한 기본 로직이 다 들어가 있거든요. 물론 사용할 API나 라입들은 다 던져주고 로직만 수정하게해서 콘솔 -> 2인용 -> 윈도우 -> 온라인 대결까지 해볼 수 있도록 만듭니다.

    • Favicon of http://www.gamedevforever.com zinzza 2012/04/09 13:18  댓글주소  수정/삭제

      음... 그렇죠. 최근 게임 자체의 볼륨이 커졌기때문에 목표가 커져버리고 결과적으로 좌절감을 느끼기 쉽다는 문제가 있겠네요-_-;

      하지만 저도 몇몇 프로젝트를 시도만 했다가 실패한 경험이 많은데요, 그 실패한 프로젝트에서도 많은걸 배울 수 있었습니다. 실패하더라도 혼자서 삽질을 해보는건 큰 경험이지요. 좌절해서 포기하지만 않으면 말이죠^^;

      그리고 예전에 퀴즈게임을 만들려고 코딩하는 양이나 알고리즘을 연구하는 정도로 노력한다고 가정했을때
      요즘 언어 프레임웍이나 툴을 쓰면 간단한 슈팅이나 RPG는 나오지 않을까요?

      그리고 신입사원에게 내주신다는 그 과제는 정말 좋은거 같네요^^;

    • 안놀아 2012/04/09 14:33  댓글주소  수정/삭제

      제가 만들었던 퀴즈게임의 볼륨은 사실(....) 퀴즈를 스크립트와 게임 코드로 나누는 방식이 아닌 GW-BASIC을 사용해서 코드내에 문제를 타이핑해 넣는 방식이 였거든요. 데이터와 게임 코드를 나눈다 라는 것도 대략 1~2년 후쯤에 RPG를 만들어 보겠다고 설치면서 배웠으니...;;

      그 당시에는 항상 내가 만들고 싶은게 있을때 내가 알고 있거나 할 수 있는 한도 내에서 할수있느냐? 로 판단 했었던 것 같아요. 저 퀴즈 게임 다음에 만든게 그림을 넣고 싶은데, 그림 파일을 읽을 줄은 모르니. 점을 찍는 프로그램을 만들어서 직접 저장하자. 였고, 그렇게 그 다음 그 다음, 하나씩 공부해 나갔지요. 물론 워낙 어릴 때라 아무 생각 없이 몇년씩 저랬던거고 요즘은 자료도 많고 하니 저렇게 오래걸리진 않겠죠;.


      어쨌든 다른 것 보단 다들 처음부터 목표가 너무 높아서 금방 좌절하는 것 같아서 안타까운 마음에 적어 보았습니다.

  7. blueasa 2012/04/09 14:38  댓글주소  수정/삭제  댓글쓰기

    재밌게 읽고 갑니다. :)

  8. 꿀펭 2012/04/09 23:14  댓글주소  수정/삭제  댓글쓰기

    이게 미묘하게 애자일에서 말하는 테스트드리븐과도 연결되어 있습니다. 아랫단에서는 빈 함수만 호출하더라도 항상 뭔가가 컴파일되어서 가상의 결과값이라도 반환하게끔 유지시키면서 조금씩 코드를 구체화시켜간다는 점에서...

  9. 꿀펭 2012/04/09 23:14  댓글주소  수정/삭제  댓글쓰기

    이게 미묘하게 애자일에서 말하는 테스트드리븐과도 연결되어 있습니다. 아랫단에서는 빈 함수만 호출하더라도 항상 뭔가가 컴파일되어서 가상의 결과값이라도 반환하게끔 유지시키면서 조금씩 코드를 구체화시켜간다는 점에서...

  10. 둔한이 2012/04/10 13:06  댓글주소  수정/삭제  댓글쓰기

    제생각에는 학생레벨이라면 dx는 나중에 배워야한다고 생각합니다.
    단순히 언어나 API의 사용법을 배우는 것보다 개론서적에 대한 이해를 높이는게 실무에 더욱 도움이 되고
    후에 발전 가능성이 많아지는것같습니다.
    때문에 운영체제, 컴퓨터구조, 알고리즘, 어셈블리어, 3d 수학등을 배우는게 좋다고 봅니다.
    신입 프로그래머에게 dx를 맨처음부터 시키는 회사는 없다고 보거든요^^

    • Favicon of http://www.gamedevforever.com zinzza 2012/04/10 17:23  댓글주소  수정/삭제

      옳으신 말씀이지만 개인적으로는 동의하지 않습니다.
      대학에서 학문에 치중하고 실무는 사회에 나와서 공부해야 한다는건 여러 학문이나 교육, 사회적으로 많이들 주장하는 바입니다. 저도 옳은 방향이라고 생각합니다.

      하지만 그로인해 흥미를 잃을 수 있다면... 다시한번 생각해봐야 하는 문제라고 생각합니다.
      게임을 만들고 싶어서 갔는데 알고리즘, 수학공부를 하다가 공부 자체에 흥미를 잃고, 중도 포기할 사람이 있다면
      차라리 DX, 상용엔진(툴이 잔뜩지원되는), 심지어 쯔꾸루류라고 부르는 툴을 써서라도 흥미를 잃지 않게 공부하는것도 공부 방법의 하나라고 생각합니다.

      물론! 최후에는 차분히 기초학문을 다진 사람보다야 못할 확률이 높다는 점은 동의합니다.
      만! 저는 공부에서 가장 중요한건 지구력이라고 생각하기 때문에 흥미를 잃을 수 있다면 살짝 미루고 더 흥미로운것에 관심가져보는것도 좋다고 생각합니다.

  11. Hybrid 2012/04/13 10:31  댓글주소  수정/삭제  댓글쓰기

    안놀아님 말씀에 동의.

    예전엔 텍스트 기반이 대부분이었으니, 간단한 숫자 놀음 게임만 만들어도 재밌을 수가 있죠.
    하지만, 지금은 시대가 바뀌어서 일단 배우는 사람 자체가 그걸로 느끼는 만족감이 무척 작을 수 밖에 없다고 봅니다.
    (나이 든 프로그래머가 '나 땐 이런거 하나로도 큰 기쁨을 느꼈는데 너흰 왜 못느끼니' 할 수도 있지요..)

    결국 결과 위주로 본다면 차라리 공개 엔진, 아니 공개 툴을 가지고 뚝딱뚝딱 만드는게 더 큰 만족감을 줄 수 있습니다. (예를 들면 유니티)

    만족감은 후자가 큰데, 과연 후자가 프로그래머로써 좋은 길이냐 하면 그건 아니잖아요.
    꼭 유니티까지 안가더라도, 예전 시절 혼자서 슬쩍슬쩍 테트리스를 만든다는건 거의 최상급을 만족을 주는게 아닐까 싶은데,
    지금은 그런 만족감을 주기가 쉽지 않습니다.

    극단적으로 비교하려는건 아니구요. 제가 하고 싶은 말은, 일단 뭐라도 만들어보고 만족감을 느끼는것이 예전만큼 좋진 않다.
    그리고 그 만족감은 이내 사라지기 때문에, 아주 잠깐의 동기라고 생각합니다.

    둔한이님 말씀에 동의하며 역시 이어가자면,
    저는 DX, 엔진 이런걸로 흥미를 느끼기 시작하면, 나중에 다시 기초로 돌아오기 무척 힘들다고 생각합니다.
    수학? 행렬 계산? 그거 다 DX에서 해주는데, 엔진에서 해주는데 꼭 배워야하나? 귀찮은데? 생각하기 쉽잖아요.
    이걸로 이미 맛을 들여버리면, 더더욱 고급 기술들로 눈이 높아지게 됩니다. 그럴 수록 기초적인 것들은 멀리하게 되죠.
    (그리고 어느새부터인가, 그런거 몰라도 되는, 나는 이미 아는 것 같은 착각에 빠지기도 하구요.)

  12. Hybrid 2012/04/13 10:37  댓글주소  수정/삭제  댓글쓰기

    (너무 길어서 끊습니다.)

    물론 흥미도 중요하다고 생각합니다. 하지만 저는 흥미가 메인 흐름을 끌고 나가기보다는 동기라던가 작은 부분만을 차지하는게 좋다고 생각합니다. 수학으로 예를 들면 좀 극단적인데, 수학은 처음부터 끝까지 절대로 흥미로 누군가를 끌고 갈수가 없잖아요. 오히려 흥미를 찾다가 공부하는게 방해가 되는것을 경험했습니다. 그 흥미를 끊고, 그냥 수학 자체에 집중하는 것이 저에게는 남는 것이 많았습니다.

    결론은, 흥미를 찾아 공부하는 버릇이 생기면, 흥미롭지 않은 것은 등한시 된다는게 문제라고 생각합니다.
    눈은 높아지고, 밑으로는 더이상 내려가서 공부하지 않게 될 수 있잖으니까요.
    따라서, 방금 말씀드린대로, 저는 흥미라는 것이 동기 같이 핵심적이고 작은 부분에 중요하게 남아 있어야 하지, 흥미가 전반적인 과정을 주도해서는 안된다고 생각합니다.

    (으악! 너무 길다!)

    • Favicon of http://www.gamedevforever.com zinzza 2012/04/29 05:12  댓글주소  수정/삭제

      아 사실 반대의견?이 포스팅 수준으로 올라오고 저도 충분히 동의할만한 내용이라 당황해서 답변을 달지 않고 있었습니다.
      그 점 죄송하고요...

      그간 많이 생각해봤는데요, 일리가 있다 못해 맞는 말씀이십니다.
      그리고 제가 틀린점을 말씀드리자면 사람마다 약간의 차이가 있고 그 차이를 생각하지 못했다는 생각은 듭니다.
      앞에서 예를 들었던 영어 얘기를 좀 해보면 사람이 영어를 배워야겠다고 생각했을때 어떤 사람은 학원으로 가고, 어떤 사람은 미드를 보고, 어떤 사람은 유학을 가며, 또 어떤 사람은 미쿡남자를 사귀...(실제로 봤습니다-_-)
      암튼! 제가 만약 학원같은데서 공부하거나 이론적인 부분부터 공부했다면 막막해하거나 포기했을꺼 같습니다.(제 성향이겠지요)

      완전히 제 관점에서 쓰여진 글이라는걸 인정합니다.
      암튼 긴 답글 적어주시고, 제 글에 대해 생각해주셔서 감사합니다!

  13. yty337299 2012/04/13 12:39  댓글주소  수정/삭제  댓글쓰기

    이건 굳이 프로그래머쪽이라고 제한을 둘 필요 없겠네요. 각종 실무를 하는 사람들도 많이 필요해보입니다. 학생입장으로써는 어느 조언이든 자신쪽으로 한번쯤은 생각해봐야겠네요. 서로에 대해 잘 알아야 업무도 원활히 진행되겠죠?

  14. Favicon of http://sstorm.tistory.com 스톰(서광록) 2012/05/24 23:34  댓글주소  수정/삭제  댓글쓰기

    스승도 동강도 없이 혼자서 책과 검색만 보고 푸로구래밍을 공부해본 경험으로 말씀드리자면
    C를 안하고 C++로 후로그래밍을 시작한 경우 곤란한 점은 자료구조라든지 알고리즘 등을 공부할 교재가 한정된다는 점이더군요. 요즘은 좀 나아졌는지 몰라도 에전엔 이런 것들이 거의 C 기반으로만 책이 나왔었거든요.

    뭐 어줍잖은 지식이지만, C와 C++이 완전히 다르다는 점과 C++로 후로그래밍을 시작하는 것이 바람직하다는 말씀에는 전적으로 동의합니다 'ㅅ'/

  15. Greenbee 2013/09/11 12:52  댓글주소  수정/삭제  댓글쓰기

    와~ 100% 동감입니다. ^^

  16. 곰팜 2013/10/11 10:05  댓글주소  수정/삭제  댓글쓰기

    그래도 C는 해야한다고 생각하는게... 포인터는 알아야.. 자료구조 라던지
    동적 할당이라던 것들이 좀 가깝게 다가올수 있기에.. ㅋㅋㅋ

    그리고 객체 지향개념은 아무리 옆에서 이야기해서 한다고 해서
    정말 자기가 이해 못하면 그냥 따라하는거 밖에 안되더라구요 ㅋㅋ