1. 아이펀 엔진 설치하기

이 챕터에서는 개발환경을 꾸미기 앞서, 먼저 아이펀 엔진을 설치하는 법에 대해서 설명합니다.

아이펀 엔진은 Ubuntu 16.04 LTS or 14.04 LTS (64bit) 혹은 CentOS 6 혹은 7 (64bit) 환경에서 동작합니다. 또한 C++ 과 C# 언어를 지원합니다.

C++ 개발을 위해서 개발자는 Linux shell 에서 개발 하거나, Linux에서 GUI IDE 인 CLion 으로 개발 하거나, MS Windows에서 VisualStudio로 개발 하실 수 있습니다.

C# 개발을 위해서는 Linux에서 GUI IDE 인 Monodevelop 으로 개발 하실 수 있습니다.

1.1. Ubuntu 16.04 LTS or 14.04 LTS (64bit)

1.1.1. Ubuntu 준비하기

먼저 Ubuntu 14.04 / 16.04 리눅스가 필요합니다. 만일 설치된 Ubuntu 가 없다면, 아마존 AWS 같은 클라우드 서비스를 통해서 간단하게 설치하실 수도 있고, 아니면 사용하고 계신 컴퓨터에 Hyper-V 나 VMware 나 VirtualBox 같은 솔루션을 이용해서 가상 머신으로 Ubuntu 를 설치하실 수도 있습니다. (이 경우에는 Ubuntu 설치 이미지가 필요하실텐데, Ubuntu releases page 에서 설치 이미지를 받으실 수 있습니다.)

Important

반드시 64bit 버전의 Ubuntu 를 설치하셔야 됩니다. iFun Engine 은 32bit Ubuntu 에서 동작하지 않습니다.

14.04 LTS 에 대해서는 2019년 3월까지 지원하며, 새롭게 18.04 LTS 에 대한 지원을 준비중입니다.

Ubuntu 를 설치 한 후에는 아이펀 엔진을 사용하기 위해 APT 저장소를 설정해야 됩니다.

1.1.2. 자동으로 APT 저장소 설정하기

Ubuntu 용 아이펀 엔진 자동 설정 패키지 를 다운받아 더블 클릭해서 설치하거나, 터미널 창을 열어 다음 명령을 실행합니다.

$ sudo apt-get install wget apt-transport-https
$ wget https://ifunfactory.com/engine/funapi-apt-setup.deb
$ sudo dpkg -i funapi-apt-setup.deb

Important

이 방법은 아래 서버들과의 통신이 필요합니다. 외부로 나가는 트래픽을 막는 방화벽이 있는 경우 아래 서버들로 나가는 트래픽을 열어주셔야 됩니다.
  • www.ifunfactory.com (54.65.9.158; 향후에 바뀔 수 있습니다)
  • keyserver.ubuntu.com (PGP key server; optional)

1.1.3. 수동으로 APT 저장소 설정하기

만일 외부와 통신을 못하게 방화벽이 설정되어있는 경우, 앞의 자동 설정 방법이 동작하지 않을 수 있습니다. 이런 경우에는 수작업으로 아이펀 엔진의 PGP 키를 추가하고 apt 저장소를 추가하셔야 됩니다.

