Вход

Просмотр полной версии : Теория: почему 128к игры такие убогие



Screw
10.10.2011, 13:04
Disclaimer:
Особенно полезно читать всем любителям пентагонов и ненавистникам фирменных машин.
Так же надо вдумчиво читать железячникам. Как не свистоперделки, а весьма тривиальная вещь может сильно облегчить жизнь программисту.

Вы когда-нибудь задумывались, почему 128k игры такие убогие ? Нет, серъёзно. Они качественно не отличаются от 48к. (Возможно есть несколько исключений. Кстати - кроме ЧВ какие ?)
Очень практиковалась лишь частичная поддержка 128к в виде AY музыки и запихиванию подгружаемых уровней в верхнюю память. Почему частичная ? Да потому что графический код был одинаков и работал по старым принципам. Очень редко использовался второй экран. Практически никогда не использовались мощные прекалькуляции для ускорения.

Фактически, внешняя память только как РАМ-диск для ресурсов. С одной стороны это можно объяснить наличием армии 48k-only машин, и желанием фирм срубить побольше бабла на продажах.

Но! Были ведь 128к-only игры! Для них аргумент про бабло теряет смысл.
Почему же в этих играх не заметно особого улучшения качества ? Только чуть больше арта. Причём зачастую не игрового, а в виде картинок между уровнями. (Например Chase H.Q.2, Robocop2). Иногда 128-only игра состояла из пачки мини-игр, каждая из которых по-отдельности ничем особенным не выделялась (BTTF3).

Начав писать свой собственный движок игры я нашёл ответ. Он очень прост - дело в жёстко прибитых номерах банок памяти. И всего одном окне page-инга. Даже в NES с её, по сути, 32кб адресного пространства для кода/данных, банки памяти можно было переключать в обоих 16кб окнах.

Если использовать два экрана - то данные для отрисовки можно брать только из нижней памяти. А из-за того что банки нижней памяти жёстко прибиты, да ещё вместе с бесполезным экраном, получается свободными всего 9.25кб медленной и 16кб быстрой памяти. Всего ~25кб. Этого ничтожно мало.

Поэтому выходов остаётся немного:
1) Оставить page-ing для данных и пытаться рисовать всё в один экран, жертвуя качественной картинкой и получая артефакты в виде tear-инга и/или мерцания.
2) Использовать два экрана, но серъёзно усечь данные, жертвуя либо качеством либо скоростью, либо и тем и другим, чтобы уместить отрисовку кадра в нижней памяти.
3) организовать в нижней памяти кеш, и динамически подкачивать туда данные из верхней памяти.
Это тормозно, потому что временные затраты сопоставимы с генерацией данных. Похожий подход, кстати, применяляся в 48k играх (например Zynaps, Robocop1, только данные не подкачивались а как раз генерились в кеш).
4) САМЫЙ РАСПРОСТРАНЁННЫЙ ВАРИАНТ: Забить, оставив отрисовку для 48к. Память юзать под рамдиск. Ну и музыки добавить.

Ещё раз: причина плохой поддержки расширенной до 128кб памяти заключается в отвратительной организации переключения банок. И, как следствие, малом количестве нижней памяти.

Варианты решения "с паяльником" отметаем и не рассматривем принципиально. Напаять можно и чёрта в ступе.

Частично проблему можно решить в некоторых советских клонах.
Из-за желания сделать CP/M совместимую машину делали возможность включения RAM вместо ROM, что моментально увеличивало свободную нижнюю память ещё на 16кб до ~41кб.
Это ATM1, Profi, Scorpion.

Немного по другому проблему можно решить в +3/+2A/+2B. В специальном режиме "ALLRAM" всё память замещалась RAM страницами.
Причём из 4-х возможных наборов два особенно удачны: в области 4000-7FFF можно получить обе экранные страницы, 5 и 7.

Ну и совсем идеально проблема решается в ATM2.
Благодаря уникальному менеджеру памяти, позволяющему включить любую страницу, хоть RAM хоть ROM в любом из 4-х окон адресного пространства.


К сожалению кроме МикроАРТ никто больше до менджера памяти не додумался. Хотя идея лежит на поверхности и очевидна любому толковому АСМ-разрабочику. Кроме этого АТМ-менеджер умеет всего одним битом заменить один набор страниц на другой. В частности эта фича используется в элегантной хардварной реализации переключения 128к-48к ROM. Да-да, в АТМ2 бит D3 порта 7FFD переключает набор страниц менеджера памяти. И если наборы отличаются только номером ПЗУ, то получим поведение как на обычном 128к спектруме.


Рассмотрим мой случай. Для отрисовки каждого кадра мне необходимо, в зависимости от X позиции скроллинга, иметь один из прескроллированных тайловых наборов (4шт по 8кб). А также прескроллированные спрайты (порядка 9-16кб).
Это достаточно крупные величины для спектрума. И даже замена ROM в окне 0000-3FFF на страницу RAM не помогает (сомневающиеся могут пересчитать самостоятельно).

В АТМ2 всё отлично. А учитывая его безвейтовость, турбу и палитру - это абсолютный лидер по качеству картинки и по скорости отрисовки. И ещё запас прочности остаётся.

В +3/+2A/+2B все данные для отрисовки кадра умещаются в RAM благодаря возможности переключать экраны в 4000-7FFF. Хотя грань возможностей уже близка.

В классическом 128, даже с RAM вместо ROM, приходится извращаться. Мешает прибитая 5-ая страница.
Либо копировать в динамический кеш, либо организовывать вырвиглазную отрисовку в один экран, рисуя часть линий фона и тут же пересекающие их кусочки спрайтов (как в Stormlord).
Получается медленее, гораздо сложнее, и добавляет артефакты в виде tear-инга и (редко) мерцания. Всё, приплыли, силёнок не хватает.

Получается парадоксальный вывод: даже Пентагон, с его безвейтовостью и длинным интом СЛИВАЕТ по быстродействию фирменному +3/+2A/+2B с медленной памятью.


Так что не демками едиными... Да и демки лишь следствие несовместимости из-за глючного INT-а (не буду развивать эту тему, все и так в курсе).

Titus
10.10.2011, 13:11
Толль вышел на тропу войны. Во всем виноват Чубайс... Ой, т.е. банки памяти) А написано в лучших традициях Алоне-кодера)

Screw
10.10.2011, 13:20
Толль вышел на тропу войны. Во всем виноват Чубайс... Ой, т.е. банки памяти) А написано в лучших традициях Алоне-кодера)

Когда по-теме сказать нечего начинается навешивание ярлыков и прочий оффтопик. Ай-ай-ай, обидели пентагон. А возразить нечем, потому что все аргументы железные. На самом деле это грустно, потому что в моём случае поддержка всего отличного от АТМ и +3 становится настоящей занозой в заднице. Поддержка в несколько раз сложнее основого кода. Абсурд! Накипело, вот и решил высказаться.

Titus
10.10.2011, 13:29
Когда по-теме сказать нечего начинается навешивание ярлыков и прочий оффтопик. Ай-ай-ай, обидели пентагон.
Я не согласен с вами. Страницы 128 спектрума может сделаны и не лучшим образом, но, на мой взгляд, никаких принципиальных проблем для создания игр не несли. Отсутствие игр более высокого класса, заточеных именно под 128кб - это точно не их вина. Основной парк машин - это 48кб. Какой смысл делать игру только под 128? Коммерчески это малооправдано. Тогда единственный вариант 48/128. А это, извините, только тюнинг, в той или иной степени, что и видим в играх. Например, в Dizzy5 - это AY-музыка, дополнительная графика, анимация и т.д.

Screw
10.10.2011, 13:41
Во-первых: почему на Вы ? Давай на "Ты", как принятно в интернете. В некоторых кругах обращение на "Вы" даже считается оскорблением оппонента.


Я не согласен с вами. Страницы 128 спектрума может сделаны и не лучшим образом, но, на мой взгляд, никаких принципиальных проблем для создания игр не несли.

Прочти, пожалуйста, мой первый пост внимательно. Там детально расписаны именно ПРИНЦИПИАЛЬНЫЕ проблемы.


Какой смысл делать игру только под 128? Коммерчески это малооправдано.

Нет, ты точно споришь даже не потрудившись почитать о чём. Этот момент я тоже осветил, и нисколько не спорю с 48/128.

ZEman
10.10.2011, 13:43
Titus, именно так, подавляющее большинство пользователей спеки имели у себя 48к, 128к были мало распостранены у нас в Омске пользователей 128к можно было чуть-ли не польцам рук пересчитать, зато 48к был практически у всех.
разумеется при этом было невыгодно делать или продавать только для 128к спеки игры.

Screw
10.10.2011, 13:50
Titus, именно так, подавляющее большинство пользователей спеки имели у себя 48к,

Я с этим не спорю, как и не спорю с большей коммерческой выгодой от 48/128 релизов. Но были ведь 128-only игры. К ним аргумент "выгоды" не применим. И всё-таки они юзали расширенную память весьма примитивно.


128к были мало распостранены у нас в Омске


разумеется при этом было невыгодно делать или продавать только 128к спеки.

Во-первых причём тут ваш омск ? Омские пользователи не делали никакой погоды в общей картине.
Во-вторых: причём тут выгода для разработчиков игр ? От пиратства разработчики не получали ни копейки. А выгода пиратов-барыг абсолютно неинтересна - она никак не влияет на качество софта.

siril
10.10.2011, 13:57
ZEman, именно! На пользователей Омска производители игр и ориентировались =)

Screw - прав, если делать быструю/оптимизированную/красивую выкидку на экран, кэш - не вариант (а иначе придётся из верхних страниц по #c000 данные скопировать в память #4000-bfff, потом по тем же адресам #c000 врубить нужную страницу экрана, и уже потом вывести всё на него. слишком много накладных расходов.)

Если хотя-бы можно было второй экран врубать в #4000 - это бы устранило накладные расходы на кэш, в конце концов процедуры выброса графики можно продублировать по всем страницам, если нужно. Screw прав, 128k игры не стали качественно новым рывком именно по причине неоптимальной работы с банками экрана (не в ту область маппятся).

Titus
10.10.2011, 14:05
Товарищи, где вы видели игры, в которых одновременно на текущем экране используется вся графика и вся карта? Имхо, проблема мгновенного доступа сразу ко всем банкам памяти весьма надуманная.

Screw
10.10.2011, 14:11
Товарищи, где вы видели игры, в которых одновременно на текущем экране используется вся графика и вся карта?

На одном экране или в одной локации ? У меня в одной локации UP TO 51 тайл размерами 32х32 пикселя. При этом они идентичны оригиналу с NES. Что в прескроллированном виде даёт ровно 8кб. А всего таких тайлов больше 230. Тайловые карты, если считать экранами, дают почти 500 экранов (сравним со скромными 105 в Dizzy5)

Если их подготавливтаь динамически по ходу скролла - будет тормозно. У меня же 25fps почти во весь экран (на АТМ2 во весь).


Отсюда проблема мгновенного доступа сразу ко всем банкам памяти весьма надуманная.

Предложи мне эффективное решение для моего случая, я даже пиво поставлю.

Titus
10.10.2011, 14:27
На одном экране или в одной локации ? У меня в одной локации UP TO 51 тайл размерами 32х32 пикселя. При этом они идентичны оригиналу с NES.
Можно ссылочку на скриншоты и игру?

---------- Post added at 14:27 ---------- Previous post was at 14:12 ----------

И кстати, раз уж зашла речь о NES, то там окошко для графики всего 8кб. И ничего - шикарные игры.

Vadim
10.10.2011, 14:45
Screw, всё верно написал. О убогости мендежера памяти Спектрум-128 я писал ещё в 1998г, что делали всё по пьяни))) Не имея хотя бы 2-х окон для проецирования страниц толковое ничего не написать. Если для скорости мы сдвигаем спрайты в ОЗУ, они много занимают, если страницы прилеплены намертво - жесткое ограничение на кол-во спрайтов и т.д. и т.п. Т.е. увеличение общего кол-ва страниц дело мало меняет. И на профи, жаль, что не сделали 4 окна, или хотя бы 2. Весьма бы многое упростилось.

---------- Post added at 16:45 ---------- Previous post was at 16:44 ----------


И кстати, раз уж зашла речь о NES, то там окошко для графики всего 8кб. И ничего - шикарные игры.
Из-за того, что аппаратный спрайтовый процессор. Ничего не надо печатать поверх фона и не надо его потом восстанавливать. Аналогичная вещь на платформе c CPU Z80 - MSX-2, MSX2+. Игры на порядок лучше чем в дендике.

Titus
10.10.2011, 14:47
Из-за того, что аппаратный спрайтовый процессор. Ничего не надо печатать поверх фона и не надо его потом восстанавливать. Аналогичная вещь на платформе c CPU Z80 - MSX-2, MSX2+. Игры на порядок лучше чем в дендике.
Человек сетовал не на проблемы печати поверх фона, а на недостаток памяти для тайлов.
И где игры на порядок лучше, чем на NES? На MSX? Не смешите мои подошвы. По пальцам пересчитать что-то приличное. А на NES их сотни.

Vadim
10.10.2011, 14:53
Человек сетовал не на проблемы печати поверх фона, а на недостаток памяти для тайлов.

Конечно он писал не о том, ты ж о NES заговорил. Там игры хороши именно из-за аппаратной графики, не более того. Движок софтверный там по сути один, игры отличаются спрайтами и музыкой. Что то совсем иное там сделать очень сложно (но можно). А на спектруме мы имеем одни минусы, одно окно это раз, спрайтвого процессора нет это два.

---------- Post added at 16:53 ---------- Previous post was at 16:52 ----------


Из-за того, что аппаратный спрайтовый процессор. Ничего не надо печатать поверх фона и не надо его потом восстанавливать.

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

Titus
10.10.2011, 15:03
Следовательно, если бы проца не было бы - были бы тормоза аналогично спектруму и шикарных игр там не было бы. Неужели непонятно?
Тема-то не об этом. Автор предположил, что хороших игр нет исключительно из-за плохой адресации памяти. А вот в АТМ2 адресация хорошая. Я конечно сперва решил, что это завуалированная реклама АТМ... но потом как-то одумался...

Vadim
10.10.2011, 15:18
Я прекрасно понимаю о чем он говорит. Знаю о положении дел давно. Ещё в середине 90-х мечтал о 4-х оконном менеджере, но АТМ мне не нравился. Слишком был дорог, капризен и было мало софта под расширенный режим. Всё о что писал топикстартер мне знакомо и понятно, я поддерживаю высказывания. Про NES была всего одна фраза


Даже в NES с её, по сути, 32кб адресного пространства для кода/данных, банки памяти можно было переключать в обоих 16кб окнах.

Он сказал что с двумя окнами уже можно делать вещи. Оно и понятно, у 8086 проца так же имеется минимальный набор сегментных регистров, SX и DX. Что бы организовывать копирование из одной области памяти в другую (не пересекающиеся).

На профи, в МикроДОС, а вернее в CBIOS, автор для обмена данными со страницами ОЗУ сделал буфер на 129 байт и две процедуры, писать в буфер и читать из него. Иначе сделать просто нельзя, когда у нас только одно окно. Имея 2 окна такой проблемы не будет.

Screw
10.10.2011, 15:22
Можно ссылочку на скриншоты и игру?

Отправил приватом.

И кстати, раз уж зашла речь о NES, то там окошко для графики всего 8кб.

У меня и того меньше. Символов 8х8 пикселей всего ~500 штук. То есть порядка 5кб с атрибутами. Но для скорости я их группирую и прескроллирую в рантайме для каждой локации. И уже требуется 32кб. А ещё спрайты.


Ничего не надо печатать поверх фона и не надо его потом восстанавливать.

У меня весь экран перерисовывается целиком. Стирать не надо. Проблемы в:
1) наложении тайлов и спрайтов. В NES это делает аппаратно, я софтверно. Когда есть теневой экран - всё несложно. А когда его нет начинается гемморой.
2) Скорость отрисовки.

Vadim
10.10.2011, 15:29
У меня весь экран перерисовывается целиком.

Тогда нужен аппаратный LDIR что бы побыстрее кидать данные в экран. Стеком тут делать чрезвычайно сложно, даже бессмысленно, а по 16 тактов у LDI это очень долго. Надо 4-х плоскостной экран, 2 плоскости под фон, 2 под спрайты. Или ещё что нить, в таком роде.
А 2 экрана юзают чаще всего что бы спрайты не пропадали, что бы не мерцало. Если делать переключение, что фон на одном спрайты на другом это изврат.

balu_dark
10.10.2011, 15:35
Такое ашшушение что кто-то гамблинг переделывает под спек. ;)

Screw
10.10.2011, 15:35
Тогда нужен аппаратный LDIR что бы побыстрее кидать данные в экран.
Откуда-ж его взять на спектруме ? :)


Стеком тут делать чрезвычайно сложно, даже бессмысленно
Стек ещё и серъёзные ограничения на дизайн уровней накладывает. Рассматривал, но отказался.


а по 16 тактов у LDI это очень долго.
У меня на байт тратится 24 такта. Для 25fps вполне достаточно, а быстрее не сделать.


А 2 экрана юзают чаще всего что бы спрайты не пропадали, что бы не мерцало. Если делать переключение, что фон на одном спрайты на другом это изврат.
Чур меня, чур. Взрыающие глаза гигаскрины счетаю блевотиной. У меня два экрана юзаются исключительно как double-buffering.

Vadim
10.10.2011, 15:42
Откуда-ж его взять на спектруме ?
На спринтере есть. WELESOFT давал схемку простую на Z80DMA, если сделать хорошую игру, то ради неё желающий соберёт схемку. Это реальный вариант.

Screw
10.10.2011, 15:53
если сделать хорошую игру, то ради неё желающий соберёт схемку.

Ни в коем случае. Игра должна идти на стоковых машинах. Иначе это алко-демы получатся. Под которые проектируют железо.

moroz1999
10.10.2011, 16:03
В классическом 128, даже с RAM вместо ROM, приходится извращаться. Мешает прибитая 5-ая страница.
В смысле с RAM вместо ROM? Извиняюсь за глупый вопрос, их что, каким-то образом менять на ходу можно?


Либо копировать в динамический кеш, либо организовывать вырвиглазную отрисовку в один экран, рисуя часть линий фона и тут же пересекающие их кусочки спрайтов (как в Stormlord).А как насчет варианта с промежуточным экранным буфером с линейной адресацией, который после построения кадра стеком кидается на экран? Да, не очень шустро, но руки развязывает.

newart
10.10.2011, 16:12
В смысле с RAM вместо ROM? Извиняюсь за глупый вопрос, их что, каким-то образом менять на ходу можно?
На некоторых спеках вместо ПЗУ с адреса 0 можно втыкать банки (на скорпе например это юзается для запуска cp/m).



А как насчет варианта с промежуточным экранным буфером с линейной адресацией, который после построения кадра стеком кидается на экран? Да, не очень шустро, но руки развязывает.
Черный ворон, UFO... а вот интересно много ли и какие именно фирменные игры делают так же?

---------- Post added at 15:12 ---------- Previous post was at 15:11 ----------

Screw - ты как то признавался что ковырял много фирменных игрушек. Может напишешь обзорную статью по движка в следующий Крик? Было бы очень интересно почитать.

Screw
10.10.2011, 16:18
В смысле с RAM вместо ROM? Извиняюсь за глупый вопрос, их что, каким-то образом менять на ходу можно?

В том смысле что в банку 0000-3FFF включается страница ОЗУ вместо ПЗУ.


А как насчет варианта с промежуточным экранным буфером с линейной адресацией, который после построения кадра стеком кидается на экран? Да, не очень шустро, но руки развязывает.

У меня цель - 25fps. С промежуточным буфером моего размера скорость будет значительно ниже. Хотя это сильно упрощает подход к ущербным машинам, согласен. Прибитый в 5-ую банку экран и будет буфером. А перекидывать его в 7-ую банку стеком. Мерцание уйдёт и геммороиться со спрайтами не придётся. Надо подумать. А что до тормозов - да и фиг с ними, пусть мучаются. Или переходят на нормальную машину, типа АТМ или фирменного +3. Только Tear-инг этим всё равно не победить. Перекидывание всего экрана без вариантов пересечётся с лучом.

---------- Post added at 16:18 ---------- Previous post was at 16:14 ----------


На некоторых спеках вместо ПЗУ с адреса 0 можно втыкать банки

Если бы банкИ. Точнее страницЫ. Только одну, захардкоженную страницу. И это печально.


а вот интересно много ли и какие именно фирменные игры делают так же?

Да практически все. Но лишнее копирование сжирает очень много ресурсов. Очень немногие наоборот, рисуют сразу в экран. С кучей геммороя при наложении спрайтов. Зато они самые шустрые и самые плавные. Например Stormlord, Zynaps, Ghouls'n'Ghosts и т.д.



Screw - ты как то признавался что ковырял много фирменных игрушек. Может напишешь обзорную статью по движка в следующий Крик? Было бы очень интересно почитать.

Не так уж и много. Jerri ковырял гораздо больше, вот его бы уговорить на статью...

newart
10.10.2011, 16:25
Перекидывание всего экрана без вариантов пересечётся с лучом.
Ну можно ведь начать переброску выше луча...

---------- Post added at 15:25 ---------- Previous post was at 15:23 ----------


Если бы банкИ. Точнее страницЫ. Только одну, захардкоженную страницу. И это печально.
Буу. Вот ведь маразм, что стоило отвести 1 бит? 0 - работа с окном #c000, 1 работа с окном #0000. Хотя я не железячник, может очень сложно?

Screw
10.10.2011, 16:38
Ну можно ведь начать переброску выше луча...

Чрезвычайно сложно. Либо дополнительные тормоза. Банальный пример: ты закончил рендерить в буфер. Это не дема, где всё можно заранее расчитать. Откуда ты знаешь где луч ? Правильно, ниоткуда.

Вариант банальный:
1) ждём прихода прерывания (в среднем это пол-инта)
2) после прерывания ждём, когда луч уйдёт достаточно далеко
3) начинаем переброску, луч успевает отрисовать предыдущий кадр и нагоняет нас сзади. Это порядка инта.

Итого тратится больше 1.5 инта ТОЛЬКО на переброску без теаринга. Слишком дорогая цена.

---------- Post added at 16:38 ---------- Previous post was at 16:37 ----------


Вот ведь маразм, что стоило отвести 1 бит? 0 - работа с окном #c000, 1 работа с окном #0000. Хотя я не железячник, может очень сложно?

Несложно.В АТМ2 можно включать любую страницу, хоть RAM хоть ROM, в любую из 4-х банок. Но уже ничего не изменить, имеем то, что имеем.

newart
10.10.2011, 16:52
3) начинаем переброску, луч успевает отрисовать предыдущий кадр и нагоняет нас сзади. Это порядка инта.
Полтора инта! Если игра не совсем уж на весь экран, то тут и ldi справится.

---------- Post added at 15:52 ---------- Previous post was at 15:50 ----------


2) после прерывания ждём, когда луч уйдёт достаточно далеко
Зачем ждать? Можно отрендерить 2-3 фрейма музыки в дампы регистров, а в следущие прерывания играть из ее этого дампа.

Screw
10.10.2011, 16:58
Полтора инта!

Нет, не полтора. Переброска через POP HL : LD (NN), HL занимает 13 тактов на байт. Это ~80 тыс тактов на полный экран. А если экран чуть-чуть меньше то укладывается в INT. Но тем не менее. Очевидно что ТОЛЬКО бекбуфер для сравнительно большой площади сожрёт не меньше 1.5 интов. А 25fps это 2 инта на полный игровой цикл.

---------- Post added at 16:58 ---------- Previous post was at 16:55 ----------


Зачем ждать? Можно отрендерить 2-3 фрейма музыки в дампы регистров, а в следущие прерывания играть из ее этого дампа.

Ну нарендеришь ты 3000 фреймов музыки вперёд. А дальше что ? Основная проблема в том что мы не можем начать рисовать новый кадр не перекинув хотя бы часть данных. Иначе мы будем стирать ещё не отрисованные данные. А значит какую бы условно-полезную нагрузку в это ожидание не впихивай - рендеринг она не ускорит.

newart
10.10.2011, 17:10
У нас тема о чем? О том что игры вполне себе можно писать и под 128к в том как оно есть.
Да с нормальным менджером они работали бы быстрее, но и с буфером можно делать отличные играбельные игры, типа ЧВ/UFO, которые под 48к ну никак было бы не сделать.

Screw
10.10.2011, 17:22
Да с нормальным менджером они работали бы быстрее, но и с буфером можно делать отличные играбельные игры

Ты что, издеваешься ? FPS вдвое ниже на ровном месте. Вот реально на ровном месте, даже тормозные фирменные компы дают более быстрый выхлоп. С такими тормозами это отличные и играбельные ? Ладно не фреймовые, фреймовость на спеке недостижима. Она уже сгубила кучу попыток написать Марио "как на денди". Но хотя бы 25 FPS. Можно уменьшать плавность, снижая FPS но увеличивая шаг между кадрами. В пределе получим очередной познакоместный Savage. Нафиг-нафиг.


типа ЧВ/UFO, которые под 48к ну никак было бы не сделать.

Задолбали медноноговым, честное слово. Я про его ЧВ ещё в первом посте написал. Что есть кроме него ?

---------- Post added at 17:22 ---------- Previous post was at 17:20 ----------


Да с нормальным менджером они работали бы быстрее

Не просто быстрее, а вдвое быстрее. Это дохрена. Даже дохренищщща :)

newart
10.10.2011, 17:32
Ты что, издеваешься ? FPS вдвое ниже на ровном месте.
Если использовать буфер, то скорость будет идентичная у 48к и 128к.
А вот кидать сразу на экран реализация 128к действительно не позволяет, но таких игр (с твоих слов) и под 48к очень мало.
Однако даже в таком виде 128к игр отечественными програмистами было сделано черезвучайно мало.
Потому что целью то у большинства игроделов было не игру сделать, а борьба с комплексами zx VS nes VS pc...

Screw
10.10.2011, 17:38
Однако даже в таком виде 128к игр отечественными програмистами было сделано черезвучайно мало.

Не только отечественными, но и "импортными".



Потому что целью то у большинства игроделов было не игру сделать, а борьба с комплексами zx VS nes VS pc...

У наших-то да. А у фирмачей никаких комплексов не было. Но им, как я подозреваю, идиотское переключение страниц сильно портило кровь. А +3/+2A/+2B проблему решали лишь частично, да и появились слишком поздно, на закате эпохи спектрумов. Наши же железячники оказались неспособны привнести действительно полезные фичи, уныло штампуя однообразные клоны. Хотя имели все шансы. За редким исключением, которое (АТМ2) оказалось слишком дорогим и не копировалось нахаляву из-за ПЛМ, а значит не стало массовым.

newart
10.10.2011, 17:48
Не только отечественными, но и "импортными".
Импортные были обусловлены рынком.
Сейчас под топовое железо тоже никто игры не затачивает.

Killer
10.10.2011, 17:51
Хмм , поздно подошел, на Профике любую страницу в экран можно лепить, Помница ради прикола в бомбера играл в расширенном экране, бомбить намного проще было)

Titus
10.10.2011, 17:59
1) ждём прихода прерывания (в среднем это пол-инта)
2) после прерывания ждём, когда луч уйдёт достаточно далеко
3) начинаем переброску, луч успевает отрисовать предыдущий кадр и нагоняет нас сзади. Это порядка инта.
Не надо ничего ждать. Пришел инт, начинай рисовать нижнюю часть экрана. Когда нарисовал, луч уже пройдет верхнюю часть. Далее игровая логика, подготовка ифнформации для следующего кадра и рисуй верхнюю часть экрана информацией предназначенной для следующего кадра. А луч в это время рисует нижнюю часть экрана. Это для случая, если игра 50фпс, но с одним экраном.

Killer
10.10.2011, 18:02
Не надо ничего ждать. Пришел инт, начинай рисовать нижнюю часть экрана. Когда нарисовал, луч уже пройдет верхнюю часть. Далее игровая логика, подготовка ифнформации для следующего кадра и рисуй верхнюю часть экрана информацией предназначенной для следующего кадра. А луч в это время рисует нижнюю часть экрана. Это для случая, если игра 50фпс, но с одним экраном.

Для разделения 2/3 и 1/3 идеальный вариант!!!

Screw
10.10.2011, 18:04
Это для случая, если игра 50фпс, но с одним экраном.

Даже не смешно. Какие 50fps в играх ? Их со статическим-то фоном по пальцем одной руки можно пересчитать. А со скроллом нету ни одной фреймовой.

newart
10.10.2011, 18:24
Даже не смешно. Какие 50fps в играх ? Их со статическим-то фоном по пальцем одной руки можно пересчитать. А со скроллом нету ни одной фреймовой.
А ты глянь демку Worms от алко...

Sayman
10.10.2011, 18:26
Хмм , поздно подошел, на Профике любую страницу в экран можно лепить, Помница ради прикола в бомбера играл в расширенном экране, бомбить намного проще было)

И совсем даже не любую. Страницы 4 и 38 для 0го экрана (пиксели атрибуты соответственно) и страницы 6 и 3а для 1го экрана. Есть варианты впечатывания экрана в адреса 4000 или с000. При включённём бите 6 первый экран (страница 6) впечатываеца на адрес 8000 (атрибуты на адресах согласно бита 4).

Screw
10.10.2011, 18:28
А ты глянь демку Worms от алко...

О да, демок мы навидались. И марио в 50fps, и диззи и чего там только не было. Только вот беда - не доходят эти демки до релиза. И не только из-за потери интереса авторов, но и из-за нулевого запаса прочности движка. Чуть шаг в сторону и нету больше 50fps.


