Pemrograman Game 2 Dimensi
Awal mula perkembangan game adalah game 2 dimensi. Representasi internal dari perkembangan game saat itu adalah dengan acuan 2 sumbu, biasanya atas-bawah atau kiri-kanan. Topik utama dari pemrograman game 2 Dimensi ini adalah :- Hardware lama
Pada game 2D, computer yang digunakan pada waktu itu spesifikasinya kecil dan meorinya juga kecil. Sinclair Spectrum contohnya, menggunakan Zilog 8-bit processor dengan kecepatan 4.77 MHz dengan chip 6502. Ini terdengar seperti banyak programmer, tapi tidak dengan apa yang kita pikirkan. Computer IBM mengkodekan cara ini sampai Windows 95. Pada daftar berikut kita dapat melihat memori tradisional dari mesin PC kompatibel dengan vector interupsi (IV), menghentikan layanan rutinitas(ISRs), dan frame buffer pada alamat A0000H.
1 Mb = 0x10000:0000
1 Mb-1 = 0xFFFF:000F End System BIOS area
896 Kb 0xE000:0000 Start System BIOS area
896 Kb-1 = 0xDFFF:000F End Expansion card BIOS area
768 Kb 0xC000:0000 Start Expansion card BIOS area
768 Kb-1 = 0xBFFF:000F End Video RAM
640 Kb 0xA000:0000 Start Video RAM
640 Kb-1 = 0x9FFF:000F End DOS RAM
0 Kb 0x0000:0000 Start DOS RAM
- Struktur data pada game 2D
Kita telah mengerti bahwa hardware merupakan factor utama dalam perkembangan game. Pada struktur datanya, di bawah terdapat definisi struktur untuk tiga elemen kunci :
o Mengkodekan grafis karakter
o Mengkodekan gambar latar belakang
o Menyimpan peta permainan
- Pemetaan matriks
Banyak game 2D mempresentasikan hal besar, memvariasikan permainan dunia dengan mesin yang terbatas seperti memori. Pada pemetaan matriks ini tujuannya adalah teknik kompresi agar data yang digunakan dapat disimpan dalam chip memori yang berukuran kecil. Pemetaan adalah teknik kompresi yang memungkinkan unutk membuat dunia game yang baik di sebagian jejak memori.
- Algoritma game 2D
Pada bahasan ini terdapat beberapa sub, yakni :
Permainan berbasis layar
Permainan yang paling sederhana adalah berbasis layar yang dipetakan atau bisa disebut permainan atau game berbasis layar, dimana pemain menghadapi serangkaian layar, tidak ada kintinuitas. Kodenya akan terlihat seperti di bawah ini :
#define tile_wide 32
#define tile_high 32
#define screen_wide 320
#define screen_high 240
int xtiles=screen_wide/tile_wide;
int ytiles=screen_high/tile_high;
for (yi=0;yi<ytiles;yi++)
{
for (xi=0;xi<xtiles;xi++)
{
int screex=xi*tile_wide;
int screey=yi*tile_high;
int tileid=mapping_matrix [yi][xi];
blit(tile_table[tileid],screenx,screeny);
}
}
Two and four-way scrollers
Game berbasis layar membagi permainan game menjadi poorongan-potongan yang ditangani secara individual. Untuk menciptakan gameworld lebih besar dari layar yang kita dapat terus mengeksplorasi dari kamera geser seperti Super Mario Bros dan Zelda. Kodenya seperti di bawah ini :
#define tile_wide 32
#define tile_high 32
#define screen_wide 320
#define screen_high 240
int xtiles=(screen_wide/tile_wide)+1;
int ytiles=(screen_high/tile_high)+1;
tileplayerx= Playerx/tile_wide
tileplayery= Playery/tile_high
X: ( tileplayerx - xtiles/2 .... tileplayerx + xtiles/2)
Y: ( tileplayery - ytiles/2 .... tileplayery + ytiles/2)
sumber :
http://meja-ilmu.blogspot.com/2013/06/pemrograman-game-2d.html