Anda di halaman 1dari 25

PEMROGRAMAN GAME

JOB SHEET MINGGU KE 14

Dosen : Nurseno Bayu Aji, S.Kom,M.Kom


NIP : 1991032019031010

PROGRAM STUDI TEKNIK INFORMATIKA


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2020/2021
Input Mobile
Saat  bermain Game di PC, kita menggunakan tetikus (mouse), keyboard,  atau
gamestick console sebagai peranti input (input device). Berbeda dengan bermain di
gawai (gagdet) versi mobile.  Salah satu kelebihannnya adalah banyak variasi inputan
dari sensor-sensor. Permainan di mobile pun menjadi lebih interaktif. Berikut ini
adalah jenis-jenis input yang familiar yang terdapat pada mobile:

Touch

Sebuah telepon pintar (smartphone) atau tablet tentunya menggunakan sentuhan


(touch) sebagai navigasi menu atau menelusuri  konten. Tepatnya, ada 2 jenis
sentuhan, antara lain: 

Single Touch, mendeteksi 1 jari yang digunakan untuk mengklik atau men-tap
sebuah tombol. Untuk mendeteksi 1 jari, gunakan inputan yang sama dengan tetikus.
Contohnya sebagai berikut:

1. // Update is called once per frame


2. void Update ()
3. {
4.     // dijalankan ketika di touch/klik
5.     if (Input.GetMouseButtonDown (0))
6.     {
7.         Debug.Log ("Ketika ditekan");
8.     }
9.     // dijalankan selama di touch/klik
10.     if (Input.GetMouseButton (0))
11.     {
12.         Debug.Log ("Ketika ditahan");
13.     }
14.     // dijalankan ketika melepaskan touch/klik
15.     if (Input.GetMouseButtonUp (0))
16.     {
17.         Debug.Log ("Ketika dilepaskan");
18.     }
19. }

Multi Touch, dapat mendeteksi 1 jari yang dapat digunakan untuk zoom


in atau zoom out sebuah tampilan atau fitur lain.

. void Update ()
. {
.     // jika terdapat 2 touch
.     if (Input.touchCount == 2)
.     {
.         // inisialisasi kedua touch ke variable
.         Touch touchZero = Input.GetTouch(0);
.         Touch touchOne = Input.GetTouch(1);
.         // mencari posisi kedua touch
.         Vector2 touchZeroPrevPos = touchZero.position;
.         Vector2 touchOnePrevPos = touchOne.position;
.         // menampilkan kedua posisi touch di console
.         Debug.Log("touch 1: "+touchZeroPrevPos+", touch 2:
"+touchOnePrevPos);
.     }
. }

Untuk mengetahui lebih dalam tentang  penggunaan Touch, baca  tautan berikut:
https://docs.unity3d.com/ScriptReference/Touch.html.

Accelerometer

Sensor ini digunakan ketika memiringkan gawai atau mengubah posisi dari
portrait ke landscape. Selain itu, accelerometer juga dapat mendeteksi getaran pada
gawai. Contoh sebagai berikut:

Mendeteksi rotasi gawai, contoh sederhananya, sebagai alat kemudi pada


simulator mobil atau mengontrol pesawat terbang.

Contoh Kode:

. // Update is called once per frame


. void Update ()
. {
.     // jika terdapat inputan acceleration
.     Vector3 acc = Input.acceleration;
.     Debug.Log("Acceleration 1: "+acc);
. }

Sementara itu, untuk mendeteksi getaran dan penerapan  sederhananya pada game
dadu, kita bisa melihat contoh kodenya di Detect shake motion on a mobile device.

Gyroscope
Sensor ini sama seperti accelerometer tetapi gyroscope tidak dipengaruhi oleh
gravitasi. Gyroscope bekerja berdasar prinsip momentum sudut sehingga sensor ini
merupakan prasyarat untuk memainkan game VR.

. // Use this for initialization


. void Start ()
. {
.     Input.gyro.enabled = true;
. }
.  
. // Update is called once per frame
. void Update ()
. {
.     Quaternion gyro = Input.gyro.attitude;
.     Debug.Log("gyro: "+gyro);
. }

Quaternion adalah variabel yang digunakan untuk menyimpan nilai rotasi pada


sebuah GameObject. Untuk input Touch pada Mobile, kita  bisa membuat 3 model
inputan.

 Button
 Analog
 Touchpad

Ketiga model inputan di atas sudah disediakan oleh Unity. Anda dapat
menggunakan Plugin CrossPlatformInput yang terdapat di StandardAssets.

Praktik: Menggunakan Plugin CrossPlatformInput

1. Alihkan terlebih dahulu Platfrom dari PC ke Mobile (Android/Tizen/iOS/dll).


Pada platform Android:  klik menu File > Build Settings... > kemudian
pilih Android > klik Switch Platform).
2. Untuk menambahkan Plugin CrossPlatfromInput, dapat dilakukan dengan
pilih Menu Assets > Import Package > CrossPlatformInput.

