Просмотр полной версии : Игры от Shaw brothers
похожесть многих игр от этих братов/акробатов наводила на-мысль об использовании одинакового движка,
но реальность оказалась гораздо жёщще.
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
Tank Command клёвая!
P.S. игры Atlantis Software Ltd тоже все какие-то одинаковые. :)
ZX_NOVOSIB
15.04.2016, 12:36
но реальность оказалась гораздо жёщще.
внутри достаточно излишний код, вручную такого не-сотворишь.
кроме того у всех игр оказался одинаковым набор базовых процедур и интенсивное использование rst#10 для вывода графики.
проверив наугад несколько компиляторов с-разных языков удалось найти 100% совпадение
все игры изначально были написаны на-бейсике и обработаны mcoderII
Прекрасная реальность. Если в те далекие годы, когда не было таких инструментов как сейчас (сейчас проги на zx-бейсике ведь пишут на писи, в спец.редакторах), люди умудрялись делать такое на бейсике, то это удивительно, и вызывает восторг! Выходит бейсик компиляторы это не бесполезная игрушка, а очень даже полезный инструмент ))
Кстати, а Лаву нельзя ничем обработать? Почему все забыли про Лаву? Кто-то вроде даже грозился переписать её на асме! И где все? Игру надо допилить до играбельной скорости, + добавить пару левелов, получится шедевр! Игру нельзя бросать, много игр на спектруме написанных девушками?? А тем более русскими девушками?? :)
goodboy, а heartbroken тоже? там таки спрайты с масками же?
- - - Добавлено - - -
Прекрасная реальность. Если в те далекие годы, когда не было таких инструментов как сейчас (сейчас проги на zx-бейсике ведь пишут на писи, в спец.редакторах), люди умудрялись делать такое на бейсике, то это удивительно, и вызывает восторг! Выходит бейсик компиляторы это не бесполезная игрушка, а очень даже полезный инструмент ))
Кстати, а Лаву нельзя ничем обработать? Почему все забыли про Лаву? Кто-то вроде даже грозился переписать её на асме! И где все? Игру надо допилить до играбельной скорости, + добавить пару левелов, получится шедевр! Игру нельзя бросать, много игр на спектруме написанных девушками?? А тем более русскими девушками?? :)
чтобы обработать бейсик программу компилятором она должна удовлетворять ряду условий.
еще бы декомпилятор написать :)
а 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
goodboy, я в свое время так и не смог в компилированный бейсик запихнуть usr adr - ругалось
я в свое время так и не смог в компилированный бейсик запихнуть 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
У меня компилятора не было
у меня была игра Puppy Power
там тоже компилер
вот из него почему то и ругался... хотя да должен был бы
игра Puppy Power
там тоже компилер
там тоже внутри mcoder2 + вызов пары вставок на-асме
NEO SPECTRUMAN
15.04.2016, 22:24
все игры изначально были написаны на-бейсике и обработаны mcoderII
почему нет
результат более менее играбелен
и все таки лучше чем какая то очередная поделка в каком нибудь гейм десигнере
* Felix *
16.04.2016, 03:47
Не понятно, если братья накодили 20 асемблерных вставок, то нафига городить огород с бейсиком и компилятором, уж дальше бы кодили логику игры и базы экранов вбивали, тем более игры у них достаточно простенькие, и привлекают к себе большей частью графикой.
* Felix *, в то время очень популярно было написание игр на бейсике.
да и я бы сказал что идеология игры на бейсике и написанной на асме серьезно отличается
Oleg N. Cher
06.05.2018, 19:07
Итак, вопрос интереса звучит так: каких именно возможностей не хватает стандартному Спектрум-Бейсику для написания на нём выглядящих профессионально игр, что их отсутствие приходится компенсировать кодовыми вставками. Притом игры обычно скомпилированы, не вызывают ассоциации с Бейсиком, но вызывают удивление при ассоциации с Бейсиком. :) Ну типа как Heartbroken. Когда в неё играешь, не возникает ощущения, что это на Бейсике.
Так что было бы интересно подробнее узнать о результатах реверс-инжиниринга игр от братьев Shaw. Использовали ли они линкер, вырезающий неиспользуемый код? Как именно передавались параметры в кодовые вставки?
Кстати, я когда-то декомпилировал вручную игру Тетрис, написанную на Бейсике и откомпилированную. Уже не помню, какой компилятор это был. Но это было сравнительно несложно, даже наверно где-то лежит тетрадка с листингом.
если не ошибаюсь полноценным компилятором была только программа от HiSoft
http://www.worldofspectrum.org/infoseekid.cgi?id=0008249
остальные скорее раскладывали бейсик строки в более удобоваримый вид для подставления на обработку в пзу
Oleg N. Cher
06.05.2018, 19:17
MCoder2 вполне полноценный. Он делает чистый машкод с вызовом для каждого Бейсик-оператора подпрограммы из своего рантайма (весь набор обычно - это 3-5 кб кода, использующего ПЗУ). Лишние процедуры из рантайма научились даже вырезать, оптимизируя размер кода.
Конечно такой компилятор не в силах дать слишком уж хороший код, да и Бейсик как язык не способствует этому. Поэтому в набортных компиляторах полно ограничений: только целочисленная арифметика, нет обработки строк и т.д. Скорость вывода текста (и UDG-графики) обычно тоже не ускорена - используется всё тот же RST #10. Вот и приходится юзать кодовые вставки для работы с графикой.
Скорость вывода текста (и 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 печатается каждый второй столбик, а потом они сдвигаются"
в смысле, растянуто по горизонтали?
в смысле, растянуто по горизонтали?
ага, то есть в реале задействовано 16столбцов, а не 32.
хотя наверно скорее печатается только половинка ???
........
точно помню что печатается разрозненный скрин, а потом сдвигается
SaintTurnip
06.05.2018, 19:56
Интересная находка. Надо будет попробовать.
Как они восстанавливают экран после смещения спрайта?
И как хранят карту? В бейскик-структурах?
И как хранят карту? В бейскик-структурах?
В DIM-массиве удобно хранить карту вместе с цветовыми кодами, печатается очень быстро. В 2014м я собирался участвовать в конкурсе игр, по фатальным причинам самоустранился.
Но тут точно лежат файлики теста моего движка, листать мне сейчас поздно: http://zx-pk.ru/threads/22974-konkurs-igr-na-bejsike.html
SaintTurnip
06.05.2018, 23:56
Ну в целом я знаю как игры делаются. Интересно про работы Шау.
- - - Добавлено - - -
Бука, интересный тред, спасибо
http://zx-pk.ru/attachment.php?attachmentid=46823&d=1395149899
Вроде это вложение, но не помню точно. Я там много чего наваял, но увы все накрылось. Файлы в архиве со старого ноута лежат, но там бардак.
MCoder2 вполне полноценный.
Есть более новый MCoder III. Занятная вещица.
Oleg N. Cher
16.05.2018, 01:26
Можно ли вкратце о его фишках и улучшениях по сравнению с II? Кстати, для II есть смарт-линкер.
Есть более новый MCoder III.
Немножко тестанул. POKE компилируется в вызов 1e80h, POKE из ПЗУ. Стало сразу скучно.
если не ошибаюсь полноценным компилятором была только программа от HiSoft
А как же BLAST? Он, насколько я помню, был же самый крутой?
мне blast показался отстоем.
очень мало места для программы и раздутый окончательный результат.
мне blast показался отстоем.
очень мало места для программы и раздутый окончательный результат.
Насколько я помню, компиляторы типа mcoder-II, TobosFP и все остальные делали как было описано выше, перевод программы в свой формат и пристёгивание библиотеки. У Бласта 2 режима, такой же (т.н. пи код), и компиляция в машинный код. Когда я с ним разбирался, то откомпилированное выглядело не так как после mcoder-ii. А места мало - если программа большая её нужно было бить на части утилитой. Помнится я как-то большую бейсик программу попробовал так скомпилить - очень много раз нужно было мотать магнитофон при компиляции и в результате висяк.
Можно ли вкратце о его фишках и улучшениях по сравнению с II? Кстати, для II есть смарт-линкер.
Компилил демку написанную на басике помнится. Справился только этот мкодер3. У остальных какието ограничения были. Например с диной стрингов и др. Главное он вроде не имеет ограничений на длину басика. Хитро грузится испоьзуя load""code и автостартует испльзуя экранную область. Единственный недостаток - он не работает с трдос - ну это понятно. Т.е. лоадер пришлось делать отдельным басиком. Вечером выложу ссылки на демку до и после.
Компилил демку написанную на басике помнится. Справился только этот мкодер3.
а как-же tobos ?
а как-же tobos ?
пробовал, что не получилось уже не помню.
во вложении исходный бэсик:
а вот результат с мкодером3:
https://zxaaa.net/view_demo.php?id=1037
ZX_NOVOSIB
18.05.2018, 16:37
daniel, честно говоря, особой разницы нет :rolleyes:
Непонятно зачем нужен был мкодер3 :)
daniel, честно говоря, особой разницы нет
в оригинале музыка тормозила, не укладывалась в инт.
- - - Добавлено - - -
можно было в асме переписать, но вот что-то захотелось компиляторами поиграться... Бегущяя строка (если можно так назвать) там в виде одномерного символьного массива и печатается через PRINT. MCoder2 её не осилил. Другие тоже были забракованы по разным причинам. И вообще дело не в демке, а в тестировании компиляторов.
Oleg N. Cher
18.05.2018, 20:40
можно было в асме переписать, но вот что-то захотелось компиляторами поигратьсяСамая ниша для ZXDev ;-)
сейчас проги на zx-бейсике ведь пишут на писи, в спец.редакторах
О, а где качнуть?
ZX_NOVOSIB
24.05.2018, 12:31
Destr, http://arda.kisafilm.org/blog/?p=1230&lang=en
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot