User Tag List

Страница 14 из 18 ПерваяПервая ... 101112131415161718 ПоследняяПоследняя
Показано с 131 по 140 из 173

Тема: Разработка программ и игр для ZX Spectrum на языках Оберон-семейства

  1. #131

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Oleg N. Cher, ну всё-таки ЯВУ на Спектруме, ИМХО, в наше время нужен в подавляющем большинстве случаев для написания игр. Софт на нем будет сложно написать, не экономично по памяти и так себе по быстродействию. К тому же, вряд ли новый софт для Спека кто-то будет писать. Остаются игры.
    В играх важны в первую очередь: вывод спрайтов, вывод текста, реагирование на клавиатуру и джойстик, обработка двумерной карты/полей. Не важны: числа с плавающей точкой, обработка строк, многомерные массивы. Можно обойтись без записей. Плюс в Спектруме выгоднее делать умножение/деление и размерности массивов на кратные 2 числа. Вот это я и хочу реализовать, отбросив всё лишнее, оставив только важное и нужное.
    Т.е., язык будет подогнан под архитектуру Спектрума и не более, будет урезанным по сравнению с оригиналом, но за счет этого оптимизирован для Спектрума. Поэтому SDCC и другие существующие компиляторы не подходят - они не оптимальны конкретно для Спектрума, т.к. универсальны и хотят быть совместимыми со всем и вся. И вызывает сомнение компиляция через промежуточный язык С - могут добавиться к изначальной универсальной кривости Оберона/Паскаля ненужные извращения С.
    В общем, я за узкую локальную задачу - оптимизированный язык-инвалид для единственной платформы Спектрум.

  2. #132

    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,551
    Спасибо Благодарностей отдано 
    205
    Спасибо Благодарностей получено 
    188
    Поблагодарили
    83 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    В общем, я за узкую локальную задачу - оптимизированный язык-инвалид для единственной платформы Спектрум.
    Ну инвалидность же нисколько не мешает существованию компилятора скажем под PC?

  3. #133

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,711
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Andrew771, делать высокодинамические или большой сложности игры на Паскале для Спектрума – это ещё бОльшая идея фикс чем компиляция через Си. Дело в том, что если в технологии высокоуровневого клея (в Обероне, Си или Паскале) для Спектрума будет накоплено много разнообразных и очень оптимизированных асм-библиотек (ессно не вшитых в компилер), то сама суть клея – клеить – будет помогать быстрой разработке (причём софта тоже, не только игр. А в чём ты видишь преграду для этого?), а непосредственно высокий уровень останется для скорого макетирования или, скажем, разработки утилит (типа конвертеров), для которых не столь уж важно быть написанными именно на асме, главное чтобы они были написаны быстро и без ошибок. И код имел бы хорошую наглядность, необходимую для дальнейшего наращивания функционала утилиты.

    SDCC подходит для Спектрума чудесно. Лучшего кодогенератора с ЯВУ, чем SDCC, для Z80 нет и процентов 99, что никогда не будет. Поэтому можно спокойно игнорировать этот факт, а можно и нет.

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    В играх важны в первую очередь: вывод спрайтов, вывод текста, реагирование на клавиатуру и джойстик, обработка двумерной карты/полей. Не важны: числа с плавающей точкой, обработка строк, многомерные массивы. Можно обойтись без записей. Плюс в Спектруме выгоднее делать умножение/деление и размерности массивов на кратные 2 числа. Вот это я и хочу реализовать, отбросив всё лишнее, оставив только важное и нужное.
    Вот поэтому и нужно сделать библиотеки (а не вшивать весь функционал внутрь компилера раз и навсегда), которые будут реализовать вывод спрайтов, вывод текста, реагирование на клавиатуру и джойстик. И все эти функции будут доступны из всех языков среды. Т.е. кроссъязыковость и кроссплатформенность. Вот что я предлагаю.

    Числа с плавающей точкой, обработка строк, многомерные массивы должны быть обязательно реализованы на уровне языка, и они никак не помешают. Это дополнительные возможности, и когда уровень технологии будет расти, будет расти и круг задач под неё. Нельзя обойтись без записей. Это конструирование пользовательских структур данных, делать без записей что-то серьёзное сложно. Эмулировать записи через массивы – тоже не фунт изюму. Умножения и деления, кратные 2, – частный случай остальных умножений и делений. Надо реализовать все деления и все умножения, но кратные двум будут просто оптимизированнее. И ессно при программировании под Спектрум все будут этим фактом активно пользоваться.

    Вобщем, язык-инвалид это конечно хорошо, но тогда проект делаешь чисто для себя. Я бы предложил тебе максимально ориентироваться на совместимость с Turbo Pascal (и по библиотекам, но с поправкой на кроссплатформенность). Я вот тоже хочу понять, для себя я делаю ZXDev, или же это интересно и ещё кому-то. Если за несколько месяцев не будет очень ярко выраженного интереса и помощи, забью конечно.

    Alex Rider, прошу прощения, исправлюсь.

  4. #134

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пользователями этого языка, судя по темам на форуме, будут те, кто не знает или не хочет изучать ассемблер. Они не собираются писать софт под Спектрум (тут без асма никуда), а только игры. Кто знает ассемблер, скорее всего, не будут использовать язык или будут ограниченно.
    Для игр, как я уже написал, важны только некоторые составляющие языка: вывод спрайтов, вывод текста, опрос клавиатуры/джойстика, обработка двумерной карты. Остальное не важно и не нужно. Плюс, по своему опыту написания игр на асме, всегда идет подгонка под массивы с размерностью кратной 2 и умножение/деление кратное 2. Если, к примеру, X нужно умножить на 3, то я пишу на асме X*2+X, а не использую специальную процедуру умножения на произвольное число (умножение на 2 - это всего лишь сдвиг регистра влево на 1 бит).
    Игры, где используются числа с плавающей точкой - обычно трехмерные, тут уже без асма не обойтись из-за быстродействия. Да и то, в них не происходит "честное" вычисление функций, а используются заранее вычисленные таблицы. Поэтому ЯВУ тут не нужен.
    Записи - не очень нужны. На асме, как правило, разные поля записи в памяти размещаются своими отдельными массивами - так проще вычислять их адрес, чем лазить по целым записям, чтобы отыскать нужное поле.
    Многомерные массивы - не нужны. Из-за ограниченной памяти. Трехмерную игру не напишешь на них, для двумерных - они не нужны.
    Обработка строк (имеется в виду вырезание, склеивание, поиск, замена) - больше для софта подходит, чем для игр. Может только в каких-нибудь играх с искусственной речью нужны. Можно исключить.

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Это дополнительные возможности, и когда уровень технологии будет расти, будет расти и круг задач под неё.
    Да не будет уровень технологии на Спектруме расти, и будущего у Спектрума нет. Это ретро-платформа. Максимум технологии по быстродействию и памяти - это программирование на голом ассемблере табличными методами, таблицы подгоняются под удобные адреса, а не под удобную структуру объектов-записей.
    Универсальность языка ведет к потере быстродействия и памяти. Для PC это не важно, т.к. там и того, и другого выше крыши. А для Спектрума это существенно. И тут нужно всё подгонять под него.
    Повторяю. Люди, которые умеют программировать на ассемблере, будут писать на ассемблере, и даже в качестве "клея" им не понадобится универсальный ЯВУ, проще на ассемблере с макросами. Те, кто не умеет на ассемблере, будут пользоваться универсальным ЯВУ, если он будет намного лучше Бейсика по быстродействию и памяти, если в нем есть библиотека быстрых процедур вывода спрайтов, текстов и прочее. А писать процедуру вывода спрайтов на ЯВУ они не будут - это неработоспособно.

  5. #135

    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,551
    Спасибо Благодарностей отдано 
    205
    Спасибо Благодарностей получено 
    188
    Поблагодарили
    83 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Люди, которые умеют программировать на ассемблере, будут писать на ассемблере
    Не пишу и больше не буду. Надоело. PureBasic развратил.

  6. #136

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Пользователями этого языка, судя по темам на форуме, будут те, кто не знает или не хочет изучать ассемблер. Они не собираются писать софт под Спектрум (тут без асма никуда), а только игры. Кто знает ассемблер, скорее всего, не будут использовать язык или будут ограниченно.
    Сразу видно игродела.
    Вообще-то, все с точность до наоборот. Это игры еще как-то можно писать на асме, а вот сложные системы (ОС и утилиты, или тот же TCPIP) гораздо удобнее писать на С, тем паче что на С можно делать большие заимствования (портировать уже готовое) - это очень существенно в условиях когда поднять что-то большое с нуля уже ни у кого из форумчан не хватает потенции. И если говорить за пакет SDCC, то крайне необходима среда разработки на С с нормальным отладчиком (а не убогим SDCDB). Хотя бы как обертка над тем же SDCDB.
    То, что вместе со средой разработки на C будут приятные плюшки в виде Оберонов, это только в плюс.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  7. #136
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #137

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Если, к примеру, X нужно умножить на 3, то я пишу на асме X*2+X
    Лол, распальцованным ассемблерщикам пофиг что (X << 1) + X выполняется МЕДЛЕННЕЙ, чем X + X + X?

    sdcc команды умножения очень элегантно заменяет сложениями, проигрыш в производительности будет только если умножать на число чуть меньшее, чем степень двойки, типа 2^n-1. Потому что тут можно обойтись сдвигом и вычитанием, а sdcc все равно генерит сложение.
    Последний раз редактировалось Eltaron; 27.03.2012 в 11:45.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  9. #138

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Error404, и много ты сложных систем на Спек пишешь?
    я смотрю для спека все системные программы практически написаны

    ---------- Post added at 11:44 ---------- Previous post was at 11:42 ----------

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Лол, распальцованным ассемблерщикам пофиг что (X << 1) + X выполняется МЕДЛЕННЕЙ, чем X + X + X?
    really?

    Код:
    ld d,h
    ld e,l
    add hl,hl
    add hl,de
    VS

    Код:
    ld d,h
    ld e,l
    add hl,de
    add hl,de
    С уважением,
    Jerri / Red Triangle.

  10. #139

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    jerri, эээ, что-то старый я стал, сдвига не вижу
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  11. #140

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ld d,h
    ld e,l
    add hl,hl
    add hl,de
    чем тебе не сдвиг?
    да да совсем старый на грязи надо ехать отдыхать - привыкать
    С уважением,
    Jerri / Red Triangle.

Страница 14 из 18 ПерваяПервая ... 101112131415161718 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Разработка ZXOOM
    от Andrew771 в разделе Игры
    Ответов: 666
    Последнее: 16.08.2011, 17:22
  2. Разработка ZXOOM
    от Andrew771 в разделе Графика
    Ответов: 666
    Последнее: 16.08.2011, 17:22
  3. Разработка БК-0101-10
    от CodeMaster в разделе БК-0010/0011
    Ответов: 61
    Последнее: 21.04.2011, 21:13
  4. Подскажите пожалуйста, На каких языках пишутся игры.
    от sevol в разделе Программирование
    Ответов: 168
    Последнее: 14.01.2011, 15:42

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •