PDA

Просмотр полной версии : Игры от Shaw brothers



goodboy
14.04.2016, 19:07
похожесть многих игр от этих братов/акробатов наводила на-мысль об использовании одинакового движка,
но реальность оказалась гораздо жёщще.

http://www.worldofspectrum.org/pub/sinclair/screens/in-game/h/Heartbroken.gifhttp://www.worldofspectrum.org/pub/sinclair/screens/in-game/v/Venturama.gif
http://www.worldofspectrum.org/pub/sinclair/screens/in-game/a/Aquasquad.gifhttp://www.worldofspectrum.org/pub/sinclair/screens/in-game/t/TankCommand.gif

внутри достаточно излишний код, вручную такого не-сотворишь.
кроме того у всех игр оказался одинаковым набор базовых процедур и интенсивное использование rst#10 для вывода графики.
проверив наугад несколько компиляторов с-разных языков удалось найти 100% совпадение
все игры изначально были написаны на-бейсике и обработаны mcoderII

http://www.worldofspectrum.org/pub/sinclair/screens/load/m/gif/MCoderII.gif

creator
14.04.2016, 22:31
Tank Command клёвая!

P.S. игры Atlantis Software Ltd тоже все какие-то одинаковые. :)

ZX_NOVOSIB
15.04.2016, 12:36
но реальность оказалась гораздо жёщще.

внутри достаточно излишний код, вручную такого не-сотворишь.
кроме того у всех игр оказался одинаковым набор базовых процедур и интенсивное использование rst#10 для вывода графики.
проверив наугад несколько компиляторов с-разных языков удалось найти 100% совпадение
все игры изначально были написаны на-бейсике и обработаны mcoderII

Прекрасная реальность. Если в те далекие годы, когда не было таких инструментов как сейчас (сейчас проги на zx-бейсике ведь пишут на писи, в спец.редакторах), люди умудрялись делать такое на бейсике, то это удивительно, и вызывает восторг! Выходит бейсик компиляторы это не бесполезная игрушка, а очень даже полезный инструмент ))

Кстати, а Лаву нельзя ничем обработать? Почему все забыли про Лаву? Кто-то вроде даже грозился переписать её на асме! И где все? Игру надо допилить до играбельной скорости, + добавить пару левелов, получится шедевр! Игру нельзя бросать, много игр на спектруме написанных девушками?? А тем более русскими девушками?? :)

jerri
15.04.2016, 12:58
goodboy, а heartbroken тоже? там таки спрайты с масками же?

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


Прекрасная реальность. Если в те далекие годы, когда не было таких инструментов как сейчас (сейчас проги на zx-бейсике ведь пишут на писи, в спец.редакторах), люди умудрялись делать такое на бейсике, то это удивительно, и вызывает восторг! Выходит бейсик компиляторы это не бесполезная игрушка, а очень даже полезный инструмент ))

Кстати, а Лаву нельзя ничем обработать? Почему все забыли про Лаву? Кто-то вроде даже грозился переписать её на асме! И где все? Игру надо допилить до играбельной скорости, + добавить пару левелов, получится шедевр! Игру нельзя бросать, много игр на спектруме написанных девушками?? А тем более русскими девушками?? :)

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

goodboy
15.04.2016, 14:15
а heartbroken тоже? там таки спрайты с масками же?
для вывода спрайтов используется вставка на чистом асме, остальное компилят
...............
после печати пейзажа аттрибуты на него пересылаются через ldir (сразу на 2/3)
http://savepic.ru/9422147.pnghttp://savepic.ru/9418051.png

(в игре примерно 20 вставок)

изначально игра сделанная по-мотивам ghosts 'n' goblins называлась excalibur,
через год она вышла с изменённой графикой и добавленным вступлением.
название было навеяно песней Lloyd Cole - Are You Ready To Be Heartbroken

jerri
15.04.2016, 14:57
goodboy, я в свое время так и не смог в компилированный бейсик запихнуть usr adr - ругалось

goodboy
15.04.2016, 15:15
я в свое время так и не смог в компилированный бейсик запихнуть usr adr - ругалось
http://www.worldofspectrum.org/infoseekid.cgi?id=0011101
работает, хотя лишнего кода многовато

http://savepic.ru/9380188.png

...................................

наугад проверил это - тот же компилятор

