Saya sudah tahu banyak komputer saat ini memiliki GPU yang mendukung DirectX dan OpenGL. Tapi bagaimana dengan komputer yang tidak? Bisakah saya menulis game 2D sederhana yang tidak bergantung pada GPU, sehingga bisa berfungsi bahkan pada mesin yang lebih lama?
Apakah ada pustaka permainan lintas-platform C atau C ++ yang akan membiarkan saya melakukan ini? Idealnya, perpustakaan seperti itu akan membiarkan saya beralih akselerasi perangkat keras dengan sangat sedikit baris kode.
c++
2d
c
cross-platform
hardware-acceleration
pengguna999687
sumber
sumber
Jawaban:
Tentu saja - Anda dapat menggunakan SDL dan saya percaya itu melakukan segalanya pada CPU secara default. Anda sebenarnya bisa mendapatkan kinerja yang cukup baik jika Anda mengelola kode dengan baik.
sumber
Apakah Anda pikir Pong menggunakan GPU?
Gim Flash yang Anda mainkan di web sepanjang waktu, menurut Anda apakah mereka menggunakan GPU?
(Hanya beberapa minggu terakhir inilah Flash game akhirnya dapat dikembangkan untuk menggunakan dukungan GPU. Dan Flash sudah ada selama lebih dari satu dekade.)
Tentu saja itu mungkin. Saya telah bermain game selama satu dekade sebelum bahkan ada yang namanya kartu grafis dipercepat untuk pasar konsumen, apalagi seluruh prosesor Turing-lengkap yang didedikasikan untuk grafis (dan lebih khusus lagi, untuk game grafis).
sumber
Jangan lupa, gim video generasi pertama ditulis untuk osiloskop! Dan dengan video game generasi pertama yang saya maksud pong. GPU ingat, adalah prosesor matematika, yang juga merupakan CPU. Itu hanya lebih khusus.
sumber
Benar-benar mungkin: Permainan komputer pertama ada sebelum GPU - yang seperti Anda tunjukkan, adalah perangkat keras yang dirancang untuk mempercepat matematika 3D. Apa pun yang dilakukan pada GPU juga dapat dilakukan pada CPU, meskipun biasanya pada kecepatan keseluruhan yang lebih lambat. (Rilis awal Quake, misalnya, hanya rendering perangkat lunak yang digunakan [1] )
Mesa3D adalah implementasi OpenGL yang mengklaim mendukung rendering perangkat lunak lengkap. (Namun saya belum menggunakannya selain sebagai implementasi referensi).
sumber
jika hanya tentang game 2d, saya sarankan Anda menggunakan salah satu
flash 10
atauSDL
, tetapi jika Anda berpikir game Anda mungkin mengandung aset 3d dan render Anda juga dapat menggunakan Irrlicht . ini pada dasarnya merupakan mesin 3d cross-platform open-source dengan dukungan untuk rendering perangkat keras dan lunak:dari wiki:
sumber
Sementara apa yang Anda tanyakan adalah mungkin, perlu dicatat bahwa biasanya praktis tidak ada keuntungan dalam membuang akselerasi 3D. Semua PC modern memiliki akselerasi 3D. Beberapa mesin lama tanpa fitur ini merupakan pasar permainan yang sangat kecil, dan Anda mungkin akan memiliki masalah kompatibilitas lainnya dengan itu.
Saya khawatir Anda menanyakan pertanyaan ini karena alasan yang salah.
sumber