Вход

Просмотр полной версии : Dizzy Scripting Engine



hippiman
23.02.2019, 00:13
DizzySE или Dizzy Scripting Engine - это среда для разработки Dizzy-подобных игр для ZX Spectrum 128 и его клонов.

Ключевая особенность DizzySE заключается в избавлении разработчика от программирования на ассемблере и знания архитектуры компьютера.
Своего Dizzy сможет сделать каждый. Нужно лишь освоить очень простой скриптовый язык и владеть любым графическим редактором, способным работать с изображениями с индексированным цветом.
Простейшие игры можно делать даже практически не прибегая к скриптингу. Для базовых ситуаций есть шаблон, в который нужно только подставлять свои предметы и диалоги.
Движком DizzySE предусмотрены практически все ситуации, которые встречались в классических играх о Dizzy. Те ситуации, которые не предусмотрены в движке, можно реализовать при помощи скриптов.
В качестве редактора карт для DizzySE был использован привычный многим проверенный временем редактор DizzyAGE.

https://i.ibb.co/jHcknCW/screen1.png (https://ibb.co/jHcknCW)https://i.ibb.co/sm2mSn2/screen2.png (https://ibb.co/sm2mSn2) https://i.ibb.co/9Zw1nKX/screen3.png (https://ibb.co/9Zw1nKX)

Первое обновление. Версия 1.0.1

Движок:

Существенно перелопачена физика прыжка. Диззи теперь не цепляет затылком за шершавые поверхности, а скользит вдоль них.
Убрана за ненадобностью анимация STUN. Вместо неё теперь находится анимация DEATH. Ранее эта анимация собиралась движком из анимаций IDLE и JUMP FRONT. Может пригодиться для игр, где главный герой не Dizzy.
Добавлено новое событие EVT_ANIMATION_END. Скрипт по этому событию вызывается в момент завершения анимации у целевого объекта. Для активации этого события нужно записать в переменную EVT_ANIMATION_END ID нужного объекта. Естественно, у него должна быть настроена анимация и задан скрипт.


NEDORES:

Использована новая версия утилиты NEDORES. В старой версии был найден баг, при котором при некотором сочетании цветов устанавливалась неверная яркость знакоместа.


IDE:

IDE следит за количеством открытых копий DizzyAGE и не дает открыть больше одной.
Ранее настройки тайлсетов для утилиты nedores хранились в DizzySE/tools/Tileset.txt. Теперь для каждого тайлсета создается свой файл с настройками и именем tileset(номер).txt. Это может пригодиться если в игре планируется использовать фон не черного цвета.
DizzyAGE использует прозрачный цвет чтобы определять проходимость кистей.
т.е. если взять в наклонную поверхность и не указать в tga прозрачный цвет, то в катре тайлов, выводимой из DizzyAge на месте этой кисти будет, не лесенка, а прямоугольная область. При попадании какой-либо фоновой графики в эту область, будут возникать глюки физики.
Раньше в IDE прозрачный цвет был явно указан - черный.
Сейчас за прозрачный цвет отвечает левый-верхний пиксель во 2м тайле.
Очень нужно, когда фон в игре будет не черный.


Прямая ссылка (https://yadi.sk/d/nxRpsCNBqZmZUQ)
Сайт проекта (http://dizzyse.ru)

http://Dizzyse.ru
Здесь можно скачать как саму DizzySE и подробную документацию к ней, так и различные дополнительные ресурсы, игры и пр.


https://zx-pk.ru/threads/30150-dizzy-and-the-mushrooms-pie-(zx-spectrum-edition).html?p=1000594#post1000594
Ссылка на тему игры Dizzy and the Mushrooms Pie

Totem
23.02.2019, 00:30
а что? всех ремейков яйца - уже не хватает? диалоги ниочем прыгскок?
Можете мне, тупому, пояснить, в чем смысл таких аддонов для платформера ?

akasaka
23.02.2019, 05:44
Движок для платформеров есть, движок для визуальных новелл тоже есть (https://bitbucket.org/vladkorotnev/zxgate/src/23be5dacf198?at=master), осталось дождаться порта Unity на спектрум и обещанный ещё при выходе Атарина VT3.0 :-)

Titus
23.02.2019, 14:55
а что? всех ремейков яйца - уже не хватает? диалоги ниочем прыгскок?
Можете мне, тупому, пояснить, в чем смысл таких аддонов для платформера ?

Не совсем понятен вопрос. Диззи - это не платформер.
Это аркадная адвентюра (хотя, в википедии ее считают графическим квестом).

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


А если кто зашел в этот раздел по ошибке, не любит и не пониамет Диззи, то есть множество других игр, тем и направлений.

https://i.gifer.com/embedded/download/40Oj.gif

Totem
23.02.2019, 15:05
Не совсем понятен вопрос. Диззи - это не платформер.
Это аркадная адвентюра (хотя, в википедии ее считают графическим квестом).

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


А если кто зашел в этот раздел по ошибке, не любит и не пониамет Диззи, то есть множество других игр, тем и направлений.

Ну вот теперь понятней, спасибо, что пояснил. :v2_dizzy_newspaper:

Lethargeek
23.02.2019, 15:43
данный движок открывает большие возможности
Да пусть открывает, так же как другие движки. Единственно, раздражает, что потом многочисленные поделки на всех этих диззискриптах, тридэмэйкерах, вилликитах, чурерах, агд итд в интернетах засоряют общие списки игр, а не учитываются в своих отдельных гетто.

Titus
23.02.2019, 15:45
поделки на всех этих диззискриптах, тридэмэйкерах, вилликитах, чурерах, агд итд в интернетах засоряют общие списки игр
Поделка - это то, что сделано плохо.
Посмотри на примеры, написанные на этом движке, они ничуть не хуже сделаны классических мини-Диззи игр.

Lethargeek
23.02.2019, 16:34
Поделка - это то, что сделано плохо.
Не совсем. То, что сделано из плохого материала примитивными инструментами и выходит плохо в over 90% случаев (потому и обзывают, не разбираясь). Но ведь так и есть. Большая часть этого вторичного продукта просто уныла, впечатление от лучшей-меньшей изрядно портят недостатки и надоевшие особенности движков. Вообще, конструкторы для непрограммистов на столь слабой восьмибитной машине - уже плохо, уже моветон. Разве что чурера несколько выбивается (вероятно, потому что в основном её используют сами авторы; или слишком сложная для других) - но и там похожесть игр из разных серий поднадоела.


Посмотри на примеры, написанные на этом движке, они ничуть не хуже сделаны классических мини-Диззи игр.
то есть "классические мини-диззи игры" ничем не лучше этих примеров :p

Titus
23.02.2019, 16:41
то есть "классические мини-диззи игры" ничем не лучше этих примеров
Все так. Не лучше точно)
А примеры - на то и примеры, что они являются только началом. Можно и лучше сделать)

Lethargeek
23.02.2019, 16:49
А примеры - на то и примеры, что они являются только началом. Можно и лучше сделать)
так я и говорю - пока кто-нибудь научится делать лучше, везде будет позас...орено тем, что хуже :D да и после тоже :(

Titus
23.02.2019, 16:57
так я и говорю - пока кто-нибудь научится делать лучше, везде будет позас...орено тем, что хуже да и после тоже
Не будь пессимистом) О том, что неизвестно, думай положительно)

