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