Хмм , поздно подошел, на Профике любую страницу в экран можно лепить

А вот это замечательно. Значит Профик не ущербный. Приятная новость. Не АТМ2, конечно. Но даже немного лучше чем фирменный из-за безвейтовости. И значительно лучше всяких кривых поделий типа пентагона.

---------- Post added at 18:28 ---------- Previous post was at 18:27 ----------


И совсем даже не любую.

А что с синклер-экранами ?

Sayman
10.10.2011, 18:49
Синклер экраны на своих местах...в режиме синклера...они не изменны. И атм2 (именно атм2 а не атм3) не безвейтовый. Атм2 самый медленный клон и в турбе и без неё...

Killer
10.10.2011, 18:54
Не совсем любую, но порты позволяют.

Screw
10.10.2011, 18:58
Синклер экраны на своих местах...в режиме синклера...они не изменны.

Забираю свои слова про неущербность назад.



И атм2 (именно атм2 а не атм3) не безвейтовый. Атм2 самый медленный клон и в турбе и без неё...

Ты занимаешься подменой понятий. Я о вейтах в обычном режиме, без турбирования. Фирменные машины (и некоторые наши клоны) вейтовые, в contended памяти, зашаренной с видеоконтроллером. АТМ безвейтовый.

P.S.: А турбо - просто приятное небольшое ускорение. За счёт него в ATM можно сделать 25fps fullscreen smooth scrolling. В нетурбированных машинах видимая часть будет неcколько меньше полного экрана, чтобы не уронить fps.

ace210
10.10.2011, 21:47
Когда руки дошли до 128 машины и реализации на ней PreliminaryMonty (http://p-monty.narod.ru/index.html#PreliminaryMonty)тоже долго плевался с этим единственным окном проецирования. Я то думал, 2 экрана, на одном рисуй, другой кажи, чего может быть проще. А оно оказалось... тьфу. В итоге сделал по этому варианту:

2) Использовать два экрана, но серъёзно усечь данные, жертвуя либо качеством либо скоростью, либо и тем и другим, чтобы уместить отрисовку кадра в нижней памяти..

SeaDragon (http://p-monty.narod.ru/index.html#SeaDragon) сделал 48K. Сделав движок, похожий на Zynaps, только проще.

В итоге, методом исключения, пришел к выводу: т.к. у буржуев нету ни ATM ни Profi, то делать фреймовые игры можно только движком Zynaps, StormLord. Т.е. отрисовывая за/перед лучом познакоместно одновременно фонСпрайты. Сложно, но всё таки можно.

Screw
10.10.2011, 21:59
В итоге, методом исключения, пришел к выводу: т.к. у буржуев нету ни ATM ни Profi, то делать фреймовые игры можно только движком Zynaps, StormLord.

У буржуев есть +3/+2A/+2B с их ALLRAM mode. Не айс, но гораздо лучше чем у всех остальных (ну кроме АТМ2). А Профи, как оказалось, такой же убогий как Пентагон/Scorpion/etc.

ace210
10.10.2011, 22:02
А у многих ли буржуев есть этот +3 ? Стоит ли начинать разработку под него? Может разрабортку увидят всего 3 человека? есть ли смысл?

Shadow Maker
10.10.2011, 22:05
У крайне небольшого количества буржуев оно есть. Так что писать надо по методу 48k.

ace210
10.10.2011, 22:07
Жалко, конечно, что сэр Синклер не сделал вовремя нормальный пейджинг. Вот все игры и остались на уровне 48К.

alone
10.10.2011, 22:12
128K is dead.

Screw
10.10.2011, 22:14
А у многих ли буржуев есть этот +3 ?

Их дохрена. Реально дохрена. Да и купить совершенно не проблема, на ебее россыпями лежат. Я себе сразу 5 штук прикупил за весьма скромную цену. Очень сомневаюсь что когда-либо напяют столько популярных здесь пентев, сколько тогда этих машин в день делали.

А во-вторых никто не заставляет делать +3 only. Детектим. Есть нормальное АТМ или +3 железо - рисуем просто и быстро. Нету - изгаляемся с ущербным железом.

---------- Post added at 22:14 ---------- Previous post was at 22:13 ----------


У крайне небольшого количества буржуев оно есть. Так что писать надо по методу 48k.

Не гони. Я лично общался с MikeZT на DiHalt'11. Он сказал что можно не заморачиваться с 48к, у всех современных западных спектрумистов есть минимум 128к. Что неудивительно, учитывая их стоимость. Самый дешёвый свой +2 я купил за 11 фунтов. Самый дорогой +3 за 50. Учитывая услуги посредника (они шипились только по UK) и стоимость пересылки (БП весьма тяжёлый) получилось примерно 100 баксов за комп. У нас на молотке столько гнилой 48 ленинград стоит. А эти как будто вчера из магазина.

ace210
10.10.2011, 22:18
Дайте что нибудь глянуть как оно выглядит с 2 экранами проецирования. Какую нибудь качественную разработку +3 или ATM only. Хоть присмотрюсь пока.

Shadow Maker
10.10.2011, 22:18
Ну да, тока чет на вос форуме нифига на это не похоже, ну да ладно, не я же игру пишу.

moroz1999
10.10.2011, 22:19
Нет, не полтора. Переброска через POP HL : LD (NN), HL занимает 13 тактов на байт. Это ~80 тыс тактов на полный экран. А если экран чуть-чуть меньше то укладывается в INT. Но тем не менее. Очевидно что ТОЛЬКО бекбуфер для сравнительно большой площади сожрёт не меньше 1.5 интов. А 25fps это 2 инта на полный игровой цикл.А если сделать компромисс - всю игровую логику считать на прерываниях, а выводить на экран так часто, как получается в зависимости от ресурсов?
Тут, правда, есть риск, что на нетурбированном ZX малоиграбельно будет (7-8 fps), но можно сделать регулируемым размер игрового окна.

ace210
10.10.2011, 22:20
в самом деле, на вос форуме ничего не припомню +3 only. Никто не делает почему-то.

Shadow Maker
10.10.2011, 22:20
Просто ну я хз, какой смысл делать два движка? Ты все равно будешь делать два варианта, такую прорву пентагонов нельзя обделять.

ace210
10.10.2011, 22:25
7-8 fps будет полный отстой.
Так что переброска через бекбуфер динамическую игру не даст.

Screw
10.10.2011, 22:27
Ты все равно будешь делать два варианта, такую прорву пентагонов нельзя обделять.

К сожалению да, приходится изващаться чтобы поддержать пентагоны и прочие скорпионы. Но это вынужденная мера. Два движка не нужно. Разница только в рендеринге. На пентагонах он более тормозной и мозгодробительный. Игровая логика одинаковая в обоих случаях. Делать одинаково ущербный вариант я не намерен. А то получается эдакая совковая философия - пусть дерьмо, зато у всех одинаковое. Тем более что сложности с фирменным железом и АТМ минимальные.

Shadow Maker
10.10.2011, 22:32
Так если рендер и выглядеть будет одинаково, в чем смысл тогда? Юзер и не заметит.

Screw
10.10.2011, 22:34
Так если рендер и выглядеть будет одинаково, в чем смысл тогда? Юзер и не заметит.

Разница будет в более тормозной отрисовке, tear-инге и редком мерцании спрайтов. Я в первом посте детально описывал.

Ну и в мозговыносящем коде тоже.

Shadow Maker
10.10.2011, 22:48
Ну я в игру с мерцающтми спрайтами и рваниной в 2011 году играть не буду :) так что даже не знаю, смысл разве есть такое делать?

Screw
10.10.2011, 23:22
Ну я в игру с мерцающтми спрайтами и рваниной

Мерцание и рванина на уровне Stormlord/Zynaps.



в 2011 году

А причём тут год ? Спек что, мощнее за это время стал ?



играть не буду так что даже не знаю, смысл разве есть такое делать?

То есть предлагаешь забить болт на Пентагоны и прочую кривоту ? Пусть если уж идёт - то красиво и плавно. А значит +3 и АТМ2.

Shadow Maker
10.10.2011, 23:31
Штормлорд это жесть, так не надо.

Ну времени стало больше, понтов тоже, информации тем более, никому не надо изобретать велосипед, все варианты уже испробованы.

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

alone
11.10.2011, 12:54
Да мне вот честно говоря пофигу, у меня эмулятор
Таких, как ты, 99,(9)%.

kyv
11.10.2011, 13:42
Disclaimer:
Особенно полезно читать всем любителям пентагонов и ненавистникам фирменных машин.
Так же надо вдумчиво читать железячникам. Как не свистоперделки, а весьма тривиальная вещь может сильно облегчить жизнь программисту.

Вы когда-нибудь задумывались, почему 128k игры такие убогие ? Нет, серъёзно. Они качественно не отличаются от 48к. (Возможно есть несколько исключений. Кстати - кроме ЧВ какие ?) .... Но! Были ведь 128к-only игры!

мнение геймера ......
Бредни какие-то. Игр only 128к было выпущенно ничтожно мало(версии 48 +128-й режим с ау и доп графикой ,а также аля отдельная 48к и отдельная 128к не в счёт,тк за основу естественно бралась 48 к версия)
из чисто 128к из моей пропитой памяти:
The Addams Family - шедевр(жутко сложный геймплей)
Adidas Championship Football - красиво,шустро но не играбельно
Battle Command -шедевр
Carrier Command-шедевр
Final Fight - шлак
Narc - движок тормозной, но мне нравится :)
Navy Seals - шедевр (1-я часть)
Robocop 3 - на троечку,отвратительная графика всё портит.
SWIV - шедевр
Total Recall -шедевр
Saint Dragon -шедевр

ace210
11.10.2011, 13:44
а есть +3 only?

goodboy
11.10.2011, 13:56
а есть +3 only?несколько версий игр от OperaSoft : corsarios,mot и.т.д. - там как раз используется смена страниц.
в DoubleDragon2 и NarcoPol используется страница памяти на месте ПЗУшной (с 0)

хотя эти игры only условно, поскольку есть их версии (в чём-то урезанные) и под 48к

