Motor! atau Apa itu fisika game



Saat membuat gim, pengembang harus menemukan keseimbangan tidak hanya dalam mekanika, tetapi juga dalam fisika. Realisme atau arcade? Secara umum, seseorang seperti itu. Yang utama adalah penggemar dan kesenangan. Penting untuk membuat hukum dasar dunia Anda, dan menjelaskan bahwa kemampuan berjalan di langit-langit adalah mekanik, bukan bug.

Betapa rumitnya fisika game, jenis permainan apa yang ada dan trik apa yang digunakan pengembang saat mengimplementasikannya - diterjemahkan dengan potongan.

Fisika dalam video game sering dianggap remeh. Jika karakternya melompat, ia wajib mendarat, dan tidak terbang ke luar angkasa (walaupun dengan permainan yang cukup panjang di Skyrim, ini masih bisa terjadi). Kami berharap bahwa objek dalam game akan berperilaku seperti dalam hidup (kami tidak memperhitungkan bug).

Pemrograman fisika dapat diturunkan ke satu atau dua metode dengan beberapa baris kode. Atau mungkin sistem yang kompleks dengan mesin fisik yang terpisah (misalnya, Havok atau PhysX ) dengan jutaan baris kode. Terlepas dari kerumitannya, fisika permainan dibagi menjadi dua kategori: fisika keadaan padat dan fisika benda lunak.



Fisika keadaan padat diperlukan di sebagian besar game 2D dan 3D. Fisika tubuh lunak menggambarkan aksi gaya pada objek yang mengambil berbagai bentuk (misalnya, bendera). Menampilkan tubuh yang lembut jauh lebih sulit, jadi pendekatan ini lebih jarang digunakan.

Peran penting fisika game


Fisika permainan melayani tujuan yang berbeda, tetapi yang paling penting adalah intuitif dan menyenangkan. Jika suatu benda berperilaku tidak terduga, akan sulit untuk memahami aturan permainan.

Jika bola di FIFA 20 setiap kali melambung ke arah acak, tidak mungkin untuk mencetak gol. Para pengembang mencoba untuk menciptakan kembali bola rebound tergantung pada lintasannya, kecepatan dan faktor-faktor lain di dunia nyata. Agar pemain memahami cara menangani bola atau benda lainnya secara intuitif. Ngomong-ngomong, FIFA 20 memiliki banyak ulasan buruk justru karena fisiknya tidak berfungsi seperti yang diharapkan penggemar.


Selain itu, permainan tidak diwajibkan untuk secara ketat mematuhi hukum alam. Hal utama adalah bahwa permainan harus menyenangkan, dan penerapan hukum fisik nyata dapat menghancurkan seluruh pengalaman. Bayangkan Grand Theft Auto V dengan fisika terestrial yang keras (tetapi jika Anda benar-benar menginginkannya, Anda dapat menggunakan mod khusus ). Bahkan kecelakaan ringan dengan kecepatan tinggi akan berakhir fatal, bunuh kecepatan dan suasana. Tidak terlalu menyenangkan.


Pengembang harus menemukan keseimbangan yang tepat antara permainan yang menyenangkan dan permainan dengan fisika realistis. Dan itu seringkali tergantung pada target audiens. Contoh yang bagus adalah balap.

Banyak orang menyukai Arcade Racing (Need For Speed), di mana menyentuh chipper atau tikungan tajam mempengaruhi kontrol mesin. Yang lain lebih suka simulator balap realistis (Gran Turismo).

Tetapi bahkan ketika membuat simulasi, para pengembang berusaha untuk menarik audiens baru - Gran Turismo mengandalkan fotorealisme (dan sampai batas tertentu berhasil). Namun pada akhirnya, Polyphony Digital menambahkan mode arcade untuk menangkap pasar yang lebih besar.

Fisika keadaan padat


Berbicara tentang fisika permainan, kami biasanya berarti fisika tubuh kaku (RBP). Ini menggambarkan dan mereproduksi hukum fisik yang berlaku untuk massa materi yang solid. Bola di FIFA 20 adalah padatan yang dikendalikan oleh fisika permainan.

Tidak masalah jika kita melihat judul 2D seperti Pong atau judul 3D seperti Skyrim - sebagian besar game memiliki fisika solid state linear.



Fisika Game 2D


Ambil Pong sebagai contoh. Dua benda padat (bola dan raket) bertubrukan berulang kali. Kedengarannya tidak terlalu menggembirakan. Kakek video game tidak memiliki fisika realistis.

