Apa buku yang bagus untuk memulai pemrograman game 2D C ++? [Tutup]


8

Saya memiliki gelar di bidang Ilmu Komputer dan ketika saya masih di perguruan tinggi, saya membuat game 2D sederhana di Game Maker. Saya ingin membuat ulang game ini di C ++ sebagai awal untuk belajar cara membuat game di C ++. Apa yang akan menjadi buku yang bagus untuk memulai permainan pemrograman dalam C ++ untuk seseorang yang memiliki sedikit pengalaman C ++ (kelas CS mayor saya diajarkan menggunakan Java dan saya memiliki kelas dalam C ++ untuk mempelajari sintaksis) dan mengetahui konsep di balik objek, metode, pewarisan, dll?

Ini akan menjadi hobi saya sementara saya membangun pengalaman sampai suatu hari saya bisa bekerja di Industri Permainan Vide.


Jika Anda membutuhkan motivasi (dan Anda punya waktu), Anda mungkin ingin berpartisipasi dalam pyweek atau salah satu kontes pygame
bobobobo

Jawaban:


8

Melihat Anda menggunakan Game maker, saya berasumsi Anda menggunakan Windows, jadi lompat ke bagian paling dalam dengan direct-x SDK. Sampel memberikan kode sumber, dan juga memberi Anda rasa kekuatan yang tersedia untuk Anda. Hanya karena Anda ingin melakukan permainan 2D tidak berarti Anda harus tetap menggunakan perpustakaan 2D, pada titik tertentu Anda mungkin ingin melakukan sesuatu yang tidak diterapkan perpustakaan sendiri (shader atau rotasi atau sesuatu yang acak yang baru saja Anda lakukan). PERLU untuk proyek Anda).

SDL -dan mungkin SFML dan Cinder- menyediakan pendekatan " tingkat dasar" yang tinggi untuk menjadi mesin, sehingga Anda memiliki semua kekuatan untuk melakukannya dari awal (sehingga Anda dapat memiliki pixel shaders di SDL), tetapi Anda tidak akan belajar bagaimana hal-hal dilakukan. Anda kemudian akan melakukan C ++ nyata di dalam kerangka kerja pembantu, yang akan membantu menyelesaikan pekerjaan, tetapi tidak akan sangat membantu dalam mengajari Anda cara mengembangkan game jika Anda akan bekerja di perusahaan pengembang game.

SDL, SFML, dan bahkan Cinder adalah cara cerdas untuk menghindari belajar tentang hal-hal sulit di C ++. Mereka biasanya membungkus OpenGL, yang berguna untuk belajar jika Anda ingin kode grafik untuk mesin non-windows, tetapi ada banyak sumber daya untuk menyelesaikan pekerjaan di Direct-X juga (mungkin lebih karena virus Windows telah menyebar ke setiap sudut dunia).

Jika Anda tidak ingin mempelajari hal-hal kasar, maka baiklah, tetapi jika tidak, jangan takut untuk memulai dari aplikasi Win32 yang mentah.

Saya sarankan, untuk kenyamanan, Anda mulai dengan semua paket pembantu yang berbeda yang dapat Anda temukan, tetapi pergilah menulis mesin rendering Anda sendiri. Menulis mesin sangat menyenangkan dan dapat memberi Anda sumber daya untuk melihat kembali proyek-proyek masa depan Anda. Tidak ada yang menciptakan kode yang baik seperti kebijaksanaan dari melakukan kesalahan di masa lalu.


Terima kasih atas jawabannya, saya memiliki pengalaman dalam C ++ dan ingin masuk ke hal-hal berpasir jadi saya akan memiliki pengalaman di dalamnya. Saya ingin hobi ini pada akhirnya mengarah ke karir di Industri Video Game setelah saya mendapatkan pengalaman kerja.
Sange

7

Saya akan merekomendasikan tinggal jauh dari perpustakaan Cinder itu. Menjelajahi tutorial adalah tentang demotivasi yang bisa didapat. Pilih sesuatu yang mudah, menyenangkan, dan cepat untuk dikodekan , seperti SFML . Anggap saja sebagai pengganti berorientasi objek modern untuk SDL. Jika fitur memenuhi kebutuhan Anda, instal, ikuti tutorial dan mulai bermain dengannya. Anda dapat menemukan kode sumber untuk proyek-proyek SFML yang ada dari forum untuk melihat bagaimana mereka mengimplementasikan sesuatu, seperti loop game, bagaimana mereka mengatur kode dan objek dan membuat mereka berkomunikasi satu sama lain dan Wikimemiliki sejumlah tutorial dan kode sumber yang dapat Anda gunakan dalam proyek Anda. Dan forumnya aktif sehingga Anda dapat meminta bantuan di sana kapan saja.


Saya belum pernah mendengarnya - terlihat jauh lebih cocok daripada cinder untuk game! bagus.
Iain

4

Saya tidak tahu ada buku yang spesifik untuk game 2D, tetapi Anda harus melihat jawabannya di sini . Lagipula, game 2D dan 3D memiliki banyak kesamaan. Ada banyak game 3D yang memiliki gameplay 2D.

Mungkin Anda bisa memeriksa tutorial oleh Lazy Foo , mereka membahas banyak mata pelajaran penting secara bertahap. Mereka menggunakan SDL dan OpenGL.


3

Mungkin sedikit ketinggalan zaman tetapi Advanced 2D Game Development adalah buku yang cukup bagus. Coba lihat.


Saya baru saja membeli buku ini (menunggu sampai tiba!) - dalam hal apa Anda akan mengatakan itu tanggal?
Zolomon

Nah sejak keluar pada 2008, teknologinya tentu sudah berubah. Tetapi metode yang paling mungkin sama. Maaf sudah lama sejak saya membacanya dan tidak ada yang terlintas dalam pikiran.
Miguel Moll

2

Mengapa tidak mencoba memulai dengan sesuatu seperti http://libcinder.org/ - semuanya gratis dan memiliki semua tutorial yang Anda butuhkan untuk memulai.


0

Di luar buku, penting untuk memutuskan jenis permainan apa yang ingin Anda buat. Itu akan membantu menginformasikan jalur Anda secara umum. Saya akan menyarankan memilih sesuatu yang sederhana, Minesweeper atau Tetris atau mungkin Lightikes of Tron, di mana logika permainannya cukup lurus ke depan dan persyaratan grafis minimal hanya untuk mendapatkan sesuatu bermain dasar.


0

Meskipun ada banyak buku di luar sana, saya belum menemukan satu pun yang saya sukai. Sebagian besar tampaknya tetap berpegang pada "game" yang tidak terlalu menarik dari sudut pandang permainan, dan tidak benar-benar masuk ke detail implementasi grafis, loop game, dan sebagainya.

Rekomendasi saya adalah, daripada mencari buku, belajar sendiri melalui pencarian Google. Ada banyak tutorial online untuk membuat game sederhana, pilih saja game seperti Tetris (atau apa pun), buat sendiri daftar tugas pemrograman, dan kemudian ketika Anda terjebak pada sesuatu (mungkin Anda tidak yakin bagaimana menerima input realtime , atau cara menggambar grafik ke layar) mencari jawaban untuk satu pertanyaan khusus itu. Ulangi setiap kali Anda terjebak, dan pada saat Anda selesai Anda akan memiliki ide yang cukup bagus tentang bagaimana permainan disatukan.

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.