Apa permainan Open Source yang bagus untuk dipelajari? [Tutup]


15

Saya ingin mengunduh kode sumber game Open Source, jadi saya bisa mengenal arsitektur game. Apakah ada yang tahu permainan dengan kode sumber yang dapat dibaca, dan mudah dimengerti?

Sunting: Setelah beberapa pemikiran, saya ingin membuat game yang dapat dimainkan di desktop atau ponsel Android dengan grafis 2D.


7
Sebagian besar game yang bersifat open source adalah proyek besar dan lama yang tidak selalu mudah dimengerti, proyek komersial yang bersumber terbuka karena berbagai alasan, atau game yang belum selesai yang tidak benar-benar dalam keadaan dapat dimainkan. Plus, arsitektur sedikit pada jenis permainan dan bahasa yang digunakan. Jenis permainan apa yang ingin Anda pelajari, dan bahasa apa yang Anda ketahui? (tutorial jujur ​​mungkin menjadi pilihan yang lebih baik di sini)
thedaian

@thedaian Saya tahu java, C ++, C, javascript, dan python
jumpnett


Saya setuju dengan thedaian, setidaknya itu bekerja lebih baik untuk saya. Ada banyak artikel, buku, dan tutorial yang sangat bagus di luar sana. Anda harus meluangkan waktu untuk memilih yang tepat tetapi ini akan menghemat waktu Anda karena Anda sudah tahu mengapa mereka memberi kode seperti yang mereka lakukan dan dapat mengenali kualitas sumber (yang sering berbau). Jika Anda ingin portabilitas, saya akan menggunakan C / C ++, tetapi untuk platform tersebut Anda bisa menggunakan Java.
Pablo Ariel

1
Wiki komunitas?
Jari Komppa

Jawaban:


2

Saya tidak yakin jenis permainan apa yang Anda minta tetapi ada permainan opensource bernama OpenTTD yang ditulis dalam c ++. Saya pikir Anda bisa menggunakannya sebagai sampel yang bagus.

beberapa fitur yang membuat game ini unik:

  • Ini adalah permainan strategi.
  • Ini memiliki dukungan multi-pemain melalui internet dan jaringan lokal.
  • Ini mendukung terjemahan ke bahasa lain melalui file konfigurasi (yang dihasilkan dari file teks mentah)
  • Itu dikompilasi di hampir setiap platform yang saya tahu.
  • Proyeknya masih hidup!
  • Ini memiliki dukungan AI bawaan.
  • Data Grafik dan Musik sepenuhnya dapat dikustomisasi melalui tambalan.
  • Ini mendukung bahasa scripting untuk mengembangkan AI kustom. jadi Anda juga bisa membaca AI lain yang ditulis untuk game ini.
  • Ini proyek yang relatif besar, sementara itu mudah dibaca dan dimengerti kodenya.
  • Ini didasarkan pada SDL, dan sejak saat itu mereka mengembangkan semuanya dari awal.

--Edit--

Baru hari ini saya sudah mulai membaca kode mereka dari awal. Untuk memahami apa yang telah mereka tulis, Anda harus menjadi programmer C dan C ++ yang layak (meskipun kode mereka dikomentari dengan baik)! Maksud saya, Anda harus menguasai kedua bahasa karena mereka menggunakan struktur dari keduanya! jadi jika Anda tidak cukup percaya diri tentang keterampilan pemrograman Anda, jangan mendekati kode itu! itu kode paling kotor yang pernah saya lihat! (dan saya sendiri seorang programmer yang kotor tetapi mereka adalah sesuatu yang lain!)

Saya pikir sekarang saya dapat menyarankan Anda memeriksa kode supertux . itu adalah permainan platformer (seperti super mario) dan sejauh ini kodenya tampak sangat bersih (saya telah memeriksa tonggak sejarah 1.3). mereka memiliki beberapa komentar dalam kode itu tetapi hanya untuk tempat-tempat yang mungkin membuat Anda bingung.


Walaupun OpenTTD adalah permainan yang luar biasa, saya pikir itu bukan proyek pembelajaran yang baik. Sebagian besar itu direkayasa terbalik dari perakitan, dan masih ada bagian kode yang mencerminkan itu. Plus, itu hanyalah proyek besar, dan mungkin terlalu banyak untuk proyek awal "belajar arsitektur permainan".
thedaian

@thedaian Anda mungkin berkata begitu tetapi setiap sekarang dan kemudian bahwa saya perlu melakukan sesuatu yang baru saya baru saja membaca apa yang tertulis dalam kode mereka. sejauh ini saya pikir itu permainan opensource yang paling mudah dibaca di luar sana layak dibaca!
Ali1S232

juga saya tidak yakin kapan terakhir kali Anda memeriksa kode mereka tetapi mereka sudah membersihkannya sejak versi 1.0.0
Ali1S232

2

Saya pikir mungkin pendekatan yang baik adalah memilih game yang Anda suka dan memeriksa game open source seperti itu. The Open source klon permainan daftar mungkin bisa membantu dengan langkah terakhir, banyak.


1

