Di mana saya dapat menemukan contoh kode permainan yang baik (terorganisasi dengan baik)? [Tutup]

42

Di mana saya dapat menemukan contoh kode permainan yang baik (terorganisasi dengan baik)? Saya berharap dapat mengambil beberapa tips organisasi. Sebagian besar contoh dalam buku terlalu pendek dan meninggalkan banyak detail demi singkatnya. Saya terutama tertarik pada bagaimana mengelompokkan variabel dan metode Anda sehingga programmer lain akan tahu di mana mencarinya dalam kode. Misalnya inisialisasi di bagian atas, lalu metode yang mengambil input, lalu metode yang memperbarui tampilan.

Saya tidak peduli dengan bahasa tertentu, asalkan itu OOP. Saya melihat sumber-sumber Quake 2 dan 3, tetapi mereka langsung C dan tidak banyak membantu untuk mendapatkan tips mengatur objek Anda.

Jadi, apakah Anda melihat sumber yang bagus? Setiap petunjuk kode yang membuat Anda mengatakan "wow, itu terorganisir dengan baik" akan sangat bagus.

keras
sumber
1
Ini bukan jawaban langsung, jadi saya akan meninggalkannya sebagai komentar. Saya merekomendasikan memeriksa buku Desain Perangkat Lunak C ++ Skala Besar oleh John Lakos. Itu sangat mencerahkan bagi saya.
BRaffle

Jawaban:

19

Beberapa game komersial telah dirilis kode sumbernya. Beberapa game tercantum di sini . Tidak ada jaminan bahwa kode di dalamnya terorganisasi dengan baik, tetapi dengan melihat beberapa kode sumber dari game yang sukses secara komersial, Anda mungkin mendapatkan ide bagus tentang apa yang berhasil dalam praktiknya.

Selain itu, walaupun bukan permainan, OpenSceneGraph memiliki banyak komponen permainan dan dirancang dengan baik di C ++, menggunakan pola desain yang berbeda, plug-in, dll. Ini adalah basis kode yang cukup besar dan telah ada cukup lama sehingga Anda dapat belajar banyak dari itu.

kevin42
sumber
1
Terima kasih, daftar Wikipedia bermanfaat. Pegas terorganisasi dengan sangat baik - semua metode dikelompokkan berdasarkan fungsi umum (memuat / menyimpan, menggambar, dll) github.com/spring/spring/blob/master/rts/Game/Game.h Aquaria membuat saya merasa lebih baik tentang milik saya organisasi kode: hg.icculus.org/icculus/aquaria/file/f08b7288f92c/Aquaria /... Namun saya seharusnya tidak mengkritik, seniman sejati mengirim.
pukulan keras
Saya akan menambahkan Ogre sebagai referensi yang bagus dengan OpenSceneGraph ...
Klaim
6

Battle for Wesnoth adalah:

Permainan strategi taktis berbasis giliran gratis dengan tema fantasi tinggi, menampilkan pertarungan satu pemain tunggal dan daring / kursi panas

Gratis seperti di sumber terbuka, di bawah GPL. Saya baru saja menemukan / mengunduhnya, jadi belum bisa mengatakan seperti apa gameplaynya, tetapi sudah mendapat ulasan yang bagus. Saya juga tidak tahu apakah kode mereka "terorganisir dengan baik" :) Tapi hei, ini open-source .

Cyclops
sumber
Sangat lucu :): p
Qchmqs
4

Jika Anda mencari OOP yang bagus - Saya sangat menyukai model objek dari Doom3 SDK .
Ogre3D adalah desain OOP yang berat tetapi saya menekankan berat karena saya pikir itu cukup besar dengan banyak contoh dan plug in.

Biarkan aku tahu apa yang Anda pikirkan.

Adam Naylor
sumber
2

Saya memiliki kode sumber ke perpustakaan dan permainan lengkap di situs saya. Pagi Dini Anda juga dapat menemukan beberapa proyek di halaman GitHub saya . Tidak semua itu adalah contoh kualitas yang bersinar, tetapi kemudian itu cenderung terjadi ketika Anda ingin mengirimkan sesuatu.

Alex Schearer
sumber
0

Saya punya sumber untuk sumber sederhana yang kami gunakan untuk kompetisi perang kode di Windward Wrocks . Saya pikir ini terorganisir dengan baik dan sangat sederhana. Tetapi bagian-bagian tertentu diciptakan dengan cepat, tidak dengan baik. Dengan mengatakan itu, bahkan dalam tim pengembangan game terbesar, ada bagian-bagian di dalamnya yang ditulis dengan cepat, tidak dengan baik.

David Thielen
sumber