Квест Навигатор против хлама

Квест Навигатор против хлама

Пора урезать возможности QSP. Нет, вы не ослышались )

Крутые фишки QSP... не нужны.

С тех пор, как я занялся портированием плеера на разные платформы, это первое, что мне не давало покоя. Адские MSG и INPUT - из-за них простая логика интерпретатора превращалась в кошмарную. WAIT тоже кровушки попил. И прочее.

В Навигаторе я старался сохранить все "прибамбасы" QSP, чтобы обеспечить воспроизводимость всех "старых" игр на новом плеере. Сейчас, спустя годы, вижу, что старался зря. Любители "олдскула" всё равно будут запускать старые игры на классической версии плеера. А в новом плеере эти примочки не нужны.

Кросплатформенности нет.

Ну, серьёзно. Прошло 15 лет с создания QSP. Где наша хвалёная "кроссплатформенность"? Она до сих пор лишь в проекте. На андроиде - есть порт плеера, на айфоне - нет порта, только Навигатор (с урезанными возможностями от классики). На линуксе что-то позабытое и позаброшенное всеми. Windows Phone? Нет порта. Браузер? "Аэра" тормозная только на флэше и всё. Причём она один фиг отличается от классического плеера по оформлению, полной совместимости нет. Какой яваскрипт, забудьте.

Всё вразнобой, нет ни одного кроссплатформенного стандарта. Переносить плеер на новую платформу и пытаться в ней сохранить всё многообразие фишек QSP и ухищрения авторов - это крайне тяжёлый труд. Потому и нет портов. Байт этого 15 лет назад не предусмотрел, да и не мог в принципе знать. Что все новые "крутые фичи", которые тогда были прорывом по сравнению с уркой, не выдержат проверки временем и станут тяжкой обузой. Что вся эта крутая многофункциональность будет тормозить развитие.

Вы используете эти фичи?

За всё это время достаточно было игр, чтобы распробовать все фичи на вкус. Стали игры круче от WAIT? Да, одна-две игры, использовали его по назначению. Сделали анимационные эффекты и украсили свои игры. Все остальные - пытались вэйтом наказывать игрока. Стоит ли WAIT сохранять и ждать от него новых чудес? Или забить на него уже насовсем?

MSG, INPUT - в Навигаторе можно обойтись и без этих операторов. А ввести информацию и вывести сообщение игроку другими способами. Через яваскрипт и функцию опроса плеера.

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

Пора двигаться дальше.

WAIT, MSG, INPUT я сохранил ради портируемости старых игр на Навигатор. Стоило мне это не только сил и нервов, потраченного времени. Из-за поддержки таких фич, которые сильно влияют на логику выполнения, код плеера стал сложным и запутанным. А за ним стало запутанным и API, и разработка оформления. Вся поддержка старья вылилась в тяжёлые последствия.

Пора от этого избавиться. Плеер должен быть с минимальным набором фич, обеспечивающим всё, что действительно необходимо. Всё остальное - за борт.

Что осталось?

Пока что я оставлю функции строки ввода (не путать с диалогом INPUT) и проигрывания музыки. Но, скорее всего, от них тоже в итоге избавлюсь - с помощью яваскрипта можно реализовать и музыку, и ввод текста.

COUNTER под вопросом. Сейчас он используется в основном для плейлиста. Если проигрывание музыки будет через яваскрипт, то зацикливание будет сразу встроено. А периодическое выполнение локации можно будет сделать на яваскрипте - всё равно редко используется. Поэтому особой необходимости в нём нет.

Зачем это всё?

Плеер избавится от груза лишнего функционала, и возможностей портирования у Навигатора будет больше, чем у классического плеера. Захватим все платформы )

Изменено: Nex
12.Ноя.16 15:04:28
Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Квест Навигатор против хлама

Жду комментариев, возражений, одобрений, проклятий на мою голову и бурных дискуссий )

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Квест Навигатор против хлама

Насчёт msg и wait согласен. Авторы злоупотребляют ими и превращают игры в какое-то мракобесие. Даже с минимумом возможностей классического плеера msg, например, можно не использовать.

 Спойлер Show Spoiler Hide Spoiler
 

"Вы съели пирожок"
"ок"
"Вы съели пирожок"
"ок"
"Вы съели пирожок"
"а не пошёл бы ты уже"

То же и с wait. Через counter можно любые реалтайм-события сделать.

А вот input, если им не злоупотреблять помогает. Это правильное диалоговое окно
 Спойлер Show Spoiler Hide Spoiler
 

"Введите имя вашего героя?"
"Вася"
"Ок"
"Сколько вы хотите забрать?"
"7"
"Ок"

Это удобно. Я не представляю, чем заменить input в этих случаях.

За counter. У меня на него много планов. Хотя в основном это всякие визуальные эффекты, вроде титров, заставок, которые можно пропускать, визуальных задержек.

