Minggu, 23 November 2014

PHYSIC ENGINE




Physic Engine (Mesin Fisik) adalah perangkat lunak yang didesain untuk menampilkan/ melakukan simulasi berbagai jenis fenomena objek fisik di alam. Simulasi yang dilakukan dapat memprediksi bermacam-macam kejadian dalam kondisi yang berbeda serta memperkirakan apa yang akan terjadi dalam kehidupan nyata. Engine ini secara rutin menangani perilaku objek-objek misalnya, benda keras, partikel, gelombang, cloth, serta deteksi benturan (collision) dan dinamik.
Prinsip kerjanya, physic engine akan melakukan spesifikasi force (gaya) terhadap objek berdasarkan input user dalam setiap loop. Sehingga, output yang ditimbulkan adalah hasil komputasi dari physic engine.
Secara proses misalnya, physic engine melakukan collision detection kemudian output dari module tersebut diberikan pada komponen kedua, simulation system. Simulation system (sistem integrator) ini digunakan untuk melakukan perhitungan berdasarkan rumus fisika dan hasilnya akan melakukan update property dari objek yang disimulasikan.
Ada bermacam-macam jenis phisic engine yaitu, PhysX of AGEIA (NVIDIA), HAVOC engine dari HAVOC, ODE (Open Dynamics Engine), dll. Yang mana, engine fisik ini tidak hanya berguna untuk penelitian (research), tapi juga untuk berbagai macam aplikasi seperti game (permainan) yang memasukkan unsur gravitasi, akselerasi, pergeseran, dll.
physic engine menjadikan sebuah game yang dibuat akan menjadi menarik dan perilaku serta karakter objek game menjadi lebih nyata dibandingkan tanpa menggunakan physic engine.

Macam-Macam Physics Engines   
PhysX of AGEIA
PhysX pada awalnya dikembangkan oleh Ageia sebagai NovodeX SDK. Ageia adalah perusahaan yang bergerak di bidang pasar grafis 3D dengan ide fantastis untuk membawa fisika komputasi ke dalam permainan komputer. Why ??? karena para teknisi Ageia mengetahui bahwa fisika memungkinkan perhitungan yang lebih ekstrim dan memberikan pengalaman visual yang nyata. Nah gara-gara itulah, akhirnya pada Februari 2008, nVIDIA membeli Ageia sebesar 30 juta dolar dan mempekerjakan staff ahli Ageia untuk menghasilkan Ageia’s PhysX API.

PhysX sendiri adalah proprietary (closed source) realtime /physics engine/middleware SDK, yang dikembangkan oleh NVIDIA (bersama penemunya : AGEIA), untuk mengakselerasi performa PhysX-enabled Video Games. Video Games yang telah mendukung/support akselerasi hardware oleh PhysX dapat diakselerasi performa grafisnya, baik oleh PhysX, maupun CUDA-enabled GeForce GPU secara bersamaan. Pemanfaaatan teknologi ini di klaim mampu dapat menjadikan proses , perhitungan “physics” dari CPU menjadi lebih cepat. Hal ini tentu juga meningkatkan framerate, hal inilah yang menghasilkan gambar pada game keliatan halus.

Asal tau aja PhysX telah didesain secara spesifik untuk akselerasi hardware dari Processor yang powerful dengan ratusan core (inti). Dikombinasikan dengan kemampuan proses yang luar biasa dari GPU. PhysX akan menyediakan peningkatan eksponensial (perkalian berulang) pada kekuatan proses “physics”. Selain itu PhysX akan memberikan memperlihatkan peningkatan daya pengolahan fisika dan meningkatkan kualitas game dengan menyajikan efek seperti:(Kelebihan)
* Menambah efek debu dari reruntuhan bangunan
* Karakter dengan kompleks untuk lebih hidup seperti gerakan dan interaksi
* Efek senjata baru dan menakjubkan
* Drapes kain yang alami dan air mata
* Kabut asap tebal yang menggelembung sekitar objek dalam gerakan
Yang intinya membuat efek, gerakan dan interaksi obyek dalam game menjadi nyata. hal ini dikarenakan physics menggunakan data perhitungan fisika untuk menganimasi gerakan dan interaksi yang nyata.

PRINSIP KERJA PHYSICS ENGINE:
Dengan physisc engine, objek tidak lagi digerakkan secara langsung, tetapi dispesifikasikan berdasarkan force berdasarkan input dari pemain, dalam setiap loop pada setiap objek dalam game. Physics engine bertugas untuk menghitung perkiraan posisi dan orientasi selanjutnya dari objek tersebut.
Kalau boleh diruntut secara sistematis, sebenarnya ada dua proses utama dalam Physics Engine : yang pertama adalah melakukan “collision detection”. Output dari modul ini kemudian diberikan pada komponen kedua, yaitu “simulation system” (biasa disebut “integrator”), untuk melakukan perhitungan berdasarkan rumus fisika. Simulation system kemudian akan memberikan update properti dari objek yang disimulasikan.

Kelemahan PhysX
Untuk software, kalkulasi physic oleh PhysX engine selain memerlukan driver PhysX, juga hanya akan bekerja pada software2 yg telah mengimplementasikan engine PhysX ini, jadi efek2 physic oleh PhysX engine HANYA akan bekerja pada software2(game2) yg didukung, dg driver yg sesuai, dan hardware yg yg mendukung.. intinya efek physic tidak akan keluar jika hanya memiliki salah satu misalnya hardwarenya saja yg mendukung.

