Saya telah menjadi pengembang perangkat lunak selama 5 tahun, sekarang, dan saya ingin memasuki pengembangan game iOS. Saya telah bermain-main dengan SDK iOS selama sekitar 2 tahun, menghadiri pertemuan cocoaheads, dan saya merasa saya memiliki pemahaman yang baik tentang tujuan-c, kakao dan bahkan c dan c ++.
Saya punya ide permainan, dan tahu bahwa saya akan menggunakan Box2D, tapi saya ingin tahu apakah saya harus menggunakan cocos2D atau tidak. Alasan utamanya adalah:
- Saya mungkin ingin melakukan hal-hal, secara grafis, yang tidak tersedia di cocos2d.
- Jika saya memutar mesin game saya sendiri, saya akan memiliki kontrol lebih.
Tentu saja, alasan utama untuk menggunakan mesin game yang sudah ada adalah waktu yang dihemat, dan itu membuat hal-hal sulit lebih mudah; tetapi bagi seseorang yang memiliki daging teknik untuk menggulungnya sendiri, apakah itu masuk akal?
Jawaban:
Sebagian besar posting lain akan "membuat game bukan mesin", tapi saya akan berasumsi bahwa Anda memiliki game tertentu yang ingin Anda buat dan ingin tahu kapan ide yang baik untuk memulai dengan kode orang lain dasar atau mulai dari awal.
Anda tidak harus menggulung teknologi Anda sendiri kecuali Anda tahu Anda harus menggulung teknologi Anda sendiri . Itu mungkin terdengar kurang ajar, tetapi itu satu-satunya jawaban yang benar. Seperti kebanyakan keputusan, ada pengorbanan. Hanya Anda yang dapat menentukan untuk situasi khusus Anda analisis biaya / manfaat.
Anda harus memiliki pemahaman tentang hal-hal berikut (daftar ini hampir tidak termasuk semua).
(Perhatikan bahwa saya secara khusus tidak menempatkan "lebih banyak kontrol" di sana. Itu frasa yang dimuat dapat berkisar dari "Saya tidak suka kode yang tidak saya tulis" hingga "Saya harus bisa melihat, mengerti, dan tweak semua variabel dalam mesin fisika untuk mencapai efek khusus ini. "Yang pertama tidak benar-benar pertimbangan yang valid, tetapi yang kedua adalah.)
Secara pribadi, saya menemukan bahwa menggulung teknologi Anda sendiri untuk permainan berbiaya rendah hampir tidak pernah sepadan dengan usaha. Jumlah daya yang Anda dapatkan dari mesin murah saat ini sangat tidak masuk akal. Anda tidak berada pada titik di mana Anda memutuskan untuk lisensi mesin triple A jutaan dolar atau tidak. Anda tidak akan bisa mengalahkan apa, katakanlah, Unity menawarkan kepada Anda untuk $ 3k. Atau Cocos2d untuk apa pun biayanya (bukan gratis?).
Sekarang, jika gim Anda sebagian besar terfokus pada beberapa jenis teknologi yang tidak dapat disediakan oleh mesin lain, atau tidak dapat menyediakan pada framerate yang wajar, maka mungkin ada baiknya menyelidiki apa yang dapat Anda lakukan. Tapi itu tidak berarti Anda membuang middelware lainnya sepenuhnya. Hanya karena Anda membutuhkan milik Anda sendiri, katakanlah, penyaji, tidak berarti Anda tidak dapat menggunakan middleware lain untuk fisika atau suara atau UI atau apa pun.
sumber
Jangan putar mesin Anda sendiri. Gulung game Anda sendiri. Jika Anda kebetulan menulis mesin pada saat yang sama maka bagus untuk Anda, jika tidak, Anda selalu dapat memperbaiki bagian apa pun yang Anda mungkin ingin menggunakan kembali untuk membuatnya lebih "mesin" seperti.
Orang sering memperkirakan apa yang diperlukan untuk menulis bagian "mesin" dari sebuah game. Jika Anda hanya melakukan apa yang Anda butuhkan, itu tidak akan lama. Bagian yang sulit adalah untuk tidak terjebak menulis infrastruktur dan hanya menulis apa yang Anda benar-benar harus menyelesaikan masalah Anda.
Saya akan menggunakan mesin yang ada saat:
sumber
Saya pikir Anda hanya harus menulis permainan Anda, dan mungkin Anda akan berakhir dengan mesin nanti . Menulis mesin grafis (yang sepertinya Anda bicarakan) dari nol menggunakan apa-apa selain OpenGL kemungkinan hanya akan membuang-buang waktu Anda. Ini adalah masalah yang relatif diselesaikan dengan baik sehingga umumnya Anda hanya akan mengubah bentuk API tanpa menambahkan banyak fitur baru yang signifikan dibandingkan dengan solusi pihak ketiga lain yang tersedia di luar sana.
Jika Cocos2D atau lapisan grafis lain memenuhi persyaratan Anda sekarang, maka gunakanlah. Jika kebutuhan Anda berubah selama pengembangan, Anda dapat mengganti rendering back end dengan relatif mudah - jika Anda benar-benar yakin memiliki pengalaman dan kemampuan untuk membuat mesin sendiri, Anda tentu harus memiliki apa yang diperlukan untuk membuat struktur permainan Anda sehingga bertukar ujung rendering adalah operasi yang relatif sepele.
Bangun game Anda, izinkan kebutuhan spesifiknya untuk menggerakkan set fitur kode yang Anda tulis, dan menulis kode dengan usabilitas dan arsitektur yang baik. Anda secara alami akan berakhir dengan "mesin" setelah Anda menyelesaikan beberapa proyek seperti ini, dan Anda akan menyelesaikan proyek-proyek itu lebih cepat karena Anda tidak membiarkan diri Anda terjebak dalam fitur creep tingkat kerangka kerja.
sumber
Ini sangat sederhana. Apa tujuan utama Anda: belajar atau waktu ke pasar?
Hindari menggunakan perpustakaan jika tujuan utama Anda adalah belajar dari pengalaman menerapkan konsep-konsep yang diselesaikan oleh perpustakaan. Setiap kali saya mengembangkan permainan (paruh waktu), tujuan saya adalah murni belajar. Saya tidak peduli berapa lama, itu sebabnya saya melakukan semuanya dari awal! Sekarang, Anda yang memutuskan.
sumber
Anda harus memutar mesin gim Anda sendiri ketika Anda tahu ada kebutuhan untuk itu.
Jadi misalnya, katakan Anda tidak memiliki uang untuk dibelanjakan pada Unity. Atau, Anda lebih suka menghabiskannya di perangkat keras baru. Atau, ada masalah kinerja dengan mesin gratis yang tersedia untuk Anda, atau Anda harus memiliki kontrol lebih banyak pada level rendah.
Jika Anda suka menulis perangkat lunak demi menulis perangkat lunak, maka Anda akan suka menulis mesin permainan. Sebuah perangkap umum dari pemrogram game pemula adalah terjebak menulis mesin sebagai semacam proyek abadi. Sejujurnya saya percaya itulah bagaimana semua mesin game open source ini muncul - programmer game yang sebenarnya tidak
Maka dalam hal itu, tulis mesin Anda sendiri.
sumber