Teknologi apa yang digunakan untuk pengembangan Game sekarang? [Tutup]

14

Setiap kali saya mengajukan pertanyaan tentang pengembangan game di forum online, saya selalu mendapatkan saran seperti mempelajari algoritma menggambar garis, manipulasi gambar level bit, dan dekompresi video dll.

Namun melihat game seperti God of War 3, saya merasa sulit untuk percaya bahwa game ini dapat dikembangkan menggunakan teknik tingkat rendah seperti itu.

Kedahsyatan semata-mata dari permainan seperti itu menentang metodologi pemrograman yang dapat dipahami (untuk saya).

Selain itu hardware gaming benar-benar monster sekarang. Jadi masuk akal bahwa para pengembang akan bekerja pada tingkat abstraksi yang lebih tinggi.

Apa metodologi pengembangan terbaru dalam industri game? Bagaimana mungkin tim yang terdiri dari 30-35 pengembang (yang sebagian besar adalah manajemen dan pemasaran fluff) mampu membuat permainan yang membingungkan seperti itu?

Jika pertanyaannya tampak terlalu umum, bisakah Anda menjelaskan arsitektur God of War 3? Atau bagaimana Anda akan menghasilkan kloning? Itu saya pikir harus jawab secara objektif.

Monika Michael
sumber
2
Apakah seseorang mau menjelaskan tentang downvote?
Monika Michael
2
Downvotes disebabkan oleh pertanyaan yang tidak "konstruktif". Mengutip, "pertanyaan ini tidak cocok untuk format Tanya Jawab kami. Kami berharap jawaban didukung oleh fakta, referensi, atau keahlian khusus, tetapi pertanyaan ini kemungkinan akan mengundang debat, argumen, pemungutan suara, atau diskusi panjang" . Artinya, pertanyaan itu tidak bisa dijawab dengan tepat. Saya masih berpikir bahwa pertanyaan Anda pantas, tetapi perlu dirumuskan kembali.
9000
2
@ 9000 Dan bagaimana pertanyaan ini memenuhi syarat tidak konstruktif?
1
@delnan: mungkin para downvoter tidak senang dengan frasa seperti "Apa metodologi pengembangan terbaru dalam industri game?" . Bagi saya, "bagaimana Anda akan menghasilkan tiruan" jauh lebih baik.
9000
4
Bukankah ini lebih masuk akal di gamedev.stackexchange.com ?
Dan is Fiddling oleh Firelight

Jawaban:

12

Penafian: Saya bukan pengembang video game. Tetapi saya memiliki minat "hobiis" di dalamnya.


Sebagian besar game AAA yang Anda lihat dibuat menggunakan Mesin. Mereka tidak ditulis dari bawah ke atas. Pikirkan mesin seperti kerangka. Anda memiliki .NET framework, Java SDK, Cocoa toolkit.

Semua hal untuk membuat pekerjaan Anda menciptakan perangkat lunak lebih mudah dan mengabstraksi kode kitchen-sink. Itu perlu, tetapi menulisnya setiap saat sangat tidak produktif.

Dengan menggunakan mesin ini, pengembang dapat membuat game mereka dan tidak perlu khawatir tentang beberapa kode yang mendasarinya. ( Jangan salah, pengembangan game adalah salah satu cabang rekayasa perangkat lunak yang paling sulit. )

Misalnya, Unreal Engine 4 memiliki kit dan studio pengembangan pembunuh:

http://www.youtube.com/watch?v=MOvfn1p92_8

masukkan deskripsi gambar di sini

Ada banyak mesin yang berbeda di luar sana. Beberapa berbayar, beberapa gratis, beberapa lagi ke logam, yang lain menawarkan abstraksi yang lebih tinggi.

Sebagai contoh:

  • RAKSASA
  • Mesin Tidak Nyata
  • Kesatuan
  • Sumber
  • dan masih banyak lagi...
sergserg
sumber
5

Mengacu pada komentar gbjbaanb, beberapa hal yang membuat pemrograman gim menyenangkan adalah masa pakai basis kode yang terbatas dan tidak adanya persyaratan yang diperlukan. Misalnya, jika Anda merancang game FPS, dan algoritme gerakan Anda terkadang menempatkan karakter game Anda beberapa piksel, itu bukan masalah besar dan kemungkinan tidak ada yang akan memerhatikan. Jika Anda merancang perangkat lunak bisnis dan terkadang fungsi penjumlahan Anda memberi Anda beberapa dolar, itu adalah bug yang jauh lebih serius. Jadi ketika merancang game, beberapa aspek bisa menjadi jauh kurang tepat (dan hanya harus melewati pengujian manusia, daripada test suite otomatis yang memeriksa bahwa jawabannya tepat benar).

Pengalaman saya adalah bahwa pemrograman game, terutama untuk game real-time, adalah pengalaman yang jauh berbeda dari ... hampir semua pengembangan perangkat lunak lain yang pernah saya lakukan, mungkin kecuali untuk pekerjaan GUI. Itu sesuatu yang harus kamu coba!

Ivan
sumber
4

Jawabannya adalah "mesin". Banyak game dibangun di atas berbagai mesin grafis dan gameplay yang pada dasarnya adalah perpustakaan besar atau kerangka kerja.

Di dunia OSS, lihatlah Ogre sebagai contoh, untuk gim komersial yang Anda miliki seperti Source.

