"C#으로 게임제작이 가능할까요?" 나 "XNA로 PC게임 만들면 어때요?"는 몇년이나 지난 떡밥이지만,
아직도 여러 게시판에서 덥썩 무는 쓰레드들이 많다.
이 떡밥이 오래가는 이유 중 하나는, 절대 도전과 모험을 하지 못하는 한국 업체들의 특징과
동인게임을 제작할 능력자도 극소수인 현실이 맞물려 명확한 답, 다시 말해 선례를 보여주지 못하는 탓이 아닐까 싶다.
(머, 남말할 필요도 없다. Rhea君 스스로조차 안하고 있으니... ㅠㅠ)
본론으로 돌아와 이 질문에 대답은 osu!로 충분할 것 같다.
osu!는 2007년(와!!)에 peppy(http://osu.ppy.sh/)나온 리듬게임으로 PC용은 놀랍게도 C#와 XNA로 제작되었으며 NDSL로도 출시되어 있다.
당연히 .NET Framework 2.0 이상이 필요하며, FFDShow필터를 이용해 오버레이를 사용, 동영상 위에서 리듬 액션을 가능하게 한다.
쉬운 곡부터 극악의 난이도까지 다양한 이 게임은, 실시간 채팅과 실시간 레이팅으로 전 세계를 상대로한 도전욕심을 불러일으킨다. 다만 게시판을 통해 제공되는 여러 곡들과 동영상에 대한 저작권은 의심된다.
다만 듀얼모니터에서 창모드로 실행시킬 경우, 드래그에서 모니터를 바꾸면 게임이 초기화되는 점은 아쉽다.
알기론 XNA에 이런 한계는 없었지 싶은데 렌더러와 씬매니져쪽을 보강했으면 한다.
또한 게임 내에서 새로운 곡에 대한 에디팅 기능이 제공되는데 놀라운 편의성과 UI가 게임 자체보다 더 대단하게 느껴진다.
마지막으로 C#으로 만든 프로그램이면 누구나 한번 시도해보는 IL 디스어셈블!
osu!는 ILDASM.EXE에서 열리지 않는다!
C#으로 어떻게 하면 이게 가능한지 궁금하다. 제법 쓸만한 프로텍트 솔루션이 나왔는지 알아봐야겠다.
기술적으로 아쉬운 점은 네트워크 대전이 안된다는 점인데 게이머로써 아쉬운게 아니라 개발자로써 C#의 소켓 능력이 궁금하기 때문이다. 물론 OSU!는 레이팅 기록에 중점을 두는 게임이라 기획측면에서는 별로 아쉬움이 없을 것이다.
결론적으로 OSU!는 C#, 아니 XNA를 플랫폼으로 사용하였지만, 성능이나 보안에 있어 특별한 헛점이 없는 게임이다.
기존 Native 라이브러리에 대한 문제와 미련이 없다면, XNA로 게임을 개발하는 것에 대한 어떤 기술적 문제는 없다는게 개인적인 생각이다.
(다시 말해, 국내 업체들은 네트워크나 온라인이 대세인지라 소켓 라이브러리와 거기에 얽힌 패킷 라이브러리, 보안 솔루션이 걸림돌이지 렌더러나 메인 프로그램이 걸림돌이 아닌 것이다. XNA에서도 HLSL는 100% 호환되니까.)
최소한 렌더러 쪽으로 Native(결국 C++)에 비해 손해는 없는 것을 확인하기 위해서 몇가지 osu! 플레이 동영상을 올린다.
걍 동영상 오버레이를 설명하기 위해...
니코니코 조곡 때문에 중독된 가챠가챠 피규@메이트
마지막으로 극악을 자랑하는 마리사는 소중한 것을 훔쳐갔습니다.