Насчёт музыки тоже что-то я не уверен. Насколько сложным для автора станет воспроизведение музыки? Если раньше я в коде мог написать play 'music.mp3' и оно играло, то в навигаторе как будет? Через JS, но что это значит? Придётся лезть в скин и править там js файлы?

Вот взять простую вещь: цвет гиперссылок. В классике достаточно было сделать lcolor = rgb() и цвет менялся. В навигаторе мне придётся заранее предопределить классы для каждого изменения цвета. Т.е. залезть в css. Можно и тегом font, но это тоже громоздко. Я понимаю, что изменять цвет гиперссылок нужно не так уж часто, и невелика потеря в сравнении с тем, какие возможности для оформления открылись, но это для примера. В навигаторе это сделать сложнее.

Так вот как? Не приведёт ли отмена фич к усложнению разработки игр для авторов?

А input мне правда очень жалко. Жальче, чем всё остальное вместе взятое. Может я просто к нему привык. Обойтись-то можно, но жаль. Удобный.

Aleks Versus
воздвигатель башни
useravatar
Онлайн
1477 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Квест Навигатор против хлама

Я не представляю, чем заменить input в этих случаях.

Технически всё вполне реализуемо. Из игры в Навигаторе можно выполнить любой код на яваскрипте. Делаем локацию "Герой_имя" для обработки входных данных, из яваскрипта вызываем:

Код:

EXEC: GS 'Герой_имя', 'Зелепупий Аристархович'

Дальше обрабатываем в игре ввод текста как обычно.

Неудобно? Согласен. Оператором удобнее. Но во скольких играх этот ввод реально необходим? Таких игр очень мало, не вижу особой проблемы для автора научиться пользоваться новым методом для обработки такого диалога.

Вместо одного оператора автору нужно будет:
1. Вызвать функцию FUNC('js.input', 'Герой_имя', 'Введите имя вашего героя')
2. Обработать результат в локации "Герой_имя".

Ну а для пользователя никакой разницы вообще не будет.

Есть и ещё один момент. В яваскриптовом диалоге мы можем ввести не только строку текста, но и сделать, например, "чисто цифровой ввод", или выбор из выпадающего списка. Возможностей становится даже больше.

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Квест Навигатор против хлама

За counter. У меня на него много планов. Хотя в основном это всякие визуальные эффекты, вроде титров, заставок, которые можно пропускать, визуальных задержек.

Это относится к оформительской части - анимация, переходы. Для каждой игры это сугубо индивидуально.

Лучше всего сделать библиотеки на яваскрипте, а в коде игры вызывать готовые функции. Под каждую игру механика настраивается автором на уровне шаблона. Эффекты, цвет, картинки.

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Квест Навигатор против хлама

Nex,
нет, а сам диалог как сделать? Я например не знаю. Команда типа EXEC('JS:...') ?
Ведь если я просто где-нибудь в игре воткну <script ...> ... </script> меня попросту пошлют с отпиской: ошибка выполнения js.

И потом, я вообще не представляю, как передать значение из js самой игре.

А то, что функционала больше, так это здорово. Уметь бы ещё пользоваться)))

Aleks Versus
воздвигатель башни
useravatar
Онлайн
1477 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Квест Навигатор против хлама

Насколько сложным для автора станет воспроизведение музыки? Если раньше я в коде мог написать play 'music.mp3' и оно играло, то в навигаторе как будет? Через JS, но что это значит? Придётся лезть в скин и править там js файлы?

На уровне JS код сделаю я ) Он будет идти в комплекте с плеером, подключать отдельно не придётся.

Плюс сделаю QSP-обёртку для яваскриптовых вызовов, если они будут не очень удобными сами по себе. Я уже подзабыл, какой там синтаксис.

Автору останется положить музыку в папку игры и вызвать что-то вроде:

Код:

GS 'js.play', 'Yippie-Ki-Yay.mp3'

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Квест Навигатор против хлама

Цвет гиперссылок. В классике достаточно было сделать lcolor = rgb() и цвет менялся. В навигаторе мне придётся заранее предопределить классы для каждого изменения цвета. Т.е. залезть в css.

Не особо понимаю, в какой игре это нужно, но это тоже можно при желании навесить на яваскрипт.

Написать одну функцию, в игре её вызывать одной строкой. Передавать цвет хоть в rgb, хоть в чём угодно.

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Квест Навигатор против хлама

а сам диалог как сделать? Я например не знаю. Команда типа EXEC('JS:...') ?

Для стандартных штук, таких, как ввод текста, эти диалоги будут написаны и будут поставляться с Навигатором.

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

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

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Квест Навигатор против хлама

Nex написал(а):

На уровне JS код сделаю я ) Он будет идти в комплекте с плеером, подключать отдельно не придётся.

о. Так это просто замечательно! Тогда я всеми руками за. big_smile

Aleks Versus
воздвигатель башни
useravatar
Онлайн
1477 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
970
Всего опросов:
14
Всего сообщений:
16790543
Всего сообщений сегодня:
2
Пользователи форума:
 
Всего пользователей:
2346
Последним зарегистрировался:
Rizrael