Arsitektur Mesin Game

Mau bikin apa - apa harus direncanakan seperti lagunya Dik Doank "Plan plan planning", tapi di lagu itu isinya tentang arsitektur buat bikin anak. yang mau dibahas sekarang soal "Arsitektur Game". Isinya kira - kira seperti dibawah ini.
arsitektur rumah mirip tumpukan buku

1. Sistem Inti (dasar) di dalam game

Di bagian ini biasanya terdiri dari Struktur basis data, File handling, alokasi memori dan semuanya yang berhuibungan dengan konseptual. Termasuk juga logika matematika (hall ini bisa terjadi di dalam game yang membutuhkan Lifetime) limit kehidupan untuk suatu karakter. seperti misalnya yang terdapat didalam game - game FPS dan RPG, contoh lainnya masih banyak, pokoknya berhubungan sama kematian suatu karakter, yang paling populer adalah sistem darah di dalam DOTA, game paling populer sejagad. Di dalam perhitungan logika matematika sangat terlihat, di dalam DOTA sendiri terdapat equip defense yang berupa armor dan epuip attack berupa senjata yang memberikan nilai tambah serangannya. Apabila senjata yang dipakai memiliki +4 dan armor yang diserang memiliki armor +3 maka hasil yang masuk hanyak damage asli +1. ibaratnya begitu, namun di game tentunya lebih kompleks, rumit dan saya tidak berharap melihat kodingnya dalam bentuk bahasa pemrograman apapun. Itu contoh logika begonya aja.

Masalah konsep, mainkan saja setiap game yang anda suka, pasti semuanya terstruktur namun pemakai tentunya banyak yang mengabaikan hal tersebut, mereka hanya membutuhkan kepuasan setelah bermain, tergantung juga tujuannya bermain game itu apa.

File handling, berisi tentang gimana ya jelasinnya. Contohnya seperti menyimpan suatu game di dalam keadaan tertentu. Jikalau anda pernah memainkan game Pro Evolution Soccer "Become a Legend" atau "Master League" atau game apapun yang ada save-loadnya, setelah anda bermain tentunya di save dan data tersebut terbuat secara otomatis, ga otomatis juga sih, progammer yang membuat file tersebut tercipta pas pemain memutuskan game tersebut untuk di save. Jadi data yang tersimpan ya keadaan terakhir waktu di save. Namun apabila di tengah permainan, listrik dirumah anda padam atau karena gejala non teknis lainnya, secara otomatis data yang tadi akan tersimpan "di keadaan kalah, karena permainan belum berakhir" Logika yang ditangkap adalah para pemainnya rame - rame bersama manager dan jajarannya kabur dari medan laga. Hal ini berarti di dalam setiap keadaan apapun termasuk ketika program dijalankan, suatu file terbentuk dan menyimpan kode - kode (yang bikin mumet) secara Real TIme dan dalam keadaan terakhir.
Mungkin logika programnya seperti ini kali ya :

class System
{
public:
static boolean Load (const char* NamaFile, char*& racBuffer,
int& riSize);
static boolean Save (const char* NamaFile,
const char* acBuffer, int iSize);
static boolean Append (const char* NamaFile, char* acBuffer,
int iSize);
};


2. Grafik dan Rendering

Grafik ya, hubungannya sama bagus - bagusan warna dan dimensi. Untuk grafik 2 dimensi biasanya ga perlu hardware yang wahhh, tapi kalo untuk grafik berbasis 3D baru beli PC impian, secara game udah berkembang pesat seiring dengan kemajuan teknologi. Yang biasanya pembuat game pakai untuk 3D itu Open GL dan Direct 3D. Masalah perbedaanya Googling aja.

