Apa yang harus saya pertimbangkan ketika mengevaluasi perpustakaan, mesin, dan kerangka kerja untuk membuat game?


10

Saya akan membuat game. Saya perhatikan bahwa ada banyak mesin gim, perpustakaan, dan kerangka kerja yang tersedia di luar sana, dan saya mengalami sedikit kesulitan untuk memutuskan mana yang akan digunakan.

Saya sudah cukup baik dengan beberapa bahasa pemrograman, tetapi ada yang lain yang saya tidak tahu sama sekali. Saya tidak menentang belajar bahasa pemrograman baru, jika itu akan membantu, tetapi tujuan saya yang sebenarnya adalah membuat game saya.

Kriteria apa yang harus saya gunakan untuk membandingkan mesin, perpustakaan, dan kerangka kerja satu sama lain, sehingga saya dapat memutuskan mana yang akan memungkinkan saya menjadi yang paling produktif untuk menyelesaikan permainan saya?


11
Untuk apa nilainya, saya menggunakan pendekatan dua langkah: (1) memilih satu secara sewenang-wenang; (2) menyesali keputusannya nanti. Keuntungannya adalah membuat Anda melewati langkah pertama dengan cepat.
Cameron Fredman

2
Bukankah ini seharusnya menjadi pertanyaan Wiki Komunitas?
Marton

Saya senang ini dibuat menjadi pertanyaan Wiki Komunitas, tetapi tidak ada pilihan bagi saya untuk melakukan itu. Saya berasumsi bahwa CW pada pertanyaan adalah hal yang hanya moderator, hari ini.
Trevor Powell

@ Marton Mengapa menurut Anda harusnya CW?
MichaelHouse

1
@ Byte56 Karena pertanyaan ini selalu muncul, ketika seseorang ingin memulai pengembangan game. Sudah ada banyak kerangka / mesin di luar sana, dan entri Wiki generik semacam itu akan sangat membantu. Saya pikir itu akan menjawab banyak pertanyaan "mesin mana yang harus saya gunakan" yang akan muncul di situs ini. Ungkapan terakhir sebenarnya akan membuat pertanyaan seperti itu 'tidak konstruktif'.
Marton

Jawaban:


14

Ini seperti memilih mobil atau komputer. Atau hampir semua hal yang memiliki berbagai macam fitur, beberapa di antaranya sangat Anda pedulikan, yang lain Anda tidak keberatan dan beberapa Anda bahkan mungkin tidak ingin disertakan.

  1. Buat daftar fitur yang Anda minati. Yaitu dukungan 2D / 3D, pencahayaan, fisika, menggunakan bahasa yang Anda ketahui dengan baik, dll.
  2. Beri peringkat berdasarkan kepentingan bagi Anda, berdasarkan pada proyek Anda saat ini.
  3. Teliti pilihan Anda dan untuk setiap opsi, cobalah untuk memeringkat fitur dukungan mereka berdasarkan seberapa baik mereka menyelaraskan dengan tujuan proyek Anda.
  4. Gunakan salah satu yang paling cocok dengan tujuan Anda. Atau Anda dapat memilih beberapa yang teratas dan memberi mereka test drive. Terapkan beberapa fitur sederhana dari gim Anda dan lihat mana yang lebih Anda sukai.

Saya pikir banyak dari ini intinya untuk benar-benar mengetahui apa yang Anda inginkan. Artinya, Anda harus memiliki ide bagus tentang gim yang Anda buat. Yang mungkin berarti Anda akan memerlukan rencana yang cukup terperinci tentang bagaimana menerapkan permainan Anda, dan apa yang akan dimasukkan. Sebagai bonus, memiliki semua informasi terperinci itu benar-benar akan membantu Anda menyelesaikan permainan Anda. Jauh lebih mudah untuk mengikuti rencana dan memeriksa hal-hal dari daftar daripada hanya memiliki ide untuk permainan dan hanya mulai menulis kode.


3

Pertama, Anda harus memiliki setidaknya gambaran kasar tentang apa permainan Anda dan apa yang dibutuhkan. Ada pertanyaan umum seperti apakah gim Anda akan membutuhkan fisika atau tidak. Lalu ada pertanyaan yang saling terkait, yang sebagian besar tentang lingkungan game Anda akan dikembangkan dan dijalankan dan seberapa komersial atau tidaknya game Anda.

  • Platform apa yang akan Anda dukung? Di platform apa Anda mengembangkan game?
  • Bahasa pemrograman apa yang Anda inginkan untuk mengimplementasikan game Anda?
    • Ini dipengaruhi oleh platform yang ingin Anda dukung.
  • Jenis grafis, audio, dan input apa yang akan dimiliki gim Anda?
  • Apakah game Anda freeware atau open source, atau komersial?
    • Jika open source, apakah Anda ingin komersial nanti, baik dengan game Anda atau dengan game lain yang menggunakan mesin game pertama Anda?