из 128к only ещё вспоминается SimpsonBart и TimeStoodStill ну и второй Robocop + Gauntlet 3

alone
11.10.2011, 17:50
Total Recall -шедевр
Не тянет на 128К. На 48K с подгрузкой разве что.

---------- Post added at 17:50 ---------- Previous post was at 17:43 ----------

Вот, например, 48K версия Terminator 2. http://vtrdos.ru/gamez/t/TERMIN2.ZIP
Найдите хоть одно отличие от оригинала (оригинал 128K only).

Totem
11.10.2011, 18:45
alone, Recall шедевральная игрушка
вам минус бал за то, что не прошли:)
если память не изменяет там 2 экрана юзается на гонках

kyv
11.10.2011, 19:47
Не тянет на 128К. На 48K с подгрузкой разве что.

---------- Post added at 17:50 ---------- Previous post was at 17:43 ----------

Вот, например, 48K версия Terminator 2. http://vtrdos.ru/gamez/t/TERMIN2.ZIP
Найдите хоть одно отличие от оригинала (оригинал 128K only).

нашел! ;)
http://www.youtube.com/watch?v=l-2oWCSElWk

moroz1999
11.10.2011, 21:08
в DoubleDragon2 и NarcoPol используется страница памяти на месте ПЗУшной (с 0)А где можно почитать о моделях, на которых это поддерживается?

goodboy
11.10.2011, 21:24
А где можно почитать о моделях, на которых это поддерживается?+2a/b,+3 http://www.worldofspectrum.org/ZXSpectrum128+3Manual/chapter8pt24.html

scl^mc
12.10.2011, 08:26
Narc - движок тормозной, но мне нравится
narcopolice идет и на 48к. так же как и the hostages

Rindex
12.10.2011, 12:36
Из нового для 128к - Genesis: dawn of a new day (http://zx.pk.ru/showthread.php?t=14337&highlight=Genesis%3A+Dawn+Day). Шуму было на WoS-e полно, что мол почему не для 48к и всё такое. Особенно там один очень старался. Однако нашлись и нормальные люди, которые ему сказали, если надо - пойди 128, +2 или +3 купи и не пи..., или вот тебе исходники с офф-сайта, бери и делай для 48к. Результат - заткнулся сразу.

kyv
12.10.2011, 15:37
narcopolice идет и на 48к. так же как и the hostages
NARC - совершенно другая игра
http://www.worldofspectrum.org/infoseekid.cgi?id=0003360

Lethargeek
13.10.2011, 21:44
Мерцание и рванина на уровне Stormlord/Zynaps
почему "на уровне", а не лучше, и зачем для этого железные навороты?
по прикидкам, можно сделать фреймовый штормлорд даже на тормозном 48К
честная прокрутка экрана отъест полфрейма

goodboy
13.10.2011, 22:50
может и не в тему, но по последним данным брат Тима Фоллина - талантливый программист Майк Фоллин теперь `работает` священником

jerri
13.10.2011, 23:56
почему "на уровне", а не лучше, и зачем для этого железные навороты?
по прикидкам, можно сделать фреймовый штормлорд даже на тормозном 48К
честная прокрутка экрана отъест полфрейма

Пруфы!
Оригинал как раз полфрейма готовится - полтора рисует

Totem
14.10.2011, 00:51
Теория проста, как 2x2- классика, будь то 128 +2 +3 или пентагон, не может выдать заветных 50 кадров/c ,
думы вольфы смешны, до отвращения на zx, зачем прыгать через голову не понятно,
вы только попробуйте миф-принц-дизиков в 128 упихать красочно, это гораздо практичнее и интереснее чем влезать во фрейм, который отрадясь зинапса никто и не сделал.

cherkasy
14.10.2011, 02:04
может и не в тему, но по последним данным брат Тима Фоллина - талантливый программист Майк Фоллин теперь `работает` священником

да, это так. об этом я писал в своем журнале.
если какие есть вопросы, спрашивайте. но он занятой человек.

Lethargeek
14.10.2011, 05:35
Пруфы!
Оригинал как раз полфрейма готовится - полтора рисует
хехехе :p
присмотрись к скриншоту
что ты видишь?

Screw
14.10.2011, 09:38
влезать во фрейм, который отрадясь зинапса никто и не сделал.

Зинапс двухфреймовый (25 fps)


честная прокрутка экрана отъест полфрейма

Пруф в студию! На Z-80 даже тупое перекидывание экрана занимает больше фрейма. Ну за исключением изврата LD HL, N: PUSH HL, который всё-таки не копирование. Да и требует почти фрейм а ты прокрутку в полфрейма захотел.

Полфрейма занимает заполнение экрана стеком. Одним и тем же паттерном (очень любимо в демках). Но какая же это прокрутка ? Это херня полнейшая. Как только начнёшь выводить что-то похожее на уровень - обвязка съест ещё полфрейма. Плюс из-за небольшого числа регистров и стыков смежных тайлов внутри знакоместа имеем некислое ограничение в количество разных тайлов на одну строку


присмотрись к скриншоту
что ты видишь?

Теаринг во всей красе. И чо ? Я про него писал.

kyv
14.10.2011, 10:33
ущё вспомнил читсто 128к - led storm
http://www.worldofspectrum.org/infoseekid.cgi?id=0009369

moroz1999
14.10.2011, 11:10
http://www.worldofspectrum.org/infoseekadv.cgi?what=1&regexp=&yrorder=3&year=1994&type=game&players=0&turns=0&memory=5&language=0&country=0&licence=0&feature=0&publi=0&release=0&format=0&scheme=0&scorder=1&score=0&have=1&also=1&sort=1&display=3&loadpics=1
Все 128only игры, выпущенные до 94го года.

Totem
14.10.2011, 11:52
Screw, мдя почему то всегда казалось, что 50:)

стыков смежных тайлов внутри знакоместа имеем некислое ограничение в количество разных тайлов на одну строку

делал линейный виртуальный экран, в попытке сотворить что то подобное эназе волд, со скролом в знакоместо на 1/2 реального экрана, перерасчет координат
для вывода в реальный убивает практически все приемущества, выводилка лежала
полностью в другой странице. Хотя можно и здорово хитрить, при нормальном формате уровня, например не забирать в буфер фон в местах, где на героя накладывается еще например разрушенная стена и частично перекрывает его, а сразу
печатать этот участок, проверяя на пресечение спрайта героя с этой областью.
Получается быстрее чем, забирать в буфер такие места. фон забирать стеком под героем и врагами.
Конечно это накладывает ограничения на размеры спрайтов и их количество, на экране.
Где то выкладывал уцелевший черновик.
ИМХО спеку не то, что бы не хватает фреймовости, игры губит однообразие уровней и минимум деталей,
тут война уже не за фпс, а за каждый байт,расширяя игровой мир-например проходные уровни
,где по одним координатам печатается разный фон и дополняется надписями, сбитой штукатуркой
и тд.
Погоня за фреймом нужна только в демках, сделать игру на 2 порядка больше и интересней чем тот же
Navy или Recall вполне возможно.амиговские версии кстати жутко страшные.
Щас желею, что не потратил больше времени на подготовку и более детального описание спецификаций,
Хотелось быстрей быстрей, ну и как всегда это подводит, месяц работы с крандашом и табличками
в экселе меня бы не убил, а хорошую идею и проект я загубил и время потратил можно сказать впустую:(

Lethargeek
14.10.2011, 12:06
Теаринг во всей красе
Где, на неподвижном скриншоте? :v2_wacko:

Лично я там вижу:
1) кучу пустого пространства
2) кучу одинаковых тайлов 16x16

дальше продолжать или кто-нибудь уже догадался? ;)


Как только начнёшь выводить что-то похожее на уровень - обвязка съест ещё полфрейма
ихихи... а скриншот на уровень не похож?


Плюс из-за небольшого числа регистров и стыков смежных тайлов внутри знакоместа имеем некислое ограничение в количество разных тайлов на одну строку
Нет, на весь экран; и запас на спрайты чтоб оставался
(но в штормлорде в основном куча спрайтов возникает где фона мало)
Стыки пофиг, там же сплошь одинаковые тайлы длинными полосами

---------- Post added at 12:06 ---------- Previous post was at 12:02 ----------


ущё вспомнил читсто 128к - led storm
http://www.worldofspectrum.org/infoseekid.cgi?id=0009369
LED Storm 48/128 (я на ленинграде в него игрался)

Slider
14.10.2011, 12:16
http://www.worldofspectrum.org/infoseekadv.cgi?what=1&regexp=&yrorder=3&year=1994&type=game&players=0&turns=0&memory=5&language=0&country=0&licence=0&feature=0&publi=0&release=0&format=0&scheme=0&scorder=1&score=0&have=1&also=1&sort=1&display=3&loadpics=1
Все 128only игры, выпущенные до 94го года.
В этом списке также половина игр 48/128 ;)

ace210
14.10.2011, 13:55
Lethargeek, что ты в спор ввязался и темнишь? покажи уже скроллинг свой, чтоб всем было ясно.
И еще. Я хотел бы пообсуждать твой скролл отдельно по выводу спрайтов. Мне не совсем ясно как там будет со спрайтами.

balu_dark
14.10.2011, 14:11
Тут кстати посетила глупая идея - а почему никто не пробовал нарисовать игруху в черезстрочном режиме? то есть - тупо через строку весь вывод и скроллинг?

Titus
14.10.2011, 14:12
Тут кстати посетила глупая идея - а почему никто не пробовал нарисовать игруху в черезстрочном режиме? то есть - тупо через строку весь вывод и скроллинг?
Не будет красиво.

Screw
14.10.2011, 14:12
Где, на неподвижном скриншоте?

Конечно. Чётко на ножке гриба. Складывается впечатление что ты понятия не имеешь, что такое Tearing. Гугл в помощь.



Лично я там вижу:
1) кучу пустого пространства
2) кучу одинаковых тайлов 16x16

дальше продолжать или кто-нибудь уже догадался?

