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

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

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

mkxp-z vs gosu

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

1. IDE 디버깅 여부

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

2. 한글 IME 지원

  • mkxp-z: 한글 입력을 지원한다. 
  • 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를 많이 참고 해봐야겠습니다. ㅎㅎ

      삭제

댓글 쓰기