Breaking News

Belajar Unity: Inilah 9 Hal Fundamental Game Development Dengan Unity!


Belajar Unity - Saya mengenal Unity saat dunia masih dikuasai oleh Unreal Engine dan Unity cuma game engine anak bawang. Saat itu, sekitar tahun 2009 lah. Belum banyak yang tahu soal Unity. Untuk bisa mengakses Unity kita perlu melakukan login terlebih dahulu. Boro-boro ada penjelasan soal scriptnya yang ajaib, soal mekanime penggunaan fitur-fiturnya saja masih sangat langka.

Hampir 9 tahun telah berlalu dan kini Unity telah menjadi salah satu raksasa Game Engine yang disegani banyak pihak. Puluhan kampus juga telah menetapkan Unity sebagai salah satu standar software yang harus dipelajari untuk membangun simulator, aplikasi AR dan VR, serta tentunya game yang menjadi core utama Unity.



Yang menarik adalah, meskipun kini informasi tentang Unity sudah tersedia di berbagai media seperti buku, video atau pun pelatihan-pelatihan yang diselenggarakan komunitas dan institusi, ada beberapa masalah fundamental mengenai Unity yang sering luput dan terlupakan.

Namanya juga fundamental, seharusnya hal-hal tersebut sudah dipahami oleh para programmer sebelum berkecimpung lebih jauh dan ngoding dengan Unity. Sekedar berbagi pengalaman dari sejuta kesalahan, berikut saya bagikan 9 Hal Paling Fundamental di Unity.

1. Madu Di Tangan Kananmu, Kompas Di Tangan Kirimu


Gambar di atas adalah view standar IDE Unity yang sepintas juga mirip dengan aplikasi grafis 3D seperti 3DMax dan Blender. Coba perhatikan baik-baik. Bagian mana yang paling mencolok dari gambar di atas?

Gizmo.

Yup! Panah tiga warna itu merupakan hal terpenting dalam desain 3D karena sangat membantu dalam melakukan translasi koordinat X,Y, Z. Tapi apakah hanya itu saja fungsinya? Tentu tidak. Ingat jika dunia 3D terdiri dari 360 derajat view yang bisa dilihat dari segala arah. Lalu kenapa panah runcingnya hanya 3? Kenapa pula warnanya merah, hijau dan biru?

Ada alasan kenapa gizmo dirancang demikian. Salah satunya adalah pendekatan Left Hand Rule alias peraturan tangan kiri.

Cobalah gerakan tangan kiri anda ke depan monitor. Angkat jari telunjuk ke atas, jempol ke kanan dan jari tengah ke depan monitor. Sadarkah anda jika jari-jari kiri anda sebenarnya adalah kompas ajaib yang bisa membantu untuk menemukan titik orientasi benda di dunia 3D.


Jempol ditandai dengan panah merah adalah sumbu X.
Telunjuk ditandai dengan panah hijau adalah sumbu Y.
Jari tengah ditandai dengan panah biru adalah sumbu Z.

Unity menganut mazhab koordinat yang ke arah monitor bagian atas adalah Y, sesuai dengan konsesus CSS pada pemrograman HTML5 yang menggunakan keyword z-depth karena sumbu Z dianggap sebagai kedalaman.

Dengan memahami titik awal ketiga sumbu tersebut, anda dapat dengan mudah menentukan arah yang akan menjadi titik acuan pada saat melakukan pemrograman.

Contoh:

Perhatikan gambar berikut.


Dengan mengasumsikan anda sudah memahami fungsi Translate, jika saya mengetikkan kode untuk menggerakan sebuah Cube di koordinat global:

transform.Translate(vector3.forward) 

Akan bergerak kemanakah Cube tersebut?

Jika anda paham Left Hand Rule maka anda tidak akan pusing-pusing lagi untuk menjawab. Forward dalam hal ini pastilah sumbu Z yang ditandai dengan panah berwarna biru.

Entah kebetulan atau memang disengaja, tetapi pewarnaan panah gizmo pada Unity sangat sesuai dengan urutan 3 huruf yang biasa kita dengar.

XYZ = RGB

De Javu ya?

Satu hal lagi, bagi para pengguna Blender, anda pasti paham jika semua objek yang anda impor ke Unity pasti akan mengalami kesalahan orientasi dan perlu dikalibrasi ulang. Kenapa?


