Sabtu, 23 April 2016

Arsitektur Game Engine







Hello sahabat blogger, jumpa lagi dengan saya, lama sudah saya ga pernah menyapa kalian haha. Kali ini saya akan memposting sesuatu yang pastinya sobat blogger tau dan pernah melakukannya. Yupz, GAME!!!!, kalian pasti udah ga asing lagi dong dengan yang namanya game???? Hampir seluruh manusia di dunia pasti pernah memainkan sebuah game. Yang orang-orang lakukan pasti hanya bermain dan tidak mengetahui bagaimana cara membuat game. Tapi taukah kalian, bahwa membuat game itu tidaklah mudah, layaknya sebuah bangunan yang tentu juda ada arsitekturnya. Begitu pula dengan game, terdapat beberapa komponen pendukung seperti game engine. Bentuk game engine pun juga beragam. Nah !!! Untuk lebih jelasnya mari simak penjelasan berikut.



Pengertian Game Engine (Mesin Game)


Game Engine adalah system perangkat lunak yang dirancang untuk menciptakan dan pengembangan video game. 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 grafis, mesin fisika atau tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, manajemen memori, threading, dukungan lokalisasi, dan adegan grafik. Proses pengembangan permainan sering dihemat oleh sebagian besar menggunakan kembali mesin permainan yang sama untuk menciptakan permainan yang berbeda.


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. 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. Dengan adanya engine, waktu, tenaga dan biaya yang dibutuhkan untuk membuat game software menjadi berkurang secara signifikan.


Beberapa game dengan jenis dan gameplay yang hampir sama bisa dibuat dengan sedikit usaha bila terlebih dulu dibuat engine-nya. Setelah engine diselesaikan, programmer hanya perlu menambahkan program utama, memakai resources (objek 3D, musik, efek suara) yang baru, dan, jika benar-benar dibutuhkan, sedikit memodifikasi engine sesuai kebutuhan spesifk dari game yang bersangkutan. Program game engine seluruhnya berorientasi objek. Dia lebih bersifat reaktif daripada prosedural. Sulit untuk menggambarkan engine secara keseluruhan dalam flow-chart, karena alur program bisa diatur sesuai dengan keinginan pemakai engine, yaitu game programmer.



Tujuan Penggunaan Game Engine



Game engine menyediakan seperangkat alat pengembangan visual di samping komponen software digunakan kembali. Alat-alat ini umumnya diberikan dalam suatu lingkungan pengembangan terpadu untuk mengaktifkan disederhanakan, perkembangan pesat dari permainan dengan cara data-driven. Mesin pengembang Game upaya untuk “pra-menciptakan roda” dengan mengembangkan suite perangkat lunak kuat yang mencakup banyak unsur pengembang game mungkin perlu untuk membangun sebuah permainan. 

Kebanyakan mesin permainan suite menyediakan fasilitas yang memudahkan pengembangan, seperti grafik, suara, fisika dan fungsi AI. Mesin permainan ini kadang-kadang disebut “middleware” karena, seperti dengan istilah naluri bisnis, mereka menyediakan sebuah platform perangkat lunak yang fleksibel dan dapat digunakan kembali yang menyediakan semua fungsionalitas inti yang dibutuhkan, langsung dari kotak, untuk mengembangkan sebuah aplikasi permainan sambil mengurangi biaya , kompleksitas, dan waktu-ke-pasar-semua faktor penting dalam industri video game yang sangat kompetitif. Gamebryo dan RenderWare adalah seperti program middleware banyak digunakan.


Seperti solusi middleware lainnya, 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 seperti RenderWare bahkan dirancang sebagai rangkaian dihubungkan secara longgar komponen middleware permainan yang bisa selektif dikombinasikan untuk membuat mesin khusus, bukan pendekatan yang lebih umum dari memperluas atau menyesuaikan solusi terintegrasi yang fleksibel. Namun diperpanjang tercapai, hal itu tetap menjadi prioritas tinggi dalam mesin game karena berbagai kegunaan yang mereka diterapkan. Meskipun kekhususan nama, mesin permainan yang sering digunakan untuk jenis lain aplikasi interaktif dengan kebutuhan grafis real-time seperti demo pemasaran, visualisasi arsitektur, simulasi pelatihan, dan lingkungan pemodelan.


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.




