Selasa, 30 Juni 2015

PEMBUATAN GAME ALA PACMAN

LANDASAN TEORI :
Pac-Man adalah sebuah permainan arkade yang dikembangkan Namco dan diterbitkan Midway; dirilis di Jepang pada 22 Mei 1980. Awalnya dirilis di arkade saja, Pac-Man yang masih populer hingga kini telah dirilis pula dalam platform lainnya seperti Game Boy dan SNES. Perancang permainan ini adalah Toru Iwatani, yang merupakan karyawan Namco.
Pemain harus mengontrol tokoh berwarna kuning bernama Pac-Man dan membawanya mengelilingi lorong berlika-liku sambil "memakan" titik-titik kecil dan benda-benda khusus lainnya. Pada saat yang sama, terdapat empat "hantu" yang berkeliling di lorong tersebut yang bertugas menangkap Pac-Man. Sang pemain dapat menyelesaikan satu level (tingkat) jika berhasil memakan seluruh titik dan benda khusus. Secara teori, permainan dapat terus berlanjut tanpa batasan tingkat, namun tingkat ke-256 memiliki bug yang menyebabkan gambar di layar tidak beraturan dan karena itu Pac-Man tidak dapat terus dimainkan melewati tingkat tersebut.
Pac-Man kini dianggap sebagai salah satu permainan video klasik serta merupakan salah satu ikon tahun 1980-an. Salah satu alasan kesuksesannya adalah bentuk permainannya yang dapat digemari baik pria maupun wanita dibandingkan dengan permainan arkade lainnya sebelum Pac-Man seperti Space Invaders dan Defender yang merupakan permainan tembak-tembakan.

ALAT DAN BAHAN
Unity 5.0

RUMUSAN MASALAH
Membuat game dengan gameplay seperti game pacman dengan unity

PEMBAHASAN
Dalam game ini terdapat 3 hal utama yang harus ada dalam pacman yaitu
a. Arena
b. Player
c. Enemy
d. Internal Ekonomi Game (Objek)

Untuk mempermudah bahasan maka akan kita perinci satu persatu bagian yang membangun dari game yang akan kita bangun

a. Arena
Untuk membentuk arena yang kita butuhkan maka kita perlu membuat plane sebagai ground dari maze atau labirin yang kita buat.

sedangkan  untuk membentuk maze atau labirinya maka kita perlu membangun bentuk nya dengan menggunakan cube yang kita modifikasi ukuran dan kita atur sesuia dengan kebutuhan kita. seperti berikut


b. Player
Pada game pacman, player yang kita gerakan akan bergerak  melewati maze yang sebelumnya telah kita buat. Kita mengkontrol dengan menggunkan keyboard, script dibawah ini bisa kita masukan untuk meberikan pergerakan player. Player yang kita gunakan disini masih menggunakan object 3D berupa sphere
=================================================================================
using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour {

private Rigidbody rb;
public float speed;
public float count;

// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody>();
}

void FixedUpdate() {
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal,0f,moveVertical);

rb.AddForce(movement * speed);
}

void OnTriggerEvent(Collider other){
if(other.gameObject.CompareTag("Pick Up"));
{
other.gameObject.SetActive(false);
count = count + 1;

}


}

=================================================================================
c. Enemy
Sesuai dengan game pacman bahwasannya enemy yang terdapat dalam game ini akan selalu mengejar dimanapun posisi player berada dan enemy akan selalu mencari jarak terdekat menuju player. Untuk memberikan AI pada enemy yang kita lakukan adalah sbb:
a. Buatlah enemy dari 3D Object semisal berupa sphere namun dengan material warna yang berbeda
b. Setelah itu multiple klik object meliputi player, obstacle, enemy dan plane lalu kita lakukan bake pada tab navigation
c. Maka otomatis akan ada jendela window save as dari bake ini, yang mena memberikan navmesh untuk enemy
d. Masukan script berikut kedalam enemy
=================================================================================
using UnityEngine;
using System.Collections;

public class Catcher : MonoBehaviour {
public Transform Goal ;
private NavMeshAgent NavComponent;

// Use this for initialization
void Start () {
NavComponent = this.transform.GetComponent<NavMeshAgent>();

}

// Update is called once per frame
void Update () {
if(Goal){
NavComponent.SetDestination(Goal.position);
}


}


}