krt17
23.02.2019, 18:30
Супер!!!
Отрисовку локаций ускорили, мелкие тормоза пропали, играется как классика. Ждем с нетерпением новых оригинальных диззей.

Totem
23.02.2019, 19:09
Оригинальных от слова original? или новых? ну будем посмотреть конечно.
Ускоренная отрисовка 1 экрана ? а где там тормоза? -честно не замечал, конкретно в чем проявляются и где?

baxter
23.02.2019, 19:34
hippiman, видно, что ты вложил душу в этот проект. Забей на скептиков, им скучно просто. Поздравляю с релизом!

Vinnny
23.02.2019, 20:06
ход конём: делаем свою Wonderful Dizzy, и релизим её раньше Оливеров :)

hippiman
23.02.2019, 22:30
hippiman, видно, что ты вложил душу в этот проект. Забей на скептиков, им скучно просто. Поздравляю с релизом!

Спасибо :) Да я на них внимания и не обращаю. Если бы все делали так, как хотят скептики, то платформа давно бы загнулась.


ход конём: делаем свою Wonderful Dizzy, и релизим её раньше Оливеров :)

Это, конечно, можно сделать. Только, боюсь, Оливеры от такой наглости прифигеют :)

krt17
24.02.2019, 14:50
Баг. Можно прыгнуть в падении оттолкнувшись от нижнего края экрана. Хорошо получается при падении с облака.

hippiman
24.02.2019, 15:27
Баг. Можно прыгнуть в падении оттолкнувшись от нижнего края экрана. Хорошо получается при падении с облака.

Спасибо. Исправлю в ближайшее время.

krt17
24.02.2019, 23:30
Еще один. Если при диагональном прыжке упереться сверху в block то движение вбок не происходит, движение блокируется не только вверх но и в сторону.

hippiman
25.02.2019, 07:49
Еще один. Если при диагональном прыжке упереться сверху в block то движение вбок не происходит, движение блокируется не только вверх но и в сторону.

Это не баг. БОльшая часть блоков снизу "шершавая". Просто идёт горизонтальный зацеп за неровности блока. Вдоль гладких блоков Диззи должен скользить.

krt17
25.02.2019, 09:43
Ок, тестировал с обычным голубым каменным, поищу еще более не "шершавый".

PATHNK
25.02.2019, 11:38
Забей на скептиков, им скучно просто.
При чем тут это?
Если человек хочет создать игру, то изучение Ассемблера его не остановит. Более того, это настраивает человека на долгосрочный труд и может служить своеобразным тестом на терпение.
Появление же подобных "конструкторов" "побыстрей да тяп-ляп" ставит все с ног наголову: загорелось в одном месте, "насоздавал" и быстрее выкинул на свет общественности. Кому нужно 100-1000 подобных игр? Никому. Это утомляет и к этому теряется интерес. Более того в этом потоке может ускользнуть значимый проект. Я против подобных вещей, разве что в образовательных целях, для себя.
Автор молодец, но это не то направление деятельности.

Verm-V
25.02.2019, 12:01
Ок, тестировал с обычным голубым каменным, поищу еще более не "шершавый".
Можно скриншот где и как происходит затык?