Ada andalan seperti Quake 3 atau jika Anda menginginkan sesuatu yang lebih sederhana (dan dalam 2D) lihatlah game indie Gish . Keduanya menggunakan OpenGL dan juga cross-platform.

Gish agak sedikit berantakan.


1

Saya sarankan Anda terlebih dahulu mempersempit fokus Anda tentang jenis arsitektur game yang Anda tertarik pelajari - 3d pipeline, fisika, AI, dll.

Dengan permintaan umum untuk contoh pemrograman game yang bagus, saya pikir space invaders gl sulit dikalahkan karena memiliki kode bersih dan permainan terbuka serta antarmuka permainan yang terbuka sambil menjaga hal-hal yang cukup sederhana.

Bersulang


Apakah space invaders gl windows saja? Saat ini saya tidak menginstal windows di pc saya. Bukannya saya tidak memiliki akses ke sana, hanya saja itu tidak nyaman.
jumpnett

1

Meskipun membaca kode bisa bermanfaat, jika Anda seorang pemula di domain, Anda tidak akan belajar apa pun. Terutama jika Anda melihat kode proyek besar seperti Q3A atau OpenTTD. Itu dibuat oleh seluruh tim, dengan masing-masing orang memiliki praktik pengkodean yang berbeda, gagasan berbeda tentang cara membuat sesuatu. Anda hanya akan mendapatkan gambaran besar, bukan detail kecil yang membuat semuanya tetap bersatu.

Kembangkan, gagal, coba lagi sampai Anda menemukan sesuatu yang tampaknya baik, gagal lagi, bilas dan ulangi sampai Anda memiliki sesuatu yang baik. Pengembang berbeda berarti ide berbeda tentang cara mengimplementasikan barang. Hanya karena telah dikodekan oleh Carmack / Setiap pengembang terkenal yang telah membuat game yang bagus tidak berarti itu yang terbaik sejak memotong roti, dan implementasi yang berbeda mungkin lebih jelas dan lebih cepat.


1

Saya pikir salah satu hal paling penting yang dapat Anda lakukan adalah memilih permainan yang Anda sukai. Ini akan membantu Anda tetap tertarik padanya dan akan membuat Anda lebih terbiasa dengan bagaimana kode itu sendiri diterjemahkan ke dalam perspektif pemain.

Setelah memilih gim itu, berapa pun besarnya, Anda tidak perlu mencoba mencari tahu bagaimana setiap baris kode bekerja. Ambil sepotong dan lihat itu. Misalnya, coba cari tahu bagaimana data pemain disimpan atau bagaimana item menu diambil, dll.

Hal berikutnya yang dapat Anda lakukan, yang sejalan dengan bit saya sebelumnya, adalah mencoba mengubah sesuatu. Bukan sesuatu yang besar (pada awalnya), hanya sesuatu yang sederhana dan nyata dalam game. Bahkan sesuatu yang sederhana seperti teks pada tombol pada menu atau menambahkan item menu atau mengubah perhitungan kerusakan. Mungkin Anda berpikir mereka seharusnya melakukan sesuatu yang berbeda, cobalah mengubahnya sendiri.

Ketika saya pertama kali tertarik mengembangkan game, saya benar-benar menyukai RPG online 2D. Jadi saya menemukan sumber untuk satu online dan saya mulai membangunnya. Menambahkan fitur saya sendiri dan memperbaiki hal-hal, memperbaiki bug, dll. Itu di VB6 beberapa tahun yang lalu dan sekarang saya menggunakan C # dan XNA dan menulis permainan saya sendiri dari awal. Karena saya menikmati permainan, itu memotivasi saya untuk ingin mengerjakannya, untuk membuatnya lebih baik. Secara kebetulan, ini juga bagaimana saya belajar banyak teknik pemrograman, debugging dan pemecahan masalah yang saya gunakan hari ini di pekerjaan harian terkait non-gamedev saya.

Ini juga sangat membantu jika gim ini memiliki komunitas modders yang dapat Anda ajukan pertanyaan dan mendapatkan bantuan serta contoh. Tetapi sekali lagi, bahkan jika itu tidak ada, Anda sudah ada di sini dan kami siap membantu.




0

The Scrolling Game Development Kit 2 memungkinkan Anda untuk benar-benar membuat 2D game dan bermain mereka menggunakan GUI tanpa menulis kode. Tetapi juga memungkinkan Anda untuk melihat dan mengedit kode yang tertanam dalam proyek yang mewakili kerangka / mesin di balik permainan. Sebagian besar kode diekspos melalui GUI, meskipun sebagian kecil dari itu dihasilkan kode berdasarkan tempat Anda meletakkan sprite dan peta apa yang Anda buat. Namun bahkan kode ini terlihat jika Anda menghasilkan proyek dan kemudian buka file yang dihasilkan dalam Visual C # Express. Seluruh program (IDE) itu sendiri juga open source. Itu dibangun di perpustakaan OpenTK (yang digunakan untuk berinteraksi dengan OpenGL dari C #), yang juga merupakan open source.


Saya akan memeriksanya, tapi saya seorang programmer, jadi menulis kode bukanlah masalah besar.
jumpnett
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.