Yang perlu diperhatikan apabila ingin membuat game berbasis 3D :
  • Berapa banyak data yang perlu di render pada saat itu juga, saat game dimainkan (Real Time) 
  • Bagaimana Interface yang terpampang ketika di render
  • Seberapa gampang software untuk dipakai programmer, kalo susah tinggalkan saja, ganti jadi penikmat aja kalo niat lanjutkan usahamu.
  • Support dari kreasi yang sebelumnya, maksudnya kalo mau nambah kreasi baru hasilnya mumpuni ga sama hasil yang udah dibuat sebelumnya.
Hubungan antara Geometri, Node dan Renderer


Geometri

Umumnya dialokasiin pake array tapi ya tergantung masing - masing. misalnya array V[i] for 0 ≤ i < n. dan nantinya akan digunakan untuk tanda, dalam contoh yang dipakai adalah segitiga. Jadi misalnya titik - titik segitiga dijadiin (i0,i1,i2) dan dihubungkan di verteks array (V[i0],V[i1],V[i2]). Di dalam 3D bisa dirubah seperti diperbesar, diperkecil ,di plengosin ke dalam dan keluar, Trigger yang dipakai yaitu verteks array tadi yang nantinya posisi nya tersimpan i variabel (i0,i1,i2). kira - kira seperti itulah.

 

Spatial (Tata Ruang)

Dimari yang dibahas soal penempatan suatu objek di dalam game. Ga mungkin kan  orang bisa lebih gede dari rumah, atau senjata yang dibawa lebih besar dari pegangan tangan terus dibawa lari kemana - mana. Makanya Geometri mempunyai pengaruh besar disini.

Node (Simpul)

Sebenarnya ga cocok juga dibilang simpul. soalnya bentuknya begini.
Contoh simpul dalam ruangan
jadi didalam rumah itu ada 2 ruangan, sisanya liat gambar aja. Intinya cuma buat ngejelasin di dalam suatu objek masih memungkinkan ada objek apa lagi yang membuat suatu terlihat menarik.Untuk lebih lanjutnya bisa dilihat ilustrasi berikut ini

Jadi maksudnya semuanya terintegrasi masing - masing. Untuk mengubah suatu ruangan ga perlu lagi untuk mengubah meja, pisau atau objek yang ada didalamnya. Pemicunya ada di Ruangan yang menjadi Parent dari objek tersebut, bakalan lebih ribet kalo ngatur satu - satu. Hal ini mengefisienkan transformasi apabila ingin semuanya terlihat realistis.

kira - kira seperti ini kalo di program :

class Node : public Spatial
{
public:
Node (int iQuantity = 1, int iGrowBy = 1);
virtual ~Node ();
int GetQuantity () const;
int GetUsed () const;
int AttachChild (Spatial* pkChild);
int DetachChild (Spatial* pkChild);
SpatialPtr DetachChildAt (int i);
SpatialPtr SetChild (int i, Spatial* pkChild);
SpatialPtr GetChild (int i);
protected:
TArray m_kChild;
int m_iUsed;
};


Render

Secara ga langsung ini dia proses akhir untuk pembuatan dunia didalam game. Jadi setelah proses Node klop. Dunianya tertata, skala antar objek udah OK, Yakin 100% udah siap di render. maka renderlah.Rendering juga harus memperhatikan atribut verteks, shading , texture map atau apa saja yang dibutuhkan untuk menggambar suatu objek.


Controller & Modifier

Setelah semua siap, dunia didalam game maksudnya. Pemrogram harus memberikan konteks untuk pemain bagaimana menggerakkan suatu objek ataupun karakter pada saat bermain. waduh ini rada ribet juga ni, rada panjang soalnya. Misalnya nih, contoller itu harus pas ketika digerakkan jalan - jalan atau melakukan gerakan apapun dengan arah sinar yang datang, kalo di kehidupan nyata mirip sama orang lagi jalan dibawah terik matahari dan badan yang kena sinar datang menjadi lebih terang daripada yang tidak terkena sinar. Karena setiap keadaan di dalam game itu ada koordinatnya maka harus pas juga teksurnya.