Arsitektur Game Engine



Arsitek adalah pelajaran untuk membuat rancangan dari bangunan. Sedangkan arsitektur mesin game adalah system perangkat lunak yang dirancang untuk menciptakan dan pengembangan video game. Dapat dikatakan bahwa arsitektur mesin game itu adalah rancangan dari sistem perangkat lunak dari game itu sendiri.


Tahap awal dari merancang suatu game adalah memilih jenis game yang akan dibuat agar dapat lebih terfokus dalam mengerjakannya. Selanjutnya adalah mendesaian game yang akan dibuat. Setelah kita memiliki desain game, langkah berikutnya adalah mengimplementasikan desain tersebut menjadi source code. Apabila source telah selesai dirancang, maka game tersebut dapat dimainkan dan digunakan sesuai yang diinginkan oleh sang pembuat game. Apakah game tersebut dibuat untuk dikomersilkan atau dikembangkan oleh orang lain.



Beberapa elemen yang terdapat dalam game engine, yaitu:


a) Tools/Data


Pada pengembangan game paling tidak dibutuhkan beberapa tools seperti 3d model editor, level editor dan graphics programs. Bahkan jika diperlukan, seringkali kita mengembangkan game engine tersebut dengan menambahkan beberapa code dan fitur yang diperlukan.



b) System


System adalah bagian dari game engine yang berfungsi untuk melakukan komunikasi dengan hardware yang berada di dalam mesin. System adalah bagian yang membutuhkan perubahan yang cukup banyak apabila dilakukan implementasi pada platform yang berbeda. Di dalam system sendiri terdapat beberapa sub system seperti graphics, input, sound, timer, configuration. System bertanggung jawab untuk melakukan inisialisasi, update dan mematikan sub system yang terdapat di dalamnya.



c) Console


Console dapat merubah setting game dan setting game engine di dalam game tanpa perlu melakukan restart pada game tersebut. Console biasa digunakan dalam proses debugging, seperti misalnya apabila game engine tersebut mengalami error maka kita hanya mengoutputkan error message tersebut ke dalam console tanpa harus melakukan restart.



d) Support


Support merupakan bagian yang sering digunakan pada system di galam game engine. Support berisikan rumus-rumus matematika yang biasa digunakan, vector, matrix, memory, file loader. Merupakan dasar dari game engine dan hampir digunakan dalam semua project game engine.



e) Renderer/Engine Core


Renderer/engine core 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 merupakan layer antara game engine dan game itu sendiri. Berfungsi sebagai control yang bertuuan untuk memberikan interface apabila di dalam game engine tersebut terdapat fungsi yang bersifat dinamis sehingga memudahkan untuk mengembangkan game tersebut.



g) The Game


Game merupakan inti dari penggunaan game engine sendiri, sehingga ini tergantung bagaimana pengguna dalam mengembangkannya.






Tipe-Tipe Game Engine



Game engine biasanya datang dengan macam-macam jenis dan tujuannya. Ada 3 tipe game engine yaitu sebagai berikut :



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. Terkadang mereka juga membuat semuanya mulai dari nol. 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. Tower Games Studio membutuhkan satu tahun penuh untuk menyempurnakan game engine-nya, hanya untuk ditulis ulang semuanya dalam beberapa hari sebelum penggunaannya karena adanya bug kecil yang sangat mengganggu.



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.





Sumber :


https://takinginitiative.wordpress.com/2010/04/25/game-engine-architecture-review/


http://jevrie-brothers.blogspot.com/2012/04/arsitektur-mesin-game-game-engine.html


http://en.wikipedia.org/wiki/Game_engine


http://zeprikuswandi.blogspot.com/2012/04/arsitektur-game-engine-mesin-game.html

Kamis, 14 April 2016

MOBILE COMPUTING