3. Kemudian masukkan semua berkas dan asset dengan klik tombol Import.


4. Setelah Package berhasil di-import, buka folder Prefabs yang terdapat pada
path Assets/Standard Assets/CrossPlatformInput/Prefabs. Maka muncul 5
prefabs seperti di bawah ini:

Terdapat 5 jenis controller, antara lain:

o CarTiltControls, Memiliki Input berupa 2 button, accelerometer, dan


touchpad. Kontrol ini cocok untuk memberi inputan pada simulasi
Mobil.
o DualTouchControls,  Memiliki Input berupa sebuah button, dan 2
buah touchpad.  Kontrol ini cocok untuk menggerakkan Player di FPS
(First Person Shooter) dengan inputan yang kompleks.
o MobileAircraftControl, Memiliki input berupa touchpad dan
accelerometer untuk menggerakkan pesawat.
o MobileSingleStickControl,  Memiliki Input berupa sebuah tombol
analog dan sebuah tombol. Kontrol ini cocok untuk menggerakkan
Player seperti game FPS, RPG, dll.
o MobileTiltControlRig, Memiliki Input berupa accelerometer. Cocok
untuk menggerakkan objek sederhana.

5. Kemudian drag Prefabs MobileSingleStickControl ke Hierarchy.

6. Karena kita akan membuat fungsi tembak maka field Name pada Button


Handler diganti dari “Jump” menjadi “Fire1”.

7. Kemudian buka script PlayerController.cs dan lakukan beberapa hal berikut:

o Tambahkan library di bawah ini:


1. using UnityStandardAssets.CrossPlatformInput;

o Kemudian pada inputan ubah sebagai berikut:

 Input.GetAxis("Vertical") ubah menjadi


CrossPlatformInputManager.GetAxis ("Vertical").
 Input.GetAxis("Horizontal") ubah
menjadi CrossPlatformInputManager.GetAxis
("Horizontal").
 Input.GetKeyDown (KeyCode.Space) ubah menjadi
CrossPlatformInputManager.GetButtonDown ("Fire1").

o Simpan perubahan dengan tekan Ctrl+S.

Sehingga seluruh kode menjadi seperti berikut:

1. using System.Collections;
2. using System.Collections.Generic;
3. using UnityEngine;
4. using UnityStandardAssets.CrossPlatformInput;
5.  
6.  
7. public class PlayerController : MonoBehaviour
8. {
9.  
10.     public float speed;
11.  
12.     public GameObject ball;
13.     public GameObject titikLontar;
14.     public float powerLontar;
15.     // Use this for initialization
16.     void Start ()
17.     {
18.  
19.     }
20.    
21.     // Update is called once per frame
22.     void Update ()
23.     {
24.         transform.Translate
(0,0,CrossPlatformInputManager.GetAxis("Vertical")*speed*Time.
deltaTime);
25.         transform.Rotate (0,
CrossPlatformInputManager.GetAxis("Horizontal")*60*Time.deltaT
ime, 0);
26.  
27.         //Tekan Space untuk melontarkan Ball
28.         if (CrossPlatformInputManager.GetButtonDown ("Fire1"))
29.         {
30.             GameObject _ball = GameObject.Instantiate (ball,
31.                 titikLontar.transform.position,
titikLontar.transform.rotation);
32.             _ball.GetComponent<Rigidbody> ().AddForce
(_ball.transform.forward
33.                 * powerLontar);
34.             GameObject.Destroy (_ball, 5);
35.         }
36.     }
37. }

