Apa bahaya dari pengembangan game belajar mandiri? [Tutup]

58

Saya akan memulai perjalanan menuju pengembangan game. Mengikuti jawaban untuk pertanyaan terakhir saya, saya akan menggunakan C # dan XNA.

Namun, saya secara pribadi tidak tahu pengembang game lain dan saya tidak bekerja di industri sehingga, dengan demikian, akan otodidak. Pengecualian untuk hal ini jelas adalah mengajukan pertanyaan dan membaca informasi online / cetak tetapi saya masih akan mengklasifikasikan ini sebagai pembelajaran otodidak.

Dengan itu, saya ingin siap menghadapi masalah yang mungkin saya temui karena tidak memiliki seseorang untuk "menjaga saya di bawah sayap mereka".

Sebagai analogi, ketika belajar sendiri untuk bermain gitar, saya memainkan kunci utama sedemikian rupa sehingga pindah ke kunci yang saya pelajari kemudian menjadi lebih sulit.

Jika Anda bisa membagikan pelajaran yang Anda pelajari dan saran tentang apa yang mungkin salah dalam pembelajaran saya tentang pengembangan game, saya akan berterima kasih.

Saya sangat sadar bahwa membuat kesalahan adalah bagian terbesar dari pembelajaran tetapi, jika ada kesalahan yang bisa saya siapkan maka saya akan lebih bahagia dengan itu.

Ste
sumber
Lihatlah, pelajaran berbagi mungkin mengubah pertanyaan menjadi terbuka dan membatalkannya, sehingga dapat ditutup.
Gustavo Maciel
Itu poin yang bagus. Untuk setiap pengunjung, saya berencana menerima jawaban yang komprehensif.
Set
Ste, ketahuilah bahwa Anda dapat memindahkan tanda centang ke jawaban lain, jika Anda berpikir yang baru lebih baik. Saya minta maaf kepada Gustavo, bukan berusaha membebankan biaya kepadanya :) Tetapi poin dari situs-situs ini, dan pemungutan suara dan tanda centang, adalah untuk menyoroti jawaban terbaik untuk sebuah pertanyaan. Juga, meskipun besar bahwa Anda lakukan menerima jawaban, itu tidak perlu menerima satu yang cepat - satu jam setelah pertanyaan Anda diposting, agak segera. Saya biasanya menunggu setidaknya sehari, mungkin lebih, sebelum menerima jawaban. Lihat apa yang muncul.
Cyclops
@ Cyclops - ya, saya tidak berharap pertanyaan terbukti sangat populer. Saya akan ulas minggu depan. Terima kasih untuk semua untuk jawaban yang bagus sejauh ini.
Ste
Terima kasih atas semua jawaban bagusnya. Saya telah memindahkan jawaban yang diterima ke yang paling banyak mendapat dukungan. Saya telah melakukan ini untuk mencerminkan pendapat masyarakat. Semoga Anda mengerti @Gustavo
Ste

Jawaban:

54

Pengembangan game seperti rekayasa struktural

Ada persyaratan minimum untuk fungsionalitas. Persyaratan minimum tidak terlalu menantang dan banyak orang dapat belajar bagaimana memenuhinya. Itulah bagian fungsinya . Itu bagian kecil. Di sinilah keputusan bahasa apa yang akan digunakan, platform untuk mengembangkan, atau apa perpustakaan untuk memanfaatkan masuk

Bagian selanjutnya adalah bagian besar. Bagian bentuk . Bentuk inilah yang benar-benar membedakan game bagus dari game hebat. Ini adalah bagian yang merupakan seni pengembangan game. Saya tidak berbicara tentang aset sensorik saja (grafik, suara, dll?). Saya berbicara tentang menyusun pengalaman. Ini bagian yang sulit.

Bagian fungsi berasal dari tutorial, perpustakaan, dan sedikit waktu. Siapa pun bisa melakukannya.

