Pengembangan Game Hanya Dalam C. Apa itu mungkin? [Tutup]

18

Saya seorang mahasiswa tahun pertama di India dan ingin membuat game kecil sebagai proyek semester ini.

Saya cukup pandai C dan saya belajar dengan cepat tetapi saya ingin bertanya apakah mengembangkan game sepenuhnya dalam C (tidak C ++ atau C #) Saya ingin menggunakan ini tetapi untuk proyek-proyek perguruan tinggi, kami memiliki persyaratan ketat hanya menggunakan C.

Apa yang saya cari adalah permainan mengemudi pandangan atas sederhana. Itu tidak akan memiliki sesuatu yang mewah dan bahkan hal-hal visual akan didukung oleh karakter sederhana. Sebagai contoh, mobil yang dikendalikan pengguna dapat diwakili oleh ▓ dan tepi jalan dengan serangkaian | 's. Bagaimana menurut anda?

Ishan Sharma
sumber
8
SDL ditulis dalam C. OpenGL adalah C. Apa lagi yang Anda butuhkan?
Bebek Komunis
2
Juga, Gempa dilakukan semua dalam C.
Bebek Komunis
Bantulah diri Anda sendiri dan gunakan perpustakaan Allegro;) alleg.sourceforge.net
o0 '.
1
RollerCoaster Tycoon dilakukan hampir dalam perakitan murni, jadi mengapa tidak?
Ramon Zarazua B.

Jawaban:

23

Menulis game di C dimungkinkan. Misalnya, Quake II ditulis murni dalam bahasa C, jadi menulis game lain dalam bahasa C seharusnya tidak ada masalah sama sekali. Ini mungkin pilihan yang lebih baik jika Anda lebih cakap dan nyaman dalam C daripada di C ++.

martiert
sumber
2
@Ishan Sharma: Sebenarnya, banyak pengembangan game (mesin) masih don di C, atau setidaknya sangat C: ish C ++. Tidak ada yang mengatakan bahwa permainan C ++ Anda akan lebih baik (atau bahkan lebih baik ditulis) hanya karena itu C ++.
batal
6
@ Batal: Itu hanya benar jika programmer yang bersangkutan tidak tahu tentang cara menggunakan C ++ secara efektif. Program C ++ yang ditulis di mana penulis memiliki pemahaman dasar tentang orientasi objek jauh lebih aman dan dapat diandalkan daripada program C yang setara.
DeadMG
8
@DeadMG [rujukan?]
Bob Somers
6
@ Bob Somers: Mudah. Bandingkan std::stringdenganchar* . std::stringselalu membersihkan ingatannya sendiri dalam situasi apa pun, mengalokasikan jumlah yang tepat setiap waktu. char*, Anda mungkin lupa untuk membebaskan, atau membebaskan dua kali lipat, atau tidak mengalokasikan cukup memori. Aduh. Logika dasar mengatakan bahwa C ++ program yang lebih baik dan lebih aman daripada program C.
DeadMG
12
@DeadMG Programmer yang baik dapat menulis kode yang baik dan aman dalam bahasa apa pun. Sebaliknya, seorang programmer yang buruk dapat menulis kode yang mengerikan dan tidak aman dalam bahasa apa pun. Seorang tukang kayu miskin menyalahkan alatnya.
Bob Somers
11

Saya bekerja pada basis kode AAA MMORPG yang murni C, jadi ya.

pembuat kode
sumber
5
Saya kira itu menempatkan Anda di Cryptic. Apakah Anda menggunakan bahasa skrip apa pun?
Dan Olson
3
Kami memiliki bahasa ekspresi internal yang digunakan oleh desainer pada dasarnya untuk semua hal, dan kami menggunakan campuran Python dan Lua untuk beberapa hal (pemrosesan offline, pengurangan peta pada game DBS untuk statistik), tetapi tidak ada Bahasa Scripting Nyata dalam game itu sendiri.
coderanger
6

Ya, sangat mungkin. Banyak API tingkat OS seperti POSIX dan Windows, DirectX dan OpenGL semuanya memiliki antarmuka yang kompatibel dengan C.

DeadMG
sumber
6

Fabien Sanglard telah menulis artikel tentang mesin 3d-nya di C. Pada reddit, artikel ini telah menciptakan perdebatan yang menarik.