Ada faktor-faktor lain yang berperan, seperti banyak kode yang dapat dibuang dan tidak akan berhasil dalam lingkungan bisnis - tetapi itu karena umur permainan yang terbatas, dan rentang waktu pengembangan yang dipercepat, berarti kode tersebut (hampir) dirancang hanya untuk bekerja, bukan untuk dipertahankan.

gbjbaanb
sumber
Tentu saja, mesin ini hanyalah abstraksi pembuatan kode C / C ++ biasa (meskipun sangat dioptimalkan) di atas API tingkat rendah (misalnya DX atau OpenGL untuk grafis).
Tapi itu ide yang bagus untuk memiliki pengalaman membuat game yang sangat sederhana menggunakan C atau C ++ hanya untuk membuat penulis tahu bagaimana perkembangan game itu.
KyelJmD
4

Unity3D sangat bagus. Inilah beberapa poin yang saya sukai:

  • itu memungkinkan Anda membuat game dalam mode agnostik platform, dan kemudian secara otomatis membuat deployable untuk Windows, Mac OS X, Android, iOS. Ini berlaku untuk versi saat ini (3.x). Rupanya versi 4 akan memungkinkan Anda menggunakan di Linux juga:

http://en.wikipedia.org/wiki/Unity_(game_engine)#Major_features

  • Meskipun Anda memerlukan lisensi berbayar untuk benar-benar menggunakannya (secara komersial), Anda dapat memuat versi gratis di mana Anda dapat menggunakan sebagian besar fitur (mis. Anda tidak bisa misalnya membuat deployable untuk platform seluler). Ini memberi cara yang bagus untuk melihat pratinjau benda sebelum Anda memutuskan untuk membelinya atau tidak:

http://unity3d.com/unity/licenses

  • Bekerja dengan sebagian besar perangkat lunak pemodelan 3d (Saya lebih suka 3d Studio Max, tetapi mendukung yang lain juga):

http://unity3d.com/unity/editor/importing (gulir ke bawah sedikit)

  • Pengkodean (scripting) dapat dilakukan dalam C # yang merupakan bahasa yang bagus, dengan API yang baik dan kompilasi cek waktu. Hadir dengan lingkungan pengembang yang baik (IDE dan segalanya). Jika Anda menginginkan sesuatu yang berbeda, itu mendukung Javascript juga.

  • Memiliki dukungan fisika yang sangat baik (tumbukan, gravitasi, gaya, dll):

http://docs.unity3d.com/Documentation/Manual/Physics.html

  • Memiliki toko aset yang memungkinkan Anda membeli berbagai model, skrip, animasi dll, dan tergantung pada keahlian Anda (dan dompet), Anda bisa mendapatkan / memodifikasi mereka untuk dengan cepat mendapatkan sumber daya yang layak untuk permainan Anda.

  • Terakhir namun tidak kalah pentingnya, ini cukup cepat. Lihat demo seluler, IMHO mereka bergerak cukup baik dan memiliki grafik yang sangat baik:

http://unity3d.com/gallery/made-with-unity/game-list

Inilah satu proyek Unity yang bagus yang saat ini saya tunggu-tunggu:

Tanah Air Brian Fargo 2

Mereka memiliki entri blog yang bagus tentang mengapa mereka memilih Unity , serta yang lainnya membahas bagaimana bekerja dengannya .

Shivan Dragon
sumber
3

ID Software adalah salah satu vendor yang biasanya menerbitkan game canggih. Beberapa tahun kemudian mereka sering merilisnya sebagai open source. Pada http://fabiensanglard.net/quake3/index.php Anda dapat menemukan analisis kode sumber Quake3. Ini adalah deskripsi yang sangat jelas dan meskipun Quake3 cukup lama sementara konsepnya masih harus relevan untuk game modern.

Dan ya, jika Anda ingin membangun mesin permainan modern dan kompetitif modern yang canggih, Anda harus mengetahui semua bagian level rendah itu. Jika Anda tidak ingin peduli tentang itu: Ada mesin yang berbeda (mesin quake3 atau yang dari jawaban lain) tersedia tetapi, maka Anda tidak membuat game revolusioner baru ;-)

johannes
sumber
Dari tampilan analisis itu, Quake 3 mendahului beberapa teknik "level rendah" vital dari pengembangan game saat ini. Sebagai permulaan, (disediakan oleh OpenGL) shader.
gempa 3 dirilis pada tahun 1999. ya itu sudah lama sekali. Tapi itu menunjukkan bagaimana orang bekerja yang mencoba untuk mencapai batas apa yang mungkin terjadi saat itu. Sebagian besar mesin lain yang tersedia lebih condong ke arah usabilitas ulang, kode "bersih", dll daripada kinerja maksimum. (Ini tidak berarti bahwa mesin lain buruk dan lambat, tapi saya pikir masih layak untuk melihatnya jika Anda ingin belajar tentang arsitektur dan implementasi mesin game 3D)
johannes
Artikel terkait lainnya tentang matematika tingkat rendah biner dalam game 3D, menggunakan Quake sebagai contoh: blog.quenta.org/2012/09/0x5f3759df.html
johannes
1

Seperti banyak jawaban menyebutkan, mesin permainan dan perpustakaan memainkan peran besar. Namun, harap dicatat bahwa ini berlaku untuk game komersial menengah besar lebih dari pada game "indie" kecil.

Sebagai contoh pada platform mobile, sebagian besar game ditulis hanya menggunakan satu set perpustakaan yang relatif primitif daripada mengandalkan engine-engine full-blown frameworks. Mereka memang ada, tetapi sebagian besar tentang menggunakan kembali kode Anda sendiri dari proyek sebelumnya.

zxcdw
sumber