Я даже больше скажу. Любительских игр из серии Dizzy очень много. Так чтобы не соврать в районе сотни. Очень крутых и разных. И стилизованных под амигу, и ближе к спектруму, и маленьких на 10 минут и с огромными картами на много часов прохождения. На DizzyAge сделаны. А спектрум, потому что. Банально интересно бросить себе вызов.
Теоретически компилировать сразу бинарник работало бы быстрее, согласен. Но тут сложности для меня как это реализовать. Байт-код подгружается динамически с дискеты, так как движок позволяет игре быть разбитой на несколько карт. (одна карта в среднем вмещает 40 комнат). Значит код должен быть отдельным файлом, значит если это бинарник, то там своя адресация и свои ссылки. А значит при малейших изменениях в бинарнике самого движка это всё перестаёт работать. Может можно как-то проще, но я уже намучился с виртуальной машиной при разработке движка. Она как раз лежит в отдельной странице памяти и компилируется отдельно от основного движка и каждый чих - полная перекомпиляция обоих бинарников.
Привет. Там не совсем интерпретатор. На выходе из IDE получается байт-код, не текст. В движке реализовано что-то типа виртуальной машины, которая его выполняет. Там же реализация на ассемблере всех методов, используемых в скриптовом языке, типа: взять такое-то значение такого-то объекта. Оно, конечно, медленнее, чем компиляция скрипта в ассемблер и дальше в бинарник, но я не очень представляю как это вообще реализовать. В смысле как бы оно вообще работало на спектруме с учетом архитектуры движка.
Информация
В рейтинге
3 798-й
Зарегистрирован
Активность
Специализация
Бэкенд разработчик, Архитектор программного обеспечения
Я даже больше скажу. Любительских игр из серии Dizzy очень много. Так чтобы не соврать в районе сотни. Очень крутых и разных. И стилизованных под амигу, и ближе к спектруму, и маленьких на 10 минут и с огромными картами на много часов прохождения. На DizzyAge сделаны. А спектрум, потому что. Банально интересно бросить себе вызов.
Теоретически компилировать сразу бинарник работало бы быстрее, согласен. Но тут сложности для меня как это реализовать. Байт-код подгружается динамически с дискеты, так как движок позволяет игре быть разбитой на несколько карт. (одна карта в среднем вмещает 40 комнат). Значит код должен быть отдельным файлом, значит если это бинарник, то там своя адресация и свои ссылки. А значит при малейших изменениях в бинарнике самого движка это всё перестаёт работать. Может можно как-то проще, но я уже намучился с виртуальной машиной при разработке движка. Она как раз лежит в отдельной странице памяти и компилируется отдельно от основного движка и каждый чих - полная перекомпиляция обоих бинарников.
Привет. Там не совсем интерпретатор. На выходе из IDE получается байт-код, не текст. В движке реализовано что-то типа виртуальной машины, которая его выполняет. Там же реализация на ассемблере всех методов, используемых в скриптовом языке, типа: взять такое-то значение такого-то объекта. Оно, конечно, медленнее, чем компиляция скрипта в ассемблер и дальше в бинарник, но я не очень представляю как это вообще реализовать. В смысле как бы оно вообще работало на спектруме с учетом архитектуры движка.