Game Architecture Penerapan Algoritma Column by Column dan Depth-First Search dalam Permainan Babylon Tower

c. Tukar posisi dua bola yang belum terurut pada dua cakram teratas. i. Hitung jumlah kolom yang belum terurut pada dua bola teratasnya. ii. Apabila jumlahnya ganjil, putar cakram yang paling atas sejauh 60 derajat. Kemudian ulangi langkah-langkah pada tahap a untuk mengembalikan posisi bola pada kolom yang benar. iii. Apabila jumlahnya sudah genap, tentukan dua kolom yang posisi bolanya ingin ditukar, dan buat sebuah celah pada kolom yang lain. iv. Lakukan langkah-langkah sesuai dengan diagram berikut untuk menukar posisi dua bola yang belum terurut pada dua cakram teratas. Diagram tersebut menggambarkan posisi bola pada dua cakram teratas dari tiga kolom yang terlibat, yaitu dua kolom yang posisi bolanya ingin ditukar serta satu kolom lain yang memuat celah. A , a dan B , b masing-masing menyatakan warna bola dimana huruf yang sama menyatakan jenis warna yang sama dengan tingkat kecerahan yang berbeda. Huruf kapital menyatakan warna yang paling pucat. Sedangkan huruf Z menyatakan warna bola dari kolom lain yang memuat celah dan spasi menyatakan sebuah celah. Perlu diperhatikan pula bahwa ketiga kolom tersebut tidak harus terletak berdampingan. Langkah tersebut tetap dapat dilakukan apabila terdapat kolom lain di antara kolom-kolom yang terlibat. v. Ulangi langkah iii sampai iv hingga semua posisi bola terurut.

2.2. Game Architecture

Game merupakan simulasi komputer yang bersifat real-time , dinamis dan interaktif, sehingga waktu memainkan peranan yang sangat penting dalam sebuah game Gregory, 2009. Secara spesifik, game berada dalam kategori yang disebut real-time software application . Real-time software maksudnya adalah aplikasi komputer dimana proses-proses yang terjadi di dalamnya sangat bergantung terhadap waktu. Setiap data yang diproses dalam real-time software akan memiliki kendala terhadap perubahan Universitas Sumatera Utara waktu dalam game . Sebagai kesimpulan, game merupakan aplikasi interaktif yang bergantung terhadap waktu, terdiri dari simulator dunia virtual yang mengolah data real-time , menampilkan hasilnya secara visual, serta mengontrol mekanisme sehingga pemain dapat berinteraksi dengan dunia game Sanchez Dalmau, 2004. Setiap real-time software terdiri dari tiga jenis proses yang berjalan dalam waktu yang bersamaan. Yang pertama adalah keadaan state dari dunia game yang harus dikomputasi secara konstan. Yang kedua adalah interaksi yang dilakukan oleh pemain terhadap dunia game . Yang ketiga adalah state yang dihasilkan harus dapat disampaikan sebagai output kepada pemain, output dapat berupa tampilan, audio, maupun bentuk output lainnya yang memungkinkan Sanchez Dalmau, 2004. Dalam graphical user interface GUI yang sering ditemukan pada sistem operasi Windows atau Macintosh , sebagian besar isi tampilannya bersifat statis. Hanya bagian kecil dari window yang tampilannya secara aktif berubah-ubah pada waktu tertentu. Karena hal tersebut, GUI ditampilkan pada layar dengan teknik yang disebut rectangle invalidation , dimana hanya sebagian kecil dari layar yang isinya berubah yang perlu diubah tampilannya. Game 2D pada awalnya menggunakan teknik yang serupa untuk meminimalisir jumlah pixel yang perlu ditampilkan. Namun, tampilan grafis pada game 3D real-time diimplementasi dengan cara yang sama sekali berbeda. Seluruh isi yang ditampilkan pada layar akan berubah secara terus menerus ketika pemain bergerak dalam lingkungan 3D, sehingga konsep rectangle invalidation tidak dapat lagi diterapkan. Sebagai gantinya, sebuah ilusi dari gerakan dapat dihasilkan dengan cara yang hampir sama dengan cara menghasilkan ilusi gerakan pada sebuah film, yaitu dengan menampilkan kepada penonton rangkaian gambar diam yang bergantian secara cepat dan berurutan. Untuk menghasilkan tampilan gambar diam yang bergantian secara cepat, dibutuhkan sebuah loop . Dalam real-time software , hal tersebut disebut juga sebagai render loop Gregory, 2009.

2.3. Struktur Data dan Algoritma dalam Game