게임 기획자가 왜 C 언어를?

sangheon의 이미지

게임 기획자가 게임 개발 중에 스크립트를 사용해야 한다고 C를 공부하고 있더군요.
(물론 본인이 희망이 아니라 회사에서 시킨 것)

요즘 개발자도 C를 배우네마네 말이 많은데, 하물며 게임 기획자보고 스크립트를 쓴다고
C를 공부하라고 하는 의도는 뭔지 참 궁금해지는군요.

요즘 비개발자들이 손을 댈만한 참 좋은 언어들이 많은데 C를 앞세운 것은 잘 이해가되지
않는 부분이군요.

neogeo의 이미지

C 언어를 배우고 다른 언어를 배우면 새로운 언어가 나와도 익히는 속도가 빠를 수 있기 때문이죠. ( 반드시 그런건 아니지만요 )

오히려 다른 언어를 배우는데 방해가 될 수도 있지 않느냐 라고 할 수도 있지만, 기본적으로 말씀하신 상황에서는 주로 이벤트나 스테이트에 대한 '절차지향' 적인 코딩을 하실 확률이 높기 때문에 C 언어가 도움이 될 수 있을겁니다.

즉 어떤 스크립트언어가 main 이 될지 모를때, C 언어를 배워두면 엄청 도움이 될 수 있습니다.

- 추가적으로 제 생각이지만 C/C++ 로 game core 가 만들어지고 보통 Lua 로 binding 해줘서 기능을 빼줄텐데 C/C++ 조금이라도 아시면 일이 아주 편해질겁니다. Lua 만 아는것보다 100배 능력있어 보이 실 수 있겠지요 :)

Neogeo - Future is Now.

Neogeo - Future is Now.

novice의 이미지

물론 알고 있으면 좋겠지만 일부러 C를 배워야 할 필요까지는 있을까 싶네요.

플랫폼에 따라서는 배워야 할 필요가 있을 수도 있겠습니다만 선뜻 이해가 가지는 않는군요.

네가 기획한 걸 구현하려면 이 고생을 해야 한다는 걸 알려주려는 건 아닐 테고..'-';

I don't belong here..

ahsan의 이미지

업무 이해도가 월등해지죠
제 생각에는 디자이너도 C를 배운다면
많은 도움이 될것 같습니다.

novice의 이미지

예, 확실히 프로그래밍에 대한 이해가 있으면 개발팀과 긴밀한 피드백을 할 수가 있습니다.

물론 그건 개발자들도 마찬가지일 겁니다.

게임 개발자들이 미학과 재미이론을 배우고, 스케줄 관리나 문서 작업에 좀더 익숙해지면 다른 파트의 작업도 이해하기 쉽고 업무 능력에도 향상이 오겠죠.

하지만 왜 그런지 다들 자신의 분야 외에는 좀 무시하는 경향이 있고 배우려고 하지를 않더군요 '-';

개발자들이 요구하는 것과 기획자들이 요구하는 것은 사실 비슷한 것 같습니다. 좀더 자신의 일을 이해해 달라는 거죠.

I don't belong here..

snowall의 이미지

기획서를 C언어로 작성해서 줄지도 몰라요 ㄷㄷㄷ

--------------------------
피할 수 있을때 즐겨라!
http://snowall.tistory.com

피할 수 있을때 즐겨라! http://melotopia.net/b

JuEUS-U의 이미지

C를 간단하게라도 활용하지 못한다면, 다른 언어라고 잘하겠습니까 = ㅅ=);;;
포인터만 제외하면 C는 정말로 쉬운 언어죠....

snowall의 이미지

그렇죠. 포인터만 뺀다면...

--------------------------
피할 수 있을때 즐겨라!
http://snowall.tistory.com

피할 수 있을때 즐겨라! http://melotopia.net/b

select99의 이미지

포인터를 알아야할이유중하나가 프로그래밍을위한것뿐만아니라 개념정립을위해서라도 필요하죠.

특히 게임개발이라면 꼭알아둬야할것같군요

더구나 개발을안하더라도 C를알면 어떤방법론을 제시할수 있죠..
특히나 자바같은경우 제공되는기능을 사용하는측면이강해 제공되지 않는기능은 거의 손을데지못하는반면.
C는 제공되는기능은 미미하나. 새로운기능도 스스로 만들고 개척해나갈수 있는언어죠.
게임같은경우 그저다른게임이나 별다를게 없는것을만드는경우보다 새로운게임을 만드는경우가 대부분이기때문에..
특히 알아두어야할게 아닌가합니다.

