Senin, 29 Juni 2015

SINOPSIS GAME AI "MATCHES"

             Hmm, postingan saya kali ini akan membahas mengenai Game Modifikasi yang saya buat yang saya berinama "Owlish". Game Owlish  merupakan game modifikasi dari game korek api/ matches. seperti namanya, ikon-ikon serta gambar gambar yang saya pakai pada game ini di adaptasi dari gambar burung hantu-burung hantu lucu. Permainan Owlish ini merupakan sebuah permainan yang menggunakan bahasa pemrograman prolog. Kemudian perangkat lunak yang digunakan sebagai program editornya adalah Strawberry Prolog. Permainan Owlish ini merupakan suatu permainan yang diadaptasi dari permainan matches yang terdapat dalam Strawberry Matches.Permainan  Owlish ini erupakan suatu permainan logika dimana user (pemain) melawan komputer untuk memenangkan permainan ini. 

Game ini melatih dan mengasah otak user untuk berpikir mengenai strategi yang digunakan agar dapat mengalahkan komputer. Pemain harus dapat menerapkan strategi yang tepat untuk memenangkan permainan ini.Initial State yang digunakan sebagai acuan untuk membuat aplikasi Owlish adalah background yang digunakan sebagai papan permainannya dengan ukuran dimensi 950x700. Objek yang digunakan sebagai icon yaitu beberapa gambar burung hantu berukuran dimensi yang berbeda-beda yang berjumlah 12 untuk level easy, 18 untuk level medium, dan 24 untuk level hard. Gambar burung hantu tersebut diubah guna untuk  menggantikan objek korek api pada matches yang sesungguhnya. Pada permainan ini, burung hantu pada setiap level akan bertambah dan bentuknya pun akan berubah. Diberikan  5(lima) pilihan icon yang dapat dipilih sesuai yang pemain sukai, agar pemain tidak bosan melihat icon yang itu-itu saja. 

Rules atau aturan main yang digunakan pada permainan Owlish ini adalah sebagai berikut :
1. Permainan ini diawali dengan memilih level sesuai dengan yang user inginkan. Jika user belum pernah bermain game seperti ini, user disarankan untuk memilih level easy.

2. Setelah itu, user diberikan kebebasan untuk memulai game dengan cara memilih dan meng-klik owl yang tersedia, dan selanjutnya akan diteruskan oleh AI (lawan).

3. Pemain dapat mengambil objek burung hantu sebanyak mungkin dengan syarat burung hantu tersebut masih dalam satu kolom dengan susunan objek burung hantu yang dipilih.

4. Jumlah burung hantu yang diambil dapat ditentukan dengan cara perhitungan dari puncak kolom dan mengklik batas dasar jumlah burung hantu yang berada dibawahnya.

5. AI akan melakukan pembelajaran untuk menghalangi user untuk tidak mencapai Goal (tujuan). AI juga melakukan pembelajaran untuk memenangkan permainan ini guna menyingkirkan user.

6. Goal (tujuan) dari game ini tergantung pada opsi yang dipilih. Apabila memilih opsi “Take the last”, maka pemain akan memengangkan permainan apabila berhasil mengklick icon owl yang terakhir, namun sebaliknya jika tidak memilih opsi “take the last” maka pemain akan memenangkan permainan apabila tidak mengambil icon owl yang terakhir tersisa.

GOALS

              Goal untuk menyelesaikan game Owlish  pada strawberry prolog ini adalah pemain harus terlebih dahulu mengambil objek yang ada dan dalam pengambilan objek tersebut, jumlah objek yang akan diambil tidak dibatasi. Hal yang harus dilakukan adalah membuat lawan(computer) untuk tidak mendahului pemain sebelum pemain melakukan pengambilan objek tersebut. Goal (tujuan) dari game ini tergantung pada opsi yang dipilih. Apabila memilih opsi “Take the last”, maka pemain akan memengangkan permainan apabila berhasil mengklick icon owl yang terakhir, namun sebaliknya jika tidak memilih opsi “take the last” maka pemain akan memenangkan permainan apabila tidak mengambil icon owl yang terakhir tersisa. 


Salis Uswatun Khasanah/56412794/3ia09
Pengantar Teknologi Game

Jumat, 03 April 2015

Tutorial Pembuatan Game Flappy Bird menggunakan Unity3D

Salis Uswatun Khasanah/56412794


Tugas Softskill : Pengantar Teknologi Game

Tutorial lengap pembuatan Game Flappy Bird menggunakan Unity3d


Tahap pertama yaitu Set Up project. Dimana set Up Project ini kita akan mengatur keseluruhan asset kita berada seperti  folder Animation, audio, Font, Prefabs, Scene, Script, serta Sprite.
Selanjutnya pilih File - New Project - Kemudian browse


Kemudian buat folder baru yang diberi nama FlappyBird, lalu pilih Select Folder. Karena flappy bird adalah game 2 dimensi, maka  Select folder

karena flappy bird adalah 2d, maka set up default nya yang dipilih 2D. Selanjutnya create:

Setelah di create akan terbuka Unity 3d

Maka selanjutnya akan muncul tampilan seperti berikut:


Pada bagian setup project ini kita mengatur folder apa saja yang ada di project kita. Misalkan project kita ada di folder FlappyBird aset. Jadi yang terdapat pada folder asset ada sprite, audio, script,prefabserta scene. Dimana folder prefab ini merupakan tempat semacam game object yang bias dikerjakan berulang-ulang/reusable.



Setelah itu, kita akan coba atur resolusi pada game kita nantinya. Karena game yang akan kita buat ini  akan diimplementasikan pada android. Maka layout yang kita pakai yaitu portrait dengan ukuran 500 x 800


Selanjutnya kembali ke scene dan kita inputkan set yang akan digunakan. Karena sudah ada maka tinggal di copy saja.
Dicopy pada folder sprite yang telah kita buat sebelumnya.

Pada bagian scene unity akan secara otomatis me refresh apa saja yang tadi telah kita inputkan.

Kita coba masukkan background untuk melihat setting kamera kita. Apakah sudah benar atau belum.


Langsung drag and drop dari bagian hirarki.

Pada bagian scene langsung akan tampil sprites yang kita drag and drop tadi.

Lalu kita cek di game. Game merupakan tapilan output kita nantinya setelah di edit. Jadi misalkan dilihat di game ternyata belum pas. Maka setting  camera yang dirubah dibagian size bias dilihat di inspector bagian dalam camera. Dibagian kamera kita kecilkan hingga pas.

 Jika akan memilih yang lebih pasti lagi, maka bias klik maximize on play, kemudian bisa di play.

Tahap pertama sudah selesai dikerjakan yaitu setup project dan setting scene yang akan digunakan nantinya. Lalu tekan ctrl+s kemudian pada folderscene kita buka dan beri nama MainGame.

Berlanjut ke tahap kedua yaitu menambahkan sprites kedalam scene. Jadi ketika di klik si flappybird ini akan loncat. Kita klik folder sprite dank klik flappy nya. 
Flappy ini masih dalam bentuk sprites dan masih perlu dipotong potong lagi. Dalam unity ada namanya, yang berfungsi untuk slice sprites. Kemudian pada inspector ini ubah pada sprite mode di pilih multiple dank klik sprite editor.

Lalu pada bagian slice pilih automatic slice kemudian muncul kotak sesuai dengan sprite si flap ini.

 Maka akan terpisah menjadi satu persatu.
 

Lalu pilih salah satu dari flappy yang telah di slice tadi kemudian drag and drop. Untuk mengubah posisi flappy ini  maka ubah pada bagian paling kanan, Transform  ubah nilai x serta y nya.

Selanjutnya kita tambahkan komponen physics 2D dimana fungsinya menambahkan rigidbody.

 
Selanjutnya Pilih Add Component  circle collider 2D.

 Seehingga circle collider ini tidak bertumbukan atau bertabrakan dengan collider lain maka kita bias memberikan misal satu score mati. Selanjutnya ubah nilai radius sehingga terlihat lingkaran dengan ukuran diameter yang pas .
  

 Lalu pindah ke menu game, coba play flappy bergerak turun kebawah atau tidak. Jika ya maka tahap tersebut sudah selesai.

Selanjutnya kita berikan perintah dimana ketika di click maka flappy ini akan loncat.
Lalu klik script dan tambahkan fungsi loncat tadi menggunakan script. Pilih script - create - c# script .


Pada pembuatan kali ini kita menggunakan c#
 
Setelah itu kembali ke unity dan coba play game nya, tampilan yang seharusnya adalah flappy nya loncat-loncat.

Lanjut pada tahap ketika dimana kita akan menambahkan rintangan. Rintangan berbentuk pipa. Pipa tersebt akan bergerak terus menerus dari kanan ke kiri dan akan random. Pertama pilih sprite nya terlebih dahulu.

sebelum kita masukkan kita slice, automatic slice play pipa à save play à lalu akan muncul 2 pipa seperti berikut.    



Lalu langsung kita drag and drop ke hirarki, setelah itu atur posisinya. Setelah pipa ditata kedalam scene. Kemudian kita buat game object dimana game object ini berfungsi sebagai parent kedua pipa.

Yang nantinya bisa menggerakan, memberikan random kepada kedua pipa secara bersamaan.
Kemudian kita rename terlebih dahulu 


Kemudian kita pilih kedua pipa yang atas dan bawah kita drag langsung ke pipe, akan muncul seperti berikut: Serta ketika kita ingin menambahkan score kita perlu sebuah game object juga. Ketika melewati diantara pipa, maka poin akan bertambah. Kita menggunakan game object dimana game object ini kosong kita taruh juga pipa seperti tadi pipa seperti diatas dan dibawah.

Kemudian perta berikan rigrid body terlebih dulu ke parent. Kemudian karena kita berikan fungsi gerak, maka is kinematik kita centang. 