hippiman
25.02.2019, 12:14
При чем тут это?
Если человек хочет создать игру, то изучение Ассемблера его не остановит. Более того, это настраивает человека на долгосрочный труд и может служить своеобразным тестом на терпение.
Появление же подобных "конструкторов" "побыстрей да тяп-ляп" ставит все с ног наголову: загорелось в одном месте, "насоздавал" и быстрее выкинул на свет общественности. Кому нужно 100-1000 подобных игр? Никому. Это утомляет и к этому теряется интерес. Более того в этом потоке может ускользнуть значимый проект. Я против подобных вещей, разве что в образовательных целях, для себя.
Автор молодец, но это не то направление деятельности.
Сейчас человек не будет изучать АСМ ради создания игры. Возраст уже не тот и времени нет. Человек будет искать удобный инструмент. Если не найдет его на спеке, сделает на ПК со стилизацией. Об этом говорит соотношение количества сделанных игр на движках и с нуля. Причем игры на движках далеко не все посредственные. Есть такое, что геймплей агд'шный приелся. Но это не делает агд плохим редактором. Ведь мы знаем, что он может делать разнообразный геймплей. Осьминожкт тому хороший пример. Да и то, с каким геймплеем делать игру - это выбор сугубо разработчика. Игры на агд делают в основном буржуины, значит им такой геймплей нравится.
На dizzyage было выпущена 141 игра. Значит ли это, что шедевры на едже теряются среди игр попроще? Отнюдь
Каждый может выбрать себе игру по вкусу, продолжительности и прочим особенностям.
Теперь на секунду представим, что разработчики dizzyage, agd, chererra и по вдруг подумали так же как ты и не стали выпускать свои движки. Появились бы other side dizzy, volcanic island, кольцо закса, осьминожки и другие хорошие игры? Естественно нет!
Вот вопрос и снят. А если кому-то не нравится какая-то новая игра. Так его и не заставляют в нее играть. Не обязательно даже за всеми следить. Можно подождать, почитать обзоры, посмотреть стримы и решить надо оно тебе или нет. Но только из за прихоти и не желания разбираться в качестве игры, лишать кого-то инструмента и творчества - это последнее дело. Это чистой воды эгоизм.

Lethargeek
25.02.2019, 19:36
Сейчас человек не будет изучать АСМ ради создания игры.
значит, человеку нужно в этом помочь, а не отвращать (и не развращать) его окончательно


Возраст уже не тот и времени нет. Человек будет искать удобный инструмент.
то есть человеку нужен удобный инструмент для создания игр на асме :p


Причем игры на движках далеко не все посредственные. Есть такое, что геймплей агд'шный приелся. Но это не делает агд плохим редактором.
его делает плохим другое, он (возможно, преднамеренно) архаичен, одни ксорки мерзкие чего стоят


Игры на агд делают в основном буржуины, значит им такой геймплей нравится.
На dizzyage было выпущена 141 игра. Значит ли это, что шедевры на едже теряются среди игр попроще? Отнюдь
ну еще бы, нечему теряться - и не теряются)) это среди них оригинальные теряются в общих списках


Каждый может выбрать себе игру по вкусу, продолжительности и прочим особенностям.
как дедуля Форд говаривал: "можете выбирать автомобиль любого цвета , при условии, что этот цвет - черный" :D


Теперь на секунду представим, что разработчики dizzyage, agd, chererra и по вдруг подумали так же как ты и не стали выпускать свои движки. Появились бы other side dizzy, volcanic island, кольцо закса, осьминожки и другие хорошие игры? Естественно нет!
ой, не факт! мне вот видится, что усилий, потраченных на выжимание из конструкторов нестандартного изображения и геймплея, с лихвой хватило бы на изучение ассемблера, хоть с кодом самого конструктора как примером


Вот вопрос и снят. А если кому-то не нравится какая-то новая игра. Так его и не заставляют в нее играть. Не обязательно даже за всеми следить. Можно подождать, почитать обзоры, посмотреть стримы и решить надо оно тебе или нет. Но только из за прихоти и не желания разбираться в качестве игры, лишать кого-то инструмента и творчества - это последнее дело. Это чистой воды эгоизм.
Да, лишать, конечно, не надо, но не надо и разбрасываться пустогромкими словами типа "шедевры", а сразу дать понять, что на спектруме игры из конструкторов - заведомый второй сорт, и что желательно бы двигаться дальше. Дело ведь не столько в качестве геймплея и "прочих особенностей", а в том, что оживляет и двигает вперёд платформу только новый оригинальный код (по меньшей мере - творческая рекомбинация старого). Сам конструктор может быть интересен, но клепание на нём кучи одинаковых поделок - это не жизнь. Даже код оригинальных дизей от игры к игре всё-таки менялся и развивался.

hippiman
25.02.2019, 20:04
Товарищ, ты реально не прошибаем. :D Я даже не буду пытаться переубедить.

goodboy
25.02.2019, 20:36
на спектруме игры из конструкторов - заведомый второй сорт
разве игры на Freescape ужасны или тот-же FairLight ?

krt17
25.02.2019, 21:11
Чет я не понимаю причину бурления, я готов играть в любые диззи Z хоть каждую неделю, только не такие огромадные как на диззиэйдж.
Про застревания проверил еще раз со всеми полами потолками которые нашел, во всех застревает, в аналогичных текстурах в классике пролетает нормально

