Blogger Tips and TricksLatest Tips For BloggersBlogger Tricks
Showing posts with label Pengantar Teknologi Game. Show all posts
Showing posts with label Pengantar Teknologi Game. Show all posts

Bagaimanakah Peran Pemerintah dalam Mendukung Perkembangan Industri Kreatif di Indonesia ?

0

Posted by Octia Nuraeni | Posted in ,


Pada tulisan kali ini, saya ingin membahas mengenai salah satu judul yang saat ini cukup menarik untuk diperbincangkan. Artikel ini juga merupakan tugas yang diberikan oleh Dosen Softskill pada mata kuliah Pengantar Teknologi Game. Sebelumnya saya akan membahas sedikit mengenai Industri Kreatif.

Industri Kreatif adalah industri yang memiliki unsur utama; kreatifitas, keahlian dan bakat individu yang berpotensi meningkatkan kesejahteraan melalui penciptaan dan pemanfaatan daya kreasi individu. Komponen industri kreatif merupakan modal intelektual yang meliputi Teknologi, Seni, Budaya, dan Bisnis.

Industri Kreatif di Indonesia

Departemen Perdagangan mencatat 14 cakupan bidang ekonomi kreatif :
(1) Jasa Periklanan
(2) Arsitektur
(3) Senirupa
(4) Kerajinan
(5) Desain
(6) Mode (fashion)
(7) Film
(8) Musik
(9) Seni Pertunjukan
(10) Penerbitan
(11) Riset dan Pengembangan
(12) Software
(13) TV dan Radio
(14) Video game

Industri kreatif merupakan pokok utama dan bagian yang tak terpisahkan dalam mengembangkan sektor ekonomi kreatif yang memberikan dampak positif bagi kehidupan bangsa dan negara. Hal yang dapat dilakukan untuk merangsang pertumbuhan ekonomi kreatif di suatu Negara adalah peran pemerintah itu sendiri, hal ini telah dibuktikan oleh Pemerintah Inggris yang terus mendorong tumbuhnya pelaku kreatif di Negara tersebut melalui fasilitasi dan bantuan dana sehingga Inggris dikenal sebagai negara yang penuh dengan kreatifitas.

Menurut Dirjen PEN yang ditulis pada editorial halaman Warta Ekspor, Penyelenggaraan PPKI 2011 merupakan bukti komitmen dan konsistensi pemerintah untuk mengembangkan ekonomi kreatif nasional. PPKI juga merupakan bentuk nyata kolaborasi Triple Helix yang terdiri dari Pemerintah, Bisnis, dan Intelektual (cendekiawan, budayawan, seniman, akademisi), untuk mewujudkan ekonomi kreatif sebagai kekuatan ekonomi baru Indonesia.




Dalam perjalanan pengembangan industri kreatif nasional, masih ditemukan kekurangan-kekurangan mendasar seperti pada pemahaman terhadap industri kreatif, apresiasi terhadap kreativitas, koordinasi pengembangan, lemahnya jejaring kreatif serta enterpreneurship kreatif.  Ada lima tantangan untuk mengembangkan industri kreatif di Indonesia, diantaranya teknologi, sustainable trade, pembiayaan institusi, resources, dan sumber daya insani. Salah satu alternatif untuk menghadapi tantangan tersebut adalah dengan hadirnya platform digital ekonomi kreatif Indonesia yakni Portal IndonesiaKreatif.net .

Pada dasarnya strategi pengembangan industri kreatif terletak pada dukungan modal (financial support) dan aturan main/perundang-undangan (basic regulation). Dalam hal ini peraturan pemerintah yang mampu mengakomodir kepentingan perkembangan industri kreatif, SDM yang berkualitas dan pembentukan jaringan (network) yang solid antara pelaku industri kreatif, praktisi teknologi, dan pemerintah. Karena kreatifitas dan teknologi merupakan sebuah proses yang harus selalu berdampingan. Contohnya industri games dan software yang selalu membutuhkan sentuhan pengembangan estetika dari para praktisi seni rupa dan desain. Begitu juga sebaliknya para pelaku industri kreatif juga dituntut mampu mengikuti perkembangan teknologi. Apalagi di era internet sekarang dimana pada akhirnya banyak melahirkan media-media baru untuk dijadikan sarana berekspresi untuk berkesenian (new media art) dan media komunikasi dan informasi berbasiskan internet (new media journalism).

Hal lain yang harus dipertahankan dalam pengembangan industri kreatif adalah pemerintah tetap menyediakan fasilitas publik yang dapat diakses dengan mudah sehingga dapat dijadikan ajang berkreasi dan penyaluran ekspresi setiap individu. Selain itu dengan diterbitkannya beberapa Undang-Undang sebagai perlindungan terhadap hak karya intelektual seperti Undang-Undang Nomor 5 Tahun 1984 tentang Perindustrian, yaitu pada Bab VI Pasal 17 yang menyatakan bahwa desain produk industri mendapat perlindungan hukum, Undang-Undang Nomor 31 Tahun 2000 tentang Desain Industri dalam Perlindungan Hak atas Kekayaan Intelektual diharapkan akan mengurangi adanya pelanggaran yang terjadi di Indonesia, seperti pembajakan karya cipta, penggunaan software tanpa lisensi oleh individu dan tentu saja hal yang tidak kalah penting adalah kesadaran individu untuk mengapresiasi hasil karya cipta pelaku industri kreatif di Indonesia.