Pembahasan:

Pada platform mobile,  CrossPlatformInput memilki keunggulan berupa kontrol


input yang otomatis berganti dengan inputan dari mobile (Touch). Tetapi ketika
berpindah ke platform PC maka secara otomatis kontrol input berganti menjadi
inputan PC (Keyboard, Mouse, gamestick console). Anda dapat
mengganti Gambar pada Source Image dengan gambar yang lebih menarik.

Kemudian pada Axis di bawah ini:

. CrossPlatformInputManager.GetAxis("Vertical")
. CrossPlatformInputManager.GetAxis("Horizontal")

Digunakan untuk memberi nilai inputan analog atas-bawah.

Nama axis yang digunakan adalah nama yang sudah diinisialisasi di Inspector.
Penamaan tersebut mengambil referensi dari nama Axes di Input Manager (menu
Edit > Project Settings > Input).

Sehingga penggunaan kode CrossPlatformInputManager.GetAxis juga mewakili


kode Input.GetAxis.

Kemudian pada kode:

. CrossPlatformInputManager.GetButtonDown ("Fire1")

Penggunaan nama “Fire1” mengacu pada field Name di Button Handler.

Untuk respon dari Button ada 3 kondisi:


1. GetButtonDown, dijalankan ketika tombol tersebut ditekan.
2. GetButton, dijalankan selama tombol tersebut ditekan dan ditahan.
3. GetbuttonUp, dijalankan ketika tombol tersebut dilepas.

Penggunaan GetButtonDown mirip seperti  fungsi pistol untuk melontarkan peluru.

Porting ke Android

Kita masih dalam misi membuat game yang dapat dimainkan di mobile. Setelah
membuat purwarupa (prototype) langkah selanjutnya adalah melakukan
porting. Kemudian, buka SDK manager kemudian update Andorid SDK Tools,
Android SDK Platform-tools, dan Android SDK Build-tools. Kemudian  Anda juga
perlu menginstal SDK Platform yang menjadi peranti target (target device).

Praktik: Menyiapkan Tools yang Dibutuhkan

Kita memerlukan instalasi Java Development Kit (JDK ) dan Android Software


Development Kit (SDK ).

1. Untuk menginstall JDK, unduh di tautan ini :


http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-
3848520.html
Di dalam JDK juga terdapat JRE yang digunakan untuk menjalankan aplikasi
yang berbasis Java.

2. Selanjutnya menginstal Android SDK yang dapat Anda dapat unduh


di https://developer.android.com.
Tetapi saat ini untuk pengguna Unity 2017.3 atau lebih lama, fitur Anda
belum kompatibel/suportif dengan Android SDK versi yang terbaru yaitu
3.0.1.
Sementara waktu, gunakan versi lama berikut ini:
1. http://dl.google.com/android/android-sdk_r22.3-linux.tgz.
2. http://dl.google.com/android/android-sdk_r22.3-windows.zip
3. Buka SDK manager kemudian update Andorid SDK Tools, Android SDK
Platform-tools, dan Android SDK Build-tools. Anda pun perlu menginstal
SDK Platform yang menjadi peranti target (target device).

4. Konfigurasi SDK di Unity dengan cara klik menu Edit > Preferences.. .


Setelah jendela Unity Preferences muncul, pilih tab External Tools dan
masukkan lokasi JDK dan SDK yang telah diinstal.
Jika form Android tidak muncul, berarti Anda belum menginstal module Android
pada Unity. Untuk itu, instal module Android dengan cara klik Menu File > Build
Settings > Switch ke Platform Android kemudian klik tombol Open Donwload
Page untuk mengunduh Module Android lalu Instal.

Praktik: Build APK

Sebelum build ke APK, siapkan pengaturan di Player Settings..

1. Buka Build Settings… (Menu File > Build Settings). Setelah muncul jendela