тест (http://gamergy.ru/files/game.trd)

Lethargeek
25.02.2019, 21:22
разве игры на Freescape ужасны
ну как сказать... может, дальше было бы интереснее, но после пары минут блужданий продолжать не возникало желания :D
(именно в поделках на 3d-kit, в отличие от оригинальных фирменных прародителей)


или тот-же FairLight ?
а он-то при чём? гракс - это же ни разу не законченный конструктор для незнатоков асма

Verm-V
25.02.2019, 21:47
Про застревания проверил еще раз со всеми полами потолками которые нашел, во всех застревает, в аналогичных текстурах в классике пролетает нормально

тест (http://gamergy.ru/files/game.trd)
Спасибо. Будем разбираться.

hippiman
25.02.2019, 22:15
Чет я не понимаю причину бурления, я готов играть в любые диззи Z хоть каждую неделю, только не такие огромадные как на диззиэйдж.
Про застревания проверил еще раз со всеми полами потолками которые нашел, во всех застревает, в аналогичных текстурах в классике пролетает нормально

тест (http://gamergy.ru/files/game.trd)

Действительно. Косяк, буду разбираться.

goodboy
25.02.2019, 23:10
именно в поделках на 3d-kit, в отличие от оригинальных фирменных прародителей
вот и получается что всё зависит от писателя/автора скрипта, а не автора движка.

Lethargeek
25.02.2019, 23:36
вот и получается что всё зависит от писателя/автора скрипта, а не автора движка.
не получается, автор может подгонять свой движок под конкретный случай, конструктор же заведомо ограничен

goodboy
26.02.2019, 00:22
автор этого движка в-теме (и скорее всего что-то сможет прикрутить при внятном сценарии) ограничений нет.

Lethargeek
26.02.2019, 01:20
автор этого движка в-теме (и скорее всего что-то сможет прикрутить при внятном сценарии) ограничений нет.
ты сам должен понимать, что это совсем не то же самое, чем подгонка своего старого (или даже не своего) кода под свой проект программистом

Enigmatic
26.02.2019, 07:02
Зато теперь в AGE игры можно будет играть на телефоне, если конечно кто нибудь переведёт

Titus
26.02.2019, 07:28
Зато теперь в AGE игры можно будет играть на телефоне, если конечно кто нибудь переведёт
Переведет с чего на что?
Большинство игр с DizzyAge нельзя перевести на DizzySE, т.к. возможности DizzySE, да и Спектрума - значительно скромнее.

hippiman
26.02.2019, 12:48
Про застревания проверил еще раз со всеми полами потолками которые нашел, во всех застревает, в аналогичных текстурах в классике пролетает нормально

тест (http://gamergy.ru/files/game.trd)
Разобрался с этой проблемой. Ещё немного потестю и сегодня или завтра будет багфикс

Vinnny
27.02.2019, 00:01
Это, конечно, можно сделать. Только, боюсь, Оливеры от такой наглости прифигеют :)

конкуренция однако. пусть курят и думают :)

hippiman
04.03.2019, 23:38
Итак, первое обновление. Версия 1.0.1

Движок:

Существенно перелопачена физика прыжка. Диззи теперь не цепляет затылком за шершавые поверхности, а скользит вдоль них.
Убрана за ненадобностью анимация STUN. Вместо неё теперь находится анимация DEATH. Ранее эта анимация собиралась движком из анимаций IDLE и JUMP FRONT. Может пригодиться для игр, где главный герой не Dizzy.
Добавлено новое событие EVT_ANIMATION_END. Скрипт по этому событию вызывается в момент завершения анимации у целевого объекта. Для активации этого события нужно записать в переменную EVT_ANIMATION_END ID нужного объекта. Естественно, у него должна быть настроена анимация и задан скрипт.


NEDORES:

Использована новая версия утилиты NEDORES. В старой версии был найден баг, при котором при некотором сочетании цветов устанавливалась неверная яркость знакоместа.


IDE:

IDE следит за количеством открытых копий DizzyAGE и не дает открыть больше одной.
Ранее настройки тайлсетов для утилиты nedores хранились в DizzySE/tools/Tileset.txt. Теперь для каждого тайлсета создается свой файл с настройками и именем tileset(номер).txt. Это может пригодиться если в игре планируется использовать фон не черного цвета.
DizzyAGE использует прозрачный цвет чтобы определять проходимость кистей.
т.е. если взять в наклонную поверхность и не указать в tga прозрачный цвет, то в катре тайлов, выводимой из DizzyAge на месте этой кисти будет, не лесенка, а прямоугольная область. При попадании какой-либо фоновой графики в эту область, будут возникать глюки физики.
Раньше в IDE прозрачный цвет был явно указан - черный.
Сейчас за прозрачный цвет отвечает левый-верхний пиксель во 2м тайле.
Очень нужно, когда фон в игре будет не черный.


Прямая ссылка (https://yadi.sk/d/qTK-frRJyt8olA)
Сайт проекта (http://dizzyse.ru)

hippiman
24.06.2019, 16:44
DizzySE доросла до версии 1.1.0

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

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

Теперь мануалы включены в дистрибутив и открываются прямо из IDE.
Немного улучшен интерфейс.
Новые функции в скриптовом языке:
CALL(номер скрипта) - позволяет вызывать один скрипт из другого, с последующим возвратом обратно. При сложном скриптинге, позволяет существенно экономить место.
PUSH(variable) POP(variable) - Эти две функции реализуют внутриигровой стек на 30 значений.
REDRAW_OBJECT(variable) - перерисовывает указанный объект и обновляет карту материалов под ним.
UPDATE_MAT_OBJECT (VARIABLE) - обновляет карту материалов под объектом без перерисовки экрана.
REDRAW_HUD() - перерисовывает шапку окна. А точнее счетчик жизней и монет без полной перерисовки экрана. Название комнаты выводится при её полной перерисовке.
GOTOROOM(variable, variable), ROOMFIND (variable,variable) - это две старые функции, теперь существуют и с такими типами параметров.

Динамические объекты рисуются сразу с учетом поля frame не зависимо от того, включена в них анимация или нет.
Немного изменена физика движения персонажа.
В IDE добавлена возможность получения статистики проекта. В окно журнала выводится сводка по размерам всех файлов проекта: сколько файл занимает места и сколько места осталось.
Так же проверяется тип музыкального трека (single chip, turbo sound).
Изменена раскадровка анимаций игрока. Теперь под анимацию IDLE выделено 4 кадра, а под DEATH 3 кадра.

Ссылка на сайт http://www.dizzyse.ru
Прямая ссылка на скачивание https://yadi.sk/d/nxRpsCNBqZmZUQ

NEO SPECTRUMAN
24.06.2019, 23:11
Теперь на секунду представим, что разработчики dizzyage, agd, chererra и по вдруг подумали так же как ты и не стали выпускать свои движки. Появились бы other side dizzy, volcanic island, кольцо закса, осьминожки и другие хорошие игры? Естественно нет!
выйдут но явно не в таком количестве...

и дето тут был интересный текст только про демки
с таким смыслом что
когда каждый (вставить пропущенное слово) может легко запилить "некий продукт"
потом этого гофна просто тонны
а изза его потока среди него уже не видно чего то стоящего...

да отсеять по некой оценке\рейтингу
тоже часто не получается
пушо 99% всех голосов от таких же (вставить пропущенное слово)



Сейчас человек не будет изучать АСМ ради создания игры
подставь сбоку имхо...

скорей всего асм не будут учить сишники
у них настолько за си*ш*низированный моск
что они потом постоянно ищут какой нить компилятор для z80 да побыстрее и менее глючней, какой нить sdk, ide итд...


...да и проблема не сколько выучить асм
а выделить пол года времени
на написание чего либо на асм-е

goodboy
24.06.2019, 23:45
странно что другие не оценили явный намёк что на движке можно делать игры и не про диззи

http://hippiman.16mb.com/DizzySE/boss.gif

NEO SPECTRUMAN
25.06.2019, 00:00
странно что другие не оценили явный намёк что на движке можно делать игры и не про диззи
Ну дык название темы какое?
Те кто мог оценить
Вполне могли пройти мимо...


кстате от куда 2 других спрайта? (игрок вроде из oli & lissa
(нагловыдаваемыйзадиззю :) ))
бос явно какой то nes-овкий
летучка на вид спектрумовская
http://hippiman.16mb.com/DizzySE/boss.gif

hippiman
25.06.2019, 12:33
Босс из мегамена. С гейм боя, кажется. Привидушка из какого-то Марио.

Bedazzle
27.06.2019, 08:32
Иностранцы заволновались, что результат компилит в трд. Прикидывают, можно ли переделать под тапок, и нет ли внутриигровых подгрузок.

ZX_NOVOSIB
27.06.2019, 09:44
Иностранцы заволновались
Ха! Проснулись... А вообще, я ЗА то, чтобы дать буржуям тапок. Вроде бы единственное неудобство - это то, что после выбора управления надо будет дозагружать саму игру. Но так было во многих играх конца 80-ых, начала 90-ых! А если брать 48к, то там вообще куча игр с подзагрузками левелов, и после каждого фейла, надо было отматывать кассету, и грузить игровое меню/первый лвл, и ничо ))

OMu4
27.06.2019, 13:25
странно что другие не оценили явный намёк что на движке можно делать игры и не про диззи

http://hippiman.16mb.com/DizzySE/boss.gif

был же пример про какой-то квадрат со скругленными углами... на этом движке

hippiman
27.06.2019, 15:49
был же пример про какой-то квадрат со скругленными углами... на этом движке

Да. Это Verm-V игру делает.
Кому интересно, найдите меня или Verm-V в твитере
https://twitter.com/Hipilion
https://twitter.com/VermV1
И полистайте ленту. Найдете много примеров чего на этом движке можно сделать.

- - - Добавлено - - -


Иностранцы заволновались, что результат компилит в трд. Прикидывают, можно ли переделать под тапок, и нет ли внутриигровых подгрузок.

Интересно :)Где заволновались?
Внутриигровых подгрузок сколько угодно. Графику и музыку можно на лету догружать хоть каждый шаг. Игровые карты еще можно загружать, но там без сохранения состояния в предыдущей карте т.е. туда-сюда не помотаешься.