Referensi :

Terjemahan Buku Core Techniques and Algorithms in Game Programming - Shading

0

Posted by Octia Nuraeni | Posted in ,


Bab 17. Bayangan ( Shading )

"Saya melukis obyek seperti saya memikirkan mereka, tidak seperti saya melihat mereka."

- Pablo Picasso

Objek dunia nyata dan skenario ini tidak hanya ditentukan oleh geometri, bentuk, dan struktur. Kami juga sangat sensitif terhadap cahaya tampilan dan tekstur, dan bagaimana berinteraksi dengan bahan yang berbeda. Bayangkan pantai tanpa tekstur pasir atau lautan bergelombang yang tidak memantulkan sinar matahari dengan baik. Sebagian besar dari esensi suatu objek terletak di dalam sifat shading nya, dan itulah yang bab ini adalah semua tentang.

Dalam komputer grafis, shading adalah istilah yang sangat luas digunakan untuk mewakili semua proses yang terlibat dalam memberi warna pada pixel, yang pada gilirannya merupakan geometri. Bayangan (shading) biasanya dibagi menjadi dua besar daerah: sintesis bahan dan pencahayaan . Sintesis penawaran bahan dengan tekstur dan sifat permukaan, dan iluminasi menangani cahaya dan bayangan.

Bab ini berkaitan dengan komponen pencahayaan, sedangkan bab berikutnya dikhususkan untuk teknik berbasis tekstur. Berhati-hatilah, meskipun: Ini adalah pelajaran yang panjang, dan ratusan halaman bisa ditujukan untuk mereka. Mudah-mudahan, bab ini akan menunjukkan rutinitas inti, dan imajinasi Anda dan penelitian pribadi akan mengurus sisanya.

Iluminasi Dunia Nyata

Sebelum berbicara tentang algoritma pencahayaan untuk permainan real-time, mari kita berhenti dan melakukan gambaran tentang bagaimana pencahayaan nyata bekerja. Ini akan memberikan kita dengan dasar yang kuat dari mana algoritma perangkat lunak dapat diturunkan.

Cahaya adalah baik gelombang elektromagnetik dan aliran partikel (disebut foton), yang melakukan perjalanan melalui ruang dan berinteraksi dengan permukaan yang berbeda. Dalam ruang hampa, perjalanan cahaya tepat 299.792.458 meter per detik, atau sekitar 300 juta meter / detik. Kecepatan menurun sebagai media menjadi lebih resistif terhadap cahaya. Cahaya perjalanan lebih lambat di udara, bahkan lambat dalam air, dan sebagainya. Sebagai contoh, sebuah tim dari Harvard dan Stanford Universitas mampu memperlambat sinar cahaya untuk sesedikit 17 meter per detik (itu sekitar 40 mil per jam) dengan membuatnya menyeberangi gas atom natrium lewat dingin.

Berasal cahaya dari permukaan ketika atom mereka terpacu oleh panas, listrik, atau sejumlah reaksi kimia. Sebagai atom menerima energi, elektron mereka menggunakan energi yang masuk untuk berpindah dari orbit alami mereka untuk orbit yang lebih tinggi, banyak seperti lalu lintas di jalur cepat dari jalan raya. Cepat atau lambat, atom-atom ini akan jatuh kembali ke orbit normal, merilis sebuah paket energi dalam proses. Paket ini adalah apa yang biasa kita sebut satu foton. Sebuah foton memiliki tetap panjang gelombang dan frekuensi tergantung pada jenis perubahan orbital. Frekuensi menentukan warna cahaya dan juga jumlah energi sinar akan mengangkut. Di sisi energi yang lebih rendah, kita memiliki lampu merah dengan frekuensi 430GHz. Di ujung cahaya violet, yang memiliki frekuensi 730GHz. Beberapa warna, seperti
putih, tidak terkait dengan frekuensi tetap, tetapi dicapai dengan jumlah frekuensi yang berbeda dalam sinar di sebuah pola interferensi.

Tapi ingat bahwa cahaya menempati sebagian kecil dari spektrum frekuensi gelombang. Radio gelombang memiliki energi yang lebih rendah daripada cahaya tampak, sedangkan sinar-x dan sinar gamma mengangkut lebih banyak energi. Seperti perjalanan cahaya melalui ruang yang mungkin memukul obyek, dan bagian dari itu mungkin bangkit kembali. Ketika hit terjadi, foton
memukul elektron dari obyek, energi mereka, dan akhirnya mereka jatuh kembali, memancarkan foton baru. Jadi benar-benar apa yang Anda lihat adalah sinar cahaya sekunder yang sebenarnya dapat menjadi suatu frekuensi yang berbeda (dan dengan demikian warna) daripada yang pertama karena perubahan orbital dalam objek. Cara benda menyerap sebagian frekuensi dan dengan demikian menghasilkan cahaya dalam Pola warna tertentu membuat kita melihat warna pada objek. Dengan demikian, kita dapat melihat cahaya dari sumber cahaya atau dari suatu objek menyerap cahaya secara selektif. Tapi perhatikan bagaimana kedua kasus secara internal sama: Sebuah objek hanya cahaya sekunder source.

