Didalam kita membuat suatu aplikasi game, kita membutuhkan sebuah perangkat lunak untuk membuat game yang disebut dengan game engine. Fungsi utama yang diberikan oleh game engine meliputi rendering untuk 2D atau 3D graphic, collision detection, sound, scripting, animasi, artificial intelligence, networking, memory management, threading dan scene graph. Game engines memberikan perangkat untuk visual development dengan tambahan komponen perangkat lunak yang dapat dipakai berulang kali. Perangkat ini pada umumnya memberikan integrated development environment yang dapat mempermudah, serta mempercepat pengembangan game.Game engine juga sering disebut juga “Game Middleware”.
Game Middleware adalah software yang didalamnya sudah terdapat elemen-elemen yang dibutuhkan oleh seorang game developer, kebanyakan dari game middleware memberikan fasilitas guna menunjang pengembangan game dengan mudah seperti graphics, sound dan Artificial intelligence.
Beberapa
elemen yang ada di dalam game engine adalah :
-
Tools/Data
Dalam
pengembangan game, dibutuhkan data yang tidak semudah menuliskan text files.
Dalam pengembangan game, paling tidak dibutuhkan beberapa tools seperti 3d
model editor, level editor dan graphics programs. Bahkan jika diperlukan,
seringkali kita mengembangkan game engine tersebut dengan menambahkan beberapa
code dan fitur yang diperlukan.
-
System
System
sendiri adalah bagian dari game engine yang berfungsi untuk melakukan
komunikasi dengan hardware yang berada di dalam mesin. Jika game engine sudah
dibuat dengan baik maka system ini adalah satu-satunya bagian yang membutuhkan
perubahan yang cukup banyak apabila dilakukan implementasi pada platform yang
berbeda. Di dalam system sendiri terdapat beberapa sub system yaitu graphics,
input, sound, timer, configuration. System sendiri bertanggung jawab untuk
melakukan inisialisasi, update dan mematikan sub system yang terdapat di
dalamnya.
-
Console
Dengan
menambahkan console, kita dapat merubah setting game dan setting game engine di
dalam game tanpa perlu melakukan restart pada game tersebut. Console sendiri
lebih sering digunakan dalam proses debugging. Apabila game engine tersebut
mengalami error kita tinggal mengoutputkan error message tersebut ke dalam
console tanpa harus melakukan restart. Console sendiri dapat dihidupkan dan
dimatikan sesuai keinginan.
-
Support
Support
adalah bagian yang paling sering digunakan oleh system di dalam game engine.
Support sendiri berisi rumus-rumus matematika yang biasa digunakan, vector,
matrix, memory manager, file loader. Merupakan dasar dari game engine dan
hampir digunakan semua projek game engine.
-
Renderer/Engine
Core
Pada
game engine, engine core / renderer terdiri dari beberapa sub yaitu visibility,
Collision Detection dan Response, Camera, Static Geometry, Dynamic Geometry,
Particle Systems, Billboarding, Meshes, Skybox, Lighting, Fogging, Vertex
Shading, dan Output.
-
Game
Interface
Game
interface sendiri merupakan layer diantara game engine dan game itu sendiri.
Berfungsi sebagai control yang bertujuan untuk memberikan interface apabila di
dalam game engine tersebut terdapat fungsi fungsi yang bersifat dinamis
sehingga memudahkan untuk mengembangkan game tersebut.
-
The
Game
Merupakan
inti dari penggunaan game engine sendiri, sehingga terserah kita bagaimana
mengembangkan game tersebut.
Saat
sekarang ini sudah sangat banyak game engine yang hadir, dan sangat maju. Para
pembuat game engine kini berlomba-lomba untuk menciptakan game engine dengan
tampilan yang menarik agar menciptakan suasana permainan yang nyaman atau enak
untuk dilihat dan dimainkan dalam PC ataupun Console. Dengan tampilan atau
graphic yang menarik yang kini semakin mendekati realitas dalam segi fisik para
tokoh serta gameplay-nya, akan membuat para gamers semakin antusias untuk
memainkan game tersebut.
Konsep
dari game engine sebenernya cukup gampang, yaitu bahan dasar yang diperlukan
sebuah game untuk menjalankan tugasnya, merender pixel demi pixel, menghitung
physiscs, memperkirakan input tombol, dan lain hal, yang memungkinkan developer
kreatif dapat membuat sebuah game dengan engine yang sama menjadi unik satu
sama lain. Di analogikan sebagai sebuah mobil, game engine sudah merupakan
bagian mobil, sekitar 50% jadi. Mesin dan rangkaian sistem pengapian, sampai
pembuangan. Kurang body dan aksesoris.
Sebuah
game engine memungkinkan penggunaan kembali komponen komponen yang dapat
mempercepat hadirnya game menjadi nyata di layar monitor mu. Beberapa diantara
nya yang termasuk dengan itu adalah deteksi tubrukan, tampilan grafis, setting
dalam game, artificial intelligence dan lain lain. Semua komponen tadi
disatukan dalam satu pake game engine. Artist dan Developer, dapat menambahkan
pustaka texture dan model sendiri untuk dijadikan tokoh utama atau setting
dunia dalam sebuah engine. Sekali lagi dalam analogi game, model dan texture
dalam game engine bisa dibilang sebagai body dan aksesoris mobil.
Sebuah
game engine dibagi lagi menjadi dua bagian besar. Yaitu API dan SDK. API (
Applicaiton Programming Interfaces ) adalah bagian operating system, services
dan libraries yang diperlukan untuk memanfaatkan beberapa feature yang
diperlukan. Dalam hal ini contohnya DirectX. Sementara SDK adalah kumpulan dari
libraries dan API yang sudah siap digunakan untuk memodifikasi program yang
menggunakan operating system dan services yang sama. Biasanya, game engine
menyertakan keduanya.
Contohnya
dalam Unreal Engine, menyiapkan antarmuka baku bagi programmer untuk
menciptakan game nya dengan mudah, melalui scripting engine, yang disebut
UnrealScript, dan juga libraries, yang berisi model standar dan texture standar
dan juga world editor yang disebut sebagai UnrealED.
Setelah membahas game engine, saya akan
mencoba membahas salah satu game engine yaitu Strawberry Prolog. Prolog
singkatan dari Programming in Logic. Dikembangkan oleh Alain
Colmenraurer dan P.Roussel di Universitas Marseilles Perancis, tahun 1972.
Prolog populer di Eropa untuk aplikasi artificial intelligence,
sedangkan di Amerika peneliti mengembangkan aplikasi yang sama, yaitu LISP.
Aplikasi prolog :
- Sistem Pakar (Expert System)
Program
menggunakan teknik pengambilan kesimpulan dari data-data yang didapat, layaknya
seorang ahli. Contoh dalam mendiagnosa penyakit.
- Pengolahan Bahasa Alami (Natural Languange Processing)
Program
dibuat agar pemakai dapat berkomunikasi dengan komputer dalam bahasa manusia
sehari-hari, layaknya penterjemah.
- Robotik
Prolog
digunakan untuk mengolah data masukan yang berasal dari sensor dan mengambil
keputusan untuk menentukan gerakan yang harus dilakukan.
- Pengenalan Pola (Pattern Recognition)
Banyak
digunakan dalam image processing, dimana komputer dapat membedakan
suatu objek dengan objek yang lain.
- Belajar (Learning)
Program
belajar dari kesalahan yang pernah dilakukan, dari pengamatan atau dari hal-hal
yang pernah diminta untuk dilakukan.
Konsep pemrograman prolog :
Fakta dan Relasi
- Prolog terdiri dari kumpulan data-data objek yang
merupakan suatu fakta.
- Fakta dibedakan 2 macam :
ú Menunjukkan relasi.
ú Menunjukkan milik/sifat.
- Penulisannya diakhiri dengan tanda titik “.”
- Contoh :
FAKTA
|
PROLOG
|
Slamet adalah ayah Amin
|
ayah (slamet, amin).
|
Anita adalah seorang wanita
|
wanita (anita).
|
Angga suka renang dan tenis
|
suka(angga, renang). dan suka(angga,tenis).
|
Jeruk berwarna orange
|
orange(jeruk).
|
Strawberry Prolog adalah
dialek (perpanjangan dari bahasa yang tidak mengubah sifat
intrinsiknya) dari bahasa pemrograman Prolog. Sintaks-nya adalah sangat dekat
dengan ISO-Prolog tapi itu memiliki banyak ekstensi yang bukan bagian dari
standar. Ide utama dari Strawberry Prolog menjadi sangat mudah untuk digunakan
dan itulah mengapa beberapa universitas menggunakannya untuk program Prolog
mereka.
Strawberry Prolog diproduksi oleh Institut
Matematika dan Informatika di Akademi Ilmu Pengetahuan Bulgaria. Versi pertama
dirilis pada tahun 1996. Pemimpin tim Strawberry Dimiter Dobrev. kompiler
Prolog adalah bagian dari proyek AI.
contoh program
Chess.spj - Bermain Catur Program. Anda bisa
bermain melawan komputer. Program ini termasuk dalam instalasi standar
Strawberry Prolog. Anda akan menemukannya di folder Permainan.
Fractals.pro – akan dilihat bahwa medan
fraktal terbatas di mana dapat bergerak dan bahkan tersesat. Tujuannya adalah
untuk menemukan tempat sasaran di lapangan. Ini adalah program pintar yang
menggunakan pseudo-random nomor dalam rangka untuk menghasilkan lapangan yang
tak terbatas tapi konstan fraktal di mana dapat kembali dan untuk menemukan ada
gambar yang sama seperti sebelumnya. Sampel ini menunjukkan kekuatan grafis
dari Strawberry Prolog dan akan menemukannya di folder Programs pada instalasi
standar dari edisi Cahaya.
BEBERAPA
EKSTENSI :
a. variabel
global
b. array
c. Definisi
fungsi dan Built-in predikat
d. Prolog
CGI Script
e. Strawberry
Prolog sebagai server OLE
f. OLE Otomasi - COM
dan ActiveX
SWI-Prolog adalah
sebuah implementasi open source dari bahasa pemrograman Prolog, yang biasa
digunakan untuk aplikasi web mengajar dan semantik. Hal ini memiliki
seperangkat kaya fitur, perpustakaan untuk kendala logika pemrograman,
multithreading pengujian, unit, GUI, interfacing ke Jawa, ODBC dan lain-lain,
pemrograman melek, web server, SGML, RDF, RDFS, pengembang alat-alat (termasuk
sebuah IDE dengan GUI debugger dan profiler GUI), dan dokumentasi yang
ekstensif.SWI-Prolog berjalan pada Unix, Windows, dan Macintosh platform.
SWI-Prolog telah berada di bawah pengembangan
yang berkesinambungan sejak tahun 1987. Penulis utamanya adalah Jan Wielemaker.
Nama SWI berasal dari Sociaal-Wetenschappelijke Informatica ("Ilmu Sosial
Informatika"), nama mantan kelompok di University of Amsterdam, di mana
Wielemaker digunakan. Nama kelompok ini telah berubah menjadi HCS
(Human-Computer Studies).
- XPCE
XPCE adalah platform independen GUI toolkit
untuk SWI-Prolog, Lisp dan bahasa interaktif dan dinamis mengetik lainnya.
Meskipun XPCE dirancang untuk menjadi bahasa-independen, ia telah mendapatkan
popularitas paling dengan Prolog. Perkembangan XPCE toolkit grafis dimulai pada
tahun 1987, bersama dengan SWI-Prolog.
Ini mendukung tombol, menu, slider, tab dan
dasar lainnya GUI widget. XPCE tersedia untuk semua platform yang didukung oleh
SWI-Prolog.
- PceEmacs
PceEmacs adalah SWI-Prolog builtin editor.
PceEmacs adalah clone Emacs diimplementasikan di Prolog (dan XPCE). Ini
mendukung indentasi yang tepat, sintaks, memeriksa sintaks penuh dengan
menghubungi SWI-Prolog parser, peringatan untuk variabel tunggal dan menemukan
definisi predikat berdasarkan informasi sumber-dari database Prolog.
- JPL
JPL adalah antarmuka dua arah antara Jawa dan Prolog [2]. Hal ini membutuhkan baik SWI-Prolog dan Java SDK. Hal ini diinstal sebagai bagian dari SWI-Prolog.
Visual Prolog sebelumnya
dikenal sebagai PDC Prolog dan Turbo Prolog merupakan bahasa pemrograman prolog
yang berorientasi obyek. Sebelumnya, Turbo Prolog dipasarkan oleh Borland,
namun saat ini produk tersebut dikembangkan serta dipasarkan oleh perusahaan
asal Denmark, Prolog Development Center, yang sejatinya merupakan perusahaan yang
mengembangkan Turbo Prolog. Visual Prolog dapat digunakan untuk membuat
aplikasi berbasis grafis untuk sistem operasi Microsoft Windows, aplikasi
konsol, berkas pustaka .dll, dan program berbasis CGI. Program yang dibuat
dengan Visual Prolog juga dapat memanfaatkan komponen COM milik Windows, dan
akses database melalui ODBC. Visual Prolog merupakan bahasa pemrograman yang
dikompilasi, dan bukan diinterpretasikan oleh sebuah interpreter.
Visual Prolog merupakan bahasa pemrograman multi-paradigma didasarkan pada Prolog bahasa logis. Tujuan dari Visual Prolog adalah untuk mendukung pemrograman kekuatan industri masalah pengetahuan yang kompleks ditekankan. Visual Prolog adalah bahasa pemrograman yang sangat kuat dan aman menggabungkan fitur terbaik dari logis, paradigma pemrograman fungsional dan berorientasi objek dengan cara yang konsisten dan elegan.
Sejak
versi 6.0 bahasa prolog telah mendukung secara penuh pemrograman berorientasi
obyek.
- Versi
7.0 membawa serta fitur polimorfisme parametrik.
- Versi
7.2 memperkenalkan predikat anonim, serta namespace.
- Versi
7.3 memperkenalkan kelas generik serta interface.
Referensi:
http://dagdigdugweew.blogspot.com/2010/11/laporan-akhir-pkb.html
http://id.wikipedia.org/wiki/Prolog
http://stefanuskaparang.wordpress.com/
http://greenbel.wordpress.com/2011/11/13/strawberry-prolog-1/
http://informaticunsil.blogspot.com/2012/12/pengenalan-pemrograman-strawberry-prolog.html
http://id.wikipedia.org/wiki/Prolog
http://stefanuskaparang.wordpress.com/
http://greenbel.wordpress.com/2011/11/13/strawberry-prolog-1/
http://informaticunsil.blogspot.com/2012/12/pengenalan-pemrograman-strawberry-prolog.html
sangat bermanfaat ilmunya bro, ada game snake ga ? terima kasih.. ^
BalasHapusSnake ane ga punya bro
BalasHapusAda game yg dibuat dri strawberry prolog ga?
BalasHapus