ZX_NOVOSIB
27.06.2019, 18:22
Внутриигровых подгрузок сколько угодно. Графику и музыку можно на лету догружать хоть каждый шаг.
Ну какой-то урезанный вариант, без подзагрузок, можно им дать? Пусть хоть коротенькие игры клепают. Вот нужен им тап, и всё тут...

- - - Добавлено - - -


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

hippiman
27.06.2019, 19:15
Ну какой-то урезанный вариант, без подзагрузок, можно им дать? Пусть хоть коротенькие игры клепают. Вот нужен им тап, и всё тут...

- - - Добавлено - - -


Надо придумать возможность сохранения в предыдущей карте, чтобы туда-сюда мотаться :)

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

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

ZX_NOVOSIB
27.06.2019, 20:02
Ну это как-то странно. Делать движок заточенный на работу с диском, потом обрезать его и переделывать под ленту.
Ясно. Ну да. Ну значит хрен им, а не тапок. Пусть DivMMC юзают, там esxDOS, а там трдос, вот и всё.

Bedazzle
28.06.2019, 23:07
Интересно :)Где заволновались?

https://spectrumcomputing.co.uk/forums/viewtopic.php?f=6&t=1646

ZX_NOVOSIB
29.06.2019, 14:16
странно что другие не оценили явный намёк что на движке можно делать игры и не про диззи