Ketika cahaya hits objek, sinar energi dibagi menjadi tiga komponen utama. Salah satu bagian yang diserap oleh objek, biasanya meningkatkan tingkat energi dalam bentuk panas. Anda merasa komponen bahwa setiap kali Anda berbaring di pantai yang cerah. Sebuah komponen kedua memantul dari permukaan dan menghasilkan sinar yang dipantulkan cahaya. Itulah yang kami melihat dalam cermin atau bahan reflektif. Sebuah berkas cahaya ketiga memasuki obyek (biasanya mengubah kecepatan karena variasi densitas antara kedua media) dan perjalanan melalui itu. Fenomena ini disebut refraksi atau transmisi , dan contoh terbaik adalah cahaya yang masuk laut. Perubahan kecepatan membuat cahaya sinar tikungan, kadang-kadang membuat kita berpikir benda direndam dalam media yang rusak (seperti jerami dalam segelas dilihat menyamping).

Dengan memahami penjelasan sebelumnya Anda dapat model fenomena yang paling ringan di dunia nyata. Shadows, untuk Misalnya, tidak lain adalah oklusi sinar cahaya oleh obyek buram, yang pada gilirannya membuat daerah (bayangan volume) terlihat lebih gelap. Glitter di puncak gelombang hanya pantulan sinar matahari dan hanya terjadi ketika orientasi gelombang memungkinkan untuk refleksi sempurna. Bahkan fenomena konsentrasi cahaya seperti hotspot disebabkan oleh lensa atau pola dalam kolam renang dapat dijelaskan. Sebagai sinar membiaskan memasuki air, mereka membungkuk. Karena banyak sinar membungkuk berkumpul di daerah kecil, itu berakhir menerima banyak energi, dan muncul dibakar. Sayangnya, sifat cahaya tidak dapat langsung diangkut ke komputer. Seperti kebanyakan atom- fenomena tingkat, jumlah data yang diperlukan untuk simulasi dunia nyata terlalu tinggi menurut standar sekarang.

Menghitung setiap adegan akan membutuhkan miliaran penembakan foton dan menjiplaknya sekitar TKP untuk model mereka perilaku akurat. Itulah yang beberapa algoritma render offline, seperti ray tracing atau radiositas, lakukan. Mereka adalah digunakan dalam penyaji komersial, tetapi mengambil apa pun dari menit ke hari untuk membuat satu frame.

Sebuah Rendering Persamaan Sederhana

Demi pemrograman game, sekarang kita akan membahas beberapa metode komputasi yang mensimulasikan cahaya interaksi. Kami akan mulai dengan algoritma relatif mudah digunakan dalam berbagai aplikasi grafis dan game.

Kemudian dalam bab ini, kita akan mengeksplorasi lebih terlibat solusi seperti Fungsi Distribusi reflektansi dua arah (BRDF). Namun untuk memulainya, kita akan menggunakan model yang menghitung pencahayaan dalam titik sebagai hasil dari tiga komponen:
  1. Ambient . Cahaya yang menyebarkan ke segala arah dan memberikan pencahayaan dasar ke TKP.
  2. Berdifusi . Cahaya yang dipantulkan dari permukaan ke segala arah. Jumlah cahaya yang dipantulkan sebanding dengan sudut insiden cahaya mencolok permukaan. Komponen ini adalah sudut pandang independen.
  3. Specular . Cahaya yang dipantulkan pada permukaan sepanjang arah cermin, yang menyumbang refleksi murni antara objek dan sumber cahaya. Seperti semua cermin, intensitas adalah melihat tergantung.

Berikut adalah persamaan pencahayaan global untuk model seperti itu:
Color = Ka*ambientColor + Kd*diffuseColor*(N dot L) + Ks*specularColor*(R dot V)shininess

Persamaan ini memiliki tiga komponen utama, satu untuk ambien, satu untuk menyebar, dan satu untuk specular. Mari kita tinjau setiap.

Ka, Kd , dan Ks melakukan kerusakan pada komponen pencahayaan. Bahan yang berbeda memiliki proporsi yang berbeda masing-masing, tetapi ketika ditambahkan, komponen ini harus 1. Nilai-nilai tipikal adalah Ka=0.2, Kd=0.5, and Ks=0.3, untuk contoh.

Tiga warna ( ambientColor , diffuseColor , dan specularColor ) adalah RGB triplet menentukan warna tiga komponen. Mereka dapat dihitung dengan menggunakan kriteria yang berbeda. The ambientColor , misalnya, biasanya putihatau beberapa warna halus yang ada hubungannya dengan siang hari warna: merah muda di malam hari, dan seterusnya. Alasan untuk menggunakan cahaya putih sebagai ambien adalah bahwa, secara umum, kita dapat mengasumsikan bahwa adegan memiliki banyak gelombang cahaya yang berbeda panjang gelombang, sehingga mereka menghasilkan cahaya putih bila dikombinasikan. Warna diffuse dan specular tergantung pada objek yang warna dan warna sumber cahaya.

Komponen specular, misalnya, biasanya diawali dengan warna sumber cahaya, sedangkan warna diffuse harus mengambil kedua permukaan dan warna cahaya menjadi pertimbangan. Secara intuitif, bola putih diterangi dengan cahaya biru tidak terlihat putih bersih, juga tidak terlihat biru murni. Jadi, dengan menggunakan teknik berikut umum:

ambientColor = putih
diffuseColor = surfaceColor * lightColor
specularColor = lightColor

Perhatikan bahwa ini adalah sebuah pendekatan. Alam tidak memiliki komponen ambient per se, dan mengalikan permukaan dan warna sumber cahaya untuk warna diffuse agak salah. Tapi hasilnya sangat baik dan dapat dihitung secara real waktu.
Sekarang, mari kita lihat sisa dari persamaan. Komponen difus adalah skala oleh ( N dot L ), di mana N adalah objek normal, dan L adalah vektor dari titik yang dinaungi ke sumber cahaya. Dengan asumsi kedua vektor adalah dinormalisasi, ini berarti kontribusi difus adalah jumlah total setiap kali cahaya jatuh pada obyek sejajar dengan yang normal dengan demikian, dengan cara yang sangat vertikal. Konfigurasi ini dipamerkan dalam Gambar 17.1 .

Gambar 17.1. Vektor normal dan ringan menjelaskan.
 

Semua cahaya kemudian bangkit kembali, dan kontribusi menyebar maksimal. Lalu, kontribusi specular adalah skala oleh ( R dot V ), di mana R adalah tercermin vektor cahaya, dan V adalah vektor melihat. Konfigurasi ini dipamerkan di Gambar 17.2

Gambar 17.2. Normal, cahaya, memantulkan cahaya, dan melihat vektor ilustrasi.

 

Secara intuitif, cahaya dipantulkan dari permukaan seperti cermin, dan jika kita angularly dekat dengan cermin yang (itulah yang R dot V artinya), kita melihat hotspot. Satu-satunya masalah adalah komputasi R dan V .

Berikut adalah persamaan:
V = vektor dari titik yang dinaungi dengan posisi kita
R = 2 * N * (N dot L) - L

Formulasi untuk R dapat memanfaatkan N dot L , yang sudah dihitung untuk komponen menyebar. Juga, perhatikan bagaimana kita menambahkan eksponen untuk persamaan. Secara intuitif, benda dipoles menunjukkan lebih kecil, lebih terfokus highlight, sehingga parameter shininess membantu kita model tersebut.
Berikut adalah persamaan umum yang menambahkan dukungan untuk berbagai sumber dan mengambil atenuasi mempertimbangkan:

Color = Ka*ambientColor + S(1/(kC+kL*di+kQdi2))*(Kd*diffuseColori* (N dot Li) + Ks*specularColori*(Ri dot V)shininess)

Perhatikan bahwa, kontribusi ambient independen sumber cahaya global ditambahkan ke jumlah individu kontribusi masing-masing lampu dalam adegan. Kemudian, masing-masing lampu memiliki komponen diffuse dan specular. Saya telah menambahkan i subindex untuk mewakili nilai-nilai yang harus dihitung per ringan, seperti warna dan vektor refleksi.

Sekarang, catatan pada faktor redaman: Dalam dunia nyata, cahaya diserap oleh jarak kuadrat. Hal ini sangat baik cocok untuk jarak yang besar hadir di dunia nyata, tetapi memberikan hasil yang aneh dalam komputer grafis. Jadi, baik OpenGL dan DirectX menggunakan model yang sedikit berbeda, dimana redaman adalah persamaan kuadrat umum berupa:
attenuation=1/(kC+kL*di+kQdi2)

Pada persamaan, di adalah jarak antara titik yang dinaungi dan sumber cahaya. Sekarang yang harus kita lakukan adalah tune kC, kL, and kQ parameter untuk mencapai hasil yang kita inginkan. Sebuah pelemahan konstan, misalnya, akan
dinyatakan sebagai (kC!=0, kL=kQ=0). Di ujung, persamaan kuadrat yang meniru dunia nyata akan dicapai dengan (kC=0, kL=0, kQ!=0). Dan atenuasi linier sangat populer digunakan oleh banyak permainan dicapai dengan kC=0, kL!=0, kQ=0.
Sebuah kata peringatan pada jenis-jenis persamaan: Ini adalah model ideal yang tidak mengambil banyak faktor pertimbangan. Bayangan, misalnya, perlu menggabungkan geometri adegan ke dalam persamaan. Apakah suatu titik dibayangan dari sumber cahaya, komponen diffuse dan specular yang baik akan dihilangkan sama sekali (untuk buram occluders) atau skala oleh nilai opacity (jika objek menyebabkan bayangan adalah semitransparan). Kita akan berbicara tentang
bayangan kemudian dalam bab dalam bagian mereka sendiri.

Per-Vertex dan Per-Pixel Pencahayaan

Cara pertama untuk menghasilkan efek pencahayaan meyakinkan pada permainan komputer adalah dengan menggunakan pencahayaan per-titik. Ini jenis pencahayaan dihitung pada simpul dari geometri saja dan disisipkan di antara. Dengan demikian, untuk menerangi segitiga kita akan menghitung persamaan pencahayaan di setiap salah satu dari tiga simpul. Kemudian, perangkat keras akan menggunakan tiga nilai untuk interpolasi penerangan dari seluruh segitiga.