Jika Anda akan menjadi Windows saja maka pustaka berbasis DirectX dan C # adalah kandidat kuat. Jika Anda ingin menjadi multiplatform maka Anda ingin melihat perpustakaan berdasarkan OpenGL dan C / C ++, atau Flash jika game Anda 2D dan Anda dapat membeli alat Adobe. Seperti platform Anda, bahasa pemrograman Anda akan memengaruhi perpustakaan Anda yang tersedia. Program yang ditulis dalam C ++ akan mengalami kesulitan memanggil perpustakaan Java.

Jika game Anda bersifat komersial maka Anda dapat mempertimbangkan untuk membeli mesin seperti Unity. Jika game Anda adalah freeware atau open source, Anda ingin fokus pada perpustakaan yang juga open source, atau setidaknya gratis untuk proyek-proyek non-komersial. Pustaka sumber terbuka juga berguna untuk proyek komersial. Saat melihat perpustakaan open source pastikan untuk memeriksa lisensi mereka. Beberapa lisensi mengharuskan Anda untuk membuat bagian dari perangkat lunak sumber terbuka Anda sendiri tergantung pada bagaimana Anda menggunakan perpustakaan. Membatasi diri Anda untuk perpustakaan sumber terbuka jelas akan membatasi perpustakaan apa yang dapat Anda gunakan.

Saat melihat perpustakaan, pastikan untuk memeriksa seberapa aktif pengembangan dan komunitasnya. Saya percaya sebuah perpustakaan yang terkenal dan secara aktif mengelola lebih dari satu yang di-host di halaman web universitas seseorang yang belum diperbarui sejak 1999.

Satu pertanyaan terakhir, terutama jika ini bukan proyek game pertama Anda, adalah apakah ada aspek permainan yang perlu atau tidak Anda ketahui akan Anda hadapi jika Anda mencoba melakukannya sendiri. Karena aspek-aspek ini khususnya adalah kandidat untuk menemukan perpustakaan. Jika gim Anda membutuhkan deteksi tabrakan dan Anda tahu Anda tidak dapat mengimplementasikan pendeteksian tabrakan sendiri (seperti saya tidak bisa), pertimbangkan untuk mengambil mesin fisika dan memanfaatkan fitur pendeteksian tabrakan di dalamnya.


1
  • Apakah perpustakaan melakukan apa yang Anda butuhkan?
  • Apakah ini khusus untuk melakukan apa yang Anda butuhkan? Berapa banyak kekacauan yang melekat padanya?
  • Bagaimana ini dirancang? Apakah Anda ingin muntah saat melihatnya? Jika ya, maka itu mungkin bukan pilihan terbaik untuk kesehatan dan kewarasan Anda.
  • Apakah cukup fleksibel untuk kebutuhan Anda? Tidak baik memperhatikan bahwa perpustakaan tidak berfungsi setelah Anda telah menulis setengah dari kode Anda dengannya.
  • Bagaimana bukti di masa depan adalah perpustakaan? Apakah pengembang menambahkan fitur dari waktu ke waktu? Apakah dia memperbaiki sesuatu? Apakah dia memperbaiki keadaan? Ini bisa membuat perbedaan besar jika kemungkinan pengembangan game Anda akan memakan waktu beberapa tahun. Tidak begitu penting untuk proyek kecil yang akan Anda miliki dalam sebulan.
  • Apakah ukurannya sesuai? Untuk proyek kecil itu dapat membuat perbedaan besar apakah pemain harus mengunduh 20MB atau 200MB. Proyek yang lebih besar mungkin cukup besar sehingga ukuran middleware membuat sedikit perbedaan.

1

Selain fitur khusus gim yang telah dikomentari orang, Anda juga harus mempertimbangkan beberapa pertanyaan umum.

  1. struktur pendukung - bahkan jika mesin game sempurna, mungkin dukungan terlalu mahal, atau tidak ada.
  2. betapa mudahnya untuk belajar - Anda mungkin tidak ingin sesuatu yang terlalu besar, karena waktu untuk belajar mungkin menjadi penghalang.
  3. apakah itu mencakup rencana masa depan Anda - Anda mungkin tidak ingin menginvestasikan waktu untuk mempelajari mesin yang sempurna untuk saat ini, hanya untuk mempelajari kembali mesin baru dari awal untuk proyek selanjutnya. Atau mungkin Anda menginginkannya.
  4. lisensi - jika Anda membuat game sumber tertutup, pastikan lisensi engine tidak membuatnya menjadi sumber terbuka.