Bagian formulir berasal dari Anda. Semangat itulah yang membuat Anda ingin membuat game sejak awal. Ini seperti menceritakan sebuah kisah, sebuah kisah yang dibuat-buat (atau kisah nyata yang banyak Anda bumbui). Semakin banyak Anda menceritakan kisahnya, semakin baik hasilnya. Dalam pengembangan perangkat lunak kami menyebutnya iterasi. Kisah Anda adalah kode Anda. Pertama kali Anda mengatakannya, itu tidak akan terlalu bagus. Hal-hal akan keluar dari tempatnya, Anda akan menyadari bahwa bit ini harus pergi ke sana dan yang di sini. Anda akan menemukan bahwa segala sesuatu mungkin akan mengalir lebih baik jika Anda mengatur hal-hal seperti ini atau memperluas bit ini. Jadi, seperti cerita yang bagus, Anda akan menceritakannya, mengukur seberapa bagusnya, dan kemudian memodifikasinya. Ini membutuhkan dedikasi dan ini membutuhkan waktu. Jangan khawatir jika hal pertama yang Anda hasilkan bukan emas. Saya telah bekerja lama dan keras pada banyak bagian permainan saya hanya untuk merobeknya nanti karena saya memikirkan banyak halcara yang lebih baik untuk melakukannya. Jangan khawatir tentang ini, itu semua adalah bagian dari proses pembelajaran. Anda selalu belajar dari kesalahan Anda, dan sering membuat kesalahan itu yang mengarahkan Anda ke cara yang lebih baik dalam melakukan sesuatu.

Jadi apa yang harus Anda ambil dari ini adalah ini:

  • Sering main tes.
  • Jangan terjebak pada fungsinya sekarang. Jangan terlalu khawatir tentang pengoptimalan, atau perpustakaan mana yang akan menjadi yang terbaik dalam jangka panjang. Cukup dapatkan fungsionalitas minimum, lalu iterate.
  • Setelah fungsi selesai, ucapkan selamat kepada diri sendiri, Anda hanya sebagian kecil dari cara yang dilakukan.
  • Kenakan tabir surya
  • Ini adalah keterampilan yang membutuhkan waktu untuk berkembang, Anda tahu bahwa dari mempelajari alat musik, ini tidak berbeda, Anda akan menjadi lebih baik.
  • Ingat untuk apa Anda dalam hal ini, kesenangan menciptakan! Jika segala sesuatunya menjadi membosankan, maka beralihlah ke sesuatu yang lain (coba beberapa kemacetan game untuk memecah waktu pengembangan Anda). Tetapi jangan berhenti hanya karena itu sulit.
  • Komunitas pengembangan game di sini di SE sangat bagus. Anda akan menemukan semua yang Anda butuhkan di sini. Anda dapat memposting pertanyaan atau melompat ke obrolan dan mendiskusikan ide-ide Anda.

Internet penuh dengan bulu-bulu informasi dalam posting blog, tutorial, dan komunitas seperti ini. Secara kolektif, saya katakan itu sayap yang cukup bagus untuk berada di bawah. Pada dasarnya bahayanya tidak parah. Anda mungkin melakukan hal-hal yang "salah" atau sulit untuk sementara waktu, tetapi pada akhirnya Anda akan belajar. Anda tampaknya memiliki banyak pengalaman pemrograman, jadi saya pikir Anda akan mengambil bagian fungsi dengan cepat. Kesalahan yang dibuat dalam pengembangan game dan pengembangan "reguler" banyak tumpang tindih. Pengalaman Anda akan membantu Anda menghindari banyak masalah umum yang menimpa pengembang game baru. Saya pikir Anda akan baik-baik saja. Semoga berhasil.

MichaelHouse
sumber
6
+1 untuk kedahsyatan, semua yang hilang pada posting saya ditemukan di sini: D
Gustavo Maciel
1
"Kenakan tabir surya" Apa maksudmu dengan itu? sebuah idiom "Pakai Tabir Surya"?
Lukasz Madon
4
Itu lelucon berdasarkan artikel "Pakai Tabir Surya" oleh Mary Schmich . Pada dasarnya, "Manfaat jangka panjang tabir surya telah dibuktikan oleh para ilmuwan, sedangkan saran saya lainnya tidak memiliki dasar yang lebih dapat diandalkan daripada pengalaman saya sendiri yang berkelok-kelok." Mungkin lebih dikenal dalam bentuk lagu ini .
MichaelHouse
4
Ya, tabir surya sebenarnya tidak sebagus 2 . Tetap di dalam rumah dan terus pemrograman.
bobobobo
28

Ya, tidak memiliki seseorang yang telah ada sebelumnya untuk mengatakan kepada Anda apa yang harus dilakukan, bagaimana cara memperbaikinya, dll. Mungkin hal terburuk yang akan Anda lewati. Tapi jangan takut! Anda masih dapat membaca BANYAK blog orang yang telah ada di sana, mereka membagikan pengalaman mereka di industri ini, bagaimana mereka mencapai kesuksesan, bagaimana game sebelumnya gagal dan mengapa, dll.

