Merancang permainan - Di mana untuk memulai? [Tutup]

28

Seorang teman saya dan saya merencanakan permainan bersama untuk dikerjakan di waktu luang kami. Ini bukan permainan yang luas, tapi juga tidak sederhana.

Dia sedang mengerjakan cerita di balik game sementara saya sedang mengerjakan grafik dan kode.

Saya tidak benar-benar tahu harus mulai dari mana dengan permainan. Kami tahu jenis permainan dasar apa yang akan terjadi dan bagaimana itu akan dimainkan, tetapi saya mengalami kesulitan untuk benar-benar tahu harus mulai dari mana.

Saya memiliki Xcode terbuka tetapi saya tidak benar-benar tahu apa yang harus saya rancang terlebih dahulu.

Apa saran untuk blok penulis ini? Di mana tempat yang baik untuk memulai dengan permainan? Haruskah saya mendesain semua gambar dan tata letak bahkan sebelum menyentuh Xcode? Haruskah saya memprogram hal-hal yang saya tahu saya akan mengalami kesulitan dengan terlebih dahulu sebelum mendapatkan hal-hal yang mudah?

OghmaOsiris
sumber

Jawaban:

30

Mulailah dengan membangunkan sesuatu dan dimainkan. Jangan menghabiskan lebih dari satu jam untuk grafik, cukup buat game dengan placeholder sampah. Gim tidak memiliki persyaratan obyektif untuk dibangun: persyaratan kuncinya adalah gim itu menyenangkan, dan mengevaluasi apakah gim itu menyenangkan atau tidak mengharuskan Anda memainkannya; sebagai hasilnya, desain game harus mengikuti pendekatan berulang . (Saya merekomendasikan Tom Wujec pada tantangan marshmallow sebagai orientasi pada desain berulang.

Peter Taylor
sumber
Saya tidak mengerti mengapa harus ada sedikit penekanan pada grafik.
OghmaOsiris
19
@OghmaOsiris: Sebagian besar game tidak memiliki grafik sebagai elemen intrinsik gameplay. Biasanya, gambar hanya lapisan di atas permainan yang sebenarnya, yang membuatnya cantik dan membuatnya menjual, tetapi tidak menyenangkan. Grafik juga sangat mahal untuk dibuat. Jika Anda telah menempatkan satu jam ke dalam seni untuk permainan pesawat ruang angkasa berkedut-penembak Anda, dan kemudian seminggu kemudian Anda menyadari itu akan bekerja lebih baik sebagai permainan citybuilding fantasi berbasis giliran, Anda tidak kehilangan banyak. Jika Anda menghabiskan waktu berminggu-minggu untuk seni itu, Anda harus membuang pekerjaan atau melepaskan permainan yang lebih rendah.
ZorbaTHut
1
@OghmaOsiris (lanjutan): Terkadang Anda membuat permainan di mana seni itu penting, dan kemudian Anda mungkin ingin melakukan cukup seni untuk merasakannya. Biasanya Anda akan tahu ketika Anda berada dalam situasi itu.
ZorbaTHut
@OghmaOsiris, mainkan Minecraft , atau bahkan lebih baik, Dwarf Fortress . :)
Cyclops
1
Membuat sesuatu yang menarik membutuhkan waktu yang jauh lebih lama daripada mengimplementasikan fungsionalitas dasar dan selalu berakhir dengan menambahkan "creep lingkup" yang ditakuti. Dalam kasus terburuk Anda memproyeksikan mungkin tidak pernah selesai, menyebabkan Anda menyerah begitu saja. Jangan kehilangan cakupan tujuan Anda: Buat game yang berfungsi! Memasukkan grafik setelahnya akan menunjukkan jauh lebih banyak dicapai dalam waktu yang jauh lebih sedikit, terutama jika Anda masih mencoba mencari tahu dari mana harus memulai.
Mohgeroth
16

Buat sesuatu di atas kertas, dan maksud saya membuat papan mock-up dan potongan-potongan. Buat aturan dan mainkan game Anda di kertas mock-up. Gunakan itu untuk membagi desain kode Anda ke dalam set fitur dan modul yang dapat Anda kerjakan. Proses ini akan membantu teman Anda mendesain cerita dan bagaimana gamenya bekerja juga.

Anda mungkin tergoda untuk menulis fitur tambahan ke dalam kode Anda, hindari itu. Anda membuat prototipe untuk melihat apa yang akan berhasil.

Setelah Anda memiliki bagian kecil dan berjalan Anda harus bekerja secara iteratif dan pada setiap iterasi dapatkan hanya satu fitur lagi yang berjalan. Ketika sesuatu tidak berjalan dengan baik, kembali dan ubah fitur. Terus iterasi dan ubah.

Ide dasarnya adalah untuk memiliki visi jangka panjang berdasarkan maket kertas Anda, dan dari itu serangkaian tujuan jangka pendek untuk bekerja pada yang membawa Anda ke tempat Anda ingin pergi sepotong pada suatu waktu dan tanpa tekanan " OMG, apa yang harus saya lakukan selanjutnya? "