http://hippiman.16mb.com/DizzySE/boss.gif

А что о сабже скажет главный AGD-игрописатель kas29 ? :)

hippiman
29.06.2019, 22:25
Подкину еще разных анимашек.

Переходы между уровнями.
http://www.dizzyse.ru/gifs/between_levels.gif

Уровень генерируется случайным образом.
http://www.dizzyse.ru/gifs/lv3.gif

Игра в стиле Диззи, над которой работает Verm-V
http://www.dizzyse.ru/gifs/kubik1.gif
http://www.dizzyse.ru/gifs/kubik2.gif
http://www.dizzyse.ru/gifs/kubik3.gif

NEO SPECTRUMAN
29.06.2019, 23:35
Переходы между уровнями.
может это и просто пример
но переход сильно затянут (с поправкой на fps gif-a)
особенно движение по карте...

- - - Добавлено - - -

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

hippiman
29.06.2019, 23:50
может это и просто пример
но переход сильно затянут (с поправкой на fps gif-a)
особенно движение по карте...



А, ну так это же проскакивается нажатием кнопки. Для гифки я оставил полную анимацию

NEO SPECTRUMAN
30.06.2019, 00:19
А, ну так это же проскакивается нажатием кнопки.
но это не отменяет затянутости
если делать из этого игру
лучше бы сократить длину пути на карте

в качестве плохого примера приведу вот это
(не вспомню с ходу подходящего примера как надо)
тут же на оборот несколько маловато
https://i.ytimg.com/vi/JfB56IL62A0/hqdefault.jpg


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

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

hippiman
30.06.2019, 00:36
Ну так это часть будущей игры и есть :) ты, кстати, пока единственный, кто сказал, что анимации затянуты.
Я так считаю: если анимацию можно прервать в любой момент, то пусть хоть 5 минут идёт. Игрок сам решит когда насмотрелся.

И пример у тебя и правда плохой :) в сониках, порой, подсчет очков был затянут, но это как-то не раздражало.
В golden axe по карте перемещения были долговаты, но опять же не раздражали. Давали передохнуть что-ли.

Короче, финальное тестирование покажет, но я твое замечание взял на заметку.

NEO SPECTRUMAN
30.06.2019, 01:06
Я так считаю: если анимацию можно прервать в любой момент, то пусть хоть 5 минут идёт. Игрок сам решит когда насмотрелся.

И пример у тебя и правда плохой в сониках, порой, подсчет очков был затянут, но это как-то не раздражало.
В golden axe по карте перемещения были долговаты, но опять же не раздражали. Давали передохнуть что-ли.
но не вовсех играх тоже идеально

конечно возможность прервать это хорошо

но хорошо когда оно при этом хорошо выглядит
к примеру в несовском battletoads double dragon хоть все межуровневые заставки и медленные
они не вызывают такого же чувства "ну когда же он добежит"

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

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

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

- - - Добавлено - - -


В golden axe по карте перемещения были долговаты, но опять же не раздражали. Давали передохнуть что-ли.
кстате когда перемещение управляемое
передыхать можно сколько хочешь
и совсем другое восприятие

Lethargeek
23.10.2020, 01:04
заглянул сейчас в код RoboBro с прицелом на обесклэшку... это какой-то адЪ :v2_dizzy_facepalm:

слишком навороченный на первый взгляд вывод спрайта еще ладно, спорный вопрос...

но! зачем всё сначала рисовать на неотображаемом экране в 5-й странице, а потом перекидывать его в 7-ю страницу??

лдирами, Карл, даже не лди-лди! почти весь, кроме узкой неизменной рамки, одинаковой на этих экранах!

https://www.meme-arsenal.com/memes/8dca9bd10365f38e5710464103185b94.jpg

NEO SPECTRUMAN
23.10.2020, 16:35
https://www.meme-arsenal.com/memes/8dca9bd10365f38e5710464103185b94.jpg

это ты не копался в пзушке 48-го
там такие конченейшие конструкции
что не есно как они оно в 82 году все отладили...

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

Lethargeek
23.10.2020, 18:09
NEO SPECTRUMAN, да копался, но там хоть понятно, почему так (начиная с дяди Клайва экономичного)
а здесь чота вообще вообразить не могу, нахрена аппаратный скрин в родной раскладке применять как теневой буфер
не, ребят, такого не должно быть, если вы хотите в самом деле видеть аркады, а не только лишь унылые клоны диззи

- - - Добавлено - - -

притом игра-то неплохая, разнообразная, только притормаживает и режется

goodboy
23.10.2020, 18:21
нахрена аппаратный скрин в родной раскладке применять как теневой буфер
может это задел на ATM экран ?

Lethargeek
23.10.2020, 19:07
может это задел на ATM экран ?
чем это поможет на АТМ? да и надо в таких случая просто подключать другой код