http://www.worldofspectrum.org/pub/sinclair/screens/in-game/s/Samurai.gifhttp://www.worldofspectrum.org/pub/sinclair/screens/in-game/z/ZuluWars.gif

jerri
15.04.2016, 17:02
У меня компилятора не было
у меня была игра Puppy Power
там тоже компилер
вот из него почему то и ругался... хотя да должен был бы

goodboy
15.04.2016, 18:00
игра Puppy Power
там тоже компилер

там тоже внутри mcoder2 + вызов пары вставок на-асме

NEO SPECTRUMAN
15.04.2016, 22:24
все игры изначально были написаны на-бейсике и обработаны mcoderII
почему нет
результат более менее играбелен

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

* Felix *
16.04.2016, 03:47
Не понятно, если братья накодили 20 асемблерных вставок, то нафига городить огород с бейсиком и компилятором, уж дальше бы кодили логику игры и базы экранов вбивали, тем более игры у них достаточно простенькие, и привлекают к себе большей частью графикой.

jerri
16.04.2016, 07:55
* Felix *, в то время очень популярно было написание игр на бейсике.
да и я бы сказал что идеология игры на бейсике и написанной на асме серьезно отличается

Oleg N. Cher
06.05.2018, 19:07
Итак, вопрос интереса звучит так: каких именно возможностей не хватает стандартному Спектрум-Бейсику для написания на нём выглядящих профессионально игр, что их отсутствие приходится компенсировать кодовыми вставками. Притом игры обычно скомпилированы, не вызывают ассоциации с Бейсиком, но вызывают удивление при ассоциации с Бейсиком. :) Ну типа как Heartbroken. Когда в неё играешь, не возникает ощущения, что это на Бейсике.

Так что было бы интересно подробнее узнать о результатах реверс-инжиниринга игр от братьев Shaw. Использовали ли они линкер, вырезающий неиспользуемый код? Как именно передавались параметры в кодовые вставки?

Кстати, я когда-то декомпилировал вручную игру Тетрис, написанную на Бейсике и откомпилированную. Уже не помню, какой компилятор это был. Но это было сравнительно несложно, даже наверно где-то лежит тетрадка с листингом.

goodboy
06.05.2018, 19:12
если не ошибаюсь полноценным компилятором была только программа от HiSoft
http://www.worldofspectrum.org/infoseekid.cgi?id=0008249
остальные скорее раскладывали бейсик строки в более удобоваримый вид для подставления на обработку в пзу

Oleg N. Cher
06.05.2018, 19:17
MCoder2 вполне полноценный. Он делает чистый машкод с вызовом для каждого Бейсик-оператора подпрограммы из своего рантайма (весь набор обычно - это 3-5 кб кода, использующего ПЗУ). Лишние процедуры из рантайма научились даже вырезать, оптимизируя размер кода.

Конечно такой компилятор не в силах дать слишком уж хороший код, да и Бейсик как язык не способствует этому. Поэтому в набортных компиляторах полно ограничений: только целочисленная арифметика, нет обработки строк и т.д. Скорость вывода текста (и UDG-графики) обычно тоже не ускорена - используется всё тот же RST #10. Вот и приходится юзать кодовые вставки для работы с графикой.