Solusi dari Controller dan Modifier adalah dengan membuat daftar controller yang berhubungan dengan setiap anggota dari suatu objek. Jadinya setiap controller menangani objek yang dibawa setiap class di dalam program. Konsep seperti ini bagus karena tidak perlu untuk merancang ulang program. Setelah membuat sistem yang seperti itu, jalannya sebuah program menjadi kuat karena sesuai dengan Object Oriented Programming.

continue reading

Tools & Software Pengembang Game

Ya, dunia ini tidak terlepas dari uang dan semua seluk beluknya tentang keuntungan. Hal ini terjadi juga didalam pengembangan teknologi game dan pemasarannya. Jikalau ditinjau dari segi software yang digunakan terbagi menjadi dua :

1. Open Source

  • Blender :http://www.blender.org  [support C++, python]
  • Ogre : http://www.ogre3d.org [support C++]
  • Delta 3D : http://delta3d.org [Link, penjelasan Delta3D]
  • Spring : http://springrts.com/ [cross-platform, support C++]







2. Berbayar
  • Rockstar Advanced Game Engine (RAGE), hasil produksinya : GTA dan Max Payne
  • Frostbite hasil produksinya : NFS, Battlefield


Semua yang berbayar ini merajai game yang relatif orang mainkan, karena didukung dengan grapfik yang membuat karakter dan tekstur yang serba semakin natural dan hidup.

referensi : Wikipedia

continue reading

Opportunity Game dalam Creative Industry

Setiap manusia membutuhkan hiburan ataupun penyegaran dari kesibukan dan rutinitas mereka sehari - hari. Terlebih apabila pekerjaan sudah selesai namun tidak ada yang dikerjakan selain mendengarkan radio, nonton TV, ataupun melakukan hobi, bermain Game menjadi pilihan. Untuk macam - macam game bisa anda lihat di postingan saya sebelumnya.


OPEN SOURCE

Traxex 'The Drow Ranger'
Magina
Rylai Crestfall
Berhubung banyaknya ketertarikan manusia tentang hiburan atau imajinasi visual yang menjadi kenyataan, Game Indutri juga banyak berkembang sesuai dengan banyaknya gadget yang beredar di pasaran ditambah dengan pengembang Game dari segi pemakai (setiap orang bisa membuat game sendiri). Berkembangnya Android merupakan awal dari para pengembang game yang tidak memiliki keterikatan terhadap suatu instansi atau perusahaan game untuk bisa menciptakan game sesuai dengan kemauan dan imajinasi mereka sendiri dan juga bisa memasarkannya di android market. Selain itu game berbasis PC seperti Dota memacu para pembuat game untuk menciptakan dunianya sendiri tergantung dengan konsep yang mereka buat sendiri. dan software pendukungnya juga banyak di-share di dunia maya maupun mengenai model bisa diambil di forum - forum pendukung seperti :

MAJOR GAME DEVELOPER 


Pro Evolution Soccer
Yang dibahas diatas adalah gratis untuk digunakan dan dibuat dengan perangkat Open Source. Namun untuk pengembang game yang besar seperti Konami, Square Enix, EA (Electronic Arts) dan Activision mengubah yang harusnya gratis menjadi berbayar namun seiring pertumbuhan para cracker di seluruh dunia, produk - produk mereka bisa dinikmati pula. Pengembang tersebut berlomba lomba untuk meraup keuntungan dari pasar. Di setiap tahunnya selalu ada produk baru yang mereka keluarkan seperti Pro Evolution Soccer dari Konami, Call Of Duty (Modern Warfare) dari Activision ataupun EA dengan Battlefield-nya. Penjualan mereka tersebar di berbagai platform PC dan konsol game (PS3, XBOX dan Nintendo). Keuntungan tentunya berpihak kepada mereka seiring dengan merambahnya konsol di berbagai kalangan. Rental PS3 pasti selalu ramai dipadati gamer yang menggunakan produk - produk mereka.