Jika kita bicara tentang teknologi mobile, rasanya di zaman sekarang ini bukan istlah baru. Teknologi sudah berkembang sangat pesat. Jauh dari yang dibayangkan dimasa lalu. Hampir setiap orang saat ini menggunakan dengan apa yang disebut teknologi mobile. Dari masyarakat lapisan atas hingga lapis bawah. Contoh yang paling sederhana salah satunya adalah handphone.  Teknologi sekarang ini sangat membantu dalam menyelesaikan pekerjaan bahkan saat ini sudah menjadi salah satu kebutuhan setiap orang. Dibalik itu semua, teknologi ini erat kaitannya dengan proses komputasi yang menjadikannya bermanfaat dalam menyelesaikan masalah maupun pekerjaan. Komputasi pada teknologi ini dapat disebut Mobile computing.

Dari beberapa sumber didapat bahwa definisi mobile komputer atau mobile computing, yaitu :

  • Mobile Computing merupakan kemajuan teknologi komputer, sering disebut sebagai mobile computer (portable computer) yang dapat berkomunikasi dengan jaringan tanpa kabel (nirkabel).

  • Mobile Computing adalah sebuah komputasi menggunakan teknologi yang tidak terhubung secara fisik, atau dalam jarak jauh atau lingkungan mobile (non statik).

  •  Mobile Computing adalah suatu istilah yang digunakan untuk menggambarkan aplikasi pada piranti berukuran kecil, portable, dan wireless serta mendukung komunikasi. dari pengertian diatas kita dapat mengambil kesimpulan bahwa mobile computing itu adalah teknologi tanpa kabel, biasanya berkuran kecil, portable / dapat dibawa kemana mana dan dapat mendukung komunikasi.


Device yang tergolong sebagai mobile computing cenderung portable dan mudah untuk dibawa kemana saja, contohnya adalah Laptop, Tablet, PDA dan SmartPhone. Dari pengertian diatas kita dapat mengambil kesimpulan bahwa mobile computing itu adalah teknologi tanpa kabel, biasanya berkuran kecil, portable / dapat dibawa kemana-mana dan dapat mendukung komunikasi.


Aplikasi Mobile Computing

Aplikasi mobile computing sangatlah banyak, dan telah banyak digunakan oleh banyak perusahaan, baik berskala kecil maupun besar. Dan akan terus berkembang sesuai perkembangan zaman. Berikut contoh aplikasi Mobile Computing :



BNI Mobile Banking merupakan salah satu layanan BNI e-Banking berbasis aplikasi yang membantu Anda melakukan transaksi perbankan melalui smartphone Anda.
BNI Mobile Banking memliki fitur-fitur lengkap antara lain:
transfer antar rekening BNI maupun antar bank
·         transfer sekarang atau terjadwal
·         pembelian
·         pembayaran
·         tagihan
·         cek saldo & mutasi rekening
·         lihat bukti transaksi
·         dll.





Lazada.co.id merupakan bagian dari Lazada Group yang menjadi tujuan belanja online nomor satu di Asia Tenggara. Lazada Group beroperasi di Indonesia, Malaysia, Filipina, Singapura, Thailand dan Vietnam. Menjadi pionir di bidang e-commerce, 

Lazada menghadirkan layanan berbelanja yang mudah bagi konsumen dan akses langsung pada database konsumen terbesar di Asia Tenggara. Dengan ratusan ribu pilihan produk tersedia dari berbagai kategori, kesehatan dan kecantikan, peralatan rumah tangga, handphone dan tablet, elektronik, peralatan rumah tangga, Lazada menjadi tujuan utama untuk memenuhi kebutuhan berbelanja konsumen.




Traveloka adalah salah satu situs pencarian tiket pesawat dan hotel terkemuka di Asia Tenggara, melayani lebih dari 18.000 rute penerbangan dan ribuan hotel di kawasan Asia Pasifik. dengan menggunakan aplikasi ini pengguna tidak perlu repot untuk mencari travel karena dengan aplikasi sangat memudahkan pengguna untuk bisa mendapatkan tiket pesawat terbang maupun hotel.