goodboy
06.05.2018, 19:19
Скорость вывода текста (и UDG-графики) обычно тоже не ускорена - используется всё тот же RST #10. Вот и приходится юзать кодовые вставки для работы с графикой.
вот и приходиться при выводе локации печать всё `невидимым` (попутно меняя шрифты для тайлов) , а потом кидать аттрибуты LDIR`om.

естественно `излишний` код оставляет меньше места для данных,
поэтому например в DownTown печатается каждый второй столбик, а потом они сдвигаются
http://www.worldofspectrum.org/pub/sinclair/screens/in-game/d/Downtown.gif

SaintTurnip
06.05.2018, 19:38
"поэтому например в DownTown печатается каждый второй столбик, а потом они сдвигаются"

в смысле, растянуто по горизонтали?

goodboy
06.05.2018, 19:40
в смысле, растянуто по горизонтали?
ага, то есть в реале задействовано 16столбцов, а не 32.
хотя наверно скорее печатается только половинка ???
........
точно помню что печатается разрозненный скрин, а потом сдвигается

SaintTurnip
06.05.2018, 19:56
Интересная находка. Надо будет попробовать.

Как они восстанавливают экран после смещения спрайта?

И как хранят карту? В бейскик-структурах?

Бука
06.05.2018, 23:50
И как хранят карту? В бейскик-структурах?

В DIM-массиве удобно хранить карту вместе с цветовыми кодами, печатается очень быстро. В 2014м я собирался участвовать в конкурсе игр, по фатальным причинам самоустранился.

Но тут точно лежат файлики теста моего движка, листать мне сейчас поздно: http://zx-pk.ru/threads/22974-konkurs-igr-na-bejsike.html

SaintTurnip
06.05.2018, 23:56
Ну в целом я знаю как игры делаются. Интересно про работы Шау.

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

Бука, интересный тред, спасибо

Бука
07.05.2018, 00:03
http://zx-pk.ru/attachment.php?attachmentid=46823&d=1395149899

Вроде это вложение, но не помню точно. Я там много чего наваял, но увы все накрылось. Файлы в архиве со старого ноута лежат, но там бардак.

daniel
15.05.2018, 21:31
MCoder2 вполне полноценный.
Есть более новый MCoder III. Занятная вещица.

Oleg N. Cher
16.05.2018, 01:26
Можно ли вкратце о его фишках и улучшениях по сравнению с II? Кстати, для II есть смарт-линкер.

Reobne
16.05.2018, 08:03
Есть более новый MCoder III.
Немножко тестанул. POKE компилируется в вызов 1e80h, POKE из ПЗУ. Стало сразу скучно.

Vadim
16.05.2018, 10:24
если не ошибаюсь полноценным компилятором была только программа от HiSoft
А как же BLAST? Он, насколько я помню, был же самый крутой?

goodboy
16.05.2018, 10:42
мне blast показался отстоем.
очень мало места для программы и раздутый окончательный результат.

Vadim
16.05.2018, 13:40
мне blast показался отстоем.
очень мало места для программы и раздутый окончательный результат.

Насколько я помню, компиляторы типа mcoder-II, TobosFP и все остальные делали как было описано выше, перевод программы в свой формат и пристёгивание библиотеки. У Бласта 2 режима, такой же (т.н. пи код), и компиляция в машинный код. Когда я с ним разбирался, то откомпилированное выглядело не так как после mcoder-ii. А места мало - если программа большая её нужно было бить на части утилитой. Помнится я как-то большую бейсик программу попробовал так скомпилить - очень много раз нужно было мотать магнитофон при компиляции и в результате висяк.

daniel
18.05.2018, 11:59
Можно ли вкратце о его фишках и улучшениях по сравнению с II? Кстати, для II есть смарт-линкер.

Компилил демку написанную на басике помнится. Справился только этот мкодер3. У остальных какието ограничения были. Например с диной стрингов и др. Главное он вроде не имеет ограничений на длину басика. Хитро грузится испоьзуя load""code и автостартует испльзуя экранную область. Единственный недостаток - он не работает с трдос - ну это понятно. Т.е. лоадер пришлось делать отдельным басиком. Вечером выложу ссылки на демку до и после.

goodboy
18.05.2018, 12:30
Компилил демку написанную на басике помнится. Справился только этот мкодер3.
а как-же tobos ?

daniel
18.05.2018, 14:35
а как-же tobos ?
пробовал, что не получилось уже не помню.

во вложении исходный бэсик:
а вот результат с мкодером3:
https://zxaaa.net/view_demo.php?id=1037

ZX_NOVOSIB
18.05.2018, 16:37
daniel, честно говоря, особой разницы нет :rolleyes:

Непонятно зачем нужен был мкодер3 :)

daniel
18.05.2018, 16:57
daniel, честно говоря, особой разницы нет
в оригинале музыка тормозила, не укладывалась в инт.

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

можно было в асме переписать, но вот что-то захотелось компиляторами поиграться... Бегущяя строка (если можно так назвать) там в виде одномерного символьного массива и печатается через PRINT. MCoder2 её не осилил. Другие тоже были забракованы по разным причинам. И вообще дело не в демке, а в тестировании компиляторов.

Oleg N. Cher
18.05.2018, 20:40
можно было в асме переписать, но вот что-то захотелось компиляторами поигратьсяСамая ниша для ZXDev ;-)

Destr
24.05.2018, 10:55
сейчас проги на zx-бейсике ведь пишут на писи, в спец.редакторах
О, а где качнуть?

ZX_NOVOSIB
24.05.2018, 12:31
Destr, http://arda.kisafilm.org/blog/?p=1230&lang=en