Karena Blender menganggap koordinat Z adalah koordinat ke atas monitor dengan sumbu X dan Y membentuk bidang datar. Hal ini tentu saja sangat berbeda dengan Unity yang koordinat Y adalah koordinat atas monitor dengan sumbu X dan Z membentuk bidang datar.

Anyway, biarpun berbeda sudut pandang, tetap saling bersahabat dan jangan saling mencela ya.

#2019UnityPilihanku

2. Ada Pelangi Di Matamu, Tapi Bukan Di Kameramu



Ada satu pertanyaan klise yang muncul setiap kali saya mengajar Blender atau Unity. Kenapa pada saat dirender/diplay, tampilan yang muncul tidak sama dengan tampilan saat mendesain.

Ya iyalah!

Jika anda pernah melihat Behind The Scene film The Avengers, maka anda pasti akan berkomentar:

"Kok waktu syuting latarnya cuma ijo-ijo doang? Kenapa pada saat jadi film bisa jadi keren?"



Ini konsep yang sederhana tapi bisa jadi mumet bagi seorang pemula.

Intinya adalah ada 2 tampilan yang perlu anda pahami. Tampilan untuk anda selaku developer dan tampilan untuk audience selaku user/player. Perbedaan tampilan ini terletak pada Camera Preview.

Setiap kali anda klik GameObject MainCamera, ada sebuah kotak kecil di pojok kanan bawah yang menunjukkan seperti itulah nanti tampilan yang diterima oleh user/player.


Saya tidak tahu apakah Unity 'nyontek' teknik Blender dengan fitur Lock Camera To View-nya, tapi yang jelas, Unity juga punya fungsi simpel untuk menyamakan apa yang anda lihat dengan apa yang akan user anda lihat nanti.

Nama fungsinya: Align With View (Ctrl+Shift+F)

Anda hanya perlu mengaktifkan GameObject MainCamera, atur posisi sesuai dengan sudut pandang anda, klik dan voila. What you see, is what your camera see.


Fitur ini sangat handy. Asli!

3. Dicopot-copot, Panelnya Dicopot-copot!



Tahukah anda jika Unity memiliki lebih dari 20 panel utama dan hanya 5 panel saja yang paling sering kita pakai? Apa saja itu? Panel Hierarchy, Panel Scene, Panel Game, Panel Inspector dan Panel Assets (Project Window).

Sisanya, jarang-jarang dipakai. Kecuali jika gamenya sudah mulai kompleks, seperti membutuhkan animasi, tilemap, sprite atlas dan sebagainya.

Anyway, Unity sangat paham jika Bhinekka itu Tunggal Ika. Maksud lo?

Setiap orang, terutama developer, punya kebiasaan yang berbeda dan punya feel yang berbeda. IDE Unity adalah jenis IDE paling flexibel yang pernah ada. Unity memang hadir dengan layout default yang merupakan layout standar. Namun Unity juga membuka diri untuk 'diacak-acak' dan 'diobok-obok' layoutnya sesuai dengan kebutuhan developer.

Adapun salah satu yang suka ngacak-ngacak Layout adalah mbak Aurore Dimopoulos, cosplayer profesional sekaligus content producer official Unity. Mbak Aurore memilih untuk mengubah layout standard Unity menjadi seperti berikut.


Kenapa?

Bagi anda yang pernah ngutak-ngatik Unity pasti paham jika script Unity yang unik kadang membutuhkan parameter tambahan dari GameObject yang sudah ada di dalam Hierarchy. Sehingga seringkali anda melakukan drag-drop mouse dari ujung kiri (panel Hierarchy) ke ujung kanan (panel Inspector).

Dan itu tidak terjadi satu dua kali. Tapi bisa puluhan bahkan ratusan kali!

Mbak Aurore yang tidak begitu mahir ngoding menemukan jalan pintas untuk mempersingkat keribetan drag-drop GameObject tersebut dengan merapatkan 2 panel utama yang saling berhubungan yaitu Hierarchy dan Inspector.

Bagi sebagian orang hal ini sangat sepele. Namun bagi saya, ini sangat jenius! Itulah sebabnya saya pun memutuskan untuk melakukan hal yang sama. Yang nyaranin Content Producer Official Unity loh, bukan saya!

4. Jutsu Unity: Kage Bunshin No Prefab!


Unity menerapkan konsep Reusability dengan sangat baik. Dengan Unity jika kita mampu satu buah GameObject yang komplit dan mampu berinteraksi, katakanlah, misalnya GameObject musuh yang bisa berpatroli dan mengejar karakter secara otomatis, maka itu sudah cukup bagi kita untuk menciptakan 1000 GameObject serupa lainnya.