Persamaan render dari bagian sebelumnya adalah pilihan yang populer karena dapat diimplementasikan dengan mudah. Bahkan, varian persamaan yang digunakan secara internal oleh kedua OpenGL dan DirectX penyaji. Tapi pencahayaan per-titik hanya dihitung sebagai simpul. Jadi apa yang akan terjadi pada dinding besar diwakili oleh hanya dua segitiga? Bayangkan bahwa kita menempatkan sumber cahaya tepat di tengah-tengah quad, jauh dari empat simpul. Di dunia nyata, sumber cahaya akan menciptakan hotspot sangat cerah di tengah dinding, tetapi karena kita tidak memiliki simpul di sana, pencahayaan per-titik akan terlihat benar-benar salah (lihat Gambar 17.3 ).

Gambar 17.3. Per-vertex (kiri) dibandingkan per-pixel (kanan) pencahayaan.


Kita perlu baik memperbaiki mesh (yang pasti akan berdampak pada bus dan GPU) atau menemukan cara yang lebih baik untuk naungan.

Di sinilah shading per-pixel tendangan masuk modus pencahayaan ini tidak menghitung pencahayaan hanya pada simpul, tetapi dalam setiap pixel di antara, sehingga pencahayaan memiliki resolusi yang lebih tinggi dan kualitas. Teknik seperti pemetaan cahaya (Dijelaskan dalam bagian berikutnya) atau shader fragmen (dijelaskan dalam Bab 21 , "Teknik Prosedural") digunakan untuk menghitung pencahayaan per pixel.

Tetapi jika pencahayaan per-vertex adalah apa yang Anda cari, ada dua pilihan. Anda dapat warna pencahayaan baik precompute dan menyimpannya sebagai warna per-vertex, atau Anda dapat meninggalkan tugas ini ke OpenGL atau DirectX mesin pencahayaan. Pertama pendekatan memiliki keuntungan menjadi lebih cepat karena tidak ada perhitungan yang dilakukan dalam loop real-time (pencahayaan adalah persamaan mahal). Di sisi lain, kontribusi specular tidak dapat precomputed karena pandangan tergantung. Pilihan kedua mengambil keuntungan dari saat ini generasi GPU, yang semua pencahayaan dukungan hardware dan mengubah.

Anda dapat menemukan contoh lengkap tentang bagaimana pencahayaan bekerja di Lampiran B , "OpenGL", dan Lampiran C , "Direct3D."


Referensi :

Anonim, Core Techniques and Algorithms in Game Programming,  http://www.tar.hu/gamealgorithms/ch17lev1sec1.html , 2 September 2009,  6:07:44 PM

Pengenalan Game Engine

1

Posted by Octia Nuraeni | Posted in , ,


Pada tulisan yang lalu saya pernah membahas mengenai bagian-bagian yang berperan dalam pengembangan suatu game yaitu Game Designer. Pada kesempatan kali ini saya akan membahas lebih detail mengenai Mesin Game atau biasa disebut juga Game Engine.

Pengertian Game Engine (Mesin Game)

Engine bukanlah executable program, artinya engine tidak bisa dijalankan sebagai program yang berdiri sendiri. Diperlukan sebuah program utama sebagai entry point atau titik awal jalannya program. Pada C++, entry point-nya adalah fungsi ‘main().’ Biasanya program utama ini relatif pendek, jadi game engine adalah program yang ‘memotori’ jalannya suatu program game. Kalau game diilustrasikan sebagai ‘musik’ yang keluar dari mp3 player, maka engine adalah ‘mp3 player’ dan program utama adalah ‘data mp3’ yang dimasukkan ke dalam mp3 player tersebut.  
Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol permainan video dan sistem operasi desktop seperti Microsoft Windows, Linux, dan Mac OS X. fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin render (“renderer”) untuk 2D atau 3D.
Di dalam game engine, terdapat fungsi-fungsi atau modul-modul, antara lain :
·         Rendering engine
·         Physical engine (collision detection)
·         Sound script
·         Animation
·         Artificial intelegenct
·         Network
·         Streaming
·         Memory management
·         Scene graph


Sejarah Game Engine

Dalam istilah bidang komputer, game engine adalah sebuah software inti yang digunakan sebagai komponen utama dalam pembuatan video game. Umumnya sebuah game engine dibuat untuk menangani rendering dan beberapa teknologi penting lainnya, namun game engine juga dapat menangani tugas seperti game AI, collision detection antara game object, sound dan lainnya. Beberapa engine game pada umumnya menyediakan fasilitas graphics rendering( 2D atau 3D ). Engine yang menyediakan fasilitas real time 3D rendering biasanya dinamakan engine 3D.
Asal muasal game engine muncul pada pertengahan tahun 1990, kata ini erat kaitannya dengan game 3 dimensi misalnya First Person Shooter ( FPS ). Setelah game game 3 dimensi Quake dan Doom ( id software ) keluar, para developer cenderung untuk menglisensi game engine dan memfokuskan ke pembuatan grafik, suara, gameplay, dan design game, dibandingkan harus memulainya dari nol lagi. Game – game generasi berikutnya seperti misalnya Quake 3 dan Unreal Tournament, sejak awal didesain, game ini memisahkan antara code game dengan asset
game ( gambar, suara, model 3 dimensi ) dengan tujuan agar developer developer game lainnya dapat membuat game sebanyak mungkin dengan hanya mengganti – ganti asset tanpa harus mengubah struktur dasar engine tersebut sehingga produktivitas akan lebih meningkat, mengurangi biaya untuk operasional dan sangat membantu untuk mendukung kemajuan industri game.

