Вторник, 26 Ноября 2024, 10:06

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Написать игру на MASM32 (под Windows)
JmixДата: Суббота, 26 Ноября 2011, 20:29 | Сообщение # 1
уже был
Сейчас нет на сайте
Это попытка найти тропинку в игровую индустрию. Началась эта дорога с чистого любопытства. Просто выучил несколько команд процессора, побаловался с hex-редактором (16- битный асм), написал пару смехотворных программок, считающих числа, меняющих оперативную память. Навсегда запомнил что такое регистры проца, и с чем их едят. Понял что такое стек. До меня дошло, как делать циклы и ветвления. Прочитал больше ненужного, чем нужного, но язык понравился...

Когда дошли руки до 32- битного программирования, мне стало плохо (как с похмелья!). wacko Обжегся, после чего долго зализывал раны и не подходил больше к этому вопросу. Но со скрипом на сердце вернулся долбить бошкой об некий язык, который мало чем напоминал весь предыдущий опыт. Дошло до того, что выросла шишка, этой шишкой я сообразил в чём главное различие "16" и "32". В первом случае исходником была сама исполняемая программа, а во втором- такой текстовый файлик с расширением asm . Логично предположить, что существует переводчик этих текстов. Он называется компилятор. (Это слово я тоже выучил навсегда) Откуда его брать? Оказалось такие компиляторы существуют у любого высокоуровнего языка, хоть C++, Basic, Pascal... У языка ассемблер их несколько разновидностей. Я выбрал компилятор из MASM32. Мало знать язык программирования в таком случае (чтобы написать игру), нужно узнать язык конкретного компилятора. Или по другому- язык конкретной среды, для написания кода. Любой конструктор игр или движок - это программный пакет (куча утилит), которые строятся вокруг компилятора, чтобы создать текст игры, а потом сразу перевести. И вот вам готовая игра)))

Добавлено (26.11.2011, 19:24)
---------------------------------------------
Долго можно спорить, на чём лучше писать тексты программ. Для меня самый надёжный способ- это текстовый редактор RadAsm и notepad. В наборе инструментов masm32 есть и свой текст. ред. Но если вам охото путаться в навороченом интерфейсе какого нибудь VisualBasic, пожалста...

Забыл написать самое главное из чего строются все программы, не зависимо от языка и компилятора: из функций. Не знаю как написано в какой нибудь википедии, но по моему функция - это участок кода, состоящий из машинных команд, которой можно передавать данные в виде параметров через запятую. Взять чистый файл game.asm, выделить память под данные (переменные с числами, строками, пикселями), вызвать кучу функций (передавая все параметры через стек), организовать циклы, написать функции (которые тоже будут вызывать функции)... И что-то получится)))

Тут пригодятся два вида функций те API (чтобы работать с интерфейсом Windows) и DirectX (чтобы рисовать графику). В masm32 это тоже есть, в папке lib сами функции, в папке include описания этих функций (чтобы компилятор их распознал, иначе не переведёт, будет ругаться).

Добавлено (26.11.2011, 20:29)
---------------------------------------------
Меня что сподвигло писать игру на ассемблере? Видеокарта у меня слабая совсем, а хочется чтобы возможности были огромные. Сейчас хорошие игры жруть много ресурсов. Можно ли написать игру не хуже современных, но такую, чтобы пошла на любом (средненьком) компе?

VinchensooДата: Суббота, 26 Ноября 2011, 20:42 | Сообщение # 2
Злобный социопат с комплексом Бога
Сейчас нет на сайте
А я не понял смысла темы.

Quote (Jmix)
Можно ли написать игру не хуже современных, но такую, чтобы пошла на любом (средненьком) компе?

Можно ли, чтобы жигули были по комфорту как мерседес?


0x90Дата: Суббота, 26 Ноября 2011, 21:43 | Сообщение # 3
участник
Сейчас нет на сайте
Quote (Jmix)
Можно ли написать игру не хуже современных, но такую, чтобы пошла на любом (средненьком) компе?

Нет, нельзя.

Добавлено (26.11.2011, 21:43)
---------------------------------------------
Больше того, вы очень сильно ошибаетесь, если думаете, что в программе размером от несколько тысяч строк сможете приблизиться по уровню оптимизации к компилятору. Насчет видеокарты: все равно вам юзать тот же DirectX/OpenGL, так какой профит от асма?

invizorДата: Среда, 07 Декабря 2011, 11:46 | Сообщение # 4
был не раз
Сейчас нет на сайте
С ассемблером мучиться долго будешь, для хорошей игры нужен и язык более высокого уровня и нормальная среда разработки ибо баг не переловишь. На ассемблере не найдешь много примеров того или иного алгоритма, код не читается, так что лучше не мучиться и писать на си.
M1ghtMortalДата: Среда, 07 Декабря 2011, 13:20 | Сообщение # 5
участник
Сейчас нет на сайте
Зачем писать на ассемблере? Если не нравятся некоторые ограничения многих языков высокого уровня(отсутствие указателей например) пиши на C++ или на чистом C. Скорость у них отличная, зато мароки меньше чем с ассемблером.

Java/C++/Unity(C#) Programmer.
Мой блог MightMortal.RU
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг