Apakah mungkin untuk menulis game yang tidak memerlukan GPU?

8

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.

pengguna999687
sumber
Anda bahkan dapat melakukannya 3D, Unreal Tournament pertama berjalan pada CPU.
Peter Ølsted
Berapa umurmu? hampir semua hal yang masih berjalan akan mendukung beberapa varian OpenGL atau DirectX.
3Dave
@ Secara Jelas Saya tahu bahwa saya mungkin terdengar agak "tua" tetapi masih ada pengguna yang memiliki harware lama, termasuk menggunakan memori video dari motherboard (mereka tidak mendukung DirectX atau OpenGL, setidaknya untuk yang lama). Plus, seperti dari jawaban yang saya dapatkan, tidak sulit untuk beralih akselerasi perangkat keras, jadi tetap saja ini masalah besar.
user999687
GPU yang dipercepat perangkat keras dari satu jenis atau lainnya telah menjadi standar untuk waktu yang lama. Apakah Anda juga berencana menargetkan Windows 98, mesin dengan CPU sub-200MHz, atau 64MB RAM?
1
GPU sama sekali tidak perlu: igf.com/php-bin/entry2012.php?id=56
michael.bartnett

Jawaban:

6

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.

ultifinitus
sumber
Terima kasih! SDL adalah salah satu perpustakaan permainan yang akan saya pilih (bersama-sama ke Allegro).
user999687
2

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).

Insinyur
sumber
Terima kasih balasannya. Saya hanya bingung, karena sekarang satu-satunya hal yang dapat saya lihat adalah DirectX dan OpenGL, atau pustaka permainan lain yang mendukung keduanya (setidaknya, mengenai C / C ++).
user999687
Jawaban ini tidak jujur ​​- Pong tidak memiliki GPU, tetapi juga tidak memiliki CPU. Game yang sangat awal menggunakan chip TTL dan tidak ada yang kami kenali sebagai komputer yang dapat diprogram hari ini.
@ JoWreschnig (a) CPU! = Mikroprosesor. Luangkan waktu untuk membaca beberapa literatur yang lebih tua dan Anda akan segera menentukan bahwa penggunaan TTL dalam CPU entah bagaimana secara ajaib mencegahnya menjadi CPU. CPU adalah peran dalam arsitektur komputer di mana TTL adalah teknologi dasar pada saat itu. (B) Anda harus pergi dan membaca kembali definisi jujur , karena jelas Anda tidak tahu bagaimana menggunakannya.
Insinyur
@Nick: Kecuali itu bukan CPU yang diimplementasikan dalam TTL, game diimplementasikan dalam TTL. Itu bukan komputer yang bisa diprogram, jadi tidak ada CPU.
@ JoWreschnig Itu adalah CPU. "Central processing unit (CPU) adalah bagian dari sistem komputer yang melakukan instruksi dari program komputer, untuk melakukan operasi aritmatika, logis, dan input / output dasar sistem." Itulah definisinya. Mereka sudah ada sejak 40-an. Pandangan Anda tentang apa yang merupakan CPU, tidak akurat. Di mana pun Anda tidak akan menemukan definisi yang memerlukan kemampuan program (mis. Instruksi yang disandikan perangkat lunak)
Insinyur
2

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.

MGZero
sumber
1

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).

Clayton Hughes
sumber
"Biasanya pada kecepatan yang lebih lambat" sangat subyektif dan sebagai pernyataan umum, sangat buruk dalam memahami perbedaan. Garis besar yang sederhana adalah bahwa ops yang sesuai dengan paradigma SIMD dengan baik, dan yang meminimalkan logika kondisional, adalah pilihan yang baik untuk GPU. Ini termasuk tugas-tugas jenis pengerasan-jumlah massal seperti mendorong piksel mentah atau pemrosesan verteks, sementara CPU adalah kuda kerja dan delegator tujuan umum. Dalam penelitian terdepan dalam raycasting real-time dan iluminasi global, sub-bagian dari algoritma yang digunakan didelegasikan dengan sangat hati-hati untuk mengekstraksi kinerja optimal dari CPU dan GPU keduanya.
Insinyur
2
Saya lebih suka tidak memperdebatkan semantik "biasanya" dan "keseluruhan". Saya berharap itu adalah pernyataan yang cukup samar: secara umum, mempertimbangkan biaya overhead pekerjaan pengiriman ke GPU, untuk melakukan banyak operasi paralel ada kemenangan, walaupun mungkin ada beberapa kasus di mana ini tidak benar.
Clayton Hughes
Adalah adil untuk mengatakan bahwa ada banyak kasus di mana pernyataan asli Anda tidak benar, seperti di mana itu. Dan kecuali Anda memiliki solusi yang secara khusus cocok untuk operasi paralel itu, tidak, itu tidak akan lebih cepat, itu mungkin sebenarnya jauh lebih lambat. Mungkin lebih baik merepresentasikan fakta secara lebih akurat, daripada mencoba menghindari "debat". Mari kita coba untuk tidak menyesatkan siapa pun.
Insinyur
1

jika hanya tentang game 2d, saya sarankan Anda menggunakan salah satu flash 10atau SDL, 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:

Irrlicht mendukung rendering 3D melalui OpenGL, DirectX 8 dan 9, OpenGL ES, dan rasterizer perangkat lunak internal.

Ali1S232
sumber
-1

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.

aaaaaaaaaaaa
sumber
Saya hanya mencari cara untuk membangun game yang cukup tersedia untuk semua orang, bahkan untuk pengguna yang memiliki perangkat keras yang lebih lama. Plus, seperti yang saya katakan, saya meminta pustaka permainan lintas-platform, jadi saya jelas mengharapkan hilangnya kompatibilitas (untuk platform perangkat keras tertentu), tetapi setidaknya saya harus memprogram lebih sedikit dan masih memiliki produk yang ditargetkan untuk sebagian besar pengguna . Poin bagusnya, saya ingin memiliki permainan yang tersedia untuk (hampir) semua orang. Tapi karena saya masih pemula dan saya tidak akan kode untuk beberapa platform, saya pikir ini adalah cara untuk pergi --- setidaknya untuk saat ini.
user999687
Sebagai seorang pemula, Anda pertama-tama harus mendapatkan perpustakaan yang mudah digunakan, saya tidak mengatakan bahwa itu bukan perpustakaan yang tidak dipercepat, tetapi kriteria ini tidak akan mempermudah pencarian.
aaaaaaaaaaaa