Tujuan Penggunaan Game Engine

Tujuan penggunaan game engine untuk menyediakan fasilitas yang memudahkan pengembangan, seperti grafik, suara, fisika dan fungsi AI. Mesin permainan biasanya menyediakan abstraksi platform, yang memungkinkan permainan yang sama untuk dijalankan pada berbagai platform termasuk game konsol dan komputer pribadi dengan sedikit, jika ada, perubahan yang dibuat ke kode sumber permainan. Seringkali, mesin permainan dirancang dengan arsitektur berbasis komponen yang memungkinkan sistem tertentu dalam mesin yang akan diganti atau diperpanjang dengan lebih khusus (dan sering kali lebih mahal) komponen middleware game seperti Havok untuk fisika, Miles Sound System untuk suara, atau Bink untuk Video.
Beberapa mesin permainan hanya menyediakan 3D real-time rendering kemampuan bukan berbagai fungsi yang dibutuhkan oleh game. Mesin ini mengandalkan pengembang game untuk melaksanakan seluruh fungsi ini atau merakit dari komponen middleware permainan lainnya. Jenis mesin umumnya disebut sebagai “mesin grafis,” “mesin render,” atau “mesin 3D” bukan meliputi lebih istilah “mesin permainan.” Terminologi ini tidak konsisten banyak digunakan sebagai fitur lengkap mesin permainan 3D disebut hanya sebagai “mesin 3D.” Beberapa contoh mesin grafis adalah: Crystal Space, Genesis3D, Irrlicht, JMonkey Engine, OGRE, RealmForge, Truevision3D, dan Visi Engine. Modern permainan atau mesin grafis umumnya memberikan grafik adegan, yang merupakan representasi berorientasi objek dari dunia permainan 3D yang sering menyederhanakan desain game dan dapat digunakan untuk rendering yang lebih efisien dari dunia maya yang luas.

Tipe Game Engine

Game engine biasanya datang dengan berbagai macam jenis dan ditujukan untuk berbagai kemampuan pemrograman. Ada 3 tipe game engine yang ada saat ini, diantaranya :

1. Roll-your-own game engine

Banyak perusahaan game kecil seperti publisher indie biasanya menggunakan engine-nya sendiri. Mereka menggunakan API seperti XNA, DirectX atau OpenGL untuk membuat game engine mereka sendiri. Di sisi lain, mereka kadang menggunakan library komersil atau yang open source. Biasanya game engine tipe ini lebih disukai karena selain kemungkinan besar diberikan secara gratis, juga memperbolehkan mereka (para developer) lebih fleksibel dalam mengintegrasikan komponen yang diinginkan untuk dibentuk sebagai game engine mereka sendiri. Kelemahannya banyak engine yang dibuat dengan cara semacam ini malah menyerang balik developernya.

2. Mostly-ready game engines

Engine ini biasanya sudah menyediakan semuanya begitu diberikan pada developer/programer. Semuanya termasuk contoh GUI, physiscs, libraries model, texture dan lain-lain. Banyak dari mereka yang sudah benar-benar matang, sehingga dapat langsung digunakan untuk scripting sejak hari pertama. Game engine semacam ini memiliki beberapa batasan, terutama jika dibandingkan dengan game engine sebelumnya yang benar-benar terbuka lebar. Hal ini ditujukan agar tidak terjadi banyak error yang mungkin terjadi setelah sebuah game yang menggunakan engine ini dirilis dan masih memungkinkan game engine-nya tersebut untuk mengoptimalkan kinerja game-nya. Contoh tipe game engine seperti ini adalah Unreal Engine, Source Engine, id Tech Engine dan sebagainya yang sudah sangat optimal dibandingkan jika harus membuat dari awal. Dengan hal ini dapat menyingkat menghemat waktu dan biaya dari para developer game.

3. Point-and-click engines

Engine ini merupakan engine yang sangat dibatasi, tapi dibuat dengan sangat user friendly. Anda bahkan bisa mulai membuat game sendiri menggunakan engine seperti GameMaker, Torque Game Builder dan Unity3D. Dengan sedikit memanfaatkan coding, kamu sudah bisa merilis game point-and-click yang kamu banget. Kekurangannya terletak pada terbatasnya jenis interaksi yang bisa dilakukan dan biasanya hal ini mencakup semuanya, mulai dari grafis hingga tata suara. Tapi bukan berarti game engine jenis ini tidak berguna, bagi developer cerdas dan memiliki kreativitas tinggi, game engine seperti ini bisa dirubah menjadi sebuah game menyenangkan, seperti Flow. Game engine ini memang ditujukan bagi developer yang ingin menyingkat waktu pemrogramman dan merilis game-game mereka secepatnya.

Beberapa Contoh Game Engine Open Source :



- 3Dgame Studio
- Delta 3D
- UnrealEngine
- Panda3D
- Torque
- Quake Engine

Beberapa elemen yang ada di dalam game engine adalah :

a. Tools/Data
Dalam pengembangan game, dibutuhkan data yang tidak semudah menuliskan text files. Dalam pengembangan game, paling tidak dibutuhkan beberapa tools seperti 3d model editor, level editor dan graphics programs.