Captain Price
Captain Price dari tokoh Modern Warfare
Semua game bisa berubah menjadi indutri yang terus menerus berkembang sepanjang tahun karena pemain game berasal dari berbagai kalangan, selain itu update yang berjangka selalu ditunggu para pengagumnya. Sebenarnya bukan hanya dari video game developer saja keuntungan datang namun juga game console developer dan untuk platform PC, kebutuhan spesifikasi video game mendorong pemain pemain juga untuk meng-upgrade komputer mereka dari segi video card atau perangkat tambahan lainnya, bedanya perkembangan hardware tidak segencar perkembangan video game.

Referensi : Wikipedia

continue reading

Kesimpulan Desain Pemodelan Grafik

Pemodelan adalah membentuk suatu benda-benda atau obyek. Membuat dan mendesain obyek tersebut sehingga terlihat seperti hidup. Sesuai dengan obyek dan basisnya, proses ini secara keseluruhan dikerjakan di komputer. Melalui konsep dan proses desain, keseluruhan obyek bisa diperlihatkan secara 3 dimensi, sehingga banyak yang menyebut hasil ini sebagai pemodelan 3 dimensi (3D modelling). Kalau memang desain grafik ini memiliki kemampuan untuk menghasilkan imajinasi menjadi kenyataan maka gambar yang real juga menjadi harga mati. Bagaimana caranya ya tergantung bagaimana pembuatnya. Oleh karena itu dibutuhkanlah sebuah konsep dalam pemodelan.

konsep seperti itulah yang nantinya akan dibuat untuk dijadikan suatu hasil yang berguna. Entah itu gambar, video dan hal - hal lainnya yang apabila dijelaskan dengan sudut pandang grafis lebih memudahkan untuk diingat dan dipahami.



continue reading

Perbedaan Bitmap dan Raster

Bitmap

Bitmap adalah format gambar yang biasanya digunakan didalam gambar digital atau representasi dari citra grafis yang terdiri dari susunan titik yang tersimpan di memori komputer. Dikembangkan oleh Microsoft dan nilai setiap titik diawali oleh satu bit data untuk gambar hitam putih, atau lebih bagi gambar berwarna.
contoh gambar bitmap

Ukuran sebenarnya untuk n-bit (2n warna) bitmap dalam byte dapat dihitung:

ukuran file BMP

\approx 54+4 \cdot 2^n+\frac{lebar \cdot tinggi \cdot n}{8}Kerapatan titik-titik tersebut dinamakan resolusi, yang menunjukkan seberapa tajam gambar ini ditampilkan, ditunjukkan dengan jumlah baris dan kolom, contohnya 1024x768.
Untuk menampilkan citra bitmap pada monitor atau mencetaknya pada printer, komputer menterjemahkan bitmap ini menjadi pixel (pada layar) atau titik tinta (pada printer). Beberapa format file bitmap yang populer adalah BMP, PCX dan TIFF.


Raster

Terbentuk dalam suatu pola grid, yaitu terdiri atas pixel yang tersusun dalam baris-baris dan kolom-kolom. Pixel adalah satuan terkecil dari raster. Ia berupa kotak berbentuk bujur sangkar (untuk digital video) maupun persegi panjang atau non-square pixel, sebuah pixel dapat berisi satu warna, satu sama lain mungkin akan memiliki warna yang berbeda sehingga justru dari perbedaan itulah terbentuk suatu image dimana garis gambar bitmap yang sebenarnya tidak ada, akan tetapi hanya representasi dari unsur grid yang membentuk ilusi garis. Image bitmap biasa digunakan pada gambar fotografi, cetak digital, gambar sparasi. Bitmap mempunyai kemampuan gradasi yang baik sehingga perbedaan tingkat warna dapat jelas terlihat.

referensi : 
http://id.wikipedia.org/wiki/Bitmap
http://ivan72id.blogspot.com/2008/01/gambar-raster-vector.html

continue reading

Gunadarma News