Build Settings, Switch ke Platform Android kemudian klik tombol Switch
Platform. Setelah itu klik Player Settings.
2. Pada Inspector, tentukan nama Studio atau nama Anda di Company
Name dan nama Game kamu di Product Name. Setelah itu masukkan ikon
di Default Icon. Anda dapat menggunakan ukuran 512x512.

3. Pada Default Orientation di Inspector, Anda dapat memilih Orientation yang


sesuai dengan Game Anda. Jika mode yang digunakan Landscape,
gunakanlah auto rotate Landscape Right dan Landscape Left. Jika game
Anda berbasis VR atau AR baiknya gunakan Landscape Left.
4. Selanjutnya mengatur Splashscreen. Anda dapat menambahkan logo Anda
disisi logo Unity. Selain itu Anda juga dapat mengatur animasi dan latar
belakang (background). Untuk melihat hasil sementara Splashscreen yang
telah dimodifikasi, anda dapat klik tombol Preview.
5. Pada Other Settings, Atur Package Name dengan
susunan com.<NamaStudio/NamaAnda>.<NamaGameAnda>.
Pada Version. setiap ada pembaruan yang besar atau kecil, Anda dapat
mengganti versi. Misalnya terjadi pembaruan besar dari versi 1.0 maka
selanjutnya dapat ditulis 2.0.

Pada Bundle Version Code, setiap build yang akan di-publish, harus bernilai
berbeda dari aplikasi sebelumnya.  Misalnya update yang ke 13 maka
selanjutnya dapat ditulis 14. (ini berlaku jika game/app Anda akan dipublish).

Pada Device Filter, Anda dapat dapat menentukan architecture device yang


support ARM7, x86, FAT(ARM+x86). Jika yang dipilih spesifik maka ukuran
Game Anda akan lebih kecil. Sedangkan jika memilih FAT maka Game Anda
dapat dijalankan dari kedua architecture tersebut, dengan catatan ukuran
berkas akan menjadi lebih besar.
6. Agar APK yang kamu buat dapat di-publish di Play Store, maka Anda harus
memasukkan Keystore. Gunakan keystore yang lama atau dapat juga dengan
membuat Keystore baru.

1. Menggunakan Keystore lama, Klik Browse Keystore >


Masukkan password, kemudian pilih Key Alias dan lalu masukkan
password.
2. Membuat Keystore baru, Centang Create a New Keystore… >
Klik Browse Keystore untuk menyimpan file keystore > buat
password dengan mengisi kedua Keystore password.

7. Lalu pada Key Alias pilih Create a new key > isi biodata dengan baik.
Kemudian masukkan kata kunci (password) yang telah dibuat sebelumnya.
Pastikan Anda hafal kata kunciKeystore dan Key Alias. Sebabnya, setiap
membuat proyek ini dan kemudian akan dikembangkan menjadi APK, kedua
kata kunci tersebut akan rutin diminta.

Pastikan Anda menyimpan keystore dan key Alias dengan baik.

8. Kemudian build ke APK dengan klik Build. Tetapi jika ingin build dan instal


ke peranti, Anda dapat klik Build and Run.
Porting ke iOS

Untuk melakukan porting ke iOS,  peranti (device) MAC memerlukan Xcode.


Xcode  ini digunakan untuk membuat file IPA yang nantinya akan dijalankan di
peranti iPhone, iPad, dan lain-lain. 

Hal-hal yang dibutuhkan untuk mengikuti sub-modul ini, antara lain:

Sebuah komputer MAC yang menjalankan OS 10.12.6 atau lebih baru.


Versi terakhir dari Xcode (tersedia disini).
Kemudian siapkan project yang akan diporting ke iOS.
Praktik: Memasukkan Apple ID ke Xcode

1. Jika belum memiliki Apple ID, maka Anda  dapat membuatnya dengan
mengunjungi situs Apple ID.
2. Buka Xcode yang telah di install kemudian buka menu Xcode > Preferences.

3. Kemudian pilih Accounts, setelah itu klik icon plus “+” setelah itu
pilih Apple ID.

4. Kemudian akan muncul pop-up request Apple ID dan Password. Masukkan


data yang benar. Setelah berhasil maka muncul tampilan sebagai berikut.
Jika Anda menggunakan Apple ID gratis (tidak terdaftar di Apple Developer
Program) maka nama yang ditampilkan adalah nama personal team. Untuk lebih tahu
tentang mengelola akun dan team di Xcode, temukan di Apple Documentation
(https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/
AppDistributionGuide/ManagingAccounts/ManagingAccounts.html)

Praktik: Menyiapkan Unity Project untuk Build ke iOS

1. Buka Project Unity yang telah disiapkan kemudian alihkan Platform ke iOS
dengan klik Switch Platform.
2. Hasil dari build iOS adalah Xcode project. Sehingga diperlukan Xcode untuk
membuat file IPA yang dapat dijalankan di device atau di emulator.
3. Sebelum kita melakukan Build Project, kita harus mengatur Player
Settings terlebih dahulu. Klik tombol Player Settings, atur Nama
Project, Icon, Orientasi Layar, Splashscreen, dan Build Identifier. Sama
seperti pembahasan sebelumnya.

Bundle Identifier adalah sebuah string yang unik sebagai identitas game atau


aplikasi kita. Anda dapat membuat format
seperti com.NamaKamu.NamaGameKamu. Dapat pula menggunakan
karakter seperti alpanumerik, titik dan tanda penghubung. Ketika Bundle
Identifier sudah terdaftar di Personal Team (Apple ID Free) maka ia tidak
dapat di-build ke Apple Developer Program Team yang lain.

*Tips: Jika ingin merilis dengan Apple ID yang berbeda, gunakan


Bundle Identifier yang lain, misalnya
com.NamaKamu.MamaGameKamuTest.

4. Kemudian atur juga Target SDK. Sebabnya, Simulator dan Device memiliki


arsitektur yang berbeda. Simulator menggunakan x86, sedangkan device
menggunakan ARM.
Praktik: Membuat sebuah Xcode project dengan Unity

Setelah selesai melakukan pengaturan Player Settings, selanjutnya membuat Xcode


Project dengan langkah-langkah sebagai berikut:

1. Buka Build Settings kembali dengan klik menu File > Build Settings...


2. Pastikan semua scene yang digunakan sudah terdaftar di Scenes In
Build dengan klik Add Open Scenes untuk menambahkan.
3. Klik tombol build untuk membuat Xcode Project.

4. Supaya lebih rapi, buat Folder baru dengan nama Builds dan simpan misalnya
dengan nama GameFPS.
Praktik: Mencoba ke Emulator dengan Xcode

Setelah selesai melakukan build ke Project Xcode dari Unity, selanjutnya buka project
tersebut di Xcode dan kemudian coba di Emulator. Caranya sebagai berikut:

1. Buka Xcode.
2. Buka Hasil Build Project dari Unity dengan cara klik menu File > Open
> kemudian buka file yang memiliki ekstensi .xcodeproj.

3. Kemudian tentukan iOS Simulator yang akan digunakan.


4. Anda juga dapat membuka simulator dengan klik menu Xcode > Open
Developer Tool > Simulator.
5. Setelah itu, klik tombol Play untuk menjalankan di Emulator.

6. Setelah simulatornya tampil, Anda dapat mengatur orientasi layar. Supaya


tampilan tampak landscape kiri, maka Anda dapat memilih
menu Hardware > Orientation > Landscape Left.

Untuk pengaturan orientasi, Anda juga dapat melakukan dengan menekan


“Command + Panah Kanan atau Kiri”.

Sehingga hasilnya sebagai berikut:


Untuk menghentikan Game yang berjalan di simulator dapat dilakukan dengan klik
Icon Stop.

*Tips: Jika layar terkunci dan sulit untuk swipe ke atas, Anda dapat melakukan
dengan menekan “Command + Shift + H”

Jika ingin build ke device, caranya hampir sama dengan build ke Simulator. Anda
dapat kunjungi di Building your Unity game to an iOS device for testing.

Anda mungkin juga menyukai