'C#게임개발'에 해당되는 글 1건

  1. 2008/12/30 Productivity of C# (3)

Productivity of C#

Game Dev./General 2008/12/30 18:37 posted by sonee

최근에는 집에서 쉬면서 부모님 가게의 전산화를 도와드리고 있습니다.
부모님 가게의 전산화를 위해 유료로 판매되는 모 판매재고관리 프로그램을 구입하여 전산화 작업중인데요.
이게 참 맘에 안드는게 많습니다. 워낙 범용적으로 만들어서 판매하는 제품인지라, 부모님이 운영하시는 가게를 전산화하여 사용하기에는 부족한 점이 너무 많네요.

특히나 대부분 부족한 기능들은 단가 관리 입니다. 환율등에 영향을 받는 품목인 경우 최근처럼 널뛰기 환율에 의하여 가격변동이 심한데, 대부분의 프로그램들은 이렇게 변동된 단가들을 일일이 수작업으로 수정해줘야 하는 번거로움이 있습니다. 그냥 간단히 올릴 품목들을 선택해서 10% 만 입력하면 자동으로 도매가, 소매가, 오도매가 등이 자동으로 계산되면 편할텐데 말입니다.

어쨌건 한 두 달전에 친구랑 밤새서 열심히 입력했던 수천개의 단가들이 변동되었고, 이걸 다시 입력하자니 정말-_- 난감하더군요. 그래서 뭔가 툴을 만들어야겠다.. 라는 생각에 일단 작업에 착수했습니다.

전에 자료를 입력할 때 단순 반복되는 품목들이 많아서(예를들어 규격만 조금씩 규칙적으로 바뀐다거나..) 자동으로 품목과 단가를 입력하는 프로그램을 만들어서 입력했었는데 그때 DB 를 분석했던 기억을 되살려서 진행을 해보았습니다.

많은 분들이 이러한 툴이나 판매재고 관리 프로그램을 만드실 때 Visual Basic이나 Delphi 등을 많이 이용하시는 것 같은데 그걸 쓰면 얼마나 편할지는 잘 모르겠습니다만, 전에 C#을 공부하면서 간단한 윈도우 어플리케이션과 Direct3D 어플리케이션을 만든기억이 있는데 무지하게 편했던 기억이 있어서 C#을 선택하였습니다.

사실 DB 쪽때문에 이거 C++ 을 써야하는거 아닌가 싶었는데 뭐 걱정할 필요도 없이 바로 -_- 되는군요.



DB연동작업도 있고 해서 MFC를 썼다면 대략 작업시간으로 2~3일 분량이었는데, 하루도 안되서 작업이 끝나버렸습니다.
GRID CONTROL 만해도 MFC 를 썼다면 코드프로젝트등에서 이래저래 찾아보고, 삽질하는데도 시간이 좀 걸렸을 텐데 쓸만한 콘트롤들이 기본으로 내장되어 있고, 쓰기도 편해서 개발 시간이 대폭 감소한 것 같습니다.


여튼 C#의 이러한 생산성은 게임을 만들때. 특히나 게임 개발에 필요한 툴을 만들때에도 꽤 큰 잇점이 될 수 있는데요.
많은 프로그래머들이 C#의 속도를 신뢰하지 않기 때문에, 당장 쓰기에 많이 망설이시는것 같습니다.
특히나 엔진은 C/C++ 로 개발하고, 툴만 C#으로 만드는게 사실상 현실적으로 힘들기 때문에, 메인 코어도 C#으로 개발해야 할텐데, C#의 속도 문제때문에 무언가 검증된 결과물이 나오질 않는이상 저라도 어쩔 수 없이 C/C++ 을 사용할 것 같습니다. 일단 다른 개발자들을 설득하기도 힘들구요.;

개인적으로는 C#을 공부해보면서 생각이 드는건데, C#을 게임 개발의 메인 언어로 선택하는게 아주 큰 모험이 되진 않을 것 같다라고 판단이 서는데요. 물론 가장 크게 문제되는건 미들웨어와의 연동이겠지만요. 속도는 D3D를 사용한 간단한 지형 렌더링을 테스트 해본바로는 큰 차이는 없었습니다.
물론 게임에서 여러 데이타 및 메모리 관리가 속도에 가장 큰 영향을 미치겠지만 말입니다. 뭐 이것도 GC만 믿고, 날림으로 만들지 않는 이상 크게 문제될 부분은 없어보입니다. 좋은 메모리 메니지먼트 솔루션들이 많으니까요.

여튼 게임 개발 초기 단계의 언어 선택에 있어서, 당연히 C/C++ 이라기보단 한 번쯤은 C#을 생각해보는게 좋을 것 같습니다.
C/C++개발자라면 아주 쉽게 C#에 적응이 될 수 있고, C#이 가진 이러한 생산성은 게임 개발에 있어서 개발 속도뿐만 아니라 게임의 퀄리티를 높여주는데 분명 아주 큰 잇점이 될테니까요.

아마도 이미 국내에서도 여러 게임 회사에서 C#을 이용하여 게임개발을 진행하고 있고, 또 완료한 회사도 있을 텐데, C#을 이용해서 어떤 잇점을 얻었고, 어떤게 문제였는지 이야기를 해주었으면 좋겠네요.

C#에 익숙해지다보니 다시는 MFC를 사용하여 어플리케이션을 만들기가 싫어졌습니다..-_-;
이올린에 북마크하기(0) 이올린에 추천하기(0)
  1. Commented by Reiot at 2009/01/03 21:51

    요즘은 서버도 C#으로 만든다나~~~

  2. Commented by BlogIcon 마술potato at 2009/01/04 21:33

    C# 짱 좋죠
    회사에서 원하는 언어로 뭔가 만들게 해준다면 C#으로 할 생각이예요 ~_~

  3. Commented by BlogIcon 최재훈 at 2009/01/05 11:55

    음... C#이 3.5로 넘어오면서 엄청나게 최적화됐습니다. 제대로 배워서 쓰면 C++에 거의 근접한 성능을 보여줍니다. 게임에 적용할 때 문제가 되는 부분은 가비지 콜렉션 시점을 조정 못한다(또는 조정하면 오히려 문제가 발생할지도)는 문제가 있습니다. 정 걱정된다면 핵심 라이브러리는 C++로 짜고, 그 위에 C++/CLI로 API를 구성한 다음, 스크립트 같은 것만 C#으로 짜는 방법이 있습니다.