b. System
System adalah bagian dari game engine yang berfungsi untuk melakukan komunikasi dengan hardware yang berada di dalam mesin. Jika game engine sudah dibuat dengan baik maka system ini adalah satu-satunya bagian yang membutuhkan perubahan yang cukup banyak apabila dilakukan implementasi pada platform yang berbeda. Di dalam system sendiri terdapat beberapa sub system yaitu graphics, input, sound, timer, configuration. System sendiri bertanggung jawab untuk melakukan inisialisasi, update dan mematikan sub system yang terdapat di dalamnya.

c. Console
Dengan menambahkan console, kita dapat merubah setting game dan setting game engine di dalam game tanpa perlu melakukan restart pada game tersebut. Console sendiri lebih sering digunakan dalam proses debugging. Apabila game engine tersebut mengalami error kita tinggal mengoutputkan error message tersebut ke dalam console tanpa harus melakukan restart. Console dapat dihidupkan dan dimatikan sesuai keinginan.

d. Support
Support adalah bagian yang paling sering digunakan oleh system di dalam game engine. Support sendiri berisi rumus-rumus matematika yang biasa digunakan, vector, matrix, memory manager, file loader. Merupakan dasar dari game engine dan hampir digunakan semua projek game engine.

e. Renderer/Engine Core
Pada game engine, engine core / renderer terdiri dari beberapa sub yaitu visibility, Collision Detection dan Response, Camera, Static Geometry, Dynamic Geometry, Particle Systems, Billboarding, Meshes, Skybox, Lighting, Fogging, Vertex Shading, dan Output.

f. Game Interface
Game interface sendiri merupakan layer diantara game engine dan game itu sendiri. Berfungsi sebagai control yang bertujuan untuk memberikan interface apabila di dalam game engine tersebut terdapat fungsi fungsi yang bersifat dinamis sehingga memudahkan untuk mengembangkan game tersebut.

g. The Game
Merupakan inti dari penggunaan game engine sendiri, sehingga terserah kita bagaimana mengembangkan game tersebut.


Game Development Tools
Game development tools adalah software yang mempunyai spesialisasi yang membantu atau memfasilitasi pembuatan computer atau video game. Beberapa tugas dapat ditangani oleh game development tools termasuk konversi beberapa kelengkapan dari video game seperti 3D model dan texture ke dalam format yang diperlukan oleh game, level editing serta script compilation.
Pada saat pengembangannya. Game development seringkali menemui kendala. Hal berikut ini adalah beberapa alasan kenapa game development tools dibilang gagal :

a. Game development yang di design seiring waktu berjalan
b. System model dari design game development game tersebut
c. Menerapkan teknologi yang salah untuk menekan biaya
d. Interface yang terlalu kompleks
e. Terlalu banyak fitur-fitur tambahan
f. Merancang untuk user yang sudah advance

Beberapa contoh game development tools :

a. RAD Game tools
b. Java Game Development Tools
c. Garage games game development tools

Sumber Referensi:




Peran Game Designer dalam Pengembangan Game

2

Posted by Octia Nuraeni | Posted in ,


Untuk memenuhi tugas Softskill dengan mata kuliah Pengantar Teknologi Game, saya akan membahas sekilas mengenai Game dan bagian-bagiannya. Game dalam bahasa Inggris berarti permainan, sedangkan objek yang melakukan permainan tersebut adalah pemain atau player. 

Game juga dapat diartikan sebagai arena keputusan dan aksi pemainnya. Saat ini perkembangan game sudah sangat pesat. Dalam pengembangan game, bagian-bagian yang berperan antara lain :
         Game Designer : Format dan Behaviour dari Game
         Artist : Model-model, Textures, Animation
         Level Designer : Ruang atau Environment Game
         Audio Designer : Suara yang digunakan
         Programmer : Menuliskan Code
         Lain-lain  Produksi, Management, Marketing

Namun saya hanya akan membahas lebih detail mengenai Game Designer. Berikut ini adalah pembahasan Game Designer, Pengertian Game Engine dan Contoh dari Game Engine .

Game Designer termasuk dalam pre-production stage, yang berarti Game Designer bekerja sebelum Artist dan Programmer. Game Designer adalah seseorang yang bertugas untuk membuat alur cerita atau blueprint dari sebuah game yang akan dibuat. Hal ini bertujuan untuk memperkuat daya analisis dan logika berpikir para pemainnya untuk pengambilan keputusan sebaik mungkin. Sehingga pekerjaan artist dan programmer akan lebih terarah dalam mengembangkan sebuah game. Untuk menjadi seorang game designer, kita harus memperoleh keterampilan dalam memainkan banyak game meskipun bukan game yang kita sukai. Langkah berikutnya yaitu mempelajari lebih lanjut dengan membaca setiap buku, tidak hanya buku yang berisi tentang rancangan sebuah game namun buku yang lainnya seperti buku pengetahuan umum, buku cerita dan yang lainnya juga dapat diterapkan hingga menjadi sebuah rancangan game.

Genre adalah konsep dari game yang harus dipahami oleh seorang Game Designer. Beberapa genre yang umum dipakai yaitu Action, Adventure, Casual, Educational, Fighting, Online Game, Puzzle, RPG, Simulation, Sport, dan Strategy.

