gosu 엔진을 사용하기로 결정했다

며칠간 Ruby로 어떤 클라 게임 엔진을 사용할지 선택의 기로에 놓여있었다.

후보는 mkxp-z와 gosu인데, 후자를 사용하는 것으로 결정내렸다.

mkxp-z vs gosu

mkxp-zgosu
1. IDE 디버깅 여부XO
2. 한글 IME 지원OX
3. ruby 설치선택필수
4. 프로젝트 규모무거움가벼움
5. RGSS 호환성높음낮음
6. 라이센스GNUFree
7. 클라이언트 변조쉬움 (mkxp.json, rxdata 수정)모름 (ocra 빌드로 rb 스크립트를 캡슐화 할 수 있을 것으로 기대)

1. IDE 디버깅 여부

내가 gosu를 사용하려는 결정적인 요인이다.
이걸 지원하지 않으면 아무리 좋은 엔진이라도 사용하기가 꺼려진다.
대부분에 디버깅에 많은 시간을 써야 할텐데, 예전에 했던 p/print/콘솔 출력 등을 이용하는 디버깅은 더 이상 하고 싶지 않다.

2. 한글 IME 지원

  • mkxp-z: 한글 입력을 지원하는데, gosu에서는 영어만 지원한다.
  • gosu: 한글 입력이 가능하도록 소스코드를 변경할 수 있을지는 알 수 없다.

3. ruby 설치

  • mkxp-z: 미리 만들어진 dll의 루비 라이브러리를 사용할 수 있기 때문에 루비 설치가 필요 없다.
  • gosu: 개발 시에는 반드시 설치해야 한다.

4. 프로젝트 규모 / 5. RGSS 호환성

  • mkxp-z: 프로젝트를 exe로 빌드하려면 1-2시간은 소요된다. 그만큼 의존성도 높고 코드가 방대하다. 대신 기존 RGSS과의 호환성도 좋고 확장성도 높은 것으로 보인다.
  • gosu: gosu 라이브러리를 직접 빌드해 본 경험은 없지만, gosu 웹사이트에서 미니멀한 의존성만 갖고 있다고 언급해서 mkxp-z 보다는 빌드 속도가 빠르지 않을까 기대하고 있다.

6. 라이센스

7. 클라이언트 변조

  • mkxp-z: 플레이어는 mkxp.json을 마음대로 수정할 수가 있다. 또한 rxdata와 루비 스크립트가 노출되어 손쉬운 클라이언트 코드 수정이 가능하다. 반가운 상황은 아니다.
  • gosu: 아직 해보진 않았지만 ocra 라는 프로그램으로 루비 스크립트를 하나의 exe 바이너리로 만들 수 있다. (https://github.com/gosu/gosu/wiki/Ruby-Packaging-on-Windows)

gosu는 connect_nonblock을 사용할 수 있는 것도 덤으로 남긴다.

댓글

  1. 읽어봤습니다만 타당한 이유인 것 같습니다. 특히 라이센스 문제도 그렇구요. OCRA는 저도 써봤는데, 프로그램이 약간 거대해졌던걸로 알고 있습니다.

    답글삭제
  2. 다만 어느 쪽을 택하든 많이 고생하시긴 하겠네요.... 화이팅입니다.

    답글삭제
    답글
    1. 이제 선조들이 만든 RM-Gosu를 많이 참고 해봐야겠습니다. ㅎㅎ

      삭제

댓글 쓰기