Contoh yang baik adalah:

Dan banyak lagi!

Ucapan terakhir saya adalah: Jangan takut. Saya belajar sendiri juga, 4 tahun saya sudah diperkenalkan dengan game dev, banyak hambatan datang, tapi tidak ada yang tidak bisa Anda selesaikan dengan googling dan membaca beberapa teks. Semoga berhasil dalam perjalanan Anda :)

Gustavo Maciel
sumber
3
Untuk menambah ini, bahkan profesional sering mengalami masalah ini. Selama Anda bisa belajar, dan Google, Anda dapat menemukan cukup banyak hal.
ashes999
Aneh bahwa Anda menautkan 2Dboy. Sejauh yang saya ketahui, mereka telah melakukan beberapa hal kecuali pelabuhan World of Goo ke semua platform yang pernah ada selama beberapa tahun terakhir. Sudah lama sejak saya membaca sesuatu yang terkait gamedev di sana.
TravisG
@ TravisG Proses releasepermainan tidak hanya terkait dengan mengembangkannya. Itu bacaan yang bagus. Saya memposting tautan lebih banyak sebagai referensi, bukan untuk mengikuti blog. Jika Anda kembali ke arsip, ada beberapa contoh prototipe dan semua yang membantu mereka dengan dunia goo dan prototipe "kurang kecil" lainnya: D
Gustavo Maciel
18

Sikap ini. Sikap "jangan menyentuhnya, sampai Anda tahu cara melakukannya dengan sempurna". Itu benar-benar akan menahan Anda.

Anda melihat sikap ini di antara pengembang pemula dari semua jenis - bukan hanya game. Situs web juga. Hei, situs web adalah basis data dengan ujung html dengan javascript. Anda mempelajari teknologi dengan cara apa pun yang Anda bisa, Anda menyatukan situs pertama Anda. Itu tidak akan fantastis, tetapi setelah melakukan hal-hal dengan cara yang tidak optimal bukanlah masalah besar !! Jika Anda melakukannya "jauh" pertama kali, Anda selalu dapat melakukannya lebih baik untuk kedua kalinya. Maksud saya adalah, tidak ada bahaya. Kecuali sikap ini, mungkin. Sikap ini adalah apa yang akan menghentikan Anda dari membuat sesuatu, karena Anda akan selalu menolak tugas itu dan berkata, "Saya belum tahu bagaimana melakukan itu."

Sikap bahwa ada "cara yang benar" untuk melakukan sesuatu. Tidak ada. Semuanya persis seperti yang terlihat. Anda harus meletakkan piksel di layar, dan membuat suara saat terjadi sesuatu.

bobobobo
sumber
3
Benar sekali. Ini masih menahan saya banyak. Walaupun saya tidak setuju, dalam hal ini ada beberapa "cara yang benar" untuk dilakukan, dan lebih banyak "cara yang salah", tetapi perfeksionisme dan analisis kelumpuhan pasti dapat menjadi masalah. Jawaban bagus!
Petr Abdulin
6

Tergantung pada apakah Anda ingin menjadikan ini sebagai profesi Anda nanti (Saya hanya akan menganggap Anda memikirkannya dan ini bukan hanya sekedar hobi), inilah yang saya temukan sangat efektif:

  1. Mulai dari yang kecil

Sudah dikatakan sebelumnya, tapi saya akan mengatakannya lagi - mulai dengan potongan kecil, biasakan diri Anda dengan mesin, kerangka kerja, alat atau program. Setelah Anda mendapatkan dasar-dasarnya -> pergi lebih besar.

  1. Pelajari semuanya

Ini mungkin tampak agak ekstrem, tetapi yang saya maksud adalah belajar sebanyak mungkin tentang SETIAP aspek pengembangan game - tidak peduli apakah Anda seorang pembuat kode, artis atau desainer. Mengetahui saluran pipa adalah kunci untuk membangun berbagai hal dengan cara yang paling efisien. Jika Anda menerapkan senjata -> desain, konsep, modelkan, implementasikan, buat kode! Anda jelas tidak perlu menjadi seniman konsep, perancang, dan nerd Pipeline kelas A - tetapi Anda harus terbiasa dengan semua alat proses, dan memahami setiap langkah penciptaan. Juga, periksa situs web permainan untuk berita dan pembaruan dalam bisnis - gamasutra.com, kotaku dll semua memiliki artikel bagus tentang topik bisnis dan teknik. Jangan membatasi diri Anda hanya pada satu bidang pengembangan - menyerap SEMUA pengetahuan yang bisa Anda dapatkan :)

  1. Gagal sering, gagal keras.