Salah satu perusahaan yang menerapkan mobile computing adalah BNI.



Banyak produk produk yang dikeluarkan BNI salah satunya terdapat BNI Mobile Banking dimana aplikasi tersebut kita dapat mengurus perbankan anda hanya dengan menggunakan smartphone, dan juga terdapat  BNI SMS Banking, BNI Internet Banking, BNI Phone Banking yang dapat diakses melalui Smartphone guna memudahkan transaksi nasabah.






Sabtu, 02 April 2016

Konsep Pembuatan Script Game Computer



Apa itu game?

Dalam kamus bahasa Indonesia “Game”diartikan sebagai permainan. Permainan merupakan bagian dari bermain dan bermain juga bagian dari permainan keduanya saling berhubungan. Permainan adalah kegiatan yang kompleks yang didalamnya terdapat peraturan, play dan budaya. Sebuah permainan adalah sebuah sistem dimana pemain terlibat dalam konflik buatan, disini pemain berinteraksi dengan sistem dan konflik dalam permainan merupakan rekayasa atau buatan, dalam permainan terdapat peraturan yang bertujuan untuk membatasi perilaku pemain dan menentukan permainan. Game bertujuan untuk menghibur, biasanya game banyak disukai oleh anak – anak hingga orang dewasa. Games sebenarnya penting untuk perkembangan otak, untuk meningkatkan konsentrasi dan melatih untuk memecahkan masalah dengan tepat dan cepat karena dalam game terdapat berbagai konflik atau masalah yang menuntut kita untuk menyelesaikannya dengan cepat dan tepat. Tetapi game juga bisa merugikan karena apabila kita sudah kecanduan game kita akan lupa waktu dan akan mengganggu kegiatan atau aktifitas yang sedang kita lakukan.

Game berasal dari kata bahasa inggris yang berarti dasar permainan. Permainan dalam hal ini merujuk pada pengertian kelincahan intelektual( Intellectual Playability Game) yang juga bisa diartikan sebagai arena keputusan dan aksi pemainnya. Dalam game, ada target-target yang ingin dicapai pemainnya.

Di dalam sebuah game, terdapat komponen-komponen dalam game:

1. Grafik

Grafik merupakan suatu hal yang penting dalam game, dimana grafik ini akan membuat game menjadi daya tarik user untuk memainkan game. pada awalnya game menggunakan grafik monokrom dengan layar hitam putih sampai sekarang sudah menggunakan teknologi 3D, semakin bagus grafik maka game tersebut semakin seperti dalam dunia nyata.

2. Suara

suara menjadi komponen game karena dengan adanya suara pada game maka game tersebut akan menarik sehingga kita dapat merasakan kondisi dalam game tersebut. selain itu, dengan adanya suara, kita tidak bosan bermain game.

3. AI(kecerdasan Buatan)

Kecerdasan buatan atau AI(artificial Inteligence) menjadi komponen game karena dengan hal tersebut game menjadi lebih menantang. Dengan menggunakan AI, game dapat berpikir untuk mengalahkan pemain sehingga membuat game lebih seru. 4. Skenario Game Skenario game menjadi komponen game karena dengan adanya skenario dalam game, si pemain seolah-olah bermain sesuai dengan petunjuk yang ada di game tersebut, sehingga dapat dikatakan game tersebut memiliki cerita sehingga membuat pemain lebih asyik memainkan game tersebut.

4. Skenario

Game Skenario game menjadi komponen game karena dengan adanya skenario dalam game, si pemain seolah-olah bermain sesuai dengan petunjuk yang ada di game tersebut, sehingga dapat dikatakan game tersebut memiliki cerita sehingga membuat pemain lebih asyik memainkan game tersebut

5. Multiplayer

Multiplayer bisa menjadi komponen game karena dengan hal tersebut, pemain dapat bermain dengan teman-temannya dan orang lain sehingga game itu dapat dimainkan lebih dari 1 orang. dengan kata lain, multiplayer adalah sebuah mode dalam game dimana game dimainkan oleh pemain lainnya sehingga bermain game secara bersama-sama.

