Có thể viết một trò chơi không yêu cầu GPU không?


8

Tôi đã biết nhiều máy tính ngày nay có GPU hỗ trợ DirectX và OpenGL. Nhưng những gì về máy tính không? Tôi có thể viết một trò chơi 2D đơn giản không dựa vào GPU để nó hoạt động ngay cả trên các máy cũ không?

Có thư viện trò chơi C hoặc C ++ đa nền tảng nào sẽ cho phép tôi làm điều này không? Lý tưởng nhất là một thư viện như vậy sẽ cho phép tôi tăng tốc phần cứng với rất ít dòng mã.


Bạn thậm chí có thể làm điều đó 3D, Giải đấu Unreal đầu tiên chạy trên CPU.
Peter lsted

Bạn bao nhiêu tuổi gần như mọi thứ vẫn đang chạy sẽ hỗ trợ một số biến thể của OpenGL hoặc DirectX.
3Dave

@DavidLively Tôi biết rằng tôi nghe có vẻ hơi "cũ" nhưng vẫn có người dùng có phần mềm cũ, bao gồm cả sử dụng bộ nhớ video của bo mạch chủ (họ không hỗ trợ DirectX hoặc OpenGL, ít nhất là cho những cái cũ). Ngoài ra, như từ câu trả lời tôi nhận được, không khó để tăng tốc phần cứng, vì vậy dù sao nó cũng là một vấn đề lớn.
user999687

GPU tăng tốc phần cứng loại này hay loại khác đã được tiêu chuẩn trong một thời gian dài. Bạn cũng đang lên kế hoạch nhắm mục tiêu Windows 98, các máy có CPU dưới 200 MHz hoặc RAM 64 MB?

1
GPU hoàn toàn không cần thiết: igf.com/php-bin/entry2012.php?id=56
michael.bartnett

Câu trả lời:


6

Chắc chắn - bạn có thể sử dụng SDL và tôi tin rằng nó làm mọi thứ trên CPU theo mặc định. Bạn thực sự có thể có được một số hiệu suất khá tốt nếu bạn quản lý mã của mình tốt.


Cảm ơn! SDL là một trong những thư viện trò chơi mà tôi sẽ chọn (cùng với Allegro).
user999687

2

Bạn có nghĩ rằng Pong đã sử dụng GPU?

Các trò chơi Flash bạn chơi trên web mọi lúc, bạn có nghĩ rằng họ sử dụng GPU không?

(Chỉ vài tuần gần đây, các trò chơi Flash cuối cùng có thể được phát triển để sử dụng hỗ trợ GPU. Và Flash đã xuất hiện được hơn một thập kỷ.)

Tất nhiên là có thể. Tôi đã chơi game trong một thập kỷ trước khi thậm chí còn có một loại card đồ họa tăng tốc cho thị trường tiêu dùng, chứ đừng nói đến toàn bộ bộ xử lý Turing-perfect dành riêng cho đồ họa (và cụ thể hơn là cho đồ họa trò chơi).


Cảm ơn vi đa trả lơi. Tôi chỉ bối rối, vì bây giờ những thứ duy nhất tôi có thể thấy xung quanh là DirectX và OpenGL hoặc các thư viện trò chơi khác hỗ trợ hai thứ đó (ít nhất là về C / C ++).
user999687

Câu trả lời này không rõ ràng - Pong không có GPU, nhưng nó cũng không có CPU. Các trò chơi rất sớm đã sử dụng chip TTL và không có gì chúng tôi nhận ra là một máy tính lập trình ngày nay.

@JoeWreschnig (a) CPU! = Bộ vi xử lý. Dành thời gian để đọc một số tài liệu cũ hơn và bạn sẽ nhanh chóng xác định rằng việc sử dụng TTL trong CPU không bằng cách nào đó ngăn chặn nó một cách kỳ diệu là CPU. CPU là một vai trò trong kiến ​​trúc máy tính, trong đó TTL là công nghệ cơ bản tại thời điểm đó. (b) Bạn cần phải đọc lại định nghĩa về sự không tôn trọng , vì rõ ràng bạn không biết cách sử dụng nó.
Kỹ sư

@Nick: Ngoại trừ đó không phải là CPU được triển khai trong TTL, trò chơi đã được triển khai trong TTL. Nó không phải là một máy tính có thể lập trình, và do đó không có CPU.

@JoeWreschnig Đó một CPU. "Bộ xử lý trung tâm (CPU) là một phần của hệ thống máy tính thực hiện các hướng dẫn của chương trình máy tính, để thực hiện các hoạt động cơ bản, logic và đầu vào / đầu ra của hệ thống." Đó là định nghĩa. Họ đã ở đây từ những năm 40 Quan điểm của bạn về những gì cấu thành CPU, là không chính xác. Không nơi nào bạn sẽ tìm thấy một định nghĩa đòi hỏi khả năng lập trình (tức là hướng dẫn được mã hóa bằng phần mềm).
Kỹ sư

2