Pertama, pemrogram mengabaikan gravitasi, gesekan, dan kelembaman. Hanya ada bola bergerak bolak-balik dengan kecepatan konstan.
Kedua, sudut pantulan bola dari raket tidak dihitung secara akurat. Bola sepenuhnya mengabaikan hukum refleksi: jika rotasi dan faktor-faktor lain tidak diperhitungkan, sudut timbulnya bola pada permukaan sama dengan sudut pantulannya. Di Pong, sudut pantulan ditentukan oleh seberapa dekat bola dengan pusat raket pada saat kontak. Lintasan asli tidak masalah. Pemain dapat sepenuhnya mengubah inersia bola, meskipun vektor gerakannya.

Lintasan bola menjadi lebih diperhitungkan di versi yang lebih baru dan di game serupa lainnya. Misalnya, di Breakout. Tetapi meskipun tidak ada realisme, sebaliknya permainan yang menyenangkan berubah menjadi permainan yang membosankan dan sulit.



Game dengan artileri adalah yang pertama memperhitungkan gravitasi dan resistensi dalam mekanika mereka. Pengguna bergantian menembakkan meriam, panah, dan rudal untuk menghancurkan basis musuh. Game seperti itu memperhitungkan balistik semi-realistis, yaitu - sudut peluncuran, gravitasi, hambatan angin, dan kecepatan asli. Tetapi sekali lagi, para desainer tidak berusaha melakukan segala sesuatu seperti di dunia nyata. Target audiens mereka adalah orang-orang biasa, bukan ahli balistik.

Perilaku padatan (terutama cangkang) tergantung pada beberapa kekuatan. Sesuai dengan mereka, animasi berubah. Panah dan roket adalah contoh yang bagus dari animasi padatan di gim yang serupa. Pesawat proyektil bisa berubah selama penerbangan, dan panah tetap lurus. Dua titik pada objek dalam sistem padatan akan selalu berada pada jarak yang sama satu sama lain.

Game seperti Donkey Kong dan Mario Bros. sangat mempengaruhi fisika proyek 3D. Mario berteman dengan hukum-hukum fisika dasar - gravitasi, momentum, dan kelembaman. Lompatan menjadi mekanik utama dan tetap di industri game selamanya.



Objek yang memantul harus jatuh kembali. Satu-satunya pertanyaan adalah seberapa tinggi akan naik dan seberapa cepat akan jatuh? Dan seberapa realistiskah gravitasi dalam permainan?

Jika Mario mematuhi hukum fisika nyata, ia tidak akan pernah melewati level pertama. Keseimbangan harus diubah demi permainan yang menyenangkan dan harapan pemain.

Permainan lebih lanjut dalam seri memperluas batas-batas ini - lompatan ganda muncul. Dalam waralaba ini, pertama kali ditambahkan ke Super Mario 64, tetapi sebelumnya telah digunakan di Dragon Buster pada tahun 1984.

Double jump mulai aktif digunakan di platformer (terkadang bahkan terlalu banyak). Dan itu masih ada di banyak proyek modern, termasuk 3D. Misalnya, Devil May Cry dan Unreal Tournament.

Fisika 3D


Fisika dalam permainan 3D tidak jauh berbeda dari fisika dalam proyek 2D. Perhitungannya rumit oleh dimensi ketiga (sumbu Z) dan fakta bahwa objek terdiri dari beberapa padatan.

Di sebagian besar gim 2D, pengembang hanya perlu memproses data hanya dari beberapa tabrakan benda padat. Sebagai contoh: Mario melompat pada Kupu. Mario dapat menyentuh bagian mana pun dari Kupa. Bergantung pada titik kontak, baik Coop bersembunyi di shell, atau Mario kehilangan nyawanya. Bagaimanapun, kita berbicara tentang satu sentuhan.



Dalam game 3D, beberapa benda padat bertabrakan secara bersamaan. Di Uncharted, ketika Drake memanjat batu, program memonitor setidaknya lengan dan kakinya - benda padat individu. Dia dapat bangkit dan meraih tangga dengan satu atau dua tangan, dan animasinya akan berbeda.

Dalam game 3D (dan beberapa 2D), anggota karakter dibagi menjadi beberapa padatan yang dihubungkan oleh sambungan. Artinya, model tangan manusia terdiri dari lengan bawah dan tangan, yang dihubungkan oleh pergelangan tangan dan melekat pada bahu oleh sendi siku. Ini dijelaskan oleh fisika ragdoll (dari boneka ragdoll - rag Inggris).


Gambar: University of California , Riverside

Senyawa padatan (sambungan) dibuat dalam sistem animasi kerangka mesin game. Setiap solid harus bergerak sesuai aturan tertentu agar terlihat realistis. Untuk menghitung pergerakan, programmer menggunakan berbagai teknik. Yang paling terkenal adalah algoritma Featherstone , sebuah pendekatan restriktif yang mencegah anggota badan nongkrong secara acak.