Apa itu game engine?

(Game Engine) mesin permainan adalah sebuah sistem yang dirancang untuk penciptaan dan pengembangan video game. Ada banyak mesin permainan yang dirancang untuk bekerja pada video game konsol dan komputer pribadi. Fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin rendering (“renderer”) untuk grafis 2D atau 3D, mesin fisika atau deteksi tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, memori manajemen, threading, dukungan lokalisasi, dan grafik adegan. Proses pengembangan game sering dihemat oleh di menggunakan kembali sebagian besar / mengadaptasi mesin permainan yang sama untuk membuat game yang berbeda. Sejarah Game Engine

Sebelum (Game Engine) mesin permainan, permainan yang biasanya ditulis sebagai entitas tunggal: game untuk Atari 2600, misalnya, harus dirancang dari bawah ke atas untuk memanfaatkan optimal hardware layar tampilan ini rutin-core hari ini disebut kernel oleh retro pengembang. Platform lain telah kelonggaran lebih, tetapi bahkan ketika layar itu bukan masalah, kendala memori biasanya menyabotase upaya untuk menciptakan desain data-berat yang mesin kebutuhan. Bahkan pada platform menampung lebih, sangat kecil dapat digunakan kembali antara permainan. Kemajuan pesat hardware arcade-ujung tombak dari pasar-berarti bahwa sebagian besar kode harus dibuang setelah itu pula, sebagai generasi kemudian akan menggunakan desain permainan game yang sama sekali berbeda yang mengambil keuntungan dari sumber daya tambahan. Jadi desain paling permainan melalui 1980 dirancang melalui ruleset-keras dikodekan dengan sejumlah kecil data tingkat dan grafis. Generasi pertama dari mesin grafis pihak ketiga atau renderers (dan pelopor untuk apa yang sekarang kita kenal sebagai mesin) didominasi oleh tiga pemain; BRender dari Argonaut Software, Renderware dari Kriteria Software Limited dan RenderMorphics ‘Realitas Lab. Realitas Lab adalah tercepat dari tiga dan adalah yang pertama diperoleh dalam langkah agresif oleh Microsoft. Tim RenderMorphics Pegawai Negeri Keondjian, Kate Seekings dan Doug Rabson kemudian bergabung dengan proyek Microsoft yang berubah Realita Lab ke Direct3D sebelum Keondjian dan Rabson kiri untuk memulai perusahaan lain middleware Qube Software. Renderware akhirnya dibeli oleh EA (Electronic Arts) tetapi dikesampingkan oleh raksasa permainan.

Istilah “Game Engine (Mesin Permainan)” muncul pada pertengahan 1990-an, terutama dalam kaitannya dengan game 3D seperti penembak orang pertama (FPS). (Lihat juga:. mesin first-person shooter) tersebut adalah popularitas Id Doom Software dan game Quake, daripada bekerja dari awal, pengembang lain berlisensi bagian inti dari perangkat lunak dan desain grafis mereka sendiri, karakter, senjata dan tingkat -The “permainan isi ” atau “aset permainan.” Pemisahan aturan permainan spesifik dan data dari konsep-konsep dasar seperti deteksi tabrakan dan entitas permainan berarti bahwa tim bisa tumbuh dan mengkhususkan.

Kemudian permainan, seperti Quake III Arena dan 1998 Epic’s Unreal Games dirancang dengan pendekatan ini dalam pikiran, dengan mesin dan konten dikembangkan secara terpisah. Praktek lisensi teknologi tersebut telah terbukti menjadi aliran pendapatan yang berguna tambahan untuk beberapa pengembang game, sebagai lisensi satu untuk mesin game high-end komersial dapat berkisar dari US $ 10.000 untuk jutaan dolar, dan jumlah lisensi dapat mencapai beberapa lusin perusahaan, seperti terlihat dengan Unreal Engine. Paling tidak, mesin dapat digunakan kembali membuat sekuel game berkembang lebih cepat dan mudah, yang merupakan keunggulan yang berharga dalam industri video game yang kompetitif.