Bahasa hanya alat ... Jadi gunakan dengan bijak. Untuk membuat game yang bagus, bisa lebih mudah menggunakan XNA atau Unity3D. Menguasai C adalah langkah pertama yang baik, tetapi Anda harus belajar C ++, D, python, lua ... C ++ adalah bahasa yang sangat sulit. Jadi gunakan dengan hati-hati.

Ellis
sumber
3

C sangat bagus untuk pengembangan game.

Saya sedang mengerjakan platformer 3D, dan saya tidak pernah memiliki masalah dengan bahasa. Satu-satunya masalah adalah deteksi tabrakan dan naungan, saya tidak tahu apa-apa tentang mereka, mereka masih akan terjadi dalam bahasa lain.

Bahkan, saya merasa jauh lebih mudah daripada bahasa seperti C # dan Java. Saya selalu beralih pada entitas menggunakan pointer ( contoh dari kode saya ), dan freadmenghemat banyak waktu membuat pemuat peta.

Jika Anda menginginkan orientasi dan modularitas objek, Anda dapat membuat struktur pointer fungsi.

Triang3l
sumber
1

Tanpa keraguan. Banyak perpustakaan yang bermanfaat dalam pengembangan game (seperti SDL, PhysFS, dll ...) memiliki API C, yang sangat membantu.

Anda mungkin ingin melihat menanamkan bahasa scripting seperti lua jika Anda ingin melakukan pemrograman tingkat tinggi yang dapat diperluas. Banyak orang mulai melihat daya tarik dalam memprogram kerangka kerja C yang menggunakan lua untuk hal-hal seperti AI, peristiwa, dll ...

Semoga berhasil.

James
sumber
1

Jawaban sederhana untuk pertanyaan ini adalah: Anda dapat melakukan permainan berbasis teks sederhana seperti ini di setiap bahasa pemrograman. Bahkan assembler pascal, dasar atau x86:]

(dan tidak perlu yang lain)

Notabene
sumber
0

Ya itu mungkin, tetapi itu mungkin bukan tindakan yang paling diinginkan. Sejumlah orang menyadari hari ini bahwa C dan C ++ keduanya tidak ideal untuk sejumlah tugas, dan logika permainan tingkat tinggi sering masuk dalam kategori itu.

Jika Anda bersikeras C bukan C ++ (yang tidak masuk akal bagi saya, tetapi untuk masing-masing mereka sendiri), Anda sebaiknya menggunakan Lua bersama dengan C.

Untuk proyek kuliah Anda yang membutuhkan C, ini tidak akan menjadi pilihan, tetapi untuk proyek waktu luang itu akan menjadi cara yang baik untuk belajar.

Dan Olson
sumber
Lua bagus dalam pengembangan waktu, tetapi sebelum rilis semuanya harus porting ke bahasa asli untuk kinerja yang lebih tinggi.
Triang3l
@ Triang3l Saya tidak setuju sama sekali. Apa yang Anda gambarkan adalah pengoptimalan prematur. Menggunakan bahasa asli JANGAN menjamin bahwa kode Anda lebih cepat. Cara yang benar untuk melakukan ini adalah dengan membuat profil kode Anda, menemukan kemacetan dan meningkatkan kode itu. Ada banyak contoh di mana pengembang mencoba untuk menulis kode C mereka sendiri untuk mengganti kode Java dan kode C menjadi lebih lambat secara signifikan, atau di mana pengembang mencoba untuk mengganti kode C dengan kode Majelis yang secara signifikan lebih lambat. Jangan meremehkan pengembang bahasa tingkat tinggi dan lingkungan run-time untuk itu.
user1657170
0

Tentu saja Anda bisa. Banyak game yang telah diprogram dalam C (DOOM muncul di benak). SDL adalah perpustakaan pemrograman game yang ditulis dalam C.

Tentu saja, ini mungkin sedikit lebih sulit daripada menggunakan C ++ untuk proyek besar, tetapi itu mungkin.

rzrscm
sumber
0

Saya pikir mungkin untuk membuat c game yang lengkap. Saya telah membuat game (yang mirip dengan 'space impact' nokia 1110 mobile) di proyek semester 2 saya menggunakan turbo c compiler. Saya pikir Anda dapat mencoba cara ini (sebagai mahasiswa tahun pertama) tanpa mengenal orang lain.

sabbir
sumber