Patrick Hughes
sumber
+1: Percaya pada diagram dan gambar! Gagasan berubah dari menetes ke riam gagasan yang tiba-tiba begitu Anda MELIHAT apa yang ingin ditunjukkan oleh pikiran Anda!
Mohgeroth
4

Evaluasilah kebutuhan Anda terlebih dahulu. Pengkodean tanpa rencana akan menghasilkan banyak pemborosan nantinya.

Apa yang perlu dilakukan game secara fungsional? Kerangka apa yang Anda butuhkan untuk membuatnya bekerja? Apa saja elemen yang bisa dipinjam dari kerangka kerja yang ada, dan apa yang perlu Anda tulis sendiri?

Sebelum membuka Xcode, mungkin cukup membantu membuat guntingan kertas, dan jalankan melalui semua antarmuka game dan dialog terlebih dahulu. Ini akan memberi Anda beberapa ide tentang apa yang perlu Anda buat di Interface Builder.

Selanjutnya, bagaimana hal-hal berinteraksi? Apa gaya interaksi yang berbeda yang diperlukan? Itu seharusnya memberi Anda beberapa ide bagaimana controller perlu dibagi, mulai dan berhenti.

Jangan merencanakannya sampai mati, tetapi jelaskan persyaratan Anda, dan segera setelah Anda dapat memecah proyek menjadi potongan-potongan berukuran 30menit-1jam, Anda siap untuk memulai pengkodean.

Melihat 2 hari, 2 minggu, atau lebih buruk, tugas senilai 2 bulan melibatkan pertarungan atau reaksi terbang. Hancurkan menjadi potongan-potongan yang cukup kecil sehingga Anda dapat menggigit masing-masing secara berurutan tanpa tersedak, dan tebakan saya adalah Anda akan tahu persis gigitan mana yang akan dimulai, dan mana yang harus diikuti selanjutnya.

SplinterReality
sumber
3

Jika gim ini dianggap cocok dengan genre yang ada, atau entah bagaimana mirip dengan gim lain, cukup coba untuk membuat tiruan sederhana dan gim dari gim itu, atau buat contoh genre yang "khas". Jika Anda bukan pembuat kode yang baik, ikuti tutorial yang akan memandu Anda membuat game yang mirip dengan milik Anda.

Setelah beberapa saat, Anda seharusnya secara alami merasakan keinginan untuk "menyimpang" dari model Anda, dan mulai mengambil permainan sesuai arahan Anda sendiri. Dari sana ada jalan menurun menambahkan fitur di sana, memperbaiki bug di sini, dan umumnya membaik dalam langkah-langkah kecil.

Jika ada konsep tertentu yang entah bagaimana unik untuk gim Anda, Anda mungkin juga mulai dengan membangun demonstrasi paling sederhana dari konsep itu. Ada juga pilihan untuk hanya membangun game Anda di sekitar konsep itu.

Hebat
sumber
2

Lakukan hal-hal yang memberi Anda prototipe yang dapat dimainkan sesegera mungkin.

1-2 minggu pertama Anda mungkin tidak dapat membuat estimasi yang baik, karena Anda baru mengenal mesin. Jadi pada minggu pertama mungkin buang-buang waktu untuk melakukan estimasi. Tetapi perhatikan waktu yang Anda habiskan untuk barang-barang, jadi Anda memiliki pengalaman yang bisa dijadikan dasar perkiraan pertama Anda. Setelah itu mulailah merencanakan, memperkirakan, dan menetapkan prioritas!

Tiga hal yang saya pelajari dari 6 bulan terakhir di mana saya menjadi bagian dari proyek game yang tidak berhasil (saya dibayar untuk menjadi dev yang mengimplementasikan logika game):

  1. Jangan mengubah rencana Anda setiap hari! Jelas merupakan hal yang baik untuk menempuh jalan yang gesit, tetapi jika Anda akhirnya mengubah tujuan Anda setiap hari, jelas ada sesuatu yang salah.
  2. Pantau waktu yang Anda habiskan untuk pekerjaan Anda. Bandingkan perkiraan waktu dan waktu efektif. Pada awalnya Anda mungkin akan melihat perbedaan besar, tetapi seiring waktu Anda harus bisa membuat perkiraan yang lebih baik.
  3. Memperhitungkan estimasi saat menetapkan prioritas.

Penting: Dari waktu ke waktu lihat kembali proyek dan lihat apa yang berjalan baik dan apa yang salah. Saya kira Anda dapat mengidentifikasi bagian di mana Anda menghabiskan terlalu banyak waktu untuk sesuatu yang tidak diperlukan. Cobalah untuk mengabaikan hal-hal seperti itu di lain waktu. (Misalnya: Jika Anda mengerjakan gadget yang bisa digunakan pemain Anda 1 atau 2 kali dalam game selama 2 detik, jangan menghabiskan sebulan penuh untuk implementasi.)

SwissCoder
sumber