Bagaimana cara menyelesaikan permainan? [Tutup]


Masalah saya adalah, setiap kali saya mulai memprogram klon game (untuk latihan) atau game saya sendiri atau masalah lain saya berhenti di suatu tempat di tengah pengembangan, karena saya kehilangan minat di dalamnya.

Bagaimana Anda mempertahankan minat dalam mengembangkan game, atau berkembang secara umum?


4
Benar-benar di luar topik - coba produktivitas.stackexchange.com untuk saran motivasi.
Cyclops


Buat orang-orang tertarik dan kumpulkan komunitas di sekitar pekerjaan Anda. Anda dapat meminta orang lain bekerja sama dengan Anda dalam sebuah proyek kecil dan karenanya memotivasi satu sama lain. Juga cobalah untuk memotong pekerjaan dalam potongan sekecil mungkin, dengan cara ini Anda akan merasa semakin cepat tanpa banyak menghabiskan waktu.
Thomas

Jawaban:


Sebagai seorang desainer, saya cenderung menganggap orang sebagai kumpulan statistik dan variabel. Saat Anda mengajukan pertanyaan, saya dapat dengan mudah membayangkan [Pong_Dev_Interest] menurun dan [Spa_Inv_Dev_Interest] semakin meningkat. Ketika perbedaan antara keduanya lebih besar dari [Dev_Project_Inertia] (agak terkait dengan [Dev_Completion_Desire]), aktivitas di [Pong_Dev] berhenti dan [Spa_Inv_Dev] dimulai.

Dalam bahasa Inggris: Anda gagal menyelesaikan proyek karena keinginan mentah Anda untuk melihat produk jadi ditimpa oleh kurangnya minat Anda pada proyek saat ini. Jika Anda benar - benar ingin menyelesaikannya, satu-satunya solusi adalah memilih satu (saya akan pergi dengan klon pong Anda) dan menyelesaikannya . Katakan pada diri Anda sendiri, "Saya tahu, mungkin saya bisa memperbaiki kloning itu lagi, tetapi sungguh menyenangkan rasanya untuk menendang proyek keluar dari pintu". Terus bekerja.

Saat Anda bosan, teruslah bekerja. Saat ini berjalan dengan baik, teruslah bekerja. Ketika jatuh ke omong kosong, terus bekerja! Bertekun! Jadilah Dev Kecil yang Bisa! Aku percaya padamu!

Ahem. Ada sedikit berlebihan di sana. Tapi Anda mengerti maksudnya.

Saya mengikuti saran saya sendiri setiap hari. Saya membuat lingkungan dan aktor saya bekerja, dibangun dalam kondisi menang dan kalah dan menciptakan objek yang akan digunakan Pemain. Saya pada dasarnya siap untuk mulai melakukan desain level dan minat saya berkurang. Tetapi saya melakukannya setiap hari. Setiap hari Suatu hari aku akan selesai.

Dan itu akan terasa sangat baik.


Saya selalu bertanya pada diri sendiri pertanyaan yang sama dan ada beberapa hal yang dapat Anda lakukan untuk memotivasi diri sendiri (banyak dari mereka sudah diposting di sini). Apa yang bekerja dengan baik untuk saya adalah sesuatu yang saya dengar di salah satu Indie Talks di GDC tahun ini, saya pikir itu adalah orang yang membuat permainan Monaco :-)

Pertama, temukan proyek yang sesuai dengan pengalaman Anda. Yaitu jangan mulai membuat FPS jika Anda bahkan tidak tahu dasar-dasar OpenGL / DirectX. (kecuali jika Anda menggunakan mesin game tapi bukan itu intinya di sini ;-))