Bagian-bagian pada Game Designer :
  •   Lead designer adalah orang yang bertanggung jawab atas semua kinerja teamnya. Dia akan memimpin dan juga memastikan komunikasi team berjalan dengan baik serta memiliki wewenang dalam pengambilan keputusan.
  • Game mechanic designer adalah orang yang mendesain dan menyeimbangkan mekanika alur cerita pada sebuah game.
  • Level designer or environment designer adalah orang yang bertanggung jawab dalam pembuatan misi game, level game, fitur game dan lingkungan sekitar pada game.
  • Writer adalah orang yang menulis dan memahami cerita dari game, dialog, komentar, dan cerita cuplikan game.
Beberapa hal yang perlu diperhatikan dalam mendesain sebuah game yaitu : 
1. Level Design : mendesain setiap level game termasuk fitur, tingkat kesulitan, dan tema dari setiap level. 
2. World Design : merancang dunia dalam game. Mulai dari latar tempat, waktu dan tema keseluruhan dari game. 
3. Game Writing : merancang setiap dialog, komentar dan jalan cerita dari game. 
4. User Interface Design : mendesain interaksi user dan segala feedbacknya, misalnya saat kita mengetuk pintu, apa yang akan terjadi selanjutnya. 
5. Content Design : mendesain karakter, barang, perlengkapan, misi, dan lain-lain. 
6. System Design : merancang game rules dan rumus-rumus yang digunakan secara garis besar. Misalnya pada game Angry Bird, bagaimana game akan terjadi, apakah menggunakan rumus parabola, atau lebih mengutamakan fitur physics, atau bahkan kedua-duanya.
Beberapa pertanyaan yang biasa dijadikan acuan oleh seorang Game Designer yaitu:
-  Apa saja yang akan menjadi aturannya?
-  Bagaimana tolak ukur penilaian gamenya (skor)
-  Bagaimana pergeseran tingkat kesulitan seiring dengan jalannya game?
-  Apa yang membuat game ini menyenangkan?

Beberapa tugas yang biasanya dikerjakan oleh Game Designer diantaranya :
  • Membuat Mock-up game. Mock-up adalah gambaran kasar/sketsa yang menggambarkan game seperti apa yang kita inginkan.
  • Membuat Storyboard, yaitu gambar berurutan yang menunjukkan level dari tiap game atau menggambarkan adegan-adegan tiap kejadian yang berbeda-beda.
  • Menentukan genre. Terkadang seorang Game Designer membuat eksperimennya sendiri. Sering kali mereka mencoba menggabungkan beberapa tipe genre menjadi sebuah game yang unik. Bisa jadi mixing genre itu berbuah hasil yang baik, atau tidak jarang juga malah gagal.
  • Gameplay, deskripsikan apa yang akan player lakukan di dalam game.
  • Fitur, buat daftar apa saja yang akan menjadi fitur dalam game itu. Misalkan grafis yang tidak biasa, game play yag menarik, dan lain-lain.
  • Setting, deskripsikan dunia gamenya. Termasuk konsep art yang akan digunakan. Jika game ini kuat di storynya, maka tambahkan fitur yang mempengaruhi jalan cerita.
  • Story, jika gamenya mempunyai jalan cerita, maka berikan penjelasan mendetil. Perkenalkan karakter utama, identifikasikan masalahnya, deskripsikan penjahatnya, dan jelaskan bagaimana hero akan mengalahkannya.
  • Target audience, game ini akan dipasarkan untuk remaja kah? Remaja pria atau wanita kah?
  • Hardware Platform, jelaskan untuk device apa game ini akan dibuat. Apakah untuk PC, Console, Mobile, Handheld, dan lain-lain.
  • Estimasi jadwal, budget, dan P&L. Jika kita juga bekerja sebagai publisher, maka kita juga harus menentukan jadwal pengerjaan, budget yang akan dikeluarkan, dan profit & lossnya.

Pengertian Game Engine
Game engine adalah sebuah perangkat lunak yang dirancang untuk pembuatan dan pengembangan suatu video game. Game engine memberikan kemudahan dalam menciptakan konsep sebuah game yang akan di buat. Sebuah game engine dibagi menjadi dua bagian besar. Yaitu API dan SDK. API ( Applicaiton Programming Interfaces ) adalah bagian operating system, services dan libraries yang diperlukan untuk memanfaatkan beberapa feature yang diperlukan. Dalam hal ini contohnya DirectX. Sementara SDK adalah kumpulan dari libraries dan API yang sudah siap digunakan untuk memodifikasi program yang menggunakan operating system dan services yang sama. Fungsi utama yang disediakan oleh game engine meliputi rendering untuk grafik 2D atau 3D, deteksi tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, manajemen memori, threading, dukungan lokalisasi dan layar grafik.
Berikut ini beberapa tipe dari game engine diantaranya :
1.      Roll-your-own game engine
2.      Mostly-ready game engines
3.      Point-and-click engines

Open Source Game engine
  • Blender
  • Crystal Space
  • DXFramework
  • Golden T Game Engine (GTGE) 
  • Irrlicht
  • OGRE
  • Panda3D
  • Reality Factory
  • RealmForge
  • The Nebula Device 2
Commercial Game engine
  • 3DGameStudio
  • C4 Engine
  • DXStudio
  • GameStudio
  • Esenthel Engine
  • Leadwerks Engine 2
  • NeoAxis Engine
  • Torque Game Engine
  • TV3D SDK 6.5
  • Visual3D.NET Game Engine


Referensi :