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?
software-engineering
Trevor Powell
sumber
sumber
Jawaban:
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.
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.
sumber
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.
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.
sumber
sumber
Selain fitur khusus gim yang telah dikomentari orang, Anda juga harus mempertimbangkan beberapa pertanyaan umum.
sumber
Lembar contekan pendek untuk mengevaluasi perpustakaan, kerangka kerja, mesin dan SDK dan memilih yang terbaik
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.
sumber
Buka di sini .
Terlepas dari jumlah mesin gim di luar sana, Anda sebenarnya tidak memiliki banyak pilihan.
sumber