Namanya adalah Prefab.

Prefab yang merupakan kependekan dari Prefabrication adalah sebuah GameObject yang telah dilengkapi dengan model, animasi, material dan bahkan script sehingga menjadi objek mandiri yang bisa digunakan berulang kali.

Untuk menjadikan sebuah GameObject menjadi prefab, langkah resminya adalah dengan klik menu Create > Prefab. Langkah ini akan menghasilkan sebuah icon baru berwarna putih di panel Assets.

Terus terang, saya ragu ada yang masih memakai cara ini.


Cara paling cepat untuk membuat Prefab adalah dengan melakukan drag drop langsung dari panel Hierarchy ke panel Assets. Sebuah Prefab biasanya ditandai dengan icon berwarna biru muda.

5. Jangan Ada Rahasia Input Di Antara Kita


Ketika pertama kali saya membedah kodingan Unity, saya terkejut sekaligus terkesima saat membaca perintah: GetAxis("Horizontal"). Seumur-umur saya ngoding 3D menggunakan TV3D, VegaPrime dan Spatial Ace baru kali ini saya menemukan bentuk koding yang super ajaib.

Kodingan ajaib super singkat ini ternyata bisa mendeteksi tombol-tombol keyboard untuk arah horizontal seperti panah kiri dan kanan serta huruf A dan D sekaligus. Keren nggak tuh?

Keren sih keren. Tapi bikin bingung.

Unity sama sekali nggak ngasih penjelasan soal kenapa koding yang singkat itu bisa menghasilkan sesuatu yang sangat powerful.

Sampai saya menemukan rahasianya di menu Project Setting > Input. Ah, rupanya semua kunci keyboard ini di setting di sini.


Ngomong dong dari dulu!

6. Siang Malam Aku Mencari Cimin



Sejak pertama kali dirilis, Unity diperuntukkan untuk pembuatan game berjenis First Person Shooter (FPS). Dengan sedikit modifikasi pada perspektif kamera, game jenis ini juga bisa diubah menjadi Third Person Shooter. Dan dengan sedikit imajinasi, ilusi, dan halusinasi, anda bisa membuatnya menjadi bergenre Third Person Horor Shooter.

Jangan repot-repot gugling untuk mencari lebih jauh tentang jenis genre di atas.

Saya cuma ngarang.

Pada tahun 2012, saya dikejutkan oleh game asal Bandung yang berjudul Dread Out. Setahu saya, game ini merupakan game pertama berbasis Unity yang sukses bikin heboh jagat dunia nyata, dunia maya sekaligus dunia lain.

Sejak saat itu pula banyak sekali game serupa yang 'meniru' Dread Out dengan segala macam modifikasinya.

Salah satu keunggulan Unity adalah kemampuan transformasi seluruh objeknya, termasuk Light.
Dengan sedikit putar-putar arah lampu, anda bisa menciptakan efek siang malam.


Dan dengan sedikit bereksperimen dengan berbagai jenis cahaya, anda bisa menciptakan suasana malam yang kelam. Untuk yang satu ini, anda bahkan tidak perlu ngoding.

Yang ingin saya tekankan di sini adalah, membuat game ala Dread Out sangat mudah di Unity. Namun membuatnya menjadi begitu terkenal dan populer adalah satu hal yang lain lagi. Hanya karena anda bisa membuat mekanik ala Dread Out bukan berarti anda juga bisa membuat game anda diproduksi ke layar lebar bukan?



7. Jual Asset Cepat Tanpa Perantara!



Salah satu faktor keunggulan Unity yang membuatnya mampu menyaingi sang raksasa Unreal adalah adanya dukungan Asset Store. Ada sekitar ribuan package dan script yang tersedia di sana. Anda hanya perlu memilih beberapa yang sesuai dengan kebutuhan anda. Import dan langsung capcus.

Well, itu untuk yang versi gratis. Untuk yang versi berbayar, ya bayar dulu lah. Masa ngutang?

Satu hal yang sering dilupakan oleh para developer Unity adalah Asset Store adalah sebuah market place digital untuk berjualan.

Jika selama ini orang-orang selalu berpikir untuk membuat game dengan Unity dan memasarkannya di Google Play Store atau App Store, kenapa jarang sekali ada orang yang berpikir untuk membuat package yang keren dan menjualnya di Asset Store?

