iFun Engine has trial and commercial licenses available. Our pricing for the commercial license can be found on the iFun Engine website.
49.1. Trial license¶
You can use iFun Engine with a trial license for 1 week. If you need additional time to evaluate, you can get a trial license application page from the iFun Engine website to request a 6-month trial license. Be sure to check it out.
49.2. Using a license file¶
If you have purchased a commercial license or a 6-month trial license, you will receive a license file called account.ilf.
49.2.1. When working directly on a Linux server¶
If you are currently working on a Linux server, you can make a directory called /etc/ifunfactory/ and copy the license file into this directory.
$ sudo mkdir /etc/ifunfactory $ sudo cp /path/to/account.ilf /etc/ifunfactory/ $ sudo chmod a+rX /etc/ifunfactory /etc/ifunfactory/account.ilf
49.2.2. When working remotely on a Linux server¶
If you are currently using a Windows PC and plan to run iFun Engine remotely on a Linux server, use a file copying program that supports SCP or SFTP, like WinSCP, FileZilla, or PSCP/PSFTP to copy the license file to the Linux server and copy it to /etc/ifunfactory/ as above. The following is an example of file copying using WinSCP.
22.214.171.124. Copying a license file using WinSCP¶
- Download and install WinSCP.
- Connect to your Linux server with WinSCP.
Choose SCP or SFTP as the file protocol and enter Host Name and User name, then click Login to connect to the server.
- The right panel in WinSCP shows the server-side directory. Choose the home directory here. (If the account name is ubuntu, the default is /home/ubuntu.
The left panel of WinSCP shows the Windows PC directory currently in use. Find account.ilf and click Upload.
- Download and run Putty. Enter the exact Host Name used above and click Enter.
- When the server is accessed, it asks for the ID and password. Enter the ID and password you used above to log in. Then use the following command: ($ is a shell prompt and not typed.)
$ sudo mkdir -p /etc/ifunfactory $ sudo mv account.ilf /etc/ifunfactory/ $ sudo chmod a+rX /etc/ifunfactory /etc/ifunfactory/account.ilf
49.3. Troubleshooting licensing problems¶
49.3.1. When the server automatically shuts down after a set period of time¶
... E0202 00:08:49.916679 5918 main.cc:97] You are using non-production license. iFun Engine stops after running for 30 minutes. To run fully functional iFun Engine, contact firstname.lastname@example.org
In the trial version, the game server automatically shuts down after 30 minutes. If you have an official license, use the account.ilf file.
In the trial version, /etc/ifunfactory/account.ilf starts like this:
# This is an evaluation license file for iFun Engine. # # If you have a contract with iFunFactory Inc., please use your copy of # account.ilf instead of this. # # This license expires by Wed Feb 11 13:43:59 KST 2015. 1cc6917c261580cafc91267875b0fec62e8a5d0954d5b12dc7c9372378 ...
49.3.2. When the server terminates with the message, “Failed to find a valid account.ilf”¶
If the server terminates as follows, it means there is no license file in the /etc/ifunfactory/ directory or the Linux user executing iFun Engine does not have permission to read this file.
$ ./proj_name-local I0204 13:21:42.998123 5741 main.cc:143] Crashreporter initialized; .dmp will be written to /home/ubuntu/work/proj_name/build/logs/../dumps E0204 13:21:43.182199 5741 capability.cc:433] Error response; ec=0; status=400 E0204 13:21:43.182586 5741 capability.cc:438] Error: Incomplete request E0204 13:21:43.182627 5741 capability.cc:69] Failed to find valid account.ilf, which usually resides on /etc/ifunfactory/account.ilf. ./proj_name-local: line 51: 5741 Killed $FUNAPI_BIN_DIR/funapi_runner ...
In such cases, upload account.ilf again and check that the user using iFun Engine has permission to read the file.
49.3.3. When the server terminates with the message “account.ilf: not in valid datetime-range”¶
ubuntu@vm:~/example-build/debug $ ./example-local I0218 23:06:12.701092 22481 main.cc:145] Crashreporter initialized; .dmp will be written to /home/ubuntu/example-build/debug/logs/../dumps E0218 23:06:13.480649 22481 capability.cc:258] account.ilf: not in valid datetime-range E0218 23:06:13.481799 22481 capability.cc:70] Failed to acquire license ./example-local: line 51: 22481 Killed $FUNAPI_BIN_DIR/funapi_runner --main_program_name=$component_name --framework_manifest_path="$manifests" --main_enabled_components=$ComponentName --resource_root="/home/ubuntu/example-build/debug/resources" --max_log_size=10 --stop_logging_if_full_disk --log_root_dir="$FUNAPI_LOG_ROOT_DIR" --crashdump_root_dir="$FUNAPI_DUMP_ROOT_DIR" --alsologtostderr "$@"
Each account.ilf file has an expiry date. Once that date has passed, logs like account.ilf: not in valid datetime-range appear. If you are using a trial license, email iFun Engine support with the period you need. If you have a valid license, iFunFactory sends a new license file before the current one expires.
49.3.4. When the server terminates with the message “Error: Your system time is not correct”¶
ubuntu@vm:~/example-build/debug $ ./example-local I0218 23:07:23.996897 22494 main.cc:145] Crashreporter initialized; .dmp will be written to /home/ubuntu/example-build/debug/logs/../dumps E0218 23:07:25.630452 22494 capability.cc:434] Error response; ec=0; status=400 E0218 23:07:25.631985 22494 capability.cc:439] Error: Your system time is not correct E0218 23:07:25.632563 22494 capability.cc:70] Failed to get response from license server ./example-local: line 51: 22494 Killed $FUNAPI_BIN_DIR/funapi_runner --main_program_name=$component_name --framework_manifest_path="$manifests" --main_enabled_components=$ComponentName --resource_root="/home/ubuntu/example-build/debug/resources" --max_log_size=10 --stop_logging_if_full_disk --log_root_dir="$FUNAPI_LOG_ROOT_DIR" --crashdump_root_dir="$FUNAPI_DUMP_ROOT_DIR" --alsologtostderr "$@"
If you get a message reading Error: Your system time is not correct as above, it means your server time is incorrect. In this case, it cannot communicate correctly with the licensing server.
$ sudo ntpdate -u ntp.ubuntu.com
Reset the server time using ntpdate