2010년 10월 30일 토요일

게임 개발자 해외 취업 얘기.

한국에서만 일하는 것 보다 전혀 다른 환경이 해외에서 일하는 것도 나쁘지 않은 거 같습니다.
또는 외국 개발사의 한국지사에서 일하는 것도 좋으 경험이 될 거 같습니다.

운 좋게도 요즘의 해외 회사들은 한국 개발자 구인에 적극적인 편입니다.
이유는.

1. 한국이 최고의 미들웨어 시장이 된 것에 기인하는 거 같습니다. 즉 많은 게임 미들웨어 회사들이 한국에서 서포트를 해야 되고 한국어를 하는 개발자를 뽑고 싶어합니다. 한국어 되는 개발자 해외에서는 찾기 어렵습니다. 국내에서 모시고 가야겠지요.

2. MMO 라는 새로운 환경에 이미 적응한 개발자들이 많습니다. 해외에서 관련된 경험자가 필요할때 한 번쯤 눈여거 보게 되는 것입니다.

허나 뽑고 싶어도 몇가지 문제가 있는데요.

1. 영어 말하기/쓰기가 잘 안됩니다. 많은 경우 읽기는 완벽한 편이고, 듣기는 그럭저럭 됩니다만, 외국인 상대할일이 많지 않던 우리는 잘 안됩니다.  지인 중 한 분은 전화영어로(저는 회화학원에서--) 이런 부분을 해결했다고 하네요. 덤으로 전화영어는 외국 회사 면접의 첫번째 코스이기도 합니다. 저는 처음에 전화 면접에서 몇 번 떨어졌습니다.

2. 보통 한국에서는 잘 없는 코딩 시험을 봐야 합니다. 보통 지인을 통해 움직이거나, 간단한 코딩 시험과 구술 시험이 주였던 한국 과는 다르게 하루에서 이틀 짜리 코딩 시험을 보는게 일바적입니다. (넥슨에서는 하는 거 같습니다.) 보실 때 귀찮아하시지 말고 있는 힘 다해서 보셔야 됩니다. 이게 실제 당락을 가르는 중요 요소이고 한국 개발자분들이 많이 떨어진다고 합니다.  진지하게 지원해 주시고, 진지하게 코딩 시험에 임해주시면 문제가 없을 거 같습니다.

간단한 팁이라면,
사람에 따라 말이 다르긴 합니다만,
북미권은 제가 볼땐 영어가 많이 필요한 거 같습니다.
현지인하고 경쟁해야 되는데다가, 북미에선 프로그래머는 대우가 좋은 직업인데다가, 다들 영어도 잘하니까요--+(그래봐야 안 가봐서 잘은 모릅니다.;;;)

그럽 이제 제가 밟고 있는 유럽(독일)은 조급 다릅니다.
여기도 나름 각국의 언어가 있어서, 영어가 보통 제2 외국어 입니다만,
게임 회사의 경우 나라 상관없이 뽑는 경우가 많고, 유럽내 국가끼리는 취업이 자유로운 편이니, 회사에서는 영어를 쓰게 되는 경우가 많습니다.
즉 회사안에서 이미 영어를 잘하고 못하는 사람들이 있는 경우가 많습니다.
(그래도 보통 잘하더군요, 같은 언어권의 이점인가요;;)
암턴 이런 환경이기 때문에 영어에 관대한 경우가 많습니다. 게다가 보통 프로그래머가 많이 없어서 인력부족인 편입니다.
그래도 영어 쓰기는 좀 보는편이기 때문에 이력서나 커버레터는 (당연하지만) 에러가 없는 게 좋습니다. 원어민이 한번 봐주면 좋겠지요.

완전히 다른 환경에서 일한다는 게, 그리고 익숙하지 않은 언어로 말한다는게,
생각보다 스트레스가 있긴 합니다만,
즐거운 스트레스가 아닐까 싶습니다.

저 같은 경우에는 한국 회사에서 이래저래 좀 고생한편이었는데요, 해외로 오고 그런 것들이 많이 사라졌습니다.  자기 문화와 익숙한 회사를 찾아만 다닐 수는 없겠지만, 그래도 자신에게 좀 더 맞는 회사가 있는것도 아닌 가 싶습니다.

2010년 10월 19일 화요일

해야할일 목록 입니다.

1. 영어 공부 - 우선 순위가 높을 수 밖에 없습니다. 언제 바짝해서 평생 써먹어야 되는데 말이져. 아직도 틀린 문법에 어설픈 발음으로 연명하고 있습니다.
    => 아이패드 동화책보기 - 디즈니 책 읽어주기 어플들이 멋지더군요!!중간중간 게임도 그럭저럭 재미나다눈(한권당 3불정도라서 약간 지출이 생깁니다.)

   => 안병규 미드 보기 - 기존에 학원 다니면서 괜찮은 느낌이라 보고 있습니다. 많은 분들이 발음이 이상하다고, 하던데 --저는 그런 거에 별로 예민하진 않아서,어차피 미드 따라하기인데요 뭐.(제 발음을 보면 좀 에민해야 될 거 같기도 합니다만, 그러면 너무 팍팍하잖아요.ㅎ)

   => Grammer in Use - 문법도 가끔씩 살랑살랑 봐주면 좋은 거 같습니다.

   => 아이패드에서 영어책 보기.!!

   => 그리고 토플이나 IELTS 등도 준비하면 좋을 거같습니다.