Mesin permainan modern adalah beberapa aplikasi yang paling kompleks yang ditulis, sering menampilkan puluhan sistem tersetel berinteraksi untuk memastikan pengalaman pengguna yang tepat dikendalikan. Evolusi terus mesin permainan telah menciptakan sebuah pemisahan yang kuat antara rendering, scripting, karya seni, dan desain tingkat. Sekarang umum, misalnya, untuk tim pengembangan game khas untuk memiliki beberapa kali banyak seniman sebagai programmer yang sebenarnya.

Permainan penembak orang-pertama tetap menjadi pengguna utama dari mesin permainan pihak ketiga, tetapi mereka sekarang juga digunakan dalam genre lain. Sebagai contoh, RPG The Elder Scrolls III: Morrowind dan MMORPG Dark Age of Camelot didasarkan pada mesin Gamebryo, dan MMORPG Lineage II didasarkan pada Unreal Engine. Game mesin digunakan untuk game awalnya dikembangkan untuk rumah konsol juga, misalnya, mesin RenderWare digunakan dalam Grand Theft Auto dan waralaba Burnout.

Threading adalah mengambil lebih penting karena sistem multi-core modern (misalnya Cell) dan tuntutan meningkat pada realisme. Benang Khas melibatkan rendering, streaming, audio, dan fisika. Permainan Balapan yang biasanya berada di garis depan threading dengan mesin fisika berjalan di sebuah thread terpisah jauh sebelum subsistem inti lainnya dipindahkan, sebagian karena rendering dan tugas terkait perlu update hanya pada 30-60 Hz. Sebagai contoh, di PlayStation 3, fisika berlari di Need For Speed ​​pada 100 Hz versus Forza Motorsport 2 pada 360 Hz. Meskipun istilah ini pertama kali digunakan pada 1990-an, ada sistem sebelumnya beberapa tahun 1980-an yang juga dianggap permainan mesin, seperti Sierra’s Adventure Game Interpreter (AGI) dan sistem SCI, LucasArts ‘SCUMM sistem dan Insentif Software mesin Freescape . Tidak seperti kebanyakan mesin permainan modern, mesin permainan ini tidak pernah digunakan dalam produk pihak ketiga (kecuali untuk sistem SCUMM yang dilisensikan dan digunakan oleh humongous Entertainment).

Tujuan Penggunaan Game Engine

Game engine menyediakan seperangkat alat pengembangan visual di samping komponen software digunakan kembali. Alat-alat ini umumnya diberikan dalam suatu lingkungan pengembangan terpadu untuk mengaktifkan disederhanakan, perkembangan pesat dari permainan dengan cara data-driven. Mesin pengembang Game upaya untuk “pra-menciptakan roda” dengan mengembangkan suite perangkat lunak kuat yang mencakup banyak unsur pengembang game mungkin perlu untuk membangun sebuah permainan. Kebanyakan mesin permainan suite menyediakan fasilitas yang memudahkan pengembangan, seperti grafik, suara, fisika dan fungsi AI. Mesin permainan ini kadang-kadang disebut “middleware” karena, seperti dengan istilah naluri bisnis, mereka menyediakan sebuah platform perangkat lunak yang fleksibel dan dapat digunakan kembali yang menyediakan semua fungsionalitas inti yang dibutuhkan, langsung dari kotak, untuk mengembangkan sebuah aplikasi permainan sambil mengurangi biaya , kompleksitas, dan waktu-ke-pasar-semua faktor penting dalam industri video game yang sangat kompetitif. Gamebryo dan RenderWare adalah seperti program middleware banyak digunakan.

Seperti solusi middleware lainnya, 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 seperti RenderWare bahkan dirancang sebagai rangkaian dihubungkan secara longgar komponen middleware permainan yang bisa selektif dikombinasikan untuk membuat mesin khusus, bukan pendekatan yang lebih umum dari memperluas atau menyesuaikan solusi terintegrasi yang fleksibel. Namun diperpanjang tercapai, hal itu tetap menjadi prioritas tinggi dalam mesin game karena berbagai kegunaan yang mereka diterapkan. Meskipun kekhususan nama, mesin permainan yang sering digunakan untuk jenis lain aplikasi interaktif dengan kebutuhan grafis real-time seperti demo pemasaran, visualisasi arsitektur, simulasi pelatihan, dan lingkungan pemodelan.

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.

Beberapa Contoh Game Engine Open Source :
– 3Dgame Studio
– Delta 3D
– UnrealEngine
– Panda3D
– Torque
– Quake Engine

Pemilihan Bahasa Pemrograman

1. Speed

Bahasa scripting untuk game harus mampu berjalan secepat mungkin. Jika kita berniat untuk menggunakan banyak script untuk perilakukarakter dan kejadian di level game, maka scriptakan perlu untuk mengeksekusi sebagai bagiandari loop game utama. Ini berarti bahwa scriptyang lambat akan memakan waktu yang kita butuhkan untuk membuat suatu adegan,menjalankan mesin fisika, atau menyiapkan audio.

2. Kompilasi dan Interpretasi (penyusunan dan penafsiran)

Bahasa scripting secara luasdiinterpretasikan,melalui susunan serangkaian byte. Penafsiran bahasa diambil melalui formatteks. Interpreter melihat setiap baris, penyusunan bekerja sesuai yang maksud dari script, danmelakukan tindakan yang spesifik. Bahasa byte-terkompilasi dikonversi dari teks ke formatinternal, yang disebut byte code. Kode byte biasanya jauh lebih padat daripada format teks.Karena kode byte dalam suatu formatdioptimalkan ketika dieksekusi, agar dapat berjalan lebih cepat.

3. Ekstensibilitas dan Integrasi

Bahasa scripting perlu memiliki akses kefungsi yang signifikan ke dalam game. Sebuah script yang mengendalikan karakter, misalnya harus mampu untuk menanyai game untuk mencaritahu apa yang bisa dilihat dan kemudian membiarkan game tahu apa yang akan dilakukan sebagai aksinya.

4. Re-Entrancy (ikut serta ulang)

Fungsi ini sering berguna untuk memanggil script menjadi diikut sertakan ulang. Mereka dapat berjalan untuk sementara waktu, dan ketika anggaran waktu telah habis script akan dapat ditunda. Ketika script selanjutnya mendapatkan beberapa waktu kembali, maka akan dapat menjalankan kembali script yang ditunda sebelumnya. Hal ini sering membantu untuk membiarkankontrol hasil script saat mencapai jeda normal. Kemudian sebuah algoritma penjadwalan dapat memberikan lebih banyak waktu untuk meminimalisasi penggunaan sumber daya. Sebuah script untuk mengendalikan sebuah karakter, misalnya, mungkin memiliki limatahapan yang berbeda (memeriksa situasi, memeriksa kesehatan, menentukan gerakan, rencana rute, dan melaksanakan gerakan). Ini semua dapat dimasukkan dalam satu script yang menghasilkan penyekat antara setiap bagian. Kemudian masing-masing akan berjalan dengan setiap lima frame, dan beban dari eksekusi AI akan didistribusikan.

Embedding (Penanaman)

Embedding berhubungan dengan ekstensibilitas.Sebuah bahasa yang tertanam dirancang untuk dimasukkan ke dalam program lain. Ketika kitamenjalankan bahasa scripting dari workstation, biasanya akan menjalankan program khusus untuk menafsirkan file source code. Dalam game, sistemscripting perlu dikontrol dari dalam program utama.Game yang menentukan jalannya script harusdijalankan dan harus dapat memberitahu mesin terkait bahasa scripting yang cocok untuk memproses scripttersebut.

Memilih Sebuah Bahasa

