Можно ли написать игру, которая не требует графического процессора?


8

Я уже знаю, что многие компьютеры сегодня имеют графический процессор, который поддерживает DirectX и OpenGL. Но как насчет компьютеров, которые этого не делают? Могу ли я написать простую 2D-игру, которая не зависит от графического процессора, чтобы она работала даже на старых машинах?

Есть ли кроссплатформенная библиотека игр C или C ++, которая позволит мне это сделать? В идеале такая библиотека позволила бы мне переключать аппаратное ускорение с помощью всего лишь нескольких строк кода.


Вы даже можете сделать это в 3D, первый Unreal Tournament был запущен на процессоре.
Питер Олстед

Сколько лет ты думаешь? почти все, что еще работает, будет поддерживать какой-то вариант OpenGL или DirectX.
3Dave

@DavidLively Я знаю, что я могу показаться немного «старым», но все еще есть пользователи, имеющие старое программное обеспечение, в том числе использующее видеопамять материнской платы (они не поддерживают DirectX или OpenGL, по крайней мере, для старых). Кроме того, из полученных ответов нетрудно переключить аппаратное ускорение, так что в любом случае это большое дело.
user999687

Аппаратно-ускоренные графические процессоры того или иного типа долгое время были стандартными. Планируете ли вы также использовать Windows 98, компьютеры с процессорами с частотой менее 200 МГц или 64 МБ ОЗУ?

1
Полностью ненужные графические процессоры: igf.com/php-bin/entry2012.php?id=56
michael.bartnett

Ответы:


6

Конечно, вы можете использовать SDL, и я считаю, что он делает все на процессоре по умолчанию. На самом деле вы можете получить довольно хорошую производительность, если вы хорошо управляете своим кодом.


Спасибо! SDL - это одна из библиотек игр, которую я собираюсь выбрать (вместе с Allegro).
user999687

2

Как вы думаете, Понг использовал графический процессор?

Флэш-игры, в которые вы играете в Интернете все время, как вы думаете, они используют графический процессор?

(Только в последние несколько недель Flash-игры наконец-то могут быть разработаны для использования поддержки GPU. А Flash существует уже более десяти лет.)

Конечно это возможно. Я играл в игры десять лет, прежде чем появилась даже такая вещь, как ускоренная видеокарта для потребительского рынка, не говоря уже о целых процессорах Turing-complete, предназначенных для графики (и, более конкретно, для игровой графики).


Спасибо за ответ. Я был просто сбит с толку, так как теперь единственное, что я могу видеть вокруг, это DirectX и OpenGL или другие игровые библиотеки, которые поддерживают эти два (по крайней мере, в отношении C / C ++).
user999687

Этот ответ неискренен - ​​у Понга не было графического процессора, но у него также не было процессора. В самых ранних играх использовались TTL-чипы, и сегодня мы не будем распознавать их как программируемый компьютер.

@JoeWreschnig (a) CPU! = Микропроцессор. Потратьте время на прочтение некоторой старой литературы, и вы быстро определите, что использование TTL в ЦП каким-то волшебным образом не мешает ему быть ЦП. Процессор - это роль в компьютерной архитектуре, в которой TTL был фундаментальной технологией того времени. (б) Вам нужно перечитать определение лицемерия , потому что ясно, что вы не знаете, как его использовать.
инженер

@Nick: За исключением того, что в TTL не был реализован процессор, игра была реализована в TTL. Это был не программируемый компьютер, и поэтому не было процессора.

@JoeWreschnig Это был процессор. «Центральный процессор (ЦП) - это часть компьютерной системы, которая выполняет инструкции компьютерной программы для выполнения основных арифметических, логических и операций ввода-вывода системы». Это определение. Они были вокруг с 40-х годов. Ваши взгляды на то, что представляет собой процессор, являются неточными. Нигде вы не найдете определения, которое требует программируемости (т. Е. Программно закодированные инструкции).
инженер

