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