Anda akan payah pada apa yang Anda lakukan. Pada awalnya. Selalu seperti itu (percayalah, saya tahu.: D), tetapi akan lebih baik jika Anda terus berjalan dan TIDAK PERNAH berhenti mencari cara untuk meningkatkan pekerjaan Anda. Internet adalah sumber yang bagus untuk tutorial, referensi, dan bantuan. Anda tidak akan pernah benar-benar terjebak, jadi garap ide-ide paling gila, gagal, belajar dari kesalahan Anda dan menjadi lebih buruk dengan proses itu.

  1. Bicaralah dengan orang-orang!

Meskipun internet adalah sumber yang bagus, mendapatkan umpan balik tatap muka adalah sesuatu yang harus Anda hadapi di tempat kerja. Jadi meningkatkan keterampilan lunak Anda juga penting. Jika Anda belum memiliki mentor, atau secara umum tidak tahu terlalu banyak orang yang bekerja di industri maka Anda harus melihat-lihat daerah Anda untuk pertemuan indie dev, pergi ke konvensi, dan memeriksa acara lain di mana Anda dapat mulai membangun jaringan pengetahuan dan kontak pribadi. Ini juga membantu membangun sesuatu dengan orang lain - otodidak hebat, tetapi pengembangan game adalah permainan berbasis tim, jadi periksa forum untuk proyek hobi - misalnya Forum Epik untuk proyek UDK, forum Persatuan atau bahkan Forum CryEngine -semua tiga mesin itu tersebar luas, ada satu truk penuh orang-orang berbakat yang mengerjakan proyek sampingan di sana, dan mereka '

Saya pikir itu semua saran yang bisa saya berikan. Saya harap ini membantu Anda dalam beberapa cara :)

Nils Diefenbach
sumber
Semua poin Anda sangat penting, mereka # 1 dalam daftar ini! :)
bobobobo
3

Saya tidak punya pengalaman C # dan XNA sama sekali, tetapi saya pikir itu tidak akan membuat saya salah dalam pernyataan berikut:

Sangat baik untuk mempelajari pemrograman tanpa guru. Jika kode Anda berfungsi *, tidak masalah bagaimana kode itu dikodekan. Ya, memang cocok untuk pemrograman kolaboratif, tetapi kemudian Anda tidak akan mengkodekan lagi, bukan? Ini juga dapat membuat kode Anda kurang mudah dibaca di masa depan, membuatnya sulit untuk menggunakan komponen lama atau men-debug kesalahan baru, tetapi dalam jangka panjang semua kesalahan Anda akan menjadi kekuatan Anda. Hal tersulit dalam mempelajari desain OOP dan MVC adalah memahami mengapa saya harus melakukan "ini" dengan "seperti itu". Jika Anda sudah memiliki pengalaman membuat program yang buruk, Anda akan mengetahui kekuatan pola dan menggunakannya untuk keuntungan Anda. Jika Anda selalu membuat program yang baik dengan mengikuti pola yang diajarkan seseorang kepada Anda, maka Anda akan terus membuat program yang baik (dalam arti kode yang valid), tetapi alih-alih mengambil keuntungan dari pola, Anda akan dibatasi olehnya, karena Anda tidak akan cukup memahaminya untuk membuat modifikasi yang bermanfaat. Pada akhirnya, yang terpenting adalah Anda berlatih, bukan bagaimana, jadi dalam kedua kasus, cepat atau lambat Anda akan mendapatkan pengalaman yang sangat mirip.

* satu hal yang penting! Dalam hal keamanan Anda benar-benar harus bertanya kepada seseorang yang berpengalaman jika kode Anda dilakukan dengan baik, karena lubang keamanan tidak muncul peringatan kesalahan.

Markus von Broady
sumber
3

Entah bagaimana ini pertanyaan yang bagus! :-)