Lalu kita buat scriptnya kemudian kita beri nama pipe move tekan enter kita edit di mono develope. Karena pipa bergerak secara x dari kanan ke kiri maka kita berikan script seperti berikut :

Kemudian kita aplikasikan ke parent tadi. Lalu coba mainkan:

dimana pergerakan x ke kiri sebanyak 


Kita panggil rigrid body, kita masukkan fungsi velocity tadi. Kita shift kemudian aplikasikan ke parent tadi. Lalu coba kita mainkan . sudah bergerak tapi cepat. Terlalu cepat. Kita bisa mengubahnya -4 dan y=0. Kita bisa mengurangi di -1 

kemudian kita akan menambahkan fungsi pada pipa yang kita buat tadi dimana fungsinya adalah membuat secara terus menerus pipa berjalan dari kanan kekiri, jadi unlimited. Jadi script yang kita buat nantinya akan membuat pipa secara terus menerus. Yang parent ini kita alih fungsikan menjadi child di folder prefab kita klick kanan lalu: pilih create à prefab à beri nama pipe. Dimana child ini akan difungsikan sebagai child. Kita drag and drop pipe yang ada di hirarki ke pipe yang ada di maka akan berubah warna menjadi biru.





Kemudian untuk menampilkannya cukup menampilkan script juga. Jadi pipe  yang ada di hirarki kita buang . kita klik del lalu create game object dan  beri nama script. Kemudian kita buat script generate nya. 
Kita menggunakan fungsi generate ini tadi kita connect kan .. dimana scriptnya seperti berikut.

Setelah buat generate script drag and drop .. generate. Kemudian pada pipe ada tulisan game object. Game object ini kita beri prefab tadi. Klick drag and drop ke kita save terlebih dahulu, lalu kita coba. mengenerate terus menerus dari kanan kekiri.  Selanjutnya kita akan melanjutkan fungsi collider . jadi masuk ke prefab. Kita kasih komponen fisik 3d . setelah di play:



Selanjutya kita akan menambahkan collider. Lalu kita masuk ke prefab à pipe,pilih pipa yang atas terlebih dulu, pilih pipa polygon.


Selanjutnya kita akan membuat jarak antara atas dan bawah untuk flappy bird mendapatkan score. Untuk membuat script nya kita perlu menambahkan pada pipe dimana kita menggunakan random. Namun sebelumnya buat terlebih dahulu rangenya. Missal 1, kemudian kita buat posisi dari pipa tersebut kita random kan menggunakan sector 3 dimana menggunakan sumbu x, y, z, sumbu x transform position

Kemudian coba play apakah sudah benar benar random:



Selanjutnya kita juga ingin menambahkan apabila bird mengenai pipe maka akan mati. Lalu akan kita buat scriptnya seperti berikut:Apabila mati akan mengulang level kembali 

Coba di play apakah flappy akan mereset/kembali ke level awal apabila tidak berhasil melewati rintangan.Kemudian kita tambahkan alas dari flappy ini. Dimana alasnya dari sprite yang ketiga ini. Peraturannya sama seperti pipa-pipa sebelumnya dimana jika flappy menyentuh alas maka akan mati juga. 
Ubah posisi alas menggunakan tab inspector yang ada di sebelah kanan à transform.

Selanjutnya tambahkan script move juga seperti:


Beri nama floor move. Buka di mono develop, lalu masukkan script berikut:

 Ubah ketentuannya menjadi: 
Kemudian coba di play kembali. Pada tahap ke 4 ini kita akan menambahkan poin score, serta kita akan menambahkan audio ketika poin bertambah.
Pertama masukkan gui text pada scene. Lalu akan tampil tulisan gui text pada game. Caranya seperti:


Selanjutnya untuk mengedit gui text kita masuk ke game, kemudian pada inspector kita ubah namanya menjadi score. Ubah ketentuannya seperi berikut:


Selanjutnya coba di play kembali.Kemudian tambahkan script untuk score,  scritnya seperti berikut:

Untuk membuat score semakin bertambah, maka kita tambahkan script pada birdcontroller

Coba play kembali apakah score bertambah seperti:

Tahap selanjutnya untuk menambahkan script audio. Kita tambahkan dengan meng-drag and drop audio ke sprite flappy. Jadi kita tambahkan component à audio à audio source , lalu kita drag and drop ke audio source:


Selanjutnya pada script bird controller tadi, kita tambahkan perintah:
Kemudian coba play kembali, apakah audio sudah terdengar. Jika sudah, maka game telah selesai dibuat dari beberapa tahap.

Tahapan pembuatan Game telah selesai dibuat.
Referensi:
https://www.youtube.com/watch?v=Hq1FQaK1Z7U (Tutorial pembuatan Game Flappy bird part1)


https://www.youtube.com/watch?v=Y62d5saacrg (Tutorial pembuatan Game Flappy bird part2)


https://www.youtube.com/watch?v=7OvQmSwxWUg (Tutorial pembuatan Game Flappy bird part3)


https://www.youtube.com/watch?v=mxMCZ7R9Nqk (Tutorial pembuatan Game Flappy bird part4)