Kemudian, buatlah diri Anda daftar hal yang harus dilakukan dan tonggak yang ingin Anda capai, sehingga Anda selalu tahu ke mana harus pergi. TODO adalah bagian penting. Tentukan tugas Anda sehingga setiap tugas dapat dengan mudah dilakukan pada hari atau dalam beberapa jam . Jadi, ketika Anda memulai pengkodean, desain, pemodelan, dll, Anda sudah melihat cahaya di ujung terowongan. Tidak ada yang lebih menyedihkan daripada merancang dan mengkodekan Mesin Game besar Anda selama sebulan tanpa mendekati garis finis. Hancurkan tugas-tugas besar menjadi yang lebih kecil. Menyelesaikan tugas dengan cepat benar-benar bermanfaat dan membuat Anda terus maju. Sebagai contoh, ini adalah daftar tugas saya untuk game penembak ruang kecil sekaligus:

  • Efek suara
  • Musik
  • Merombak Kapal
  • Merombak Roket
  • Deteksi Colision antara tembakan dan pemain / musuh
  • Buat musuh menembak
  • Judul layar
  • Score / Lives / Energy Overlay Apapun

Semua tugas ini mudah dilakukan dan begitu mereka bekerja dalam permainan, Anda dapat mengulangi area tersebut dan memolesnya.

Dan hei, saya menyelesaikan game kecil. Ini tidak cantik tetapi pada dasarnya dilakukan yang pada akhirnya sangat bermanfaat :-)


Anda harus mengidentifikasi masalah sebelum dapat menyelesaikannya. Mengapa Anda kehilangan minat?

Bagi saya, itu biasanya terjadi karena saya menghabiskan begitu banyak waktu pada kerangka, dan setelah berminggu-minggu, saya bahkan tidak bisa mendapatkan elemen gameplay tunggal.

Salah satu cara saya menemukan untuk meningkatkan motivasi saya adalah dengan melakukan iteratif prototyping, atau beberapa bentuk Test Driven Development. Biasanya itu melibatkan mengotomatisasi kasus uji, tetapi karena gim bersifat intensif gambar, Anda tidak bisa mengotomatiskan layar dan animasi sebagai pengujian, tetapi logika gim Anda bisa otomatis.

Untuk bagian-bagian yang tidak bisa otomatis, pada dasarnya saya akan merencanakan beberapa tonggak untuk permainan. Tonggak 1 mungkin akan membuat sprite di layar dan membuat WASD bekerja, misalnya. Secara bertahap, saya akan menambahkan lebih banyak fitur, dan refactor.

Ini adalah bentuk memecah belah dan menaklukkan. Pecahkan potongan-potongan kecil, kerjakan yang Anda sukai, lalu integrasikan. Bilas dan ulangi. Akhirnya Anda mungkin melihat cara yang lebih baik untuk mengatur kembali barang-barang, dan Anda dapat memperbaiki kode Anda. Ini berantakan untuk tidak memiliki arsitektur di depan, tetapi biasanya ketika memulai pemrograman sulit untuk memvisualisasikan arsitektur sampai Anda memiliki beberapa tahun pengalaman.


1
Saya sudah melakukan ini sejak lama, dan tidak ada yang lebih menarik daripada memuat sprite pertama gim Anda dan memindahkannya di layar.
Aktivis Habis Terjual

Saya mencoba mencari bagian yang lebih mudah dibuat. Seperti jika saya tidak tahu cara membuat sesuatu atau tidak, saya mengubah persneling dan membuat model atau menulis shader, dll.

Lihat ini dan ini pos lainnya.


1
+1 Yap, itu taktik yang sangat bagus. Angkat pikiran Anda dari hal-hal yang sulit untuk sementara waktu, lakukan pekerjaan kasar, dan ketika Anda kembali kesulitan tidak tampak begitu sulit lagi. Bekerja untukku.
Insinyur

