RU

QSP-плеер: вопросы и предложения

Ntropy Moderator 30.04.2010 12:55 127 comments 54680 views

Этим сообщением открывается тема вопросов и предложений касающихся QSP-плеера.

Edited at 30.04.2010 12:57 (15 years ago)

Нет, спасибо, я делаю и делал так. Мне показалось очень громоздким заводить для этих целей переменную. А если ещё их и несколько…

Зачем несколько? Можно одну.

Запущенный QSP с кодом в 6 КБ в оперативке занимает примерно 10200 КБ
1. Внутри игры никаких действий не производится. Но после сохранения этого состояния (6 КБ размер сэйва) в оперативке занято уже 14300 КБ столько же и при загрузке. (хотя сэйва всего 6 КБ) И со временем оперативка не очищается.

2. Я выполняю ресурсоемкое действие и в оперативе 17700 КБ.
Если загружу сначала состояние игры в 6 КБ (в памяти 14300 КБ) а потом выполню ресурсное действие, то размер в оперативке возрастает до 21250 КБ. Файл сэйва теперь 4798 КБ.

3. После загрузки этого файла оператива требует уже 23740 КБ. Если загрузить сэйву в 6 КБ а потом загрузить тяжелую, в 4798 КБ, то оператива уже просит 25700 КБ. Сохраняю состояние 26800 КБ в оперативе (файл нового сэйва того же размера 4798 КБ).

Такими манипуляциями, выше потребление оперативки уже не удается поднять. И слава богам.
Ресурсоемкое действие занимает 7500 КБ в оперативе, зато в виде сэйва оно же 4800 КБ. Это здорово.
Но вот после загрузки сохраненного состояния, повышает расход оперативы относительно обычного состояния плеера в 10200 КБ аж на 13500 КБ (23740 КБ). Хотя сэйва в 2,8 раз меньше. Откуда берутся следующие требования оперативки до 26800 КБ мне уже не понятно.

Такие большие размеры сэйвов из-за того, что разрабатываемая игра генерирует локации с расставленными в ней предметами, соответственно нужно запоминание местоположения каждого предмета в большом мире. Если бы была составлена карта местности с жестким закреплением предметов в самой игре, то эту карту можно было бы записать внутри программы, либо в файле, из которого можно было подгружать локации. Тогда файлы сохранения были бы в пару сотен КБ. Однако мне важна генерация локаций, а их надо где-то хранить. Записать их в отдельный файл нельзя, и потому единственная возможность - это сохранение. Для компьютеров это не критично, но если перенести игру в Аэру, для мобильных устройств такое поглощение памяти неприятно.

Вопрос/просьба: в следующих версиях QSP можно будет с помощью новой процедуры вызывать чистку оперативы? Или ожидать пару функций, которые позволят записать переменную в файл и вернуть значения записанных в файл переменных?

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

P.S. Не понимаю, почему как только открываешь меню загрузки, а потом отменяешь действие, ничего не загружая, оператива начинает на 4000 КБ больше места требовать для игры?

Эта команда очищает память

! Очищаем конкретную переменную/массив
KILLVAR var1
! Очищаем все переменные/массивы
KILLVAR

Пробуй.

Не понимаю, почему как только открываешь меню загрузки, а потом отменяешь действие, ничего не загружая, оператива начинает на 4000 КБ больше места требовать для игры?

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

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

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

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

То, что мы видим как 26Мб, наверняка нормальное поведение операционной системы (либо особенность работы используемых библиотек, что тоже не страшно).

Aleks Versus Moderator 17.05.2012 17:44 (13 years ago)

Удалять элемент массива по числовому индексу можно, а вот удалять по текстовому нельзя. А хотелось бы.
типа:
killvar ‘$A’,’fire’

Программировать очень неудобно, ибо нет ни циклов, ни других необходимых функций.
Циклы, вернее есть, но реализуются очень неудобно.
Предлагаю заменить встроенный язык на JavaScript с добавлением кастомного апи.
Старую версию языка оставить для совместимости.
Плеер можно реализовать как аддоны для браузеров (Mozilla, Chrome, Opera?), так и stand alone, используя V8 либо вебит (в случае вебкита ещё хтмл можно рендерить) и сишное апи.

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

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

Axil,

такая элементраная вещь как циклы…. откуда такая упрямость разработчиков в этом вопросе?

С того момента, как было сказано, что “операторов цикла не будет”, прошло пять лет. С тех пор мнение Байта изменилось.

В следующей версии QSP уже заложены разные новшества, в том числе оператор цикла.

Вот только выпускать новую версию плеера Байт не торопится. Периодически берётся за “допиливание”, потом бросает. Если ему будут почаще напоминать, то мы скорее увидим новый плеер. Пишите ему. Просите, и дано будет вам.

Есть предложение:
Сделать “компилятор”, который будет переводить игру на другие языки программирования типо basic c++ и т.д. Тогда потом их можно будет выпускать как .exe приложение.

У меня следующий вопрос… В игре у тебя есть какой то выбор действий, и от выбора и от состояния множества переменных т.е. факторов подаешь на какую то определенную локацию. Так вот вопрос, возможно ли во время игры посмотреть код или блок-схему возможных переходов, а также состояние этих переменных, т.е. факторов. Речь идет, например отладочный режим, ну например, в VB.NET, где можно увидеть в какой ты точке кода находишься, а также состояние всех переменных в данный момент.

Господа, а вы в курсе что QSP не работает на 5ом андроиде? Которого все больше и больше. Я сам с изумлением сейчас обнаружил, что не могу сыграть в любимые игры на новом телефоне. Может автор сжалиться над нами и исправит хотя бы ошибку, которая не дает QSP работать на 5ом андроиде? Я так понимаю для автора это фигня вопрос, в отличии от других предложений на этом форуме…..

konst,
плеер для Андроида не может быть обновлён, так как утеряно хранилище ключей.

Плеер для Андроида разрабатывал я. Плеер для Windows делал Байт, он автор движка QSP.

Nex:

konst,
плеер для Андроида не может быть обновлён, так как утеряно хранилище ключей.

Тогда через год можно считать его трупом. И это в тот момент? когда именно андроид все больше отрывается по количесву инсталляций от всех других устройств :-(
Нет возможности портировать виндоус версию на андроид? Мне кажется там основной объем - это интерпертатор движка, который одинаков везде, а андроидный интерфейс малая часть.
Или ключи подобрать за месяцок?
У меня как-то исходники гикнулись, оказалось по памяти второй раз гораздо быстрее все сделать :-)

konst,
есть все возможности, но некому этим заниматься. Всё очень просто.

Исходный код открыт. Хотите - делайте.

Log in or Register to post comments.