다음 내용을 ifunfactory.gpg.key 로 저장해주세요:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFHLrjgBCACzI7l8y1nygGN1b0XwgEDdBZGUlaTZhyHs1Y2VLBmYm3dgyRHp
qLfHhVGZm1FXzT1X7GlGgQRV+GsyeXNUHWcY794UwZMCM4h0mGDGXX1eR2objUNZ
tVE9VzoXwKwnu7mKJGXgSm+olZKQ43wPnr7Keyap42yKSJv3GBkMmfKjwnjTooLk
g62wwpJa3AOZBBqLwHKt0BYVRT/7ILXJnW4NqDoQPeT1y3Iqt1KxsaR1Ik+byh3g
UUvDqgFRXPW+HDkB265MbQgXHmPTGih8j7ygZz1dM5pJQ//bMqNHmbDPZSwLt0Wb
yB6UNbO9W5ZENCz4h7+3utYAvwERqdZ/nxKZABEBAAG0L0Z1bmFwaSBTdXBwb3J0
IDxmdW5hcGktc3VwcG9ydEBpZnVuZmFjdG9yeS5jb20+iQE4BBMBAgAiBQJRy644
AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCj9+/dSTj/5jzNB/45CD2R
Bv8CrB+ErIVeFjXuhqYwg2fuAdQcXbVpla5rhrvHjGEbCl35kKqEPFP09YvWReIi
i3kK1yF7zNxyk/9N3GUZpIEgbyEuNVjkizPjrs+DWx0j6oZZQLrsEflUMxfALAmr
v3n6fB6XeCk2Hd83XBoqZSHKfzLPFUynS7e2/Vte4UVKbgFPsypPXazYrqvq4ej2
bnHva6/aUakti+A+l8Cs0kf2WzrwOp47PcceT5N0/mwF5XslwaiqH6q+6iGNLdj0
9hjzRcdZ5My/Do6rGXcFJJY17U72HGFTUCU8RXZRTBY2EfjAV6zQlKlaO/Aw0eWX
7UMXUhc+CLv+aZOxuQENBFHLrjgBCAC/xHRd1tH2zs8nplyI3EYRyWqF82waGIyK
SnV/pJ4CCc2YuECnQV0RvoOtZiuwmB3CuNTSEEyAfwU/K3tMsvczMN04MjQGvSA1
4it7xIkg24Qcx0O46JBwvihR4sZ8O/j6X/nVV4pN4zUg5PQh///yn/R7mVH2sWVW
WE5ZpZ1G/eA/fSiqdmZPOjFW9SWsVgPXvyKCM0b5lCjMlbwZspx8YGblJtDqCtWW
Ip2RnGTCSkSo4kRauDU+iGYojUsgsmUSxjtdGZHa41g5HDRoIcL3e40UYe3el7Sx
Aa+lV529kHAZCWtDfS7MoqtE7gvHSGoJAK+2nCAEfw1mz0Ja+XELABEBAAGJAR8E
GAECAAkFAlHLrjgCGwwACgkQo/fv3Uk4/+Y36Qf/VPov5n+h4pEzKspA6hHezD4J
rw9rVCQ/BvidBerV4VvL+oH5ghBV5QeAvd2TyccuKdZJsikAM9wUM1MS+Y4Akno7
vgIKO/7sGGkbAkgSG4vvfG4W9EQ0GqFycaTl9zpiNUrUri5vGNK2PC6p9uXxXmdQ
3iHe1c5+5jvLKCzOdC+Er2E949PzsMuI2L4viNp72J6ilm62RJ+/Pg1rOaRmTH1H
ax7L3Hwsy0GXeubKaeDizvBeKcv6e08DqI2TCllmd8NkR6OSLuks4yHDU1ztAa0c
+RcnddKag+TCYwto617oMZvCPaic/d6AjW3OL48PFNUPpfBeZEJ8B8tm16HxaQ==
=p+5n
-----END PGP PUBLIC KEY BLOCK-----

그리고 수동으로 위 키를 추가해주세요:

$ sudo apt-key add ifunfactory.gpg.key
OK

다음으로, 아래 내용을 /etc/apt/source.list.d/ifunfactory.list 로 저장해주세요:

deb [arch=amd64] https://www.ifunfactory.com/apt/ trusty non-free foreign

Note

만일 16.04 Xenial 을 사용한다면 trusty 라는 글자를 xenial 로 바꿔주세요.

1.1.4. 아이펀 엔진 설치하기

APT 저장소 설정 후에는 저장소에서 패키지 리스트를 받아오고 funapi1-dev 를 설치합니다.

$ sudo apt-get update
$ sudo apt-get install funapi1-dev

위 명령을 실행하면 아이펀 엔진 게임 개발을 위한 개발 패키지와 run-time 패키지, 그리고 의존성이 걸려있는 패키지들이 모두 설치됩니다.

1.1.5. (선택) 같은 서버에 MySQL, Zookeeper 설치하기

같은 서버에 MySQL 서버와 분산기능을 위한 Zookeeper 서버를 동시에 실행할 예정이라면 다음 패키지도 같이 설치합니다. 보통 개발 환경의 경우 서버 한대에 모든 것을 설치하는데 이런 경우에 해당됩니다.

$ sudo apt-get install mysql-server
$ sudo service mysql start

$ sudo apt-get install zookeeper zookeeperd
$ sudo service zookeeper start

Important

위의 방법대로 아이펀 엔진을 설치할 경우 일주일간 유효한 임시 라이센스가 자동으로 발급됩니다. 아이펀 엔진 홈페이지의 테스트 라이센스 신청 페이지 에서 6개월짜리 테스트 라이센스를 신청해서 받아보실 수 있으니 꼭 확인해보세요.