=================================================================================
d. Internal Ekonomi Game
didalam ini akan diatur kondisi menang, kondisi kalah dan penentuan skor dari game ini
* Penambahan skor disini akan dilakukan ketika player menabrak objek berupa box yang tersebar diarena permainana setiap berhasil menabrak objek ini maka skor akan selalu bertambah 10 point .  Berikut Script yang digunakan untuk mengatur  kondisi ketika player menabrak objek box 
=================================================================================
  void OnTriggerEvent(Collider other){
if(other.gameObject.CompareTag("Pick Up"));
{
other.gameObject.SetActive(false);
count = count + 10;

}
}
=================================================================================
kemudian akan kita tampilkan skor yang sebelumnya telah kita proses, dengan script sbb
=================================================================================
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class ScoreOb : MonoBehaviour {
public Text scoreText;
public Text wintext;
private int score;

void Start(){
score = 0;
UpdateScore_HP ();
}

public void AddScore (int newScoreValue)
{
score += newScoreValue;

UpdateScore_HP ();
}

void UpdateScore_HP ()
{
scoreText.text = score.ToString();
}

void Update(){
if (score == 100) {
Application.LoadLevel("won");
//wintext.text = "YOU WIN !";
}
}
}

=================================================================================

* Setelah itu kondisi menang akan dapat ditentukan jika semua objek box berhasil kita tabrak semuanya dengan menggunakan script sbb
=================================================================================

=================================================================================

* Setelah itu kondisi kalah akan dapat ditentukan jika enemy berhasil menabrak player dengan menggunakan script sbb
=================================================================================
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class meetCatcher : MonoBehaviour {
public Text losetext;

void OnTriggerEnter(Collider other){
if(other.gameObject.tag=="Player"){
Application.LoadLevel("gameover");
losetext.text = "YOU LOSE !";
Destroy(other.gameObject);
}
}

}

=================================================================================

Untuk melihat full game dari hasil pembuatan game ala pacman dapat didownload pada URL berikut

Rabu, 13 Mei 2015

UNITY 3D :: Penerapan Animasi dan Terrain 3 Dimensi

JUDUL ::
 Penerapan Animasi dan Terrain 3 Dimensi

DASAR TEORI ::

A. Pengertian Animasi
Animasi (animation) berasal dari perkataan latin yang membawa arti ‘dihidupkan’. Dengan kata lain, animasi merujuk kepada satu perbuatan atau proses menjadikan sesuatu agar kelihatan hidup. Secara keseluruhannya, animasi boleh didefinisikan sebagai satu proses menghidupkan atau memberikan gambaran bergerak kepada sesuatu yang statik agar kelihatan hidup dan dinamik.

Selain itu ada juga sumber yang menyebutkan bahwa Animasi berasal dari (animation) berasal dari perkataan latin yang membawa erti ‘dihidupkan’. Menurut kamus Dewan Bahasa dan Pustaka, animasi merujuk kepada satu perbuatan atau proses menjadikan sesuatu agar kelihatan hidup. Secara keseluruhannya, animasi boleh didefinisikan sebagai satu proses menghidupkan atau memberikan gambaran bergerak kepada sesuatu yang statik agar kelihatan hidup dan dinamik.

Animasi secara ringkasnya merujuk kepada proses menambahkan pergerakan kepada image statik dengan menggunakan pelbagai kaedah. Animasi juga boleh merujuk kepada set grafik yang dipaparkan dengan pantas dalam bentuk siri bingkai (frame) atau objek mahupun aksara. Teknologi internet terus berkembang pesat sehinggakan image dinamik ataupun animasi juga boleh dimasukkan ke dalamnya tanpa memerlukan masa pindah terima yang terlalu panjang. Terdapat pelbagai keadaan di mana animasi diperlukan penggunaannya di dalam sesebuah halaman web, antaranya ialah bagi menceriakan sesuatu halaman web, menerangkan sesuatu konsep dengan lebih jelas dan menjimatkan ruang storan di dalam sesuatu komputer pelayan (server) bila menggunakan animasi berbanding dengan video bagi menunjukkan peristiwa yang sebenar. Animasi juga digunakan bertujuan untuk menerangkan sesuatu konsep yang tidak dapat diterangkan menggunakan media-media yang lain.

B. Pengertian Terrain
Terrain adalah sebuah landscape tiruan yang menyerupai asli yang mana dapat digunakan sebagai lingkungan buatan pada game atau apapun pada unity. Terrain ini dapat digunakan untuk menentukan kontur tanah, jenis tanaman dsb. Sehingga Terrain ini sering digunakan untuk visualisasi dari lingkungan yang kita gunakna untuk mendukung objek yang kita buat di unity

ALAT DAN BAHAN ::
Aplikasi UNITY 
 
RUMUSAN MASALAH ::

Menjalankan animasi 3D beserta terrain
PEMBAHASAN ::a. Pembuatan TerrainTerrain disini dapat kita lakukan dengan dengan beberapa tahap ::