2.프로그래밍 공부
    => 꾸준히 필요한 책을 읽어야겠습니다. 엔진 사용하면 게임 개발하는 중간 역할만 오래했더니, 실제 기본 개념이 좀 부족합니다. - 소프트웨어 렌더러 만들어 보기!(학교 다닐때 한번 했었는데 거의 실패작이라,,,그래도 그때 배운걸로 렌더링 개념 써먹고 있으니 교수님께 감사의 메일이라도 써야 될듯...--물론 써도 누군지 모르실거라서--으음)

    =>  아이패드 취미 플밍 - 현재 맥북과 아이패드 환경이니 취미로 플밍은 맥으로 아이패드용. (음 그래도 역시 개발은 비쥬얼 스튜디오인데---황홀한 디버깅 세상이라는 걸 다른 IDE 를 써보고 알게되었습니다.) MS 최고의 제품은 비쥬얼 스튜디오가 아닐까 싶습니다.-_-

   => 멀티 코어 개념이 급 필요해지고 있습니다. 렌더링은 일할때 필요하니 책좀 읽어야겠고요.

3. 건강
   => 운동해야 됩니다. 매일 땀 한방울이라도 흘려야겠습니다. 운동할때 안할때 체력과 집중력차이가 많이 나는군욤!!.

그리고 제일 중요한 건 즐기면서 살자 입니다. 즐거운 마음으로 프로그래밍을 대하고 생각하고 장인이 되려하는 마음가지. 이것만큼 중요한게 없을 거 같습니다. 돈 받으니 일한다는 마음으로 다닌 적도 있고, 대충 회사 다닌 적도 있습니다만, 제일 즐거운 건 돈이나 회사에 상관없이 열시히 즐겁게 내 길을 걸어가면 프로그래밍 하는 것입니다.

집에서도 심심하지 않게 어떻게 하면 프로그래밍을 잘할까 고민하구요.!!ㅎ 이런 저런 문제를 머리속으로도 풀어보고 해야 겠습니다.

물리 엔진

요즘 열심히 글쓰기를 해보려고 하는데, 역시 블로그 초보라서 글 쓰는게 많이 어렵네요.

요즘 락프리니 헤스켈이니 하면서 멀티 코어에 대비해야 되니 하면서 말이 많은데요.  막상 일하는데서 안 쓰니 생각보다 공부는 안하게 되는군요. 반성해야겠습니다.

 그러 면에서 물리 엔진을 어떻게 돌리느냐가 클라이언트에서 고민할 수 있는 멀티 코어 문제인 거 같습니다.

이상적인 구조는 물리 엔진은 따로 남는 시간에 계속 돌면서 원하는 한프레임 전 데이타를 저장해두는 것일 겁니다.
(뭐 락 안걸고 최신 데이타 가져올 수 있으면 더 이상적인 건가요--가능은 할 거 같은데 어떻게 되는지 모르니...음 공부공부)

일단 근데 한프레임 전 데이타를 굳이 저장해두느니 렌더링할때 CPU 가 놀테니 요때 바짝 돌리고 업데이트 타임에 쉬어주는 방법도 있습니다. 이상적인 구조는 아닙니다만, CPU 가 노는 타이밍을 안다면 사용하기도 편리하고--그냥 그럭저럭 괜찮은 거 같습니다.

더 좋은 구조 있나요? 기타 엔진에서 어떻게 사용하는 지 아시는 분은 답글 좀 달아주세요~~

엔진 사용.

게임 엔진 사용 하면서 많이 듣는 얘기 중에 하나가,
아 엔진 잘못 골라서 게임 안나왔어.+_+ 이런 종류의 얘기입니다.

생각했던 거하고 다르다면 뭐 도망가고 싶을 때도 있겠습니다만, 안타까운 얘기입니다.
(물론 이런 저런 정치적인 이유로? 엔진 핑계를 대는 경우도 많지요;;;ㅎ)

사실 게임 엔진에는 크게 2가지 스타일이 있는 거 같습니다.
자체개발 게임이 있는 경우와 아닌 경우 입니다.

1. 자체 게임이 없는 경우.
    이 경우는 사실 아무리 잘 되있고 다 있는 것 처럼 보여도, 실제 게임을 개발하려면 많은 부분을 작업 해야 됩니다. 특히나 디자이너나 기획자하고 데이타를 주고 받는 부분이 약할 수 밖에 없는 거 같습니다. 보통 프로토타이핑 까지는 어찌어찌 되나, 이후에는 엄청난 툴 작업과, 중간 중간 어이 없는 병복을 맞딱 드리게 됩니다.(물론 자체개발 보다는 보통 낫지 않을까 싶습니다.) 물론 차근 차근 서포트를 받아가면 수정하면 됩니다만 어쨌든 생각보다 게임 후반으로 갈수록 개발 시간이 예상보다 길어지는 경우가 많은 거 같습니다.