Saya sudah memulai aktivitas gamedev saya belum lama ini, dan ini akan menjadi yang kedua kalinya, sehingga saya dapat berbagi pemikiran saya. Anda benar tentang itu adalah hal yang baik untuk memiliki seorang mentor. Mentor ini adalah internet. Jadi semakin banyak info dibagikan di internet, semakin mudah untuk belajar untuk Anda. Itu sebabnya XNA / C # adalah pilihan yang sangat baik untuk memulai. Ada banyak gamedev indie amatir dan profesional yang berbagi artikel dan di web. Hal-hal lain untuk disebutkan:

  1. Go open source! Codeplex, GitHub, Google.Code, Bitbucket. Ada BANYAK hal yang berharga di sana.
  2. Pergi ke komunitas! Anda di sini, dan itu hal yang baik. Tetapi juga ada komunitas Microsoft XNA besar dengan beberapa hal resmi yang bagus . Codeproject juga merupakan sumber yang bagus (namun aktivitas gamedev agak rendah di sana).
  3. Anda mungkin perlu banyak membaca / menonton . Sudah disebutkan sebelumnya. Pengembangan game tidak hanya coding. Desain game juga penting. Antusiasme itu penting.
  4. Seperti biasa, jangan coba-coba menggigit terlalu banyak sekaligus, menulis salinan tetris atau breakout sendiri adalah ide yang bagus.
  5. Ini bisa sulit di awal, pengembangan game tidak hanya benar-benar sulit, tetapi juga sangat berbeda dari aplikasi "perusahaan". Ada banyak aspek baru, grafik, suara, dll. Semakin banyak Anda pergi, semakin mudah didapat (seperti biasa).
  6. Tulis blog. Ekspresikan proses dev Anda (dalam proses ini Anda akan menemukan jawaban untuk pertanyaan Anda sendiri), simpan tautan dengan komentar ke artikel berharga.
  7. Jangan pikir kode Anda adalah hal terburuk yang pernah Anda lihat. Kode gim lebih sulit dikendalikan, selalu saja sedikit lebih kotor daripada kode "perusahaan" yang cantik. Tapi saya yakinkan Anda, di sana saya telah melihat beberapa kreasi yang mengerikan (dalam hal kualitas kode sumber dan organisasi game) yang merupakan game indie yang sukses. Jadi, jangan terlalu keras pada diri sendiri, esp. di awal.
Petr Abdulin
sumber
1

Ini berlaku untuk setiap disiplin yang terkait dengan industri kreatif:

Bahaya terbesar adalah mencoba membangun sesuatu yang 'terlalu besar' atau 'epik' dari pintu gerbang.

Misalnya, jika Anda mulai membuat musik, Anda tidak akan memulai dengan mencoba membuat simfoni selama 2 jam 2 jam.

Dalam desain level, ini bermanifestasi sebagai upaya membuat 'peta terbesar', atau menggunakan sistem game untuk membangun hal paling rumit terbesar yang mampu ditangani oleh mesin permainan. Dalam pemrograman ini bisa jatuh ke dalam 'membuat seluruh permainan sendiri' dimulai dengan kode sumber nol. Anda benar-benar membutuhkan banyak pengalaman dan disiplin untuk memulai dengan nol sumber, dan bahkan kemudian itu sangat sulit, dan membuat keputusan desain atas semuanya itu sulit sepanjang waktu Anda mengerjakan desain segalanya. Bahkan gim yang simplistic membutuhkan pemrograman dalam jumlah besar dalam OS dan bahasa modern dewasa ini. Juga jika Anda mulai dengan kode orang lain, Anda dapat mempelajari apa yang berhasil dan yang tidak berfungsi dengan baik, jadi bekerja dengan sebanyak mungkin mesin adalah nilai tambah yang besar juga.

Jadi memulai saya akan merekomendasikan sesuatu seperti rencana berikut:

  • Level Design: membangun ruangan kecil, membangun setengah bangunan, membangun gedung penuh dll
  • Seni: buat topi untuk TF2 atau sesuatu yang serupa sederhana, atau pengganti tekstur untuk Skyrim atau tugas ukuran gigitan lainnya untuk memulai, sebelum masuk ke kerangka atau kerangka morph dan mencari tahu bagaimana menghidupkan atau mengecatnya dengan zbrush dengan baik.
  • Pemrograman: ambil mesin game yang bisa dimodifikasi atau opensource, dan modifikasi beberapa bagiannya (seperti senjata), lalu buat senjata baru. Jika Anda akhirnya tidak menyukai kode gameplay, Anda bisa mulai meretas di mesin grafis.

Hal terbaik yang harus dilakukan adalah mengambil mesin jadi yang sudah ada (baik yang modable atau opensource satu) dan mulai meretasnya, dan lakukan itu beberapa kali ke beberapa mesin yang berbeda sampai Anda menemukan yang Anda sukai.

Zoner
sumber