Jika Anda tidak tahu cara menyusun game dengan benar, Anda harus mulai mempelajari cara mengabstraksi elemen-elemennya menjadi blok-blok yang tidak tergantung pada game. Ini dapat membantu Anda dalam banyak hal (selain menarik), seperti: pengalaman membagi abstraksi dari implementasi, eksploitasi warisan dan desain antarmuka yang lebih baik, atau cara memasukkan game ke dalam beberapa file agar terlihat pro (atau untuk memberikan fleksibilitas implementasi dengan menggunakan pustaka tautan dinamis atau penggunaan antarmuka lainnya). Cepat atau lambat Anda akan menyadari bahwa semuanya dapat dilakukan dan kemudian Anda akan menemukan diri Anda tanpa masalah motivasi lagi (Anda hanya melakukannya).

Saya memiliki masalah yang sama ketika saya macet pada awalnya, tetapi solusi terbaik adalah tetap bergerak, atau Anda bisa mengulur selamanya sampai sesuatu me-reset Anda entah bagaimana (dan mungkin butuh waktu terlalu lama). Tidak masalah jika Anda hanya kode 2 baris beberapa hari, tetapi setiap hari Anda setidaknya harus membuka proyek dan mencoba untuk meningkatkan sesuatu (itu adalah tugas yang tidak pernah berakhir tetapi bukan itu masalahnya).

Jika pada titik tertentu program tidak bekerja, Anda harus membatalkan apa yang Anda lakukan terakhir (menyimpan cadangan menggunakan svn atau setidaknya .rar dengan nama tanggal) ke titik itu berhasil, dan cobalah untuk melakukannya lagi, atau bekerja pada perubahan lain yang perlu Anda lakukan sampai Anda ingin mencoba lagi.

Pada awalnya Anda harus mencoba untuk memperbaiki kesalahan dengan bantuan debugger, tapi saya tidak tahu apakah bahasa Anda bahkan mendukung debugger ... tetapi jika Anda kebetulan menggunakan C ++ atau sesuatu seperti itu (yang saya sarankan jika Anda ingin membuat game), Anda harus menggunakan debugger Anda dengan lebih baik karena akan banyak membantu Anda untuk menemukan kesalahan dengan cepat dalam sekali jalan.

Membaca tentang pemrograman game juga merupakan hal yang baik untuk tetap pada topik jika Anda tidak ingin mengerjakan sesuatu yang khusus. Ada beberapa buku dan artikel bagus tentang mesin game dan desain yang dapat Anda temukan online.

Anda tidak akan dapat melakukan apa pun jika Anda tidak berlatih. Mencoba menemukan bug bisa sangat membuat frustasi pada awalnya, tetapi kemudian Anda mengetahui bahwa sebenarnya mudah jika Anda tahu cara melakukannya. Ini adalah sesuatu yang Anda pelajari bagaimana cara menghindar dengan waktu, dengan mengkode dengan cara perubahan Anda tidak berdampak pada keseluruhan program, mengurangi jumlah tempat di mana mencari kesalahan. Jika setiap kali sulit Anda menyerah, maka setiap kali Anda berpikir untuk membuat permainan Anda akan menyerah sebelum memulai. Hanya belajar bagaimana mengatasi momen buruk dengan mengatasinya: P Jika Anda tidak melewati saat di mana Anda kehilangan motivasi, kemalasan Anda akan menang, dan Anda akan kalah, begitulah cara kerjanya, sampai Anda belajar cara mendapatkan kembali motivasi. tanpa banyak usaha.

PS Saya bertanya-tanya ... apa yang Anda gunakan untuk membuat game?


+1 Untuk menggunakan kontrol sumber. Tidak memiliki SC adalah alasan utama saya berhenti mengerjakan game saya 4 tahun yang lalu (saya memodifikasi sumber terlalu banyak untuk kembali). Untungnya, saya baru-baru ini menyadari manfaat XNA dan permainan kembali bekerja.
Richard Marskell - Drackir

[dimaksudkan untuk dibiarkan sebagai komentar untuk jawaban anon, yang telah dihapus ketika saya mempostingnya. Dia menyebutkan bahwa dia memiliki semua fungsi ini berfungsi, kemudian membagi kode file tunggal menjadi beberapa file, hanya untuk semuanya berantakan]