2. 자체 게임이 있는 경우
    이 경우는 코드가 이해하기 어려울 가능성이 매우 높은 듯 합니다. 마지막 최적화라던가, 툴을 위해 이상한 인터페이스를 꼬아 넣었다던가 하는 말입니다.  이 경우는 프로타이핑을 아무것도 안고치고 쉽게 내놓거나, 조금 고치려고 하다가 시간이 많이 걸리는 경우가,,,ㅎㅎ
그래도 많은 게임을 위한 툴이 있고, 최적화 부분등도 실제로 게임을 만들면서 진행된 부분이기 때문에 동일한 스타일의 게임이라면 편안하게 개발 가능합니다.

저는 개인적으로 1번의 경우를 선호합니다. 이미 다 있는 거 헐어내는 것 보단, 조금 부족해도 열심히 분석해가면서 넣는 재미도 있고, 실제 프로그래밍도 좀 더 적극적으로 하게 되는듯 합니다.

2010년 10월 11일 월요일

심심 풀이 게임 엔진 이야기...(주관적인 생각입니다)

1. 유니티3 => 아직 제대로 안써봤지만
     => 툴이 멋지다.
     => 상당히 게임 디자이너(기획자) 친화적인 툴
     => 많이 수정하지 않다고 다자이너 중심으로 게임을 만든다면 최고 일듯
     => 플래쉬의 3D 버전. 음?!!
 
2. 게임브리오 => 3.1 까지만 써본,,(3.2부터 툴이 좋아졌다고 합니다...이제 월드툴에서 터레인도 수정 가능??-_-)
     => 툴은? 괜찮아지고 있다. 그래도 완전 프로그래머 친화적인 엔진인듯.><
     => 디퍼드를 지원안한다. 엔진을 샀는데 거대 렌더링구조를 집어넣는 건 좀 삽질이지 않은가? 포워드로 저사양을 노릴 계획이라면 제대로인듯!!
     => 한국에 있는 프로그래머라면 게임브리오는 한번씩은 해본듯 => 인력 충원 후 바로 일에 투입하기 좋다.
     => 뛰어난 게임브리오 프로그래머가 있다면 좋은듯,,,
     => 그러나 서포트는 없다.!!
     => 툴이 부족하므로 뛰어난? 또는 많은 툴 프로그래머가 필요하다. 또는 3rd 파티 인테그레이션을 제대로 활용 해야 되는(근데 스피드트리5는,,아직도 지원 안한다눈,,,)

3. 비전 엔진
    => 아티스트 친화적?인 툴은 아니지만 그럭저럭 비쥬얼 쉐이더 에디터와 파티클 툴도 있다.
        (겜브리오 라이트스피드 정도의 툴 + 비쥬얼 쉐이더 에디터 + 파티클 툴 인듯)
    => 게임브리오처럼 뛰어난? 또는 많은 툴 프로그래머가 필요한 것은 아니지만 그래도 툴 수정이 지속적으로 필요하다!!
    => 게임브리오처럼 프로그래머 친화적인 엔진인듯(게임 안 만드는 회사들은 프로그래머밖에 없어서,,,음)
    => 디퍼드 렌더링을 기본으로 지원한다.=> 디퍼드를 기본으로 한다면 당연히!!
    => 해본 프로그래머가 없다 -> 교육해야 한다,,, -> 이해하기는 좋은 소스이다.!!><
    => 서포트가 매우 좋다.? -> 아티스트들이 직접 데이타를 주고 받으며 한글로 서포트를 받는 것이 가능하다 => 프로그래머가 직접 교육하고 서포트에 질문 보내지 않아도 되니,,,편하다.=> 알파 같은 머리 아픈 문제를 개발사에서 해결하도록,,,,유도 가능+_+

4. 언리얼 엔진 (조금만 써 봤습니다.)
    => 개인적으로 테크니컬 디자이너 친화적인 엔진이라고 생각
    => 뛰어난 테크니컬 디렉터가 필요(디자인 감각있는 플머 또는 플밍 잘하는 디자이너--)
    => 엔진을 커스토 마이즈하고 고쳐야 하는 프로젝트라면 뛰어난 프로그래머가 많이? 필요하다.
    => 코드가 좋다고는 하나, 기본적으로 내용이 방대하므로 수정은 쉽지 않음.
    => 기본적으로 구색? 을 맞추려면 팀 규모가 커지는 듯/

5. 크라이 엔진 (듣기만 했습니다...)
    => 디자이너 친화적인 툴(멋지고 이뻐요.) = 프로그래머 비친화적인 엔진?
    => 이해하고 파악하는 데 상당한 시간 소요(물리 엔진만 봐도 PhysX 를 이용하지 않아서 기존에 PhysX 다뤄본 사람이 있어도;;; 음)
    => 엔진을 수정하지 않고 사용하면 좋다는 소문도( 영화 프리프로 덕션이나,,군사 시뮬 같은거?)
    => 신기술을 제일 빨리 넣는 듯.