Sabtu, 13 Juni 2015

TUGAS 1 : GAME ENGINE DAN CONTOH GAME



Game Engine : Strawberry Prolog

               Strawberry Prolog adalah dialek dari bahasa pemrograman Prolog. Sintaksnya sangat dekat dengan ISO-Prolog tetapi memiliki banyak ekstensi yang bukan bagian dari standar. Gagasan utama dari Strawberry Prolog sangat mudah digunakan dan oleh karena itu beberapa universitas menggunakan prolog untuk kursus .
           Nama Prolog sendiri diambil dari bahasa Perancis programmation Enogique (pemrograman logika). Bahasa ini diciptakan oleh Alain Colmerauer dan Robert Kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankan komputer.
        Prolog adalah bahasa pemrograman logika atau disebut juga bahasa non prosedural.  Prolog disebut sebagai object oriented language atau declarative language. Dalam prolog tidak terdapat prosedur, tetapi hanya tampilan data-data object (fakta) yang akan diolah dengan relasi antar object yang membentuk suatu aturan. Aturan-aturan ini disebut heuristikdan diperlukan dalam mencari suatu jawaban, dengan kata lain, prolog dalam prolog adalah database.


Dan Prolog ada tiga jenis diantaranya Strawberry Prolog. Dan sisannya adalah :

·         VisualProlog
Visual prolog sebelumnya dikenal sebagai PDC prolog dan turbo prolog merupakan bahasa pemrograman prolog yang berorientasi objek. Sebagai turbo prolog dipasarkan oleh Borland, tetapi sekarang dikembangkan dan dipasarkan oleh perusahaan Denmark Pusat Pengembangan Prolog (PDC). Visual Prolog dapat membangun Microsoft Windows GUI-aplikasi, aplikasi konsol, DLL (Dynamic Link Libraries).

·         SWI Prolog
SWI Prolog merupakan open source implementasi bahasa pemrograman Prolog, biasanya digunakan untuk pengajaran dan semantic web aplikasi. Memiliki seperangkat kaya fitur, perpustakaan untuk logika pemrograman kendala, multithreading, Unit testing, GUI, dll. SWI Prolog berjalan pada UNIX, Windows, dan Machintosh.

Penerapan PROLOG ini cukup banyak diterapkan pada bidang-bidang tertentu, berikut contoh penerapannya :
Sistem Pakar (Expert System)
Pengolahan Bahasa Alami (Natural Language Processing)
Robotika
Pengenalan Pola (Pattern Recognition)
Pembelajaran (Learning)



Pembuatan Game
            Pada strawberry prolog telah disediakan berbagai macam contoh game yang dapat kita kembangkan dari game yang telah disediakan tersebut misal memberikan menu memasukkan karakter object baru mengubah background dan lainnya seperti gambar dibawah ini prolog telah menyediakan game yang bias kita kembangkan :




Contoh dari game yang akan dikembangkan adalah Reversy seperti terlihat dibawah tampilan game sangat sederhana namun kita dapat mengubah tampilan tersebut dengan menambahkan scriptnya sehingga dapat diubah menjadi lebih menarik lagi




Contoh pembuatan menu dalam game akan dijelaskan dengan cara menambahkan script pada strowbrry prolog tersebut contohnya sebagai berikut :

1.      Saya akan membahas mengenai timer dan mengubah font face pada Strawberry Prolog.


?-
window(_,_,win_utama(_),"Timer 1",300,100,300,300).

2.      Perintah diatas digunakan untuk membuat sebuah jendela (windows) dengan ukuran 300x300 dan mempunyai title Timer 1. Nama fungsi dari jendela Timer 1 ini adalah win_utama. 


win_utama(init) :-
  menu( normal, _, _, menu_mulai(_), "&New Game"),
  menu( normal, _, _, menu_exit(_), "&Exit").

3.      Dalam jendela Timer 1 terdapat menu bar yang terdiri dari menu dengan nama New Game (nama fungsinya adalah menu_mulai) dan Exit(nama fungsinya adalah menu_mulai).


menu_exit(press) :-
  yes_no("Confirm", "Are you sure to exit?", ?),
  close_window(_).
menu_mulai(press):-
  close_window(_),   
  window(_,_,win_func(_),"Timer 2",300,100,300,300).

4.      Perintah diatas adalah perintah yang dimasukkan ke dalam fungsi menu_exit dan menu_mulai. Jika menu Exit ditekan maka akan ada pertanyaan konfirmasi sebelum keluar dari program. Selanjutnya jika menu New Game ditekan maka jendela yang sedang aktif akan ditutup dan jendela Timer 2 yang berukuran 300x300 akan muncul. Fungsi untuk jendela Timer 2 adalah win_func.


win_func(init) :-
  menu( pop_up, _, _, menu_start(_), "&Start"),
  menu( normal, _, _, menu_exit(_), "&Exit").
menu_start(init) :-
  menu( normal, _, _, menu_easy(_), "&Mudah"),
  menu( normal, _, _, menu_hard(_), "&Sulit").

5.      Dalam jendela Timer 2 terdapat menu bar yang berisi menu dengan nama Start dan Exit. Menu Start bersifat pop up, yaitu mempunyai sub menu. Sub menu dari menu Start adalah menu Mudah (nama fungsinya adalah  menu_easy) dan Sulit (nama fungsinya adalah menu_hard).


menu_easy(press) :-
  message("Warning","Kamu memiliki waktu 12 detik sebelum BOM meledak",i),
  update_window(_),
  G_M := 13,
  G_waktu is set_timer(_,1,time_func).
menu_hard(press) :-
  message("Warning","Kamu memiliki waktu 5 detik sebelum BOM meledak",i),
  update_window(_),
  G_M := 6,
  G_waktu is set_timer(_,1,time_func).

6.      Dalam fungsi menu_easy dan menu_hard mempunyai proses dan tujuan yang sama. Jika menu Mudah ataupun Sulit ditekan, maka akan muncul dialog message yang bertuliskan waktu yang akan diproses. Untuk menu Mudah mempunyai waktu 12 detik dan menu Sulit mempunyai waktu 5 detik. Setelah dialog message muncul dan tombol OK ditekan maka proses akan menuju fungsi time_func untuk menjalankan waktu.


time_func(end):-
  (G_M=:=10 ->
 G_M:=10,
 pen(5,rgb(255,255,255)),
 rect(150,50,191,150)),
  (G_M=:=1 ->
   kill_timer(_,G_waktu),
  message("WARNING","WAKTU HABIS !!! \n  Game Over !!!",!),
  close_window(_)
  else
  G_M <>= G_M-1),
  T is printq(G_M),
  font(30,100,"Times New Roman"),
  text_out(120,50,T),
  beep.

7.      Fungsi time_func ini berguna untuk menjalankan timer. Perintah pada baris ke 2 sampai dengan baris ke 4 berguna untuk memuat persegi panjang berlatar belakang warna putih saat detik 10 menuju detik ke 9. Perintah pada baris ke 6 sampai dengan baris ke 8 berarti jika detik menunjukkan angka 1, maka waktu akan berhenti dan muncul dialog message. Setelah tombol OK pada dialog message yang muncul ditekan makan jendela akan tertutup. Jenis tulisan pada timer adalah Times New Roman dengan ukuran 100. Tulisan atau teks detik muncul pada koordinat 120, 50.

Setelah script tersebut kita tambahkan maka hasil yang kita dapat setelah kita jalankan adalah sebagai berikut :






Tidak ada komentar :

Posting Komentar