Sayman
24.10.2020, 04:28
в защиту Hippiman`а могу сказать, что он хорошо может закодить на си, но, как он сам говорил когда то давно, в асме не очень силён. если ты видишь, что код не оптимален. предложи альтернативу, запили кусок кода, который по твоему мнению будет более правильным. а так, ты просто пришёл просраться (видимо потому, что жена с утра не дала или ещё там что).

Lethargeek
24.10.2020, 12:01
в защиту Hippiman`а могу сказать, что он хорошо может закодить на си, но, как он сам говорил когда то давно, в асме не очень силён. если ты видишь, что код не оптимален. предложи альтернативу, запили кусок кода, который по твоему мнению будет более правильным. а так, ты просто пришёл просраться (видимо потому, что жена с утра не дала или ещё там что).
:v2_dizzy_facepalm: нет, это ты, походу, просто пришёл посраться, раз без перехода сразу начал с личного наезда (чего я сейчас не делал)

что до хиппимана, или кто там еще участвует, то его/их главная проблема даже не в асме, а в непонимании целевой платформы

я-то еще сперва подумал было - давно пофиксили - но нет, оно не обновлялось полтора года, собрано до этой игры еще

hippiman
25.10.2020, 01:20
Привет ребята. Давайте немного внесу ясности. Движок dizzySE написан на nedolang от AloneCoder в котором есть графические процедуры для рисования спрайтов и тайлов. Эти процедуры изначально были достаточно прожорливы для памяти, а памяти мне для dizzySE нужно было как можно больше. Я попросил влепить костыль, чтобы освободить одну страницу. В итоге остался экран в пятой (куда сначала грузится рамка) и буфер для рисовки в 7й (куда рисуются тайлы, спрайты и прочая нечисть и который копируется в игровую область). Я пробовал перемещать буфер напрямую в 5ю но это выглядело реально стремно т.к. там происходят всякие восстановления фона и пр. прямо на глазах у игрока. И была бы это демка, можно было бы ухитриться и подогнать все под тайминги, но я не могу знать заранее что будет на экране. Там может быть простой набор тайлов и все будет быстро. А может быть несколько движущихся спрайтов плюс сложные скрипты, которые сами по себе хорошо отжирают процессорное время. Так что было решено оставить как есть.
Почему копирование происходит так меня не спрашивайте, не знаю. Как заметил Sayman, я реально плохо знаю асм. Максимум могу написать простенькую процедурку или оптимизировать компилированный с С код (за время разработки и оптимизации движка немного поднатаскался в асме, но тем не менее). Но если Alone Coder намеренно сделал так, то значит так оно и надо ибо в этом плане я ему полностью доверяю.
Если считаете, что копировать можно как-то быстрее, просто дайте этот кусок кода и куда его вставить. Я пересоберу движок и проверим так ли это.

Lethargeek
25.10.2020, 02:49
Движок dizzySE написан на nedolang от AloneCoder в котором есть графические процедуры для рисования спрайтов и тайлов. Эти процедуры изначально были достаточно прожорливы для памяти, а памяти мне для dizzySE нужно было как можно больше. Я попросил влепить костыль, чтобы освободить одну страницу.
ничего там не освобождено, два экрана занимают память на два экрана


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


Я пробовал перемещать буфер напрямую в 5ю но это выглядело реально стремно т.к. там происходят всякие восстановления фона и пр. прямо на глазах у игрока.
это называется "рисовать в экран напрямую", а не "перемещать буфер"
и зачем "стрёмно рисовать" лишь в один из них, когда их два?


Почему копирование происходит так меня не спрашивайте, не знаю.
не, вопрос в том, почему оно вообще происходит :v2_dizzy_biggrin2:


Как заметил Sayman, я реально плохо знаю асм. Максимум могу написать простенькую процедурку или оптимизировать компилированный с С код (за время разработки и оптимизации движка немного поднатаскался в асме, но тем не менее).
а тут не асм надо было знать, а просто обдумать потоки данных


Но если Alone Coder намеренно сделал так, то значит так оно и надо ибо в этом плане я ему полностью доверяю.
ахахшта? :v2_dizzy_messed: так это алоний накосорезил? :v2_lol:


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

hippiman
25.10.2020, 10:51
Алгоритм рисовки я менять точно не буду. Спрайтовый движок не мой и лезть туда дело не благодарное. Если у тебя есть код который ускорит копирование - милости просим.
Иначе извиняйте, оставляю как есть.

Lethargeek
25.10.2020, 13:02
Алгоритм рисовки я менять точно не буду. Спрайтовый движок не мой и лезть туда дело не благодарное.
да необязательно в отрисовке спрайтов что-либо менять, кроме единственного бита в экранном адресе
ну прочти же ты наконец хоть краткое описание архитектуры спека и карты памяти
и не надо кивать на плохое знание асма, это не про асм
что за безответственность, ё-моё

...а потом удивляются, почему кто-то считает игры из конструктора второсортными :v2_rolley


Если у тебя есть код который ускорит копирование - милости просим.
да блин горелый же :v2_dizzy_facepalm:


DUP 30
ldi
EDUP

вместо


ld bc, 30
ldir

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

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

hippiman
26.10.2020, 00:11
Ок. Вот недоленговская функция, которая копирует экран.

showscr
ld de,scrtop
ld hl,scrbuf-scraddr ;0x4000 ;screen5
add hl,de
ld b,scrhgt
showscrtileline.
push bc
ld a,8
showscrline.
push de
push hl
ld bc,scrwid
ldir
pop hl
pop de
inc h
inc d
dec a
jp nz,showscrline.
push de
push hl
;ld a,h
;rrca
;rrca
;rrca
;add a,0x18+(scrbuf/256)-(scrbuf/0x800)-1
;ld h,a
ld a,d
rrca
rrca
rrca
add a,0x18+(scraddr/256)-(scraddr/0x800)-1 ;0x58-(0x40/8)-1 ;screen5
ld d,a
add a,+(scrbuf-scraddr)/256
ld h,a
ld bc,scrwid
ldir
pop hl
pop de
pop bc
ld a,e
sub -32
ld e,a
sbc a,a
and -8
add a,d
ld d,a
ld a,l
sub -32
ld l,a
sbc a,a
and -8
add a,h
ld h,a
djnz showscrtileline.
ret
Что-то похожее на