Đừng quên, trò chơi video thế hệ đầu tiên đã được viết cho máy hiện sóng! Và bởi các trò chơi video thế hệ đầu tiên, ý tôi là pong. GPU nhớ, là một bộ xử lý toán học, cũng là CPU. Nó chỉ chuyên dụng hơn.


1

Điều đó hoàn toàn có thể: Các trò chơi máy tính đầu tiên tồn tại trước GPU - như bạn chỉ ra, là phần cứng được thiết kế để tăng tốc toán học 3D. Bất cứ điều gì đang được thực hiện trên GPU cũng có thể được thực hiện trên CPU, mặc dù thường ở tốc độ tổng thể chậm hơn. (Chẳng hạn, bản phát hành ban đầu của Quake, chỉ sử dụng kết xuất phần mềm [1] )

Mesa3D là một triển khai OpenGL tuyên bố hỗ trợ kết xuất phần mềm đầy đủ. (Tuy nhiên, tôi đã không sử dụng nó ngoài mục đích tham khảo).


"Thông thường ở tốc độ chậm hơn" rất chủ quan và như một tuyên bố chung, khá kém trong việc hiểu về sự khác biệt. Một phác thảo đơn giản là các op phù hợp với mô hình SIMD và giảm thiểu logic có điều kiện, là những lựa chọn tốt cho GPU. Điều này bao gồm các tác vụ loại khủng hoảng số lượng lớn như đẩy pixel thô hoặc xử lý đỉnh, trong khi CPU là công việc và đại biểu cho mục đích chung. Trong nghiên cứu tiên tiến về phát sóng thời gian thực và chiếu sáng toàn cầu, các phần phụ của thuật toán được sử dụng được ủy thác rất cẩn thận để trích xuất hiệu suất tối ưu từ cả CPU và GPU.
Kỹ sư

2
Tôi không muốn tranh luận về ngữ nghĩa của "thông thường" và "tổng thể". Tôi đã hy vọng đó là một khẳng định đủ mơ hồ: nói chung, xem xét chi phí đầu tư của công việc vận chuyển cho GPU, để thực hiện hàng tấn ops song song có một chiến thắng, mặc dù có thể có một số trường hợp không đúng.
Clayton Hughes

Thật công bằng khi nói rằng có nhiều trường hợp tuyên bố ban đầu của bạn không đúng sự thật, như ở đâu. Và trừ khi bạn có một giải pháp đặc biệt phù hợp với các op song song đó, không, nó sẽ không nhanh hơn nữa, thực tế nó có thể chậm hơn rất nhiều. Có lẽ tốt hơn là chỉ đại diện cho sự thật chính xác hơn là cố gắng tránh một "cuộc tranh luận". Hãy cố gắng đừng lừa dối bất cứ ai.
Kỹ sư

1

nếu chỉ có khoảng 2 trò chơi, tôi khuyên bạn nên sử dụng flash 10hoặc SDL, nhưng nếu bạn nghĩ rằng trò chơi của bạn có thể chứa tài sản 3d và kết xuất, bạn cũng có thể sử dụng Irrlicht . về cơ bản, nó là một công cụ 3d đa nền tảng nguồn mở với sự hỗ trợ cho cả kết xuất phần cứng và phần mềm:

từ wiki:

Irrlicht hỗ trợ kết xuất 3D thông qua OpenGL, DirectX 8 và 9, OpenGL ES và trình raster phần mềm nội bộ.


-1

Mặc dù những gì bạn hỏi là có thể, điều đáng chú ý là thực tế thường không có lợi thế trong việc loại bỏ khả năng tăng tốc 3D. Tất cả các PC hiện đại đã được xây dựng trong khả năng tăng tốc 3D. Một vài máy cũ không có tính năng này tạo thành một thị trường trò chơi cực kỳ nhỏ và có lẽ bạn cũng có những vấn đề tương thích khác với những máy đó.

Tôi sợ rằng bạn đang hỏi câu hỏi này vì lý do sai.


Tôi chỉ tìm kiếm một cách để xây dựng một trò chơi có sẵn cho mọi người, ngay cả đối với người dùng có phần cứng cũ hơn. Thêm vào đó, như tôi đã nói, tôi đã yêu cầu một thư viện trò chơi đa nền tảng, vì vậy tôi rõ ràng đã mất một số khả năng tương thích (đối với các nền tảng phần cứng cụ thể), nhưng ít nhất tôi phải lập trình ít hơn và vẫn có một sản phẩm được nhắm mục tiêu cho một phần lớn người dùng . Mặc dù vậy, tôi rất muốn có một trò chơi dành cho tất cả mọi người. Nhưng vì tôi vẫn là một người mới và tôi sẽ không viết mã cho nhiều nền tảng, tôi nghĩ rằng đây là cách để đi --- ít nhất là bây giờ.
user999687

Là một người mới, trước hết bạn nên có một thư viện dễ sử dụng, tôi không nói rằng đó không phải là một thư viện không tăng tốc, nhưng tiêu chí sẽ không dễ dàng tìm kiếm.
aaaaaaaaaaaa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.