Ada pendekatan lain untuk bekerja dengan ragdoll: Integrasi Werle (Hitman: Codename 47), kinematika terbalik (Halo: Combat Evolved and Half-Life), ragdoll campuran (Belum dipetakan: Drakes Fortune dan banyak lainnya) dan animasi prosedural (Medal of Honor series) )



Semua teknik ini bertujuan untuk memastikan tubuh tidak lemas terlalu cepat dan tidak jatuh ke tanah, seperti boneka kain. Gerakan padatan yang dimasukkan ke dalam model terbatas, sehingga berperilaku dapat diprediksi.

Biarkan saya mengingatkan Anda, Anda selalu perlu menemukan keseimbangan antara realisme dan kesenangan. Bahkan jika gim akan sedikit curang.

Ambil seri Sniper Elite. Di dunia nyata, penembak harus memperhitungkan banyak variabel: kecepatan angin, arah angin, jangkauan, gerakan target, fatamorgana, sumber cahaya, suhu, tekanan, dan efek Coriolis .

Jika Pemberontakan menciptakan simulator sniper otentik dengan memperhitungkan semua variabel, permainan akan menjadi sangat sulit. Pengabaian mereka bukan hanya karena kemampuan prosesor modern. Pengguna rata-rata tidak hanya tidak ingin menghitung semua faktor ini selama permainan, ia bahkan tidak ingin tahu tentang mereka. Lebih menguntungkan untuk membiarkan pemain menggunakan lingkup dan menunjukkan penerbangan peluru dengan lambat.


Call of Duty: Modern Warfare memiliki tingkat di mana Anda harus mengenai target dari jarak jauh. Pemain harus memperhitungkan efek Coriolis, serta kecepatan dan arah angin. Beberapa orang menyukai tantangan ini, tetapi saya mengabaikannya.

Balapan adalah genre lain yang membutuhkan banyak perhitungan pada benda padat dan gaya yang bekerja padanya. Roda bersentuhan dengan permukaan jalan, suspensi bersentuhan dengan roda, mobil saling bertabrakan. Masih benda lain yang secara langsung atau tidak langsung berpartisipasi dalam tabrakan.

Kekuatan fisik yang bekerja pada mobil ketika berbelok biasanya disederhanakan. Melayang di dalamnya sederhana, tetapi pada saat yang sama cukup rumit - pemain harus merasakan kepuasan.

Simulator Gran Turismo dan Assetto Corsa memiliki kekuatan yang lebih realistis. Misalnya, Assetto Corsa Competizione (versi 1.0.7)menggunakan model ban lima titik. Ini mencakup dua titik di tepi depan ban, dua di belakang dan satu di tengah - semuanya bersama-sama bertindak sebagai padatan gabungan. Poin dapat bergerak dan menekuk dalam tiga dimensi, secara mandiri merespons kekuatan eksternal dan kontak dengan permukaan. Poin tambahan secara signifikan meningkatkan jumlah perhitungan yang dilakukan mesin.


Model fisik dalam judul 3D jauh lebih kompleks daripada di 2D. Anda harus melacak lebih banyak variabel dan kesamaan. Tetapi sebagian besar perhitungannya linear, jadi model seperti itu jauh lebih sederhana daripada model bodi lunak.

Fisika tubuh lunak


Fisika tubuh lunak (SBP) menjelaskan objek yang dapat dideformasi. Ini lebih jarang digunakan dan sangat berkurang dalam video game karena jumlah komputasi yang sangat besar.

Tubuh lunak adalah pakaian, rambut, dan akumulasi partikel seperti asap atau kabut. Titik-titik padatan selalu tetap pada jarak yang sama dari satu sama lain. Tubuh lunak dapat berubah bentuk dan bergerak sehingga jarak antara titik-titiknya akan berubah.

Padatan yang terdeformasi


Gerakan tubuh lunak mungkin terbatas. Semua titik bendera akan selalu tetap di bendera, mereka tidak dapat memisahkan. Rentang penyimpangan titik dari satu sama lain tergantung pada jarak antara mereka pada bendera yang dihaluskan.

Titik yang berdekatan selalu tetap berdekatan. Poin jarak jauh bisa semakin dekat, tetapi pada saat yang sama mereka tidak dapat bergerak lebih jauh dari satu sama lain di luar jarak di mana mereka diperbaiki pada bendera yang diperluas.



Jumlah perhitungan untuk tubuh lunak melebihi kemampuan CPU dan GPU. Karena itu, pengembang menyederhanakan dan menipu. Misalnya, animasi pengulangan digunakan. Tetapi gambaran seperti itu akan tampak tidak wajar setelah beberapa waktu. Lebih baik untuk tidak menggunakan hack kehidupan jika objek berada di pusat perhatian.