ld bc, 30
ldir
Тут встречается 2 раза.

ld bc,scrwid
ldir
Как тут лучше сделать?

Lethargeek
26.10.2020, 00:55
Тут встречается 2 раза.
ld bc,scrwid
ldir
Как тут лучше сделать?
ну так дважды и замени (первый раз даст больший эффект при этом)

- - - Добавлено - - -

остальное тоже можно улучшить (зачем столько медленных push и pop?)
но сейчас некогда, да и по уму надо избавляться вовсе от переброски

hippiman
26.10.2020, 00:55
ну так дважды и замени (первый раз даст больший эффект при этом)

Не :) DUP и EDUP я так понял - типа цикла надо организовать так? Ибо компилятор меня не понял.
Яж говорил, мне после постоянного кодинга на яву асм с огромным трудом дается.
Подскажи пожалуйста прямо куском, чтобы я подставил, скопмилировал и оно заработало. Байт 200-300 в запасе еще есть вроде.

Lethargeek
26.10.2020, 01:01
Не DUP и EDUP я так понял - типа цикла надо организовать так? Ибо компилятор меня не понял.
какой цикл? это тупо повторить фрагмент (в данном случае одну команду) N раз

- - - Добавлено - - -

или подожди, пока полностью не переделаю процедуру (хотя всё это полумеры, как говорил)

hippiman
26.10.2020, 01:17
какой цикл? это тупо повторить фрагмент (в данном случае одну команду) N раз

- - - Добавлено - - -

или подожди, пока полностью не переделаю процедуру (хотя всё это полумеры, как говорил)

Лучше подожду. :)
Сейчас глобально что-то менять уже поздновато, думаю. А так по мелочи может что и выйдет.
Но там главный тормоз не копирование экрана, а сама архитектура.
Я не могу знать заранее что сколько будет занимать памяти и оптимально это все распихать по памяти. Приходится выделять с запасом, а потом постоянно щелкать страницами. Зато универсальность )

Lethargeek
26.10.2020, 01:35
Сейчас глобально что-то менять уже поздновато, думаю.
с чего вдруг? движки можно бесконечно допиливать)


Но там главный тормоз не копирование экрана, а сама архитектура.
а вот и нет :p никогда не будь ни в чём уверен, не подсчитав
там за полный игровой кадр даже с 4 спрайтами переброска буфера жрёт больше тактов, чем ВСЁ остальное
и это на нетормозном пентагоне, а на фирменных машинах всё еще печальнее должно быть

hippiman
27.10.2020, 21:10
Вот еще. Может интересно будет
https://youtu.be/YpknjBry4RY
Я же движок dizzySE на недоленге писал.
Это видос как этот недоленг устроен

Lethargeek
28.10.2020, 00:41
Я же движок dizzySE на недоленге писал.
Это видос как этот недоленг устроен
не, я ниасилю столько смотреть :) но проблемы у движка даже не от выбора языка, а от выбора неверного алгоритма
у тебя же фон почти не меняется, спрайтов мало, так что незачем такой огромный буфер иметь, и необязателен даже аппаратный второй экран
каждый спрайт сначала рисовать в спрайтовый отдельный буфер с подлежащим куском экрана (на все вместе килобайта вполне хватило бы)
потом по прерыванию дождаться начала кадра и быстро перекинуть в экран эти буфера, все перед лучом спокойно успел бы
так бы вышло и быстрее, и без глючков, да еще и памяти бы сэкономил несколько килобайт

hippiman
28.10.2020, 01:03
не, я ниасилю столько смотреть :) но проблемы у движка даже не от выбора языка, а от выбора неверного алгоритма
у тебя же фон почти не меняется, спрайтов мало, так что незачем такой огромный буфер иметь, и необязателен даже аппаратный второй экран
каждый спрайт сначала рисовать в спрайтовый отдельный буфер с подлежащим куском экрана (на все вместе килобайта вполне хватило бы)
потом по прерыванию дождаться начала кадра и быстро перекинуть в экран эти буфера, все перед лучом спокойно успел бы
так бы вышло и быстрее, и без глючков, да еще и памяти бы сэкономил несколько килобайт

Ну движок на движке такое и выходит.
Ндоленг не только язык же, а еще и набор библиотек. Спрайтовый и тайловый движки оттуда же.
Это я уже поверх свое нагородил: скрипты, рендеринг комнаты в буфер и пр.

Lethargeek
28.10.2020, 01:30
Ну движок на движке такое и выходит.
Ндоленг не только язык же, а еще и набор библиотек. Спрайтовый и тайловый движки оттуда же.
и что, там в библиотеках простых блочных процедур не нашлось?

hippiman
28.10.2020, 19:43
и что, там в библиотеках простых блочных процедур не нашлось?

Не, ну если так вопрос поставить, то конечно можно переписать движок под свои нужды. Тут да, ты прав.

Sayman
29.10.2020, 05:24
А на сайте сабжа чего то не видно исходников.