Skip to content
s2quake edited this page Apr 27, 2018 · 5 revisions

개요

크레마란 게임 개발에 필요한 데이터를 만들고 생성된 데이터를 게임에서 사용할 수 있게 해주는 프로그램입니다. 동시 편집이 가능한 크레마는 게임 디자이너와 프로그래머가 동시에 참여해서 자신이 구현하고자 하는 부분에 대한 데이터를 만들 수 있습니다. 크레마 서버의 데이터는 svn에 저장되기 때문에 언제든지 이전 데이터를 열람할 수 있으며 필요에 따라 특정 시점으로 돌아가거나 복구가 가능합니다. 또한 크레마 클라이언트 프로그램에서 제공하는 비교 기능으로 서로다른 데이터의 차이점을 확인할 수 있으며 데이터를 병합할 수 있습니다.

이렇게 게임 개발중에 만들어진 데이터는 실제 게임에서 사용할 수 있도록 바이너리로 변환이 가능합니다. 또한 언어별(c#, typescript, c++)로 바이너리 데이터를 읽어들일 수 있는 코드를 생성할 수 있습니다. 코드에는 바이너리 데이터를 읽어들이는 부분 뿐만 아니라 타입과 테이블의 데이터를 쉽게 사용할 수 있는 부분도 생성됩니다. 그리고 쉽게 데이터를 열람할 수 있도록 각 테이블 코드에는 Find 메소드가 만들어집니다.

어원

크레마는 에스프레소를 추출할때 상단에 생기는 거품층을 나타냅니다. 쓴맛이 강한 에스프레소에 비해 거품층은 부드러우며 색상이 황금색이라 미관상 보기에 좋습니다. 에스프레소를 마실때 크레마가 함꼐 마시면 쓴맛이 중화되는 느낌을 주기도 합니다. 게임 개발 데이터을 만들기 위한 과정은 정말 복잡하며 사용되는 기술도 참 많습니다. 일반적으로 사용되는 mssql, mysql 등 데이터 베이스 관리 툴을 보면 정말 복잡하고 사용하기 힘듭니다. 에스프레소가 이런 복잡하고 어려운 게임 데이터 개발에 비유하자면 크레마는 쓴맛을 중화 시켜주듯이 게임 데이터 개발을 좀더 쉽게 생성하고 사용할수 있게 해주는 역할을 합니다.

시작하기에 앞서 크레마의 서버는 svn 기반으로 제작되어 있습니다. svn에 설치되어 있지 않다면 아래 링크에서 svn을 받아 설치해야 합니다.

참고로 크레마 서버에서 사용된 svn은 tortoisesvn이며 버전은 1.9입니다.

https://tortoisesvn.net/

솔루션 구성

server.sln

cremaserver 를 빌드하고 실행할 수 있는 프로젝트가 포함되어 있습니다.

client.sln

UI 기반의 클라이언트 crema와 콘솔 기반의 클라이언트 cremaconsole 을 빌드하고 실행할 수 있는 프로젝트가 포함되어 있습니다.

tools.sln

코드와 바이너리 데이터를 추출하는 콘솔 기반 프로그램인 cremadev와 여러가지 다양한 툴의 프로젝트가 포함되어 있습니다.

crema.sln

배포하기 위해 server, client, tools를 모아둔 솔루션입니다.

라이선스

크레마에서는 3개의 유료 라이브러리를 사용합니다. 콘솔 기반 프로그램에서는 라이선스가 없어도 횟수 제약이 있기 때문에 실행하는데는 지장이 없지만 UI 기반 crema는 라이선스가 없으면 실행이 되질 않습니다. crema는 Releases 에서 다운로드 받아 실행하시기 바랍니다.

라이선스 입력 방법은 소스 폴더에서 licenses 폴더내에 해당 파일을 열어 키를 입력하시고 저장하시면 됩니다.

프로그램 구성

cremaserver

콘솔 기반 크레마 서버 구동 프로그램입니다.

cremaserver.exe run repo-path dataBaseNames ...
  • run : 크레마 구동을 위한 실행 명령어입니다.
  • repo-path : 크레마 구동시 저장소 경로를 나타냅니다.
  • dataBaseNames ... : 생략 가능하며 서버 구동시 활성화될 데이터 베이스 목록을 나타냅니다.
    • 구동시 default 데이터 베이스를 활성하고자 하면 default를 입력하시면 됩니다.
  • 크레마 서버 구동시 기본 포트는 4004입니다. 다른 포트를 사용하고자 할때는 --port를 사용하시면 됩니다.
    • cremaserver.exe run repo-path --port 5005

윈도우 서비스를 사용할 수도 있습니다. 명령 프롬프트를 관리자 권한으로 실행뒤에 아래와 같이 실행하시면 됩니다.

cremaserver.exe service install repo-path

crema

UI 기반 크레마 클라이언트 프로그램 Alt text

예시처럼 명령줄을 통해서 실행할 수 있습니다.

crema.exe --address crema://userID:password@address/dataBaseName

기본 포트가 4004가 아닌 서버에 접속시에는 포트값이 필요합니다.

crema.exe --address crema://userID:password@address:port/dataBaseName

cremaconsole

콘솔 기반 크레마 클라이언트 프로그램입니다. 크레마 서버 접속후 REPL 환경을 제공하여 각종 크레마 관련 명령을 수행할 수 있으며, 자바스크립트를 실행하여 자동화 작업을 수행할 수도 있습니다.

REPL

cremaconsole.exe connect address

Javascript 실행

cremaconsole.exe run javascript.js

cremadev

콘솔 기반 크레마 코드 및 바이너리 데이터 생성 프로그램입니다. 지원되는 코드는 c#, typescript, c++ 입니다. 기본값은 c#입니다.

cremadev.exe get address output-Path
  • get : 코드와 바이너리 데이터를 가져오기 위한 명령입니다.
  • address : 가져올 서버의 주소를 나타냅니다. 기본 포트는 4004이며 생략될 수 있습니다.
  • output-path : 코드와 바이너리 데이터가 생성될 경로이며 바이너리 데이터의 이름은 crema.dat 입니다.
  • --lang : 출력 언어를 지정할 수 있으며 기본값은 c#입니다. 타입스크립트는 ts이며 c++는 cpp 입니다.

typescript

cremadev.exe get address output-Path --lang ts

c++

cremadev.exe get address output-Path --lang cpp