1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Можно ли использовать flat assembler в его чистом виде для разработки игр

Тема в разделе "WASM.BEGINNERS", создана пользователем Evolution_Pixels, 9 янв 2017.

Метки:
?

Можно ли использовать чистый ассемблер для разработки игр или игрового движка?

  1. Можно!

    16,7%
  2. Вполне вероятно!

    8,3%
  3. Можно и даже нужно!

    8,3%
  4. Нельзя!

    0 голосов
    0,0%
  5. Это не выносимо!

    8,3%
  6. Это невозможно!

    0 голосов
    0,0%
  7. Ты совсем рехнуся?

    0 голосов
    0,0%
  8. А месье знает толк в извращениях!

    75,0%
Можно выбрать сразу несколько вариантов.
  1. Evolution_Pixels

    Evolution_Pixels Member

    Публикаций:
    0
    Регистрация:
    9 янв 2017
    Сообщения:
    48
    Нужен ответ на этот вопрос:
    Можно ли использовать flat assembler в его чистом виде для разработки игр?

    Сразу скажу что игры на нем я делал и мне понравилось! Но стоит ли им только увлекаться к примеру для больших игровых проектов?
     
  2. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    566
    Адрес:
    Russia
    Можно. Язык макросов и использование ВинАпи вплотную приближает его к Си. Одно "но" - легко допустить ошибку и сложно отлаживать. И как правильно подмечено _rmn,

    Сейчас достаточно оптимизировать на уровне алгоритмов, потому что твоя программа все равно будет работать в среде, пожирающей гигабайты памяти и гигафлопсы процессора на отрисовку с@#ной иконки.

    Чистый асм хорошо годился для игр во времена бабушкиного сундука, т.е. Dos.
    Есть замечательная книга "Как написать компьютерную игру (на ассемблере для IBM PC)" авторы Шалаев, Осин.
     
    Evolution_Pixels нравится это.
  3. Evolution_Pixels

    Evolution_Pixels Member

    Публикаций:
    0
    Регистрация:
    9 янв 2017
    Сообщения:
    48
    Ну в асме оптимизировать работу программы можно даже так что в памяти она даже мелькать не будет. (Уже пробовал так, зае**лся писать такой изворотистый код)
     
  4. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    493
    Проголосовал за последний пункт. Использовать несомненно можно, но вот нужно ли? Для коммерческой игры я бы не стал делать этого, т.к. появляется сразу множество проблем к примеру зависимость от архитектуры. Я считаю что нужно использовать асм только там где это действительно нужно и без этого не обойтись. Для других задач я лично не вижу смысла в этом, ну только если ради самого факта написания игры на ассемблере или как обучающий материал.
     
  5. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    566
    Адрес:
    Russia
    На асм ты очень быстро "ударишься" в непосредственное описание элементарных действий, и посвятишь много человекоресурсов выпиливанию своих теплых-ламповых процедур для выполнения того или иного действия, вместо того чтобы заниматься логикой программы. Что до самой логики, если положим все низкоуровневое библиотечное уже написано, интересно будет взглянуть на программирование AI (искусного интеллекта) на асм. Но сначала взглянул бы на алгоритм обхода препятствий и его героическое исполнение .. (

    Времена Вячеслава Медноногова и реализации UFO на Спекки прошли.
     
  6. shufps

    shufps New Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    10
    Смотря какая игра. Игры типа змейки,тетриса,сапера можно написать достаточно быстро... С помощью макросов можно даже запилить условно-кросплатформенный код + с учетом разрядности системы...
     
  7. Ronin_

    Ronin_ Active Member

    Публикаций:
    1
    Регистрация:
    24 дек 2016
    Сообщения:
    237
    Насколько мне известно для gamedev юзается C++, какие-то компоненты пишут на ассемблере.
     
  8. Evolution_Pixels

    Evolution_Pixels Member

    Публикаций:
    0
    Регистрация:
    9 янв 2017
    Сообщения:
    48
    Не я писал игры и посложнее змейки и крестиков-ноликов. А полноценные 3d игры на асме, умещающиеся в 24кб и имеющие полноценные миры и текстуры с звуком.
     
  9. Evolution_Pixels

    Evolution_Pixels Member

    Публикаций:
    0
    Регистрация:
    9 янв 2017
    Сообщения:
    48
    Для геймдева некоторые используют даже haskell и lua.
     
  10. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    566
    Адрес:
    Russia
    Если нет ограничения по времени, можно писать и на ассемблере. Но как правило, работа должна быть сделана "еще вчера". Современный геймдев уныл чуть менее чем полностью, немного исправляет ситуацию наличие инди-разработчиков. Товарищи в No Man Sky вспомнили, что можно оказывается использовать процедурную генерацию, и вот появилось что-то отличное от серой массы, которую выкидывают на рынок. Асм продолжает рулить в демосцене, потому что существуют (специальные; без ограничений нет и творчества) ограничения. А игры перешагнули формат DVD с его 4 (уже 8) гб и, видимо, ставят планкой 50гб занимаемого места.

    Evolution_Pixels, явите миру свои творения! :)
     
    Evolution_Pixels нравится это.
  11. shufps

    shufps New Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    10
    Ну так выкладывай все это добро, раздел GPU скучает по твоим наработкам ;)
     
    Evolution_Pixels нравится это.
  12. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    493
    Не удивил, на C и C++ можно и в меньший объем уместить, отказавшись от рантайма и заюзав пакер. 3d графические приложения точно такие же приложения как и все остальные, просто юзать процедурную генерацию.
    Некоторые и VB6 юзают, и вообще бейсики.
     
    Evolution_Pixels и Ronin_ нравится это.
  13. Ronin_

    Ronin_ Active Member

    Публикаций:
    1
    Регистрация:
    24 дек 2016
    Сообщения:
    237
    Даже в продакшн? :)
     
  14. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    493
    Используя процедурную генерацию не так просто добиться реалистичности в сравнении с реальными моделями/текстурами/звуками, поэтому многие и юзают гиговые ресурсы.

    К сожалению не могу ответить на этот вопрос, поскольку не являюсь геймдевелопером и не продаю игры.
     
    Evolution_Pixels нравится это.
  15. Evolution_Pixels

    Evolution_Pixels Member

    Публикаций:
    0
    Регистрация:
    9 янв 2017
    Сообщения:
    48
    Пока что это все в планах на будущее.
     
  16. Evolution_Pixels

    Evolution_Pixels Member

    Публикаций:
    0
    Регистрация:
    9 янв 2017
    Сообщения:
    48
    Это все пока что сыро и не доработано. Может в будущем что-то и получится выложить чтобы не было слишком смехотворно!
     
  17. Evolution_Pixels

    Evolution_Pixels Member

    Публикаций:
    0
    Регистрация:
    9 янв 2017
    Сообщения:
    48
    3d игру можно и в 1кб увместить если использовать процедурную генерацию всего (текстур, звуков, моделей) и все это на асме. Си в этом плане проигрывает.
     
  18. Evolution_Pixels

    Evolution_Pixels Member

    Публикаций:
    0
    Регистрация:
    9 янв 2017
    Сообщения:
    48
    А в общем для написания больших и реальных проектов я использую игровой движок Godot Engine - https://godotengine.org/
    И вот его описание кому интересно:
    Godot is an advanced, feature-packed, multi-platform 2D and 3D open source game engine
     
  19. Evolution_Pixels

    Evolution_Pixels Member

    Публикаций:
    0
    Регистрация:
    9 янв 2017
    Сообщения:
    48
    И в общем мне хотелось бы сделать в полной мере доступный и мощный движок как и Godot Engine, но это будет оооочень трудно достижимой целью.
     
  20. Evolution_Pixels

    Evolution_Pixels Member

    Публикаций:
    0
    Регистрация:
    9 янв 2017
    Сообщения:
    48
    Снимок.PNG
    Вот этот снимок я сделал в своем недоработанном и не до оптимизированном игровом движке FlatDevel.