1.2. CentOS 6 혹은 7 (64bit)

CentOS 를 사용할 때는 Ubuntu 와 과정은 동일하되, 패키지 관리자로 apt 대신 yum 을 이용하게 됩니다.

1.2.1. CentOS 준비하기

먼저 CentOS 서버를 준비합니다. 만일 CentOS 서버가 없다면, Ubuntu 에서와 마찬가지로 아마존 AWS 에서 가상 서버로 만드실 수도 있고, 아니면 본인 데스크탑에 Hyper-V 나 VMware 나 VirtualBox 를 이용해서 가상 서버로 설치하실 수도 있습니다. (후자의 경우는 설치 이미지가 필요한데, CentOS 다운로드 페이지 에서 구하실 수 있습니다.

Important

반드시 64bit CentOS 6 나 7 을 설치하셔야 됩니다. 그 이하의 CentoOS 는 지원되지 않으며, 32bit 버전도 지원되지 않습니다.

CentOS 를 설치한 후에는 아이펀 엔진을 사용하기 위해 YUM 저장소를 설정해야됩니다.

1.2.2. 자동으로 YUM 저장소 설정하기

CentOS용 아이펀 엔진 자동 설정 패키지 를 다운받아 더블클릭해서 설치하거나, 터미널 창을 열어 다음 명령을 실행합니다.

$ sudo yum install epel-release wget
$ wget https://ifunfactory.com/engine/funapi-yum-setup.rpm
$ sudo rpm -Uvh funapi-yum-setup.rpm

1.2.3. 아이펀 엔진 설치하기

저장소 설정 후에는 저장소에서 패키지 리스트를 받아오고 funapi1-devel 를 설치합니다.

$ sudo yum update
$ sudo yum install funapi1-devel

위 명령을 실행하면 아이펀 엔진 게임 개발을 위한 개발 패키지와 run-time 패키지, 그리고 의존성이 걸려있는 패키지들이 모두 설치됩니다.

1.2.4. (선택) 같은 서버에 MySQL, Zookeeper 설치하기

서버 한대로 개발 환경을 꾸릴 예정이라면, 같은 서버에 MySQL 서버와 분산기능을 위한 Zookeeper 서버도 같이 설치합니다. CentOS 6 인 경우 다음을 입력합니다.

$ sudo yum install mysql-server
$ sudo service mysqld start

$ sudo yum install zookeeper
$ sudo service zookeeper start

CentOS 7의 경우 다음을 입력합니다.

$ sudo yum install mariadb-server
$ sudo systemctl enable mariadb
$ sudo systemctl start mariadb

$ sudo yum install zookeeper
$ sudo systemctl enable zookeeper
$ sudo systemctl start zookeeper

Important

위의 방법대로 아이펀 엔진을 설치할 경우 일주일간 유효한 임시 라이센스가 자동으로 발급됩니다. 아이펀 엔진 홈페이지의 테스트 라이센스 신청 페이지 에서 6개월짜리 테스트 라이센스를 신청해서 받아보실 수 있으니 꼭 확인해보세요.

1.3. 배포판 타입 선택하기

아이펀 엔진은 안정화 배포판인 stable 과 시험 배포판인 experimental 배포 타입을 제공합니다. 저장소 자동 설정 패키지를 설치하셨다면 stable 로 자동 설정됩니다. 그리고 funapi_select_repo 라는 명령을 이용해서 배포판 타입을 변경할 수 있습니다.

1.3.1. 현재 배포판 타입 확인하기

현재 선택된 엔진의 배포판 타입과 실제로 설치된 엔진의 패키지 저장소 정보는 다음과 같은 방법으로 확인할 수 있습니다.

$ funapi_select_repo
Current repository: stable
Current package: funapi1-runtime_1.0.0-1661xenial: stable

위 명령어의 결과를 보면 현재 선택된 배포판 타입은 stable 이며, 설치되어있는 엔진은 stable 임을 알 수 있습니다.

Note

아래 설명된 것처럼 설치 후 배포판 타입을 바꿀 수 있기 때문에, 선택된 배포판 타입과 설치되어있는 배포판 타입은 다를 수 있습니다.

1.3.2. 배포판 타입 변경하기

아이펀 엔진의 안정화 배포판판은 stable, 새로운 기능들이 추가되는 시험 배포판은 experimental 로 구분됩니다. experimental 배폰안은 안정성이 확인 된 다음에 stable 배포판으로 변경되게 됩니다.

다음과 같이 funapi_select_repo 명령어 뒤에 사용할 배포판 타입을 인자로 주고 명령을 실행하면 사용하는 배포판 타입을 변경할 수 있습니다:

$ sudo funapi_select_repo experimental
Activating iFunEngine experimental repository
기존:1 http://mirror/ubuntu xenial InRelease
받기:2 http://mirror/ubuntu xenial-updates InRelease [95.7 kB]
받기:3 http://mirror/ubuntu xenial-backports InRelease [92.2 kB]
받기:4 http://mirror/ubuntu xenial-security InRelease [94.5 kB]
받기:5 http://mirror/ubuntu xenial-updates/main Sources [194 kB]
받기:6 http://mirror/ubuntu xenial-updates/universe Sources [99.1 kB]
받기:7 http://mirror/ubuntu xenial-updates/main amd64 Packages [396 kB]
받기:8 http://mirror/ubuntu xenial-updates/main i386 Packages [390 kB]
기존:9 https://www.ifunfactory.com/apt xenial InRelease
받기:10 http://mirror/ubuntu xenial-updates/universe amd64 Packages [335 kB]
받기:11 http://mirror/ubuntu xenial-updates/universe i386 Packages [331 kB]
받기:12 http://mirror/ubuntu xenial-security/main Sources [42.8 kB]
받기:13 http://mirror/ubuntu xenial-security/universe Sources [10.2 kB]
받기:14 http://mirror/ubuntu xenial-security/main amd64 Packages [152 kB]
받기:15 http://mirror/ubuntu xenial-security/main i386 Packages [148 kB]
받기:16 http://mirror/ubuntu xenial-security/universe amd64 Packages [44.4 kB]
받기:17 http://mirror/ubuntu xenial-security/universe i386 Packages [44.4 kB]
받기:18 https://www.ifunfactory.com/apt xenial/non-free-experimental amd64 Packages [9,290 B]
내려받기 2,478 k바이트, 소요시간 0초 (4,525 k바이트/초)
패키지 목록을 읽는 중입니다... 완료

위 명령을 보시면, 노란색으로 하이라이팅 된 것처럼 experimental 배포판이 활성화 되고 자동으로 패키지 목록이 갱신됨을 알 수 있습니다. 다시 인자 없이 funapi_select_repo 를 실행하면 다음과 같이 배포판이 바뀐 것을 알 수 있습니다.

$ funapi_select_repo
Current repository: experimental
Installed funapi1-runtime does not belong to stable repository
Current package: funapi1-runtime_1.0.0-1661xenial: experimental

이 후에 apt-get upgradeyum update 명령을 이용해서 필요한 버전을 설치하시면 됩니다.

Tip

아이펀 엔진 패키지들은 버전 번호에 빌드 번호를 포함하고 있습니다. experimental 으로 내보낸 후 안정화 기간을 거친 후 stable 로 내보내기 때문에 일반적으로는 experimental 배포판이 stable 보다는 높은 빌드 번호를 가지고 있게 됩니다.

이 때문에 stable 에서 experimental 로 변경하는 경우 대부분의 경우 apt-get upgradeyum update 만으로 experimental 배포판의 최신 버전으로 업그레이드 가능합니다. 그러나 그 반대로 배포판을 변경하거나, stable 배포판에 긴급하게 hot fix 수정을 적용하는 경우 앞의 명령으로 자동으로 설치되지 않는 경우가 있을 수 있습니다. 이 경우는 다음처럼 upgrade 대신 install 뒤에 희망버전을 명시해서 해결할 수 있습니다.

  1. Ubuntu 의 경우: $ sudo apt-get install funapi1-dev=희망버전 funapi1-runtime=희망버전 libfunapi1-mongodblogger=희망버전 python-funapi1-dev=희망버전
  2. Centos 의 경우: $ sudo yum install funapi1-devel-희망버전 funapi1-runtime-희망버전 python-funapi1-devel-희망버전

다시 안정화 배포판인 stable 을 선택하려면 다음 명령을 이용합니다:

$ sudo funapi_select_repo stable

1.4. 삭제하기

아이펀 엔진을 제거하려면 설치할 때와 마찬가지로 apt-get 을 이용합니다. 다음 명령은 iFun Engine 관련 모든 package 를 제거합니다.

$ sudo apt-get purge funapi1-*

Attention

잠깐! 만일 아이펀 엔진 사용의 불편 사항이 있어서 제거하시는 것이라면, 이메일로 저희 쪽에 불편한 내용을 알려주시면 대단히 감사하겠습니다.