Struktur Data dan Algoritma dalam Game

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

Struktur data merupakan unsur penyusun dalam rekayasa perangkat lunak. Setiap aplikasi harus mengatur dan memanipulasi data dengan cara yang benar untuk Universitas Sumatera Utara melaksanakan tugasnya. Dalam video game modern, data tersebut digunakan untuk menciptakan pengalaman interaktif yang kompleks dimana pemain dapat mengalami berbagai jenis pengalaman yang berbeda Sherrod, 2007. 2.3.1. Struktur Data dan Algoritma Sebuah struktur data menyatakan bagaimana data disusun dalam memori dan dapat dioperasikan menggunakan berbagai jenis algoritma. Salah satu struktur data paling dasar yang digunakan secara umum dalam pemrograman adalah array . Sebuah array termasuk struktur data karena menyatakan bagaimana data disusun dalam memori dan dapat dioperasikan dengan berbagai jenis algoritma, seperti insertion , deletion , searching , sorting terhadap array . Struktur data juga dapat dipandang sebagai sebuah struktur yang merepresentasikan berbagai jenis objek nyata. Struktur data juga dapat berupa sekumpulan objek yang berisi objek-objek lainnya. Sedangkan algoritma merupakan barisan kode program yang memanipulasi data dalam struktur data Sherrod, 2007. 2.3.2. Struktur Data dalam Game Struktur data membentuk fondasi dari berbagai jenis teknik yang diterapkan dalam video game modern dan merupakan elemen penting untuk menciptakan berbagai jenis pengalaman bermain yang diharapkan oleh pemain. Struktur data sendiri merupakan susunan dari data di dalam memori, tetapi ketika dikombinasikan dengan algortima- algoritma tertentu, data tersebut dapat diproses serta digunakan secara efisien dan efektif. Struktur data dan algoritma dalam pengembangan game sering digunakan untuk mempercepat proses yang terjadi terhadap data yang dibutuhkan dalam game Sherrod, 2007. Sangat jarang sebuah game hanya membutuhkan variabel tunggal untuk menyimpan suatu data. Dalam game , selalu dibutuhkan struktur data untuk menyimpan sekumpulan elemen yang sifatnya mirip. Terdapat berbagai jenis struktur data yang berbeda yang dapat digunakan untuk mencapai hal tersebut. Struktur data yang paling sederhana adalah static array yang memungkinkan developer untuk Universitas Sumatera Utara menyimpan sekumpulan elemen yang tidak akan berubah selama siklus hidup game . Selanjutnya terdapat linked list yang merupakan pengembangan dari static array , dimana terdapat beberapa kelebihan yang memungkinkan ukuran list untuk bertambah maupun berkurang secara dinamis. Selain itu, terdapat pula tree yang merupakan struktur data yang terdiri dari sekumpulan node , dimana setiap node menyimpan informasi yang relevan serta memiliki pointer yang menghubungkan node yang satu dengan node lainnya dalam sebuah tree Sanchez Dalmau, 2004. Running time dari sebuah algoritma atau operasi struktur data secara khusus bergantung pada sejumlah faktor. Apabila sebuah algoritma diterapkan dalam sebuah game , dapat dipelajari running time -nya dengan mengeksekusi game tersebut dengan input yang bervariasi dan mencatat lama waktu yang dibutuhkan dalam setiap eksekusi. Pengukuran seperti itu dapat dilakukan secara akurat dengan menggunakan fungsi perhitungan waktu eksekusi yang telah tersedia dalam sistem pada bahasa pemrograman atau sistem operasi dimana algoritma tersebut ditulis Goodrich Tamassia, 2015.

2.4. Path Finding