Re: refactoring, hal-hal bisa terjadi, bahkan ke pro. Kadang-kadang bahkan dengan alat yang bagus seperti Git, penggabungan dapat gagal sehingga alih-alih fitur A dan fitur B keduanya berfungsi, tidak berfungsi! Satu-satunya pilihan adalah kembali ke A dan coba lagi. Untungnya kontrol versi akan menyimpan kode ini untuk Anda; jika Anda tidak menggunakan kontrol versi nyata, setidaknya lakukan secara manual dengan zip folder dev Anda secara teratur - ruang HD murah! Sebagai kesimpulan, kembali ke apa yang berhasil dan refactor dalam langkah-langkah yang lebih kecil, pastikan permainan masih bekerja di setiap langkah Sangat menyedihkan untuk membersihkan kode hanya untuk melihat semuanya berantakan. Cukup kembali ke kode lama.


1
"Jika Anda tidak menggunakan kontrol versi nyata, mulai " - adalah jawaban yang benar. :) Sungguh - cukup mudah untuk dipelajari, dan merupakan pengganda kekuatan utama . VC apa pun akan menghemat lebih banyak waktu, daripada yang diperlukan untuk belajar.
Cyclops

Dalam proyek desain lintas disiplin baru-baru ini di universitas tempat saya duduk di sekolah pascasarjana, saya terkejut melihat bahwa tim CS tidak tertarik pada kontrol sumber sementara EE mengatur SVN sebelum melakukan hal lain. Aneh!
3Dave

Agar tetap termotivasi, terus katakan pada diri sendiri bahwa Anda membuat game, bukan mesin game - yah, kecuali itu yang Anda inginkan. Dan itu keren, mesin gim itu hebat, tetapi mereka terlalu sering menghalangi pembuatan gim.

Untuk mengilustrasikan poin saya, saya dapat memberi tahu Anda bagaimana hal-hal sering terjadi: pada awalnya Anda membuat beberapa sprite, pindahkan di layar dengan kerangka proto Anda dan Anda senang! Anda dapat melihat kemajuan Anda dan itu berjalan dengan baik; Anda bisa menunjukkan teman Anda.

Kemudian, setelah Anda sedikit bermain dengan konsep Anda, Anda menyadari bahwa Anda perlu membuat kerangka kerja Anda (atau mesin game) lebih fleksibel. Atau Anda harus mempertimbangkan ulang beberapa kelas yang tidak mengikuti pola terbaru. Dan dari sana, Anda memulai spiral kematian: Anda berhenti mengerjakan game dan Anda mulai bekerja pada mesin game. Dan mesin gim hampir tidak menyenangkan untuk dibuat. Anda dapat menghabiskan berjam-jam melakukan refactoring dan tidak memiliki apa pun untuk ditunjukkan - di dalam game. Dan kemudian, Anda kehilangan minat.

Jadi, ingat: buat game, bukan mesin game. Hanya refactor saat Anda membutuhkannya. Jangan terlalu fleksibel - hanya minimum. *

*: tentu saja refactoring dan fleksibilitas itu penting. Namun tidak sepenting benar-benar memiliki permainan yang selesai.


Cobalah untuk membuat versi yang dapat dimainkan dalam sehari, tidak masalah seberapa sederhana. Kemudian beralih.


  1. Jangan mencoba membuat gim Anda terlalu rumit!

  2. Bagi tugas Anda menjadi subtugas kecil, spesifik, dan terukur. Jika ada subtugas yang kelihatannya terlalu besar, maka bagilah lebih lanjut.

  3. Pastikan Anda menulis "DILAKUKAN" dalam huruf besar pada daftar tugas Anda (saya menggunakan file .txt) ketika tugas Anda selesai. Jangan hapus tugas, karena dengan begitu tidak akan terlihat seperti Anda membuat kemajuan.

Inilah yang saya lakukan. Ini berhasil di masa lalu.

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.