2

Не забывайте, видеоигры первого поколения были написаны для осциллографа! И под видеоиграми первого поколения я имею в виду понг. Помните, что графический процессор - это математический процессор, который также является процессором. Это просто более специализированный.


1

Это абсолютно возможно: первые компьютерные игры существовали до графических процессоров, которые, как вы указываете, являются аппаратным обеспечением, предназначенным для ускорения трехмерной математики. Все, что делается на графическом процессоре, также может выполняться на процессоре, хотя обычно с более низкой общей скоростью. (Например, в первоначальном выпуске Quake использовался только программный рендеринг [1] )

Mesa3D - это реализация OpenGL, которая претендует на поддержку полного программного рендеринга. (Я не использовал его, кроме как в качестве эталонной реализации, хотя).


«Обычно на более медленной скорости» очень субъективно и, как правило, довольно плохо понимает различия. Простая схема состоит в том, что операции, которые хорошо соответствуют парадигме SIMD и минимизируют условную логику, являются хорошим выбором для графического процессора. Это включает в себя задачи массового сокращения чисел, такие как необработанное нажатие пикселей или обработка вершин, в то время как центральные процессоры являются рабочей лошадкой общего назначения и делегатором. В передовых исследованиях в области радиопередачи в реальном времени и глобального освещения части используемых алгоритмов делегируются очень осторожно, чтобы извлечь оптимальную производительность как из CPU, так и из GPU.
инженер

2
Я бы не стал обсуждать семантику «обычно» и «в целом». Я надеялся, что это было достаточно смутное утверждение: в общем, учитывая накладные расходы по доставке рабочих мест в GPU, выполнение множества параллельных операций - это победа, хотя в некоторых случаях это не так.
Клейтон Хьюз

Справедливо сказать, что есть много случаев, когда ваше первоначальное утверждение не соответствует действительности, как и где оно есть. И если у вас нет решения, специально предназначенного для этих параллельных операций, нет, оно не будет быстрее, на самом деле оно может быть намного медленнее. Возможно, лучше просто точнее представлять факты, чем пытаться избежать «дебатов». Попробуем никого не вводить в заблуждение.
инженер

1

если речь идет только о двухмерных играх, я предлагаю вам использовать либо flash 10или SDL, но если вы думаете, что ваша игра может содержать 3D-ресурсы и рендеринг, вы также можете использовать Irrlicht . по сути, это кроссплатформенный 3D-движок с открытым исходным кодом с поддержкой аппаратного и программного рендеринга:

из вики:

Irrlicht поддерживает 3D-рендеринг через OpenGL, DirectX 8 и 9, OpenGL ES и внутренние программные растеризаторы.


-1

Хотя то, что вы спрашиваете, возможно, стоит отметить, что обычно отбрасывать 3D-ускорение практически невозможно. Все современные ПК имеют встроенное 3D-ускорение. Несколько старых машин без этой функции составляют очень маленький игровой рынок, и у вас, вероятно, будут другие проблемы с совместимостью с ними.

Боюсь, что вы задаете этот вопрос по неправильной причине.


Я просто искал способ создать игру, доступную для всех, даже для пользователей с устаревшим оборудованием. Кроме того, как я уже сказал, я запросил библиотеку кроссплатформенных игр, поэтому я, очевидно, ожидал некоторой потери совместимости (для конкретных аппаратных платформ), но, по крайней мере, мне пришлось программировать меньше, и при этом продукт был нацелен на большую часть пользователей. , Хороший момент, хотя, я хотел бы иметь игру, доступную (почти) каждому. Но так как я все еще новичок и не буду кодировать для нескольких платформ, я думаю, что это путь - по крайней мере, сейчас.
user999687

Как новичку вы должны в первую очередь получить библиотеку, которая проста в использовании, я не говорю, что она не может быть неускоренной, но критерий не облегчит поиск.
аааааааааааа
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.