Кто-нибудь пробовал написать игру на ассемблере? Не для dos, а для windows? Я более-менее разбираюсь в ассемблере, но игр на нем никогда не писал, в основном писал на ассемблере для дос "от нечего делать". Кто может сказать, с какими проблемами я могу столкнуться? Как я понял, до "аппаратуры" напрямую не достучаться, так? Придется сплошь использовать винапи?
мусье знает толк в извращениях )
ничего не могу с собой поделать...
HRESULT
Не надо, кучу времени потратишь зря.
HRESULT
> Кто-нибудь пробовал написать игру на ассемблере?
Ronniko этим страдал одно время, его спроси :)
Кто такой Ronniko?
Не не знаю такого :)
Synthetic
Ronniko этим страдал одно время
И что сильно страдал ? :)
Если ограничится WinAPI и 2D GDI графикой, то вполне реально и на ассемблере. Только зачем? На С будет намного проще, а разница в скорости не факт, что в пользу ассемблера.
0iStalker
ДА. Если юзать WinAPI функции для вывода графики в окно. То можно и на VisualBasic-e писать. Тут и с++ и ассемблер и VisualBasic будут на одном уровне по скорости (я имею в виду на глаз пользователя).
Но есть области программирования где язык программирования имеет не малый вес :)
Но и хороший алгоритм программы играет тоже не последнюю роль.
Че там уж говорить. Игры делали даже на 3,5 МГц проце и при этом не брезговали писать на бейсике ! Я о великом ZX_SPECTRUME.
я просто помню давненько для дос что-то на ассемблере писал... там по-моему напрямую в регистры(или как там у нее) видеокарты вбивалось... палитра и все такое... я ничего не путаю??? И для windows такое не сделаешь?
ronniko
> Но есть области программирования где язык программирования имеет не малый вес
> :)
Согласен, если писать на asm программа будет длинной!
HRESULT
Под винду можно и OpenGL/dx заюзать.
http://democoder.ru/article/3 и дальше в гугл.
HRESULT
Лучше всё-таки изучи что-то типа C++. Он тут больше в тему. На ассемблере, конечно, тоже можно, но, по мне, так трудоемко.
>там по-моему напрямую в регистры(или как там у нее) видеокарты вбивалось... палитра и все такое... я ничего не путаю??? И для windows такое не сделаешь?
В видеопамять, кстати, писать напрямую можно. Любую поверхность можно залочить (получить её адрес и шаг по ширине). А экран - это та же поверхность. А далее зная шаг для горизонтальной строки рисовать напрямую, выводя цвета точек, ну, почти как на Spectrum-е :-)
Вот, например, моя старая игрушка работает как раз по такому принципу - все юниты рисуются ассемблером (игра, естественно, на C++, а ассемблер там используется лишь частично). Там вся графика запакована и распаковывается в момент рисования. Но, честно говоря, сейчас бы я так не стал делать - раньше мне просто некуда было засунуть 12 тысяч спрайтов и приходилось искать решения, а сейчас всё гораздо проще и быстрее. Так что используй современные преимущества и не мучайся с ассемблером, если на то нет особых причин.
> я просто помню давненько для дос что-то на ассемблере писал... там по-моему напрямую в регистры(или как там у нее) видеокарты вбивалось... палитра и все такое... я ничего не путаю??? И для windows такое не сделаешь?
Не в регистры, а в специальную область памяти, которая отвечала за вывод на экран.
Для виндоус будет то же самое, что и для остальных языков. Всё как у людей, только функции DirectX/OpenGL/WinAPI, будешь вызывать в ассемблере.