0

Lembar contekan pendek untuk mengevaluasi perpustakaan, kerangka kerja, mesin dan SDK dan memilih yang terbaik

  • Perpustakaan, kerangka kerja, engine SDK, dan sebagainya adalah alat yang dimaksudkan untuk menyelesaikan masalah bagi Anda atau membantu Anda memecahkan masalah dan memenuhi persyaratan tertentu.
  • Mengevaluasi berarti mencari tahu mana yang paling memenuhi persyaratan.

Karena itu sebelum Anda mulai mengevaluasi, Anda harus jelas dalam skenario mana Anda dan persyaratan apa yang Anda miliki / ingin miliki karena ini adalah pertanyaan yang harus dijawab oleh evaluasi.

Skenario menentukan dari mana persyaratan berasal (siapa yang memutuskan apa persyaratan dan apa yang tidak).


Skenario umum adalah:

Skenario proyek hobbiest

Anda sendiri atau bersama beberapa teman ingin membuat game (mungkin yang pertama). Sempurna, Anda dapat memutuskan semuanya sendiri dan Anda hanya terbatas pada keinginan teknis dasar dan persyaratan teknis (harus berupa gim mobile, gim PC, gim konsol, gim web, ....). Anda dapat memutuskan apa pun yang Anda inginkan.

Persyaratan implisit adalah bahwa Anda mungkin ingin mempelajari sesuatu yang spesifik (bahasa, kerangka kerja / mesin tertentu)

Skenario siswa

Persyaratan mungkin datang dari guru Anda. Persyaratan umum yang saya miliki dalam kasus itu: permainan perlu memiliki beberapa elemen fisika dan dukungan jaringan multipemain. Atau harus ditulis dalam C ++. Jadi mengevaluasi menjadi mudah. Anda mencari mesin gim yang memungkinkan Anda membuat kode dalam c ++ dan mungkin sudah menyertakan mesin jaringan dan fisika.

Persyaratan yang lebih jahat (kehidupan nyata): semuanya harus ditulis dari awal (tetapi menggunakan perpustakaan diperbolehkan). Jadi tidak ada editor yang diizinkan (mis. Unity3D). Jadi Anda tidak mencari mesin / sdks tetapi untuk perpustakaan.

Skenario game indie

Anda ingin menghasilkan uang dengan permainan nanti. Karenanya Anda harus menjualnya entah bagaimana yang membawa Anda untuk memeriksa persyaratan mana yang berasal dari toko tempat Anda ingin menjual game Anda.

Apakah itu mengizinkan game Java, game HTML5, ....)

Apakah itu mengharuskan Anda untuk memasukkan perpustakaan tertentu (jika ya, dalam bahasa apa perpustakaan itu tersedia)

Google Playstore akan mengharuskan Anda untuk menulis game sebagai game Android, Apple AppStore akan meminta Anda untuk menulis game sebagai aplikasi iOS. Atau Anda memiliki persyaratan untuk memilih mesin multiplatform.

Skenario profesional

Anda tidak hanya memiliki toko yang menyediakan persyaratan tetapi kemungkinan besar penerbit atau pelanggan memiliki imaginasi persyaratan sendiri. Dalam skenario ini Anda juga akan memiliki tim pengembang yang lebih besar yang dipekerjakan. Tergantung pada keahlian mereka, persyaratan baru muncul (programmer kami hanya dapat menulis c ++ sehingga kami tidak dapat menggunakan mesin game Java / Android murni tanpa mereka memerlukan (banyak) waktu untuk mempelajari sesuatu yang baru).

Saya tidak merinci skenario ini, begitu Anda berhasil membangun tim karyawan dan menemukan pelanggan / penerbit, Anda sudah tahu apa yang Anda cari dalam mengevaluasi sesuatu.


Bagaimana cara saya memutuskan apa persyaratan saya ketika saya seorang hobbiest atau indi dan tidak ada orang lain yang memberi tahu saya?