Untuk bisa berjualan di Assets Store, anda tidak perlu menjual game. Anda hanya perlu membuat sebuah package yang bisa membantu orang-orang lain membangun game impian mereka.

Mulia banget kan?

8. Angin Tak Dapat Membaca



Jika hati anda tersentuh, atau mendadak telinga anda mendengar bisikan lagu saat membaca judul di atas, saya ucapkan selamat! Itu artinya anda sudah tua. Hanya anak 90an saja yang paham dengan arti Angin Tak Dapat Membaca.

Maksudnya begini, sebagai sebuah proses development, seorang programmer dalam membangun gamenya pasti mengalami error bukan?

Error bukanlah sesuatu yang perlu ditakuti, tapi perlu dipahami untuk dicari solusinya. Masalahnya bagaimana mencari solusi saat game anda mengalami error?

Bacalah Errornya.


Bahkan seorang dokter nggak bisa ngasih obat kalau belum tahu penyakitnya. Ini logika yang simpel.

Pada Unity, anda harus selalu memperhatikan panel Console yang menjadi kunci terhadap performa game anda. Yang paling sering saya alami, setiap kali ada mahasiswa yang mengalami error, mereka akan selalu bilang:

"Error pak!"

"Errornya apa?"

"Nggak tahu. Pokoknya error aja. Nggak jalan gitu pak!"

Ya eyalah! Yang namanya error nggak jalan kali coy!

Bacalah Errornya.


Memang dibutuhkan waktu untuk  langsung dapat menemukan solusi terhadap setiap jenis error yang terjadi. Namun sebagai langkah awal bagi pemula, untuk setiap error yang anda temukan, jangan langsung kebelet pengin mendapatkan solusi.

Sekali lagi, bacalah Errornya. Resapi maknanya baik-baik.

Selalu ingat, solusi apa yang dibutuhkan untuk setiap error yang muncul. Dengan menerapkan hal ini, Insya Allah anda akan dapat menjadi programmer yang ulung.

9. Cukup Ayu Ting Ting Yang Merasakan Alamat Palsu



Bagian ini dikhususnya bagi anda yang sedang membangun game berbasis Android. Unity adalah game engine multi platform. Artinya, Unity bisa digunakan untuk membangun game untuk PC, HTML5, Android bahkan sampai PS4 dan XBOX sekalipun.

Masalahnya adalah dari 10 orang ada 7 yang mengalami gagal build pada Android.

Penyebabnya satu.

Alamat palsu.

"Dimana.... dimana... dimana.... Kuharus... mencari... kemana..."



Unity TIDAK BISA membuild game android. Camkan itu!

Unity hanya bisa berkomunikasi dengan Android SDK dan "meminta bantuannya" untuk membuild hasil kodingannya ke dalam ekstensi *.APK alias Android.

Sehingga untuk membangun game berbasis Android anda perlu menginstall Android SDK dan JDK terlebih dahulu. Setelah itu anda juga perlu mengintal Unity Android Build Support yang merupakan jembatan penghubung antara Unity dan Android SDK.

Sudah sampai situ?

Belum. Anda perlu menyertakan alamatnya pada Unity Preferences.


Tanpa menyertakan path yang benar, anda hanya akan menjadi korban lain seperti Ayu Ting Ting.

"Dimana.... dimana... dimana.... Kuharus... mencari... kemana..."

Tambahan:
Jika anda seorang Game Developer atau Game Artist yang membutuhkan game assets gratis, saya sudah mengumpulkan beberapa di antaranya di sini. Semoga bermanfaat.





belajar unity
belajar unity untuk pemula
belajar unity pdf
belajar unity3d pemula
belajar unity dari dasar
belajar unity3d
belajar unity pemula
belajar unity 3d pdf
belajar unity c#
belajar unity android
belajar unity 3d
belajar aplikasi unity
belajar coding unity
belajar script c# unity
cara belajar unity3d
belajar script di unity
belajar membuat game dengan unity
belajar buat game dengan unity
belajar augmented reality dengan unity
belajar membuat game di unity
belajar dasar unity 3d
belajar unity engine
belajar membuat game unity
belajar buat game unity
belajar unity indonesia
belajar javascript unity
belajar membuat game menggunakan unity
belajar menggunakan unity
belajar bahasa pemrograman unity
belajar script unity
belajar software unity
belajar tutorial unity
tempat belajar unity
belajar c# untuk unity
web belajar unity
belajar unity 2d

No comments