metamorpho, немного бустануть программу можно используя basic 2.62
metamorpho, немного бустануть программу можно используя basic 2.62
Здесь можно скачать актуальные версии Virtual Vector (VV)
metamorpho(01.03.2023)
2.62 даст проценты ускорения, на глаз незаметно.
Если оставаясь в рамках бейсика говорить например о рисовании лабиринта 32x32, то быстрее сделать можно, но быстро все равно не будет. Если разных видов тайлов немного, например 4, то можно объединить их по 2 и сделать 16 вариантов рисования. При выводе с использованием POKE удобно объединить 2 по вертикали, если тайлы одинаковые, то можно нарисовать 2 одним POKE.
В детстве я проходил этот путь когда делал редактор спрайтов и "мегаигру". Постепенно перекладывал медленные операции на машиннокодовые процедуры, в частности и рисование уровня. Редактор в принципе и на бейсике+коды получился нормально, а вот игру надо было полностью перевести на ассемблер. Это было возможно, но проблема была с графикой и анимацией главного героя, красиво или хотя бы приемлемо у меня не получалось.
- - - Добавлено - - -
2.62 более ценен тем, что там исправлены известные баги.
metamorpho(01.03.2023)
Я деталей тоже не помню, но bas25hook.chai дописывает 0 0 0 d3 d3 d3 0 в конец виртуального .cas-файла перед контрольной суммой.
@metamorpho а есть где-то текст твоей программы целиком, чтобы запустить?
Больше игр нет
Больше игр нет
Добавил архив с BAS и TXT.
BAS, насколько я понимаю, был в свое время форматом для хранения на дискетах, поэтому контрольная сумма там не требовалась. На тему тонкостей BAS надо бы посмотреть BT.COM от авторов вектора.
Спасибо, пока я не добрался сделать чего-то полноценно, можно вставить
в bas25hook.chai в строке 59. И тогда твой .bas загружается.Код:for (var i = zeroseq; i > 0; --i) { this.cas.push_back(0) } cs &= 0xffff // это было
В bas файлах контрольной суммы нет, это все про cas.
Больше игр нет
ivagor(01.03.2023)
Ещё протестировал вариант вывода графики уровня с командой PUT, скорость тоже медленная.
Прежде чем выводить через PUT нужно резервировать массив (- память), потом нарисовать спрайт (- память) и потом
запоминать это в GET и только потом использовать PUT. Минусы - затраты памяти и много лишних движений.
Над плюсами ещё думаю есть ли они.
Запускал программу в Бейсик 2.62 - если мерить строго на глаз то ощущение что есть небольшой прирост скорости, но
в целом всё так же медленно.
Вариант с машинными кодами - решил не использовать (кроме опроса клавиатуры), чтобы было чисто на Бейсике.
Сейчас решаю какой вариант из оставшихся трёх выбрать - возможно будет комбинированное решение.
Пока что нигде нету. После завершения проекта выложу здесь.
Скорее всего в этой игре будет один уровень в конце которого главный герой на чём-то куда-то улетает.
Этот проект задумывался мной как небольшое исследование и как результат демонстрация того какие можно было делать игры чисто на Бейсике с использованием некоторых специфичных моментов Вектора.
Вектор-06Ц reboothttp://metamorpho-games.blogspot.com/p/blog-page.html
....и вот что получается - нарисовал с помощью LINE ракету и вылетает надпись "памяти больше нет". Как так нет, я же "почти" ничего ещё не рисовал![]()
Однако быстро память кончилась, а я не успел внедрить и половины того что хотел. Придётся ужимать код программы и использовать другой вариант вывода персонажа игры (сейчас он через ресурсоёмкий PUT выводится).
Игра и на базовом этапе (уровень и человечек бегает - типа LodeRunner) была довольно медленная, а с прибавлением каждого нового элемента скорость падает уже до неиграбельности. Однако меня подкупает включение режима 12Мгц - всё прекрасно летает и парит (может сделаю настройки под режим 12Мгц). Вообщем хочется ещё немного поэксперементировать с некоторыми идеями, но уже сейчас понятно что на стандартном режиме 3Мгц на Бейсике мало что можно выжать в отношении скорости.
На данный момент в ходе экспериментов с Бейсиком удалось реализовать идею (она конечно не новая, но думаю немного в новой форме) анимации различных объектов (в основном статичных) с помощью программирования палитры. Т.е. можно хоть весь экран привести в движение без особых нагрузок на процессор, всё что нужно сделать это заранее правильно нарисовать графику, а потом в ходе игрового цикла менять только палитру.
Есть ещё идея сделать скроллинг уровня вверх-вниз, но это наверное совсем уничтожит скорость игры
Хотя на 12Мгц думаю всё будет неплохо работать.
Вообщем процесс создания пока продолжается, но память в Бейсике всё же коротка и сколько не ужимай программу довольно скоро упрёшься в потолок - а значит скоро (наверное) будет выдан результат моих экспериментов![]()
Вектор-06Ц reboothttp://metamorpho-games.blogspot.com/p/blog-page.html
С нехваткой памяти можно бороться несколькими способами:
1. Отключать плоскости, но что-то мне подсказывает, что в данном случае этот вариант не подойдет.
2. Более экономно хранить данные
2.1. Разделить программу на основной блок (загружаем по cload"") и блок данных, подгружаемый по bload"".
2.2. Компромиссный вариант - упаковывать данные в строки после REM и читать оттуда по PEEK.
metamorpho(07.03.2023)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)