Лучше бы не гаданием занимался, а открыл игру в дизассемблере. Штормлорд не рисует стеком. Стеком рисовали в Ghosts'n'Goblins. Но, тем не менее, только 25 fps. И то не на полный экран.


ихихи... а скриншот на уровень не похож?

Ты код давай покажи. Который за полфрейма экран отрисует.

jerri
14.10.2011, 14:13
balu_dark, и что это даст?
чисто теоретически

Screw
14.10.2011, 14:14
Я хотел бы пообсуждать твой скролл отдельно по выводу спрайтов. Мне не совсем ясно как там будет со спрайтами.

Да на самом деле так же, как и в Stormlord. Нарисовали несколько строчек, наложили спрайты. Там проблема в том что надо пуши на лету генерить и очень однообразный ландшафт получается. См. уровни в Ghost'n'Goblins, очень хорошо видно ограничение на количество разных тайлов в одной строке.

Titus
14.10.2011, 14:16
Конечно. Чётко на ножке гриба. Складывается впечатление что ты понятия не имеешь, что такое Tearing. Гугл в помощь.
Мы это называли всю дорогу 'попадание под лучик'. Тиринг как-то не в ходу.
Кстати, на грибе я этого че-то не увидел.

Screw
14.10.2011, 14:22
Кстати, на грибе я этого че-то не увидел.

Та часть, которая без bright, сдвинута относительно верхней шляпки на 2 пикселя вправо. Если её подвинуть влево - то гриб будет более красивым. Хотя, конечно, это может быть и арт такой, кривоватый. Но очень смахивает именно на разрыв между кадрами

Titus
14.10.2011, 14:25
Та часть, которая без bright, сдвинута относительно верхней шляпки на 2 пикселя вправо. Если её подвинуть влево - то гриб будет более красивым. Хотя, конечно, это может быть и арт такой, кривоватый.
Да нет, нормальный арт. Такой гриб просто.

Screw
14.10.2011, 14:25
balu_dark, и что это даст?
чисто теоретически

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

AAA
14.10.2011, 14:27
единственный вариант 48/128. А это, извините, только тюнинг, в той или иной степени, что и видим в играх. Например, в Dizzy5 - это AY-музыка, дополнительная графика, анимация и т.д.

Согласен! Производители хотели заработать а не создать шидевр. Отсюда и перекос. Тюнинг AY это единчтвенное что можно сделать быстро.

Slider
14.10.2011, 14:30
Не будет красиво.
Будет! Именно в таком режиме задумывался BrokImSoft'овский Elven Warrior 2. Если найду начальные заготовки-исходники, покажу!..
Достаточно прикольно выглядит ;)

balu_dark
14.10.2011, 14:38
balu_dark, и что это даст?
чисто теоретически

Если чисто теоретически - вывод спрайта 8 на 16 (16 это по Y ) с пропуском строк займет по времени ровно в 2 раза меньше времени и будет равно выводу обычного спрайта 8 на 8. То же - скролер.
скрол через строку должен занимать по времени также почти в 2 раза меньше.
да - минусом получим уменьшение разрешения. Но возможно для некоторых типов игр - визуально качество ухутшится не сильно. Тем более по горизонтали точек будет в достатке.

Screw
14.10.2011, 14:38
Если найду начальные заготовки-исходники, покажу!..
Достаточно прикольно выглядит

Было бы здОрово. Жду с нетерпением.

jerri
14.10.2011, 14:47
balu_dark, посмотри Walker - мы делали Бакграунд черезстрочный

newart
14.10.2011, 16:05
Тут кстати посетила глупая идея - а почему никто не пробовал нарисовать игруху в черезстрочном режиме? то есть - тупо через строку весь вывод и скроллинг?
См. Walker.

balu_dark
14.10.2011, 16:16
Ну вот - чтото похожее :) если делать еще и спрайт чересторчным а не только бэк граунд то вообще гуд. А если делать чтобы бэкграунд и осталные спрайты находились на разных линиях - с одной стороны будет быстро с другой - скрол бэкграунда не затронет спрайты и плюс за счет того что фактически линии будут юзаться все - будет не так заметна черезстрочка.

Titus
14.10.2011, 16:21
Ну вот - чтото похожее :) если делать еще и спрайт чересторчным а не только бэк граунд то вообще гуд. А если делать чтобы бэкграунд и осталные спрайты находились на разных линиях - с одной стороны будет быстро с другой - скрол бэкграунда не затронет спрайты и плюс за счет того что фактически линии будут юзаться все - будет не так заметна черезстрочка.
Если спрайты будут в разных линиях с фоном, то они будут казаться как бы полупрозрачными. Вернее даже смешиваться с фоном со сложением яркости, а это сложно применить в игре.

Lethargeek
14.10.2011, 21:40
Lethargeek, что ты в спор ввязался и темнишь? покажи уже скроллинг свой, чтоб всем было ясно
Покажу, если кто-нибудь выдерет мне графику
и раскладку уровня из Stormlord Demo
и не сразу, некогда мне пока
а сам принцип тебе знаком


И еще. Я хотел бы пообсуждать твой скролл отдельно по выводу спрайтов. Мне не совсем ясно как там будет со спрайтами.
Написал бы в личку давно
самому теперь надо вспоминать

---------- Post added at 21:40 ---------- Previous post was at 21:22 ----------


Конечно. Чётко на ножке гриба. Складывается впечатление что ты понятия не имеешь, что такое Tearing. Гугл в помощь
паранойя, скрин снимался с неподвижного фона :v2_laugh:


Лучше бы не гаданием занимался, а открыл игру в дизассемблере. Штормлорд не рисует стеком
да мне пофиг как он рисует, я пишу как можно то же самое сделать лучше


Ты код давай покажи. Который за полфрейма экран отрисует
не экран отрисует за полфрейма, а прокрутит неподвижный фон
поищи в ветке про сидрагона минидемку альтернативного скроллера
принцип тот же, процедурки мелкие только проще

Screw
14.10.2011, 21:57
да мне пофиг как он рисует

Так бы и писал, что понятия не имеешь как оно работает. А то нагоняешь важности :) Цитирую: "дальше продолжать или кто-нибудь уже догадался"


я пишу как можно то же самое сделать лучше

А я тебе объясняю что лучше не будет ;) Иннер-луп отрисовки да, очень быстрый. Но за деревьями надо видеть лес. Во-первых серъёзные ограничения на дизайн уровней. Во-вторых жрущая обвязка.



не экран отрисует за полфрейма, а прокрутит неподвижный фон

Что в твоей терминологии "прокрутит неподвижный фон" ?

Мой скроллер сейчас на отрисовку каждого байта задника тратит (итоговое, среднее значение) 24 такта на байт. При этом возможен параллакс и анимация тайлов. Тайловой графики на каждый уровень до 6528 байт. Это без вырвиглазной замены тайлов на лету. Ограничение на размер уровня (теоретическое) до 8192 пикселя в ширину (в высоту - сколько памяти хватит). Скроллинг во всех 8 направлениях с любым шагом, кратным 2-м пикселям. Никаких ограничений на комбинирование тайлов (присущих стековому выводу как в Ghost'n'Goblins и тайловым парам, как в Zynaps, Robocop, Batman3)

ALKO
14.10.2011, 22:12
присмотрись к скриншоту
что ты видишь?
stormlord

Lethargeek
14.10.2011, 23:29
Так бы и писал, что понятия не имеешь как оно работает. А то нагоняешь важности :) Цитирую: "дальше продолжать или кто-нибудь уже догадался"
вот как раз имея ПОНЯТИЕ каждый раз копаться в коде необязательно
все понятно по конечному результату


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


Что в твоей терминологии "прокрутит неподвижный фон" ?
все что на скриншоте видишь (кроме двух спрайтов)
причем именно прокрутит то что в экране, а не выдаст из буфера
и не подготовленные сдвинутые тайлы из набора печатать будет
нужно только пиксельный столбец с краю подрисовать


Мой скроллер сейчас на отрисовку каждого байта задника тратит (итоговое, среднее значение) 24 такта на байт. При этом возможен параллакс и анимация тайлов. Тайловой графики на каждый уровень до 6528 байт. Это без вырвиглазной замены тайлов на лету. Ограничение на размер уровня (теоретическое) до 8192 пикселя в ширину (в высоту - сколько памяти хватит). Скроллинг во всех 8 направлениях с любым шагом, кратным 2-м пикселям. Никаких ограничений на комбинирование тайлов (присущих стековому выводу как в Ghost'n'Goblins и тайловым парам, как в Zynaps, Robocop, Batman3)
я пишу конкретно про штормлорд, именно про такую графику
размер уровня ограничен только свободной памятью
нету жестких ограничений на комбинирование тайлов
(только мягкое на общее количество на экране)
стек используется только там где можно и выгодно
собс-но сами тайлы как таковые необязательны
с краю можно пририсовывать что угодно
важна только информация где прокручивать

Vadim
14.10.2011, 23:46
Забираю свои слова про неущербность назад.
Хоть и запоздало, но отвечу. У профика, как и у спектрума (профик, как бэ изначально назывался zx-profi) - одно окно проецирования страниц, да это убого. Но. Есть одно но. Есть битик, в порту DFFD, установив который в 1, с 8000h у нас подключается страница 06. Т.е. экран, в расширенном режиме. Атрибуты, мы можем в этот же момент подключить с С000 или с 4000. А куда именно (окно) зависит от другого битика в этом же порту. (забыл я сейчас, схемы под рукой нет). Так вот, окно включено в C000 (bit=0) то расположение памяти такое
00
05
02
XX
Если бит =1, то
00
XX
02
07
Но если мы выставили бит 6 DFFD в 1, то в любом случае, с 8000 у нас сегмент 06 (экран расширенный).

Это хоть и не приближает нас к 4-х оконной системе, но определенно развязывает руки. Так что профи не такая и убогая машинка.

---------- Post added at 01:43 ---------- Previous post was at 01:38 ----------


Ты код давай покажи. Который за полфрейма экран отрисует.
Лично я делал код, который печатает до 6-и спрайтов 24 на 24 точки, за четверть экрана. Печать правда по xor. Напрямую в экран, для избавления от мерцания - 2 экрана. Это на 3.5Мгц. Больше времени занимало восстановление фона. Т.к. там есть свои особенности. Восстанавливать было больше времени, чем то, сколько напечатали.

---------- Post added at 01:46 ---------- Previous post was at 01:43 ----------


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

jerri
15.10.2011, 00:51
Lethargeek, твой метод не годится для игр типа штормлорда

здесь допустима прокрутка в любую сторону
у тебя только в одну

Screw
15.10.2011, 01:09
никаких особых ограничений кроме одного: не загромождать экран

А можно более строгое определение термина "загромождать экран" ?


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

Скорее всего действительно не представляю. Дык давай его сюда. :) Буду очень рад поковырять.



все что на скриншоте видишь (кроме двух спрайтов)
причем именно прокрутит то что в экране, а не выдаст из буфера
и не подготовленные сдвинутые тайлы из набора печатать будет
нужно только пиксельный столбец с краю подрисовать

perpetuum mobile какой-то. Поясню своё недоверие: ~69000тактов / 6144 байт = 11 тактов на байт. Ты же говоришь о полфрейме на скролл. Этого только на голый PUSH хватит. Мягко говоря не сходится :)


с краю можно пририсовывать что угодно
важна только информация где прокручивать

Попиксельный сдвиг _ЛЮБОЙ_ информации на экране это RL (HL) / RR (HL), быстрее не сдвинуть. Итого 15 + 4 == 19 тактов на байт. Почти вдвое больше, чем твои первоначальные заявления. Кроме того этот метод категорически не годится для скроллинга отличного от 1го пикселя (как следствие не годится для двух экранов).

Короче, хватит туман нагонять. Давай код :)

---------- Post added at 00:55 ---------- Previous post was at 00:53 ----------


Lethargeek, твой метод не годится для игр типа штормлорда

здесь допустима прокрутка в любую сторону
у тебя только в одну

Что за метод-то ?

---------- Post added at 01:09 ---------- Previous post was at 00:55 ----------


не загромождать экран


причем именно прокрутит то что в экране, а не выдаст из буфера


важна только информация где прокручивать

Из этих намёков можно сделать предположение, что весь текущее отображаемое окно разбито на под-окна. Внутри которых крутим через RR (HL)/RL (HL).

А если вспомнить про:


стек используется только там где можно и выгодно

То получается какой-то нано-алгоритм. Который будет работать в некоторых тепличных условиях. С динамической генерацией кода. И чуть перекос в дизайне ландшафта - скорость улетает в минуса.

Кроме того это плохо стыкуется с:


Lethargeek, твой метод не годится для игр типа штормлорда

здесь допустима прокрутка в любую сторону
у тебя только в одну

Ну и, понятное дело, не обеспечит произвольный шаг прокрутки а также не даст вертикального скролла. И самый эпичный недостаток: надо восстанавливать области под спрайтами. В отличие от тотальной перерисовки.

Lethargeek
15.10.2011, 01:09
Lethargeek, твой метод не годится для игр типа штормлорда

здесь допустима прокрутка в любую сторону
у тебя только в одну
что мешает одновременно генерить и корректировать код прокрутки в другую сторону?
тем более что в штормлорде всего-то 9 тайловых строк (против 24 в демке для сидрагона)

jerri
15.10.2011, 01:17
Screw, смотри тему seadragon


Lethargeek, дракон в местах где много обьектов всетаки подтормаживает раз,
скорость скролла в штормлорд таки 2 а не 1 это два
коррекция кода не всегда приемлима по скорости это три

Screw
15.10.2011, 01:23
Screw, смотри тему seadragon

Ясно. Там не полноценный скролл, а частный случай. Никакой эластичности. То есть если забросать экран рандомным мусором скорость упадёт наверное на порядок.

---------- Post added at 01:23 ---------- Previous post was at 01:22 ----------


скорость скролла в штормлорд таки 2 а не 1 это два

Или, другими словами, итоговая скорость прокрутки уровня одинаковая. 1x50fps, 2x25fps.

jerri
15.10.2011, 01:25
Screw, Шаришь :)

Lethargeek
15.10.2011, 01:36
Lethargeek, дракон в местах где много обьектов всетаки подтормаживает раз
там движок не мой, моя демка не подтормаживает :p


скорость скролла в штормлорд таки 2 а не 1 это два
stormlord demo - 2 пикселя раз в 2 кадра
stormlord game - 4 пикселя раз в 4 кадра
емнип


Или, другими словами, итоговая скорость прокрутки уровня одинаковая. 1x50fps, 2x25fps.
плавность неодинаковая, особенно по сравнению с игрой


коррекция кода не всегда приемлима по скорости это три
да там все построено на постоянной коррекции :D
несколько тыщ тактов размазанных по нескольким кадрам


Ясно. Там не полноценный скролл, а частный случай. Никакой эластичности. То есть если забросать экран рандомным мусором скорость упадёт наверное на порядок
а не надо мусора, суть искусства программирования для спека - в умелой эксплуатации частных случаев :cool:

jerri
15.10.2011, 01:47
Lethargeek,
1.постоянной и небольшой коррекции
2.некоторые движки хорошие в теории не очень красивы на практике
3.одно дело каждый раз небольшая коррекция другое дело каждый фрейм пересчитывать направление
4. стормлорд1 везде имеет скорость 25 фпс и 2 пикселя за кадр
и кстати посмотри R-Type - особенно уровень со строителями

Screw
15.10.2011, 01:57
Давай вернёмся к твоему изначальному сообщению:


по прикидкам, можно сделать фреймовый штормлорд даже на тормозном 48К
честная прокрутка экрана отъест полфрейма

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


суть искусства программирования для спека - в умелой эксплуатации частных случаев

Такой скролл - это уже чересчур "частный случай" :)

Lethargeek
15.10.2011, 05:14
1.постоянной и небольшой коррекции
ичо? оно так и работает


2.некоторые движки хорошие в теории не очень красивы на практике
что ты хошь, красивее чем оригинальный штормлорд? :)


3.одно дело каждый раз небольшая коррекция другое дело каждый фрейм пересчитывать направление
ничего не пересчитывать, после разворота заработает код прокрутки в другую сторону
а корректировка кодов прокрутки (в обе стороны одновременно)
как была так и осталась только при переходе на знакоместо


4. стормлорд1 везде имеет скорость 25 фпс и 2 пикселя за кадр
и кстати посмотри R-Type - особенно уровень со строителями
ну значит второй штормлорд 4/4
а чего эртайп? вроде там везде 1/2?


Давай вернёмся к твоему изначальному сообщению:
Всё-таки не честная, а только в некоторых случаях, специально подогнанных. Причём % заполнения экрана данными должен быть очень низким. Вспоминается демка Drunkard-а. Вроде и фреймово, а с другой стороны слишком узкие рамки
"некоторый случай" в данном случае - оригинальный штормлорд :D
с той же графикой и с той же раскладкой уровня
с теми же % заполнения

jerri
15.10.2011, 08:39
В штормлорде цикл рисования выглядит так

1 красим атрибуты на спрайтах- всех
2 зануляем спрайты просто ld (hl),a и тд на нескольких линиях
3 бросаем атрибуты на ненулевых тайлах
4 рисуем линию тайлов (со смещением 2 пикселя/без смещения)
5 рисуем спрайты находящиеся выше нарисованной линии
6 повторяем с пункта 2

дальше считаем что рисовать на следующий фрейм

на твоем скриншоте 2 обьекта: штормлорд и шарик из вулкана
если добавить еще выстрелы штормлорда, 4-5 врагов то твой движок даже теоретически уже не осилит столько графики на экране

---------- Post added at 08:39 ---------- Previous post was at 08:34 ----------

Rtype имеет стабильную скорость 12,5 fps
в уровне со строителями занятость экрана фоном доходит до 70%
и тут же динамически высчитывается что именно скроллить и скроллится оно сразу на экране.
движок кстати вполне себе универсален а не рассчитан на частные случаи

Lethargeek
15.10.2011, 11:27
на твоем скриншоте 2 обьекта: штормлорд и шарик из вулкана
если добавить еще выстрелы штормлорда, 4-5 врагов то твой движок даже теоретически уже не осилит столько графики на экране
где много врагов - фона мало (или нет прокрутки пока всех не побьешь)
собс-но сама прокрутка такого скрина потребует примерно 30000 тактов
еще несколько тыщ тактов на переходы и на корректировку кода
длинные полоски одинаковых тайлов (трава или кирпичи)
крутим через POP:RL:RL:PUSH:PUSH:PUSH...
остальное просто через RL:RL...

итого полфрейма и больше еще на спрайты
которые можно двигать тоже не в каждом кадре
все равно там сдвиги больше чем на пиксель


Rtype имеет стабильную скорость 12,5 fps
в уровне со строителями занятость экрана фоном доходит до 70%
и тут же динамически высчитывается что именно скроллить и скроллится оно сразу на экране.
движок кстати вполне себе универсален а не рассчитан на частные случаи
там два фрейма на сдвиг фона, а не один
но и то изображение заметно "плывет" при любых %

jerri
15.10.2011, 18:04
Lethargeek, Там программер не был перфекционистом
у него была цель - он ее добился - игра по скорости стабильна - на 12.5 фпс
скролл фона прямо на экране, все остальное выводится сначала в буфер потом бросается на экран
50 фпс в такой игре на спеке не добится никак - он и не заморачивался
но R-Type все таки считается лучшей стрелялкой.

Lethargeek
16.10.2011, 04:13
подозреваю, что главной целью было сдать работу в срок
а насчет "никак" не зарекайся ;)

jerri
16.10.2011, 09:56
подозреваю, что главной целью было сдать работу в срок
а насчет "никак" не зарекайся ;)
правда? rtype на 48к машине в 50 фпс?
хочу хочу

кстати насчет оптимизации там все довольно оптимально
в отличии от того же saboteur2