Box2D
Box2D merupakan salah satu library physic 2D yang cukup populer digunakan dalam game-game 2D. Colin Northway kemudian mengadaptasikan library buatan Erin Catto ini kedalam format ActionScript 3 yang bisa digunakan untuk aplikasi Flash.

HAVOC ENGINE
kalau kamu belum pernah mendengar Havok sebelumnya, Havok adalah physics engine yang telah banyak digunakan dalam game AAA yang terkenal seperti Skyrim, Assasin’s Creed, Call of Duty dan masih banyak lagi.
Kita bisa menggunakan game engine ini secara free. Di blognya disebutkan kalau kita bisa mendownloadnya secara free dan game buatan kita itu bisa dirilis untuk platform iOS dan Android secara free tanpa ada biaya tambahan lagi.
Memang sih, sudah ada beberapa game engine 3D yang sudah cukup populer di kalangan pengembang game mobile saat ini. Tapi yang menarik dari Project Anarchy ini adalah janji dari Havok kalau game engine ini benar-benar free tanpa ada embel-embel biaya lisensi atau pemotongan fitur seperti halnya game engine yang lain (misal: Unity3D atau Unreal).
Nah.. Kalau memang benar apa yang dijanjikan oleh Havok tadi, maka kita memiliki peluang untuk membuat game 3D di mobile sekualitas game AAA tanpa harus mengeluarkan biaya apapun untuk enginenya. 
Havok Physics is fully multi-threaded and cross-platform optimized for leading game platforms including, Xbox One®, the all-in-one games and entertainment system from Microsoft, Xbox 360™ video game and entertainment system, Playstation® 4, PlayStation®3 computer entertainment system, PC Games for Windows, PlayStation Vita®, Wii™, Wii U™, Android™, iOS, Apple Mac OS and Linux. - See more at: http://www.havok.com/products/physics#sthash.3BkSepuU.dpuf

UNITY3D
Unity 3D adalah sebuah game developer software yaitu sebuah software game engine pembuat game. Unity 3D adalah alat authoring yang terintegrasi untuk menciptakan video game 3D atau konten interaktif lainnya seperti visualisasi arsitektur atau real-time animasi 3D. Lingkungan pengembangan Unity 3D yang berjalan pada Microsoft Windows dan Mac OS X, dan game yang dihasilkan dapat dijalankan pada Windows, Mac, Xbox 360, PlayStation 3, Wii, iPad, iPhone, serta platform Android. 

Unity 3D tersedia dalam dua versi, ada yang free dan ada juga yang berlisensi. Tentu saja ada fitur-fitur atau tool - tool yang di tonjolkan apabila kita memiliki unity 3D yang versi berlisensi. Saya kurang begitu tahu fitur-fitur apa saja yang ada dalam versi bayar karena di sini saya hanya pakai versi free.
Unity 3D juga memiliki kemampuan mengekspor game untuk fungsional Tahap 3D Adobe di Flash, tapi fitur tersebut di  webplayer tidak bisa digunakan karena keterbatasan yang ada di Flash. unity 3d sebenarnya hampir mirip seperti Director, Blender game engine, Virtools,
Torque Game Builder, and Gamestudio, yang menggunakan juga graphical environment sebagai metode utama dalam pembuatan game. 
Bagi programer yang jago java dan C#, unity adalah salah satu game engine yang mendukung bahasa pemrograman tersebut yang juga merupakan salah satu dari kelebihan unity 3D.
Kelebihan
·  GRATIS! Engine ini bisa dimanfaatkan secara cuma-cuma dan versi gratisnya sudah sangat memadai untuk bikin game di Windows Phone 8.
·  Akan sangat mempercepat desain level / layout di game dengan adanya editor WYSIWYG (What You See Is What You Get). Gak perlu nunggu build / compile, kita udah bisa lihat contoh tampilan game di layar dengan resolusi tertentu.
·  Unity Asset Store sudah sediakan segudang asset siap pakai (ada yang FREE, ada juga yang berbayar). Kalau kita butuh sound effect, atau karakter untuk game kita, bisa berkunjung ke asset store ini.
·  Bahasa yang digunakan sama dengan development windows phone, yaitu C#. Bisa juga pilih bahasa mirip Javascript, mereka menyebutnya UnityScript.
Kekurangan
·  Butuh penyesuaian yang agak kompleks saat mau develop game 2d tanpa bantuan plugin. Kenapa kompleks? karena ada kebutuhan menggunakan aplikasi modelling 3d (nah..) untuk membuat bingkai sprite.
·  Perlu penyesuaian mengikuti gaya Component Based. Di Unity, semua logic game (misalkan logic untuk Player, Enemy, Weapon) di”tempelkan” langsung ke object via scripting. Contoh nyatanya, misalkan dalam game kita ada object Mobil, “mesin” untuk menggerakkan mobil adalah 1 komponen, dan “setir mobil” juga merupakan 1 komponen.

Sumber :
http://kirmann.wordpress.com/2010/08/26/apa-itu-physic-engine/#more-377
http://gery-casakom.blogspot.com/2010/10/teknologi-kartu-grafis-vga-nvidia.html 
http://www.havok.com/products/physics
http://imild.wordpress.com/2013/04/14/project-anarchy-3d-engine-yang-benar-benar-free-3/

Tidak ada komentar:

Posting Komentar