haze11의 이미지

포인터를 제외하면.. 이미 C가 아닌겁니다. =.=

select99의 이미지

그런생각도 듭니다.

요즘보면 워드작업을하는건지 프로그래밍을 하겠다는건지..
개념없이 뭘한다는건지..

컴퓨터란건 어떻게 생겨먹은놈인지 모르겠고.. 나는 내생각데로 컴퓨터가 움직이게 만들겠다?

과연 컴퓨터가 그렇게 움직여줄까...너무 막혀있고.. 자기본위라는생각밖에안들죠..

보통 여성운전자가좀 자동차에는 무관심하고. 어떻게 생겨먹은놈인지 알기도 싫고

그저 내가 움직이고자 하는데로 움직이게만하려고 운전하죠.(여성비하같아좀죄송합니다만..)

그러다보니.. 특히 엑셀 꽝 밟거나. 반클러치 주행하고. 브레이크 왈칵밟고(자동차가 굴러만가면될게 아니냐식인데..)

더구나 이런운잔자에게 운전설명해주다보면 느끼는게..

원론적인 이야기를 해주면..자기는그런거 알기싫다는겁니다 그저운전이나잘하고 싶다는거죠....(그게가장빠른방법인줄모르고..)

그렇다고 캐이스마다 결론이나 조작방법을 알려주면.. 수많은캐이스에 질려합니다..또한알고 있다하더라도 정확히 조작해내기힘들구요..

즉, 원론을 알고나면 모든것이 응용이되어 저절로 대처할수 있지만. 그걸모르고 캐이스마다 암기해서 최적화를 유도해내려니..

불가능한것이지요.

결국이런사람도 오래하다보면 고생끝에 우회해서 원론을 알게될수밖에 없다는것이지요..

(그래서 항상강조하는게 그렇게 쉽게만가려하지말고..원리부터 알고 가라고 강조하죠..늦은것같지만. 그게가장빠른길이라고)

dalmagi의 이미지

사람 위주가 아니라 기계에 대한 관점이군요.

모든 사람이 엔지니어가 될 필요는 없고, 더구나 게임기획자는 프로그래머가 아니잖습니까.

오히려 시스템과 현실에 대한 지식이 기획자의 자유로운 상상력을 제한하는 기제로 작용할 것 같습니다. 그것은 프로그래머의 몫이겠죠.

게임제작자는 마치 영화의 감독의 역할과도 닮아 있어서 두루두루 모든 분야를 빼놓지 않고 섭렵한다면 나쁘진 않겠지만 그의 첫번째 역량은 컴퓨터 공학에 대한 지식이 아닐 것 입니다.

마치 외국인과 소통 해야할 일이 거의없는 근무환경의 회사와 입사 지원자의 영어능력에 대한 컴플렉스와도 닮아 있는 것 같습니다.

화이팅(fighting) 말고 화이트닝(whitening) 하면 안되나요.

select99의 이미지

윗글은 개발자(프로그래머)에대해서 한 얘기구요..
주제글에서도 개발자에대한 얘기가 잠시나왔기에 쓴겁니다.

망치의 이미지

기획자가 프로그래밍을 어설프게 하는경우에 더 골치아파지는 경우도 있을 수 있지 않을까요.
조금 배운뒤 이제 마스터했다는듯이 복잡한걸 쉽지 않느냐며 억지 부리면 난감할듯..

---------------------------------------
http://www.waitfor.com/
http://www.textmud.com/

neogeo의 이미지

게임개발계에서는 native / script 영역을 철저하게 분리하여 절대 기획자에겐 script 부분만을 열어줍니다. ( 좀 더 잘 아는 기획자라면 필요한 함수목록을 받아서 스스로 script 에 binding 까지는 할 수 있겠지요. )

어설프게 기획자가 프로그래머 일에 손댈수도 없고, 손댈리도 없으며, 억지를 부릴리는 더더욱 없습니다. 그런 걱정은 하지 않으셔도 됩니다.

거꾸로 프로그래머들이 어설프게 기획자가 기획하는 것에 감놔라 대추놔라 하는 케이스가 훨씬 많습니다. 철저히 분업된 회사라면 분명히 월권이죠.

제일 문제는 뭔가 우리나라는 분야별로 서로 대립하려는 성질이 너무 큰데 사실 기획자와 프로그래머가 서로 긴밀하게 협조해야만 합니다. 그래도 재미있는 게임이 나올까 말까 하죠.....

Neogeo - Future is Now.

Neogeo - Future is Now.