Pakaian memiliki sifat tubuh lunak yang hampir sama dengan bendera, tetapi fisiknya bahkan lebih kompleks. Pertama, karena pemain pasti akan memperhatikannya. Kedua, karena sering lebih dinamis: pemain memberikan pengaruhnya sendiri. Contoh yang bagus adalah jubah Batman dalam seri Arkham.


Desainer tidak dapat menggunakan animasi melingkar pada jubah, karena gerakannya tergantung pada tindakan pemain. Jika pemain mengarahkan karakter ke kiri, jubah harus bergeser ke kanan untuk menampilkan secara realistis inersia dan hambatan udara.

Di sinilah mesin fisik ikut bermain. Dalam Batman: Arkham Knight, Rocksteady menggunakan APEX Cloth PhysX. Alat ini memungkinkan Anda untuk membuat topeng untuk tubuh yang menampilkan pakaian, dan menyesuaikan parameter gerakan mereka. Bergantung pada konfigurasi, semuanya mulai dari sutra hingga goni dapat ditampilkan.

Untuk meningkatkan kinerja, Anda dapat membatasi efek kekuatan alami pada kain. Misalnya, Metode Angin dapat diatur ke Akurat atau Warisan. Tampilan sebagian mengabaikan fluktuasi kecil, lebih sedikit perhitungan yang dilakukan.

Tidak semua poin pada bahan perlu dipertimbangkan - mereka dapat bertindak dalam kelompok. Ini mengurangi jumlah simpul yang perlu diproses. Namun, tidak semua kelompok ini berinteraksi satu sama lain seperti dalam tubuh lunak nyata. Mereka hanya mempengaruhi hanya titik terdekat, sehingga jumlah perhitungan matematis dikurangi ke tingkat yang dapat diterima.

Sistem Partikel Tubuh Lunak


Menampilkan asap atau awan bahkan lebih sulit. Titik-titik objek tersebut dapat bergerak relatif nonlinier satu sama lain. Beberapa titik dapat bergerak melampaui batas figuratif objek dan bahkan membentuk badan lunak lainnya.

Mesin fisik telah secara signifikan meningkatkan sistem partikel dalam beberapa tahun terakhir. Lihatlah layar sambutan dari Skyrim dan seberapa realistis asap itu terlihat di sana.


Setiap partikel dalam sistem tubuh lunak memiliki umur statis. Ini adalah periode dari saat kemunculannya hingga saat menghilangnya (setelah beberapa waktu, sumber partikel akan menciptakannya kembali). Selama periode ini, titik bergerak dengan parameter yang diberikan.

Pertimbangkan asap dari api unggun sebagai contoh. Setiap partikel bergerak ke atas dari sumber: nonlinier, berputar dan secara acak mengubah posisinya di ruang angkasa. Jadi mereka bangkit sampai umur mereka berakhir, dan kemudian mereka disingkirkan.

Usia harapan hidup memengaruhi tampilan sistem partikel secara alami. Dengan durasi yang lama, Anda dapat membuat asap yang cukup realistis dari api, tetapi ini akan sangat memuat prosesor. Pendek - mengurangi jumlah perhitungan, tetapi partikel hanya akan memiliki waktu untuk sedikit naik sebelum menghilang.

Asap di screensaver Skyrim terlihat keren, hanya karena tidak ada yang terjadi di layar. Seluruh kekuatan prosesor dan kartu video dapat diarahkan untuk mensimulasikan partikel asap dengan umur yang sangat panjang.



Dalam permainan itu sendiri, asap dari api tidak terlihat begitu realistis lagi. Ini masih cukup meyakinkan, tetapi lebih sederhana: pengembang telah mengurangi waktu yang diperlukan untuk menampilkan partikel dalam simulasi. Ada trik lain. Sebagai contoh, overlay beberapa layer asap statis

Fisika tubuh lunak ditambahkan dengan sangat hati-hati ke dalam game. Pertama, tidak perlu untuk simulasi lengkap fisika tubuh lunak - sebagai aturan, hanya diperlukan untuk estetika. Kedua, reproduksi yang tepat dari sistem tubuh lunak memerlukan perhitungan terlalu banyak.

Untuk meringkas


Fisika video game adalah bidang yang kompleks di mana pengembang mencari keseimbangan antara realisme dan keterbatasan daya komputasi. Trik, penyederhanaan, dan mesin fisik memungkinkan Anda untuk dengan cepat membuat fisika yang cukup realistis, untuk fokus pada aspek-aspek yang lebih penting dari permainan.



Gamenya harus menarik. Realisme tidak begitu penting dibandingkan dengan gameplay yang membuat ketagihan. Fisika permainan masih penting - Anda memerlukan aturan intuitif. Pada saat yang sama, mereka dapat diubah untuk memperkaya gameplay (ingat lompatan ganda).

Jika Anda ingin lebih memahami fisika gim video, lihat bagian yang relevan di Unity Guide atau Lumberyard Guide .

All Articles