Ajukan pertanyaan pada diri sendiri tentang tujuan dan permainan Anda?

  • Apa yang harus saya mainkan? mobile, pc, web (html / Js), yang mana pengontrol yang akan saya gunakan (layar sentuh, giroskop, game pad)

  • Apa yang baru dalam gim saya dan apa yang dimiliki gim lain juga. Bagian-bagian yang juga dimiliki game lain (rendering, audio, penanganan input) akan dilakukan oleh sebagian besar (mesin game) alat yang dapat Anda temukan atau mudah untuk mengumpulkan perpustakaan yang memiliki fungsionalitas itu dalam game atau mesin game Anda sendiri.

  • Apa dimensi proyek saya: burung atau skyrim yang marah? Angry Birds dapat dilakukan di hampir setiap alat dan skyrim akan terbatas pada alat berkinerja tinggi dengan (diasumsikan) tahun penyesuaian tambahan (mesin medan berkinerja tinggi tidak mudah)

  • Apakah satu-satunya tujuan saya hanya untuk menyelesaikan permainan? Iya? sempurna, Anda dapat menggunakan beberapa hal yang sangat canggih seperti Unity, Unreal, ... memiliki editor yang praktis dan komunitas besar yang memberi Anda tutorial dan menjawab pertanyaan Anda. Ini menghilangkan beban menangani tugas-tugas tingkat rendah seperti mesh loading, mengimplementasikan fungsi matematika Anda sendiri, ....

  • Apakah tujuan saya untuk mempelajari sesuatu yang spesifik? Iya? apa yang ingin kamu pelajari?

  • Bahasa apa yang harus saya pilih? Jika tujuannya masih hanya untuk menyelesaikan permainan Anda, pilih yang Anda / tim Anda tahu terbaik? Jika Anda ingin mempelajari bahasa tertentu, Anda akan memilih alat dalam bahasa itu.

  • Akankah alat X memiliki kinerja yang cukup untuk game saya? Mungkin Anda tidak akan pernah tahu. Bahkan dalam produksi besar fase optimisasi dan pemolesan membutuhkan waktu yang lama dan merupakan upaya besar untuk menyelesaikannya. Mulailah memerhatikan kinerja ketika Anda mengalami masalah kinerja. Anda tidak tahu bagaimana kinerja alat kecuali jika mencapai batasnya. Segala sesuatu di situs web pengembang alat hanyalah tebakan kasar. Setelah bertahun-tahun mengevaluasi alat, saya berhenti memercayai apa pun dari situs web pengembang.


Menjawab pertanyaan seperti itu membawa Anda ke persyaratan. Evaluasi tersebut adalah menemukan daftar alat dan PENGUJIAN (tidak hanya membaca beranda) apa yang dapat disediakan atau tidak dapat disediakan oleh alat tersebut.


Persyaratan tidak dipotong menjadi batu tetapi dinamis. Mereka akan datang dan pergi selama pengembangan. Jika gim membutuhkan fisika atau tidak misalnya tergantung pada desain. Jika desain berubah, kebutuhan juga bisa berubah.

Ambil persyaratan yang Anda miliki dan mulailah. Mengubah persyaratan adalah roti harian penderitaan, ahm, pengembang bahagia terlepas dari ukuran proyek dan tingkat pengalaman.


0

Buka di sini .

Terlepas dari jumlah mesin gim di luar sana, Anda sebenarnya tidak memiliki banyak pilihan.

  1. pembatasan lisensi. Beberapa mesin akan menghambat kemampuan Anda untuk merilis produk Anda tanpa terlebih dahulu membayar biaya lisensi yang besar, misalnya Unity , digunakan untuk membebankan biaya tambahan untuk dikompilasi ke iOS, misalnya (ini berubah pada tahun 2016 )
  2. platform. Apakah Anda peduli tentang penargetan beberapa platform? Yang mana
  3. 2D atau 3D? Beberapa mesin melayani 2D.
  4. Membutuhkan fisika? Beberapa mesin menyediakan fisika
  5. FPS, RTS? Mungkin bijaksana untuk menggunakan mesin yang khusus untuk jenis gim yang Anda buat.
  6. Jelas Anda ingin bekerja dalam bahasa favorit Anda. Tidak suka C? Maka jangan gunakan Allegro!
  7. Apakah Anda seorang pola desain besar, penggemar OOP? Pola OGRE "berlebihan" yang terkenal
  8. Pengembangan aktif? Anda harus mempertimbangkan pertukaran antara ketersediaan fitur tepi yang berdarah (DX11 / OGL 4) vs stabilitas mesin yang pengembangannya meruncing beberapa tahun yang lalu
  9. Basis pengguna? Basis pengguna yang besar biasanya berarti forum yang lebih baik, jadi lebih mudah untuk menjawab pertanyaan Anda
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.