ukira의 이미지

요즘 편한 언어들 많은데 굳이 캐릭터 배열 만들어서 메모리 할당하고,
포인터 쓰고 할 필요는 없는거 같은데요.

언어를 배우는거는 표현 방식에 대해서 배워야 하지, C처럼 저수준(어찌보면 지식 노가다)까지 다뤄야할 필요가 없다고 봅니다.
python이니 ruby니 아니면 php라도, 이정도 수준에서 이해하면 충분할꺼 같은데,
하필이면 C언어랍니까.

select99의 이미지

그건 너무 단편적인 생각입니다..

편하다는 의미는 사람마다 관점이 다르겠지요..

포인터쓰는데는 그만한이유가 있고.. 또 그게 편하라고 있는것이지 불편하라고 있는게 아닙니다.

즉, 포인터는 편리한도구지 프로그래머를 골탕먹이려 있는도구가 아닙니다.

물론 처음보는사람은 어렵게 느낄수 있겠지요.. 일반인들은 미적이란놈이 왜있는지 골치아픈대상이겠지만.

과학자들이 미적분이 얼마나 고마운(도구?)인지 두말하면 잔소리지요..

배열을사용하거나 포인터를사용하거나. 메모리할당하거나... 하는데는 다그만한 이유가 있고 기능이다르고.

결과가다른것입니다. 그런데 없이 전부 그냥 자동으로만처리하는게 편하다구요?

그건 특히나 코어를 개발하는입장에선 매우불편한언어입니다.. 특히나 게임은 성능이 매우중요한부분을 차지하죠.

아무리 하드웨어가 좋아졌다해도 게임은 더빠른엔진을 개발하면 그만큼더화려하고 멋진게임을 만들수있죠.

8명이서 멀티게임을 할수있는것을 16명이서 할수있게된다는 의미죠..

더구나. C가 반드시 불편한(? 그런게 뭔지몰라도) 방향으로만 코딩해야된다는것 또한 잘못알고 계신겁니다.

다른언어에는 되는데 C 에는 안되는게 있나요?

C가 오래된만큼 라이브러리나 공개된코드 들도 무지많습니다. (C만큼많은게 있을까요..)

C컴파일러만 딸랑깔고.. 라이브러리가 부족하다..이러면 할말이 없죠..

winner의 이미지

다른 언어도 포인터가 하는 역할을 하는 무언가를 쓰긴 해야 합니다. 그건 동의합니다.

하지만 C언어가 저수준에서 이루어지는 작업이 많은데 쓰이는 만큼 언어차원에서 지원하는 보호장치가 적기에 전문 programmer가 아닌 사람들에게 권장되는 것은 그걸 가지고 작업하라고 이해하기에는 무리가 있는 것 같습니다.

select99의 이미지

저수준작업도 쉽게컨트롤할수 있다는 장점이 있지요..

그래서 C언어는 고급언어이면서 저급언어의 장잠을 동시에 보유하고 있기로 유명하죠.

축구선수가 외모가뛰어나서 CF까지 찍는다해서 장점이면 장점이었지 단점이 될이유는 없는것이죠.

님이 생각하기에 아무리 장점을위해 존재하는 기능이 초보자가 사용하기엔 없는게 나을수도 있다고 생각하신다면

안사용하시고 해도 다른언어와 비슷하게 구현가능하죠..

더구나 님말을 역으로 생각해보면, 숙련된개발자에겐오히려 있어야할기능이고 그러한좋은기능이 없는
단순한언어로 개발하라하는것또한 무리가 될수 있다는 논리가 성립하지요..

숙련자에게 좋은기능을 사용하지말고 단순언어로 개발하라는건
수학자에게 항상 논문쓸때 수식을쓰지말고.
전문가수준이 아닌 일반인수준에 맞추어 소설쓰듯 말로풀어쓰라하는 그런 격이죠..
말하자면 UpGrade 가아닌 DownGrade 하자는말밖에 안되는것이지요.

winner의 이미지

기획자가 그런 숙련자가 되어야 한다고 생각하시나요?

select99의 이미지

위에글은 개발자를 염두에두고 쓰긴했습니다만..

기획자가 언어를 배워써야할일이 있다고하더라도 이왕이면 함께일하는 개발자가 쓰는 같은언어를 아는게 유리하지 않을까요?

아마도 쉘스크립트 사용하고.. 그냥 개발자가 사용하는언어 어떤것인지..공부차원에서 보라는의도로 보입니다.

나는오리의 이미지

배워서 나쁠건 없죠.