Sejumlah besar bahasa scripting tersedia, dan banyak dari mereka yang dirilis di bawah lisensi yang cocok untuk dimasukkan dalam sebuah game. Beberapa mesin game komersial dilengkapi dengan dukungan bahasa scripting ini (Unreal dan Quake oleh id Software, misalnya). Hal ini memberikan solusi lengkap dalam efisiensi waktu pembuatan game, karena sebagian besar bahasa yang ada yang digunakan dalam game pada awalnya tidak dirancang untuk tujuan ini.

Open Source

Open-source software, seperti namanya, juga memungkinkan akses untuk melihat dan mengubah source code. Hal ini membuat mudah untuk menarik studio dengan memberikan kebebasan untuk menarik keluar setiap kode asing atau kode yang tidak efisien. Beberapa lisensi open source, bahkan yang mengijinkan anda untuk menggunakan bahasa dalam produk komersial, mengharuskan anda membebaskan modifikasi bahasa itu sendiri. Ini mungkin akan menjadi masalah bagi proyek anda.
Bahasa yang open source yaitu bahasa yang bisa di pakai di berbagai operasi sistem. Bahasa seperti ini contohnya C++, Java. Sebaiknya dalam membuat script game menggunakan bahasa yang open source, agar aplikasi game dapat dipakai oleh pengguna operasi sistem apapun.

Tahapan Pengolahan Bahasa

Memulai sebagai teks dalam sebuah file teks, script biasanya melewati empat tahap: tokenization, parsing (penguraian), kompilasi, dan interpretasi. Keempat tahapan membentuk sebuah jalur, masing-masing memodifikasi masukan untuk mengubahnya menjadi format yang lebih mudah dimanipulasi.

1. Tokenizing


Tokenizing mengidentifikasi unsur-unsur dalam teks. Sebuah file teks hanya berisi serangkaian karakter (dalam pengertian karakter ASCII). Hasil tokenizer keluar sebagai kumpulan byte tertentu dan jenis dari kelompok tertentu yang membentuk mereka. Sebuah string dalam bentuk : 1 a = 3.2; 


2. Parsing

Makna dari sebuah program adalah sangat hirarkis: nama variabel dapat ditemukan dalam sebuah statement pemberian nilai, ditemukan di dalam pernyataan IF-, yang ada di dalam tubuh fungsi, di dalam definisi kelas, maupun di dalam sebuah deklarasi namespace. Contoh : 1 if (a < b) return dapat dilakukan proses parsing seperti pada bagan di bawah ini : 


4. Interpreting

Tahap akhir dari serangkaian ini ialah menjalankan kode byte. Dalam sebuah compiler untuk bahasa seperti C atau C++, produk akhir akan menjadi mesin instruksi yang dapat langsung dijalankan oleh prosesor.

Bahasa Yang Sering Digunakan :

Lua

Lua adalah bahasa prosedural sederhana yang dibangun dari dasar ke atas sebagai bahasa embedding. Desain bahasa didorong oleh ekstensibilitas. Tidak seperti kebanyakan bahasa embedded, hal ini tidak terbatas untuk menambahkan fungsi baru atau tipe data di C atau C + +.              Cara kerja bahasa Lua juga dapat men-tweak.

Python

Python adalah bahasa yang mudah dipelajari, bahasa scripting berorientasi objek dengan ekstensibilitas baik dan dukungan embedding. Python menyediakan dukungan yang sangat baik untuk pemrograman bahasa campuran, termasuk kemampuan untuk secara transparan memanggil C dan C + + dari Python.

Tools Lex dan Yacc

Lex dan Yacc adalah dua tool utama yang digunakan dalam membangun tokenizers dan parser. Masing-masing memiliki implementasi yang berbeda dan kebanyakan disediakan untuk platform UNIX (namun tersedia versi untuk platform lain juga). Varian Linux yang sering digunakan contohnya adalah Flex dan Bison.


Sumber :
https://chikhungunya.wordpress.com/2011/05/26/definisi-game-dan-jenis-jenisnya/ https://hafidsun.wordpress.com/2012/03/11/apa-itu-game/ https://tito0809.wordpress.com/category/tugas-kuliah/pengantar-teknologi-game/ http://www.academia.edu/3875722/Scripting_dalam_Pembuatan_Game