GM BIT
16.10.2011, 17:54
Это у игромейкеров нет возможности думать как демомейкеры, от того эти игры и считают убогими. Те кто писал демо знают как кусочек 32768-49152 очень эффективно использовать под спрайты и т.п. ну а про 56064-65535 так это вообще песня, чтоб превратить корявый экран в простые таблицы координат.
Так, что надо обеих в процесс игросоздания втягивать!! Но тех кто любят демо, особенно в один инт, никогда не убедишь, что игры в 2-3-5 это интересно.
ИМХО.

jerri
16.10.2011, 18:05
GM BIT, Колобок Зум написан демомейкером
Черный ворон написан Гейммейкером
что интереснее?

GM BIT
16.10.2011, 19:15
GM BIT, Колобок Зум написан демомейкером
Черный ворон написан Гейммейкером
что интереснее?
Извини, судить не могу, но честно не играл ни в то, ни в другое.
Когда то играл в тетрис с двумя стаканами, понравилось. Кстати вот последняя игра тут проскакивала с мультиколором, тоже понравилась

---------- Post added at 18:30 ---------- Previous post was at 18:29 ----------

jerri, А ты кстати писал игры? ты вроде в коде шпилишь

---------- Post added at 18:34 ---------- Previous post was at 18:30 ----------

Почитав топик, аж захотелось фреймовую игрушку написать only 128 :)

---------- Post added at 19:13 ---------- Previous post was at 18:34 ----------


Колобок Зум написан демомейкером
Посмотрел колобок, поиграл, понравилось,
а ЧВ у меня нет столько времени ждать геймплей этой игры

---------- Post added at 19:15 ---------- Previous post was at 19:13 ----------


что интереснее?
А интереснее наверное последние игры на PC

Screw
16.10.2011, 21:02
как кусочек 32768-49152 очень эффективно использовать под спрайты и т.п. ну а про 56064-65535 так это вообще песня, чтоб превратить корявый экран в простые таблицы координат.

Какая-то ересь. По отдельности все слова правильные, а вместе ерунда получается.

cherkasy
16.10.2011, 21:15
а как сделано в uridium / shadow skimmer ? скролл неплохой

balu_dark
17.10.2011, 00:05
мне скролл нравится в Chronos но там если память не изменяет вся динамика чуть ли не только в одной трети экрана - хотя на играбельность это совсем не влияло. думаю в нормально нарисованой игрухе с действием не на полном экране - это(не fullscreen) особо не будет заметно.

jerri
17.10.2011, 09:10
cherkasy, посмотри, что мешает?

---------- Post added at 09:10 ---------- Previous post was at 09:07 ----------

balu_dark, в Тирнаног и Марспорт экран тоже не шибко большой но на играбельность это тоже никак не влияет
а Кронос кстати тоже не 50 фпс :)

Shadow Maker
17.10.2011, 09:32
[/COLOR]balu_dark, в Тирнаног и Марспорт экран тоже не шибко большой но на играбельность это тоже никак не влияет
Вот уж кто вообще никак не рядом с 50 fps :)

---------- Post added at 09:30 ---------- Previous post was at 09:28 ----------


GM BIT, Колобок Зум написан демомейкером
Черный ворон написан Гейммейкером
что интереснее?
Да ладно? И много демок от Фримана?

---------- Post added at 09:32 ---------- Previous post was at 09:30 ----------


jerri, А ты кстати писал игры? ты вроде в коде шпилишь
Чо уж, сам бы посмотрел:
http://www.worldofspectrum.org/infoseekpub.cgi?regexp=^Jerri$

cherkasy
17.10.2011, 09:44
Ja ne coder, skoree kritik;)

balu_dark
17.10.2011, 11:16
А кто говорил что в Chronose скролер фреймовый :eek_std: .
Моя говорил что "на играбельность никак не влияет" более того - особо не замечаеш фреймовый скрол или нет и движется там все довольно плавно. выше 25 кадров в секунду глаз не отличает отдельно кадр - все идет как непрерывное движение. посему считаю что стенания об необходимости фреймовых скролов - это у людей просто болезнь.

Lethargeek
17.10.2011, 11:38
выше 25 кадров в секунду глаз не отличает
это с непривычки просто ;)

balu_dark
17.10.2011, 13:16
это с непривычки просто ;)

http://ru.wikipedia.org/wiki/Фреймрейт
это общеизвестно просто ;)


При фреймрейте превосходящим 24 кадра в секунду создается иллюзия движения, и человек уже не воспринимает отдельные границы кадров (см. 25 кадр), хотя при увеличении количества кадров реалистичность восприятия увеличивается.


The human eye and its brain interface, the human visual system, can process 10 to 12 separate images per second, perceiving them individually.

Titus
17.10.2011, 13:28
50 fps на мониторе с разверткой 50fps, отличаются от 25fps элементарно. При 25 fps на мониторе с разверткой 50fps, при любом движении более, чем на 1 пиксел, будет виден след предыдущего положения обьекта, как бы размазанный на 2 кадра. Да и такое понятие, как 'абсолютная плавность' будет применимо только к движению изображения синхронному с разверткой, т.е. 50fps.

---------- Post added at 13:28 ---------- Previous post was at 13:23 ----------

Естественно, речь не идет о подобных эффектах под эмулятором на мониторах с разверткой не кратной 50Гц, или, что еще хуже, на LCD мониторах. При таком раскладе след и отсутствие 'абсолютной плавности' будет всегда. А что касается LCD-мониторов, в большинстве своем со значительной диспропорцией скорости включения и выключения пикселов, что дает мерцание изображения текстурированного пикселам в шахматном порядке, то это вообще ахтунг.

Lethargeek
17.10.2011, 13:39
некий средний человек мож и "не воспринимает" без тренировки
плюс есть нюансы (перейди оттуда же по ссылке на 25-й кадр)
нам важна как раз "реалистичность восприятия" просто ;)

jerri
17.10.2011, 13:40
Ja ne coder, skoree kritik;)
А кроме этого что еще умеешь?:v2_dizzy_fisher:

balu_dark
17.10.2011, 14:39
Налицо некоторое недопонимание момента и попытка подмены понятий.
Попытаюсь обьяснить популярно на пальцах.
Товарисчи демомейкеры - игра отличается от демы - тем что в дему тупо пялятся и выискивают - где длиннее у кодера, а где длиннее у смотрящего демку и какой эффект смотрящий демку - сделал бы быстрее/правильнее/красивше .
В игре - все точностью до НАОБОРОТ!
В игре - ИГРАЮТ и никто не обращает внимание ни на количество точек - на которое переместился спрайт ни на количество фреймов за который произошол скролл. Если конечно это ИГРА а не очередной клон тетрисе/лайнсов/колумнсов.

В игре(нормальной/хорошей) - сам сюжет заточен под то - чтобы игроку некогда было не то что на фреймрейт смотреть - а простите чтобы поссать сбегать времени не было. Это и есть основная задача и идея игры - увлечь человека.
Есть поговорка - кто хочет - ищет возможность, кто нехочет - ищет причину.
очень подходит к этой теме. вместо того чтобы написать игру пусть в 4 фрейма и на треть экрана - одни стенания - ой, нельзя написать игру в один фрейм - значит ниче делать небуду.
Так нах вообще тут писать?
Хоть одна игра на спеке была однофреймовая?
Ну так че обсирать то что было сделано несмотря на ограничения и кроме того что было просто - популярным, еще и денег авторам принесло.
Для любителей просто погадить в комменах - есть придуманный поляками DataGear, плюс нашенский NEOGS . Пажалста - есть дма- скролл вниз или вверх - на порядки быстрее будет работать. как и переброска массивов памяти - максимум 1 такт вместо 11 процовых.

Че вы хотите от машины на 3.5 мегагерц придуманной почти 30 лет назад?
Пока тут обсуждают - человек в одной из соседних тем делает игрушку в 16с моде ;). А вы -продолжайте мерять длину приборов своих. про "... не мешки ворочать." думаю все слышали.

Titus
17.10.2011, 14:49
Хоть одна игра на спеке была однофреймовая?
Таких предостаточно, но без скроллинга фона. Например, Spooked, чисто one-frame. Очень плавно.
Но вы правы, играбельность и интересность не зависят напрямую от того, сколько фреймов.

balu_dark
17.10.2011, 15:04
Таких предостаточно, но без скроллинга фона. Например, Spooked, чисто one-frame. Очень плавно.
Но вы правы, играбельность и интересность не зависят напрямую от того, сколько фреймов.

Об этом собсно и спич. А то - там плохо , тут криво. Н сами то играли тогда - на ура . и никто не выпендривался. а счас конечно - за 20 лет набрались опыта - можно поругать. ну дык и делать тогда надо на современные компы - как правильно. Но на ПЦ - никто написать не хочет/не умеет - для этого найдется другой мульен отмазок.

Lethargeek
17.10.2011, 15:38
почему сразу на современные
самый цимес в том чтобы выжать больше
из того что (вроде бы) выжато уже насухо
;)

balu_dark
17.10.2011, 15:41
Таких предостаточно, но без скроллинга фона. Например, Spooked, чисто one-frame. Очень плавно.
Но вы правы, играбельность и интересность не зависят напрямую от того, сколько фреймов.

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

---------- Post added at 14:41 ---------- Previous post was at 14:39 ----------


почему сразу на современные
самый цимес в том чтобы выжать больше
из того что (вроде бы) выжато уже насухо
;)

Выжимать выжатое - удел демок. пока будете думать как это применить к играм - пройдет еще 20 лет а игр так и не будет! Пишите как получается и родина вас не забудет.

Lethargeek
17.10.2011, 15:52
Выжимать выжатое - удел демок
вот из-за таких вот... :mad:


пока будете думать как это применить к играм
моск надо применять


пройдет еще 20 лет а игр так и не будет!
их уже over 9000 за 20 лет, смысл клепать поделки того же уровня?


Пишите как получается и родина вас не забудет.
у буржуев, например, регулярно получается джетсетвилли :D

Titus
17.10.2011, 16:01
Пишите как получается и родина вас не забудет.
Забудет) Но, если интересно, можно делать)