- Membuat objek terrain


- Membuat komtur tanah pada terrain (dataran tinggi / dataran rendah)


- Memberikan teksture rerumputan atau pepohonan pada terrain yang telah kita buat

 
- Setalah itu kreasikan sendiri sesuai dengan kebutuhan landscape kita


b. Pembuatan Asset 3D
-Masukan asset 3D paket yang telah kita buat sebelumnya


-Masukan script berikut untuk menggerakan asset yang telah kita masukan sbb :
=========================================================================
using UnityEngine;
using System.Collections;

public class Animate : MonoBehaviour {
    public float speed = 10;

    // Update is called once per frame
    void Update () {
        if(Input.GetKey(KeyCode.W)){
            this.transform.Translate(Vector3.forward*speed*Time.deltaTime);
            animation.Play("ArmatureAction0");
        }
        if(Input.GetKey(KeyCode.S)){
            this.transform.Translate(Vector3.back*speed*Time.deltaTime);
            animation.Play("ArmatureAction0");
        }
        if(Input.GetKey(KeyCode.D)){
            this.transform.Rotate(new Vector3(0,1,0));
            animation.Play("ArmatureAction0");
        }
        if(Input.GetKey(KeyCode.A)){
            this.transform.Rotate(new Vector3(0,-1,0));
            animation.Play("ArmatureAction0");
        }
    }
}

=========================================================================
dari skript diastas dapat diambill garis besar  bahwa objek akan bergerak ketika kita menekan A W S D keyboard untuk bergerak belok kiri, maju, mundur, belok kanan.

Hasil Tampilan ::


Untuk Semua asset unity yang telah dibuat diatas dapat mendownload linkk berikut ::
https://www.dropbox.com/s/kg6warwh24pm663/TERAIN.rar?dl=0




Minggu, 22 Maret 2015

PENGGUNAAN ADMOB PADA APLIKASI YANG TELAH DIBUAT

A. DEFINISI ADMOB
AdMob adalah perusahaan iklan mobile yang didirikan oleh Omar Hamoui. Ia didirikan pada tahun 2006 dan berbasis di San Mateo, California. Pada bulan November 2009 ia diakuisisi oleh Google seharga $ 750 juta. Akuisisi ini diselesaikan pada 27 Mei 2010. Apple,Inc juga telah menyatakan minatnya untuk membeli perusahaan itu pada tahun yang sama, tetapi mereka keluar-tawaran oleh Google, dan sejak memperkenalkan platform iklan mereka sendiri yaitu iAd. Sebelum diakuisisi oleh Google, AdMob mengakuisisi perusahaan AdWhirl, sebelumnya Adrollo, yang merupakan platform untuk mengembangkan iklan di aplikasi iPhone. AdMob menawarkan solusi iklan untuk platform mobile, termasuk Android, IOS, WebOS, FlashLite, dan semua browser web mobile standar. AdMob adalah salah satu platform terbesar di dunia iklan mobile dan klaim untuk melayani lebih dari 40 miliar banner mobile dan iklan teks per bulan di seluruh situs Web mobile dan aplikasi handset
B. ALAT DAN BAHAN
Download beberapa hal yang dibutuhkan sebelum melakukan installasi adMob pada UNITY yaitu
a.   https://github.com/googleads/googleads-mobile-plugins/releases
b.   https://github.com/googleads/googleads-mobile-plugins/
c.   android-sdk-windows\extras\google\google_play_services\libproject\google-play-services_lib
d.   https://apps.admob.com/admob/signup

C. LANGKAH PENGGUNAAN ADMOB PADA UNITY
1. downloadlah empat file yang akan dibutuhkan saat memberikan adMob pada aplikasi buatan kita pada halaman ini :: https://www.dropbox.com/s/qt7dk01thest8pp/ADMOB.rar?dl=0


2. daftar sebuah akun pada adMob yang nantinya kita butuhkan saat melakukan pemasangan adMob pada halaman ini :: www.admob.com/



3. Buka UNITY Program

4. Inputkan ketiga file ke UNITY 


>> Kecuali Letakan Google_play_service_Lib pada Folder Plugin >> Android

5. Inputkan script kedalam Main Camera, Maka tampilan akan seperti berikut :



6. Ubah Script yang sudah ada yakni pada Nama ID yang sebelumnya telah kita daftarkan (Untuk Android atau iOS)
 
 
7. Lakukan Build Apk, Lalu Install pada Gadget salah satu Android kita. Dibawah ini merupakan salah satu hasil ScreenShoot dari AdMob yang telah kita buat



Untuk selanjutnya kita akan menerapkan pada game yang telah kita buat yaitu SPACE WAR :))