Master of Star Control
Старый 12.02.2015, 15:40   #1
SLY
Аватар для SLY
По умолчанию Создание мода "Бортовой журнал"

Создание мода "Бортовой журнал".

Из рецензии Владимира Горячева на Legend of Grimrock 2:
Если вы, невзирая на сказанное мной в адрес Legend of Grimrock 2,
возьметесь за прохождение, непременно держите под рукой карандаш
и блокнот. Записывайте туда всё: где побывали, какие подсказки
нашли и куда направляетесь. Только так вы вспомните, что делали,
если отложите игру в сторону и вернётесь через несколько дней.
Ведь её разработчики не утруждали себя такой «мелочью»,
как автоматический дневник. И ещё много чем…
----------------------------------------------------------
Казалось бы, почему не сделать нормальную записную книжку?
Almost Human, обласканная критикой и фанатами за «дух старой школы»,
перепутала «хардкорность» с банальными неудобствами.

Не так давно я очередной раз прошёл UQM, на этот раз HD-версию. HD-мод подтянул графику до современного уровня, ремикс-паки от Precursors сделали то же самое с музыкальной частью, а вот интерфейс по-прежнему никто не трогал... Безусловно, все мы любим эту игру такой, какая она есть. Однако ей уже более 20 лет, и есть моменты, которые просто можно сделать лучше и удобнее, тоже немного подтянуть под современные стандарты. К примеру, ей бы очень не помешала банальная поддержка мыши, при помощи которой было бы в разы удобнее выбирать пункты меню, нужные для взаимодейстия корабли и совершать покупки модулей. Также было бы очень удобно видеть на карте квазипространства в игре обозначенные линиями пути перемещания с того или иного портала, которые уже были открыты. Но больше всего при прохождении мне не хватало дневника, в данном случае "бортового журнала", в который бы заносилась вся важная информация. Или нашими руками, или автоматически.


Как это должно выглядеть.

Как я себе это вижу.. Если взять исходную картинку с соотношением сторон 4:3 и добавить к ней слева блок, чтобы получить 16:10, то мы сразу получим и симметричный интерфейс на протяжении всей игры и поддержку широкоформатных мониторов, и, самое главное, всю важную информацию перед глазами.

Нажмите, чтобы увидеть полный размер

Стиль я взял из текста, который можно просматривать после каждого диалога:

Хотя, такие цвета вовсе необязательны. Можно, к примеру, и так:

Это картинка 16:10. Что касается мониторов 16:9, там по бокам можно просто оставить небольшие чёрные "ушки" - так, к примеру, было реализовано в King's Bounty от Катаури. Думаю, поклонника UQM они испугать не должны, ведь со стандартной картинкой 4:3 чёрные "уши" по бокам вообще огромны.


Как это должно работать.

Вариант 1. Журнал с ручным вводом.

Подобно тому, как мы попадаем по нажатию пробела в меню игры справа, должна быть клавиша, по нажатию которой мы попадём в "Бортовой журнал" слева. Там мы должны иметь возможность выбрать нужную нам строку стрелками вверх-вниз (как реализовано в меню справа), а при нажатии "Enter" на нужной строке иметь возможность её радактировать. Подобные блоки в игре используются, когда мы только начинаем игру, и вводим имя и название корабля.
смотреть

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

Вариант 2. Автоматический журнал.

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

Вариант 3. Идеальный (2 в одном).

Совокупность первых 2-х вариантов. Т.е. и чтобы строчки заносились автоматически, и чтобы была возможность их править и удалять, а также можно было вносить свои собственные заметки.


Нужен человек или несколько, которые смогут реализовать техническую часть. Я готов помочь с идейной и визуальной частью, а также с поиском триггеров (в смысле с поиском нужных предложений и формулировкой соответствующих коротких информационных строчек). Вместе мы сможем сделать нашу любимую игру ещё лучше!
Ответить с цитированием Вверх
Старый 12.02.2015, 16:59   #2
Malin
Аватар для Malin
По умолчанию Re: Создание мода "Бортовой журнал"

Я всегда играл либо с бумагой либо с Window'совским блокнотом или Word'ом (благо UQM хорошо сворачивается и разворачивается + оконный режим).
Бывало мой бортовой журнал доходил до крайностей
Пример крайности
[15 июня 2155 года] Орбита альфы Павлина - II. Планета слишком горячая для высадки. Принято решение не собирать ресурсы. Курс на планету III.
[16 июня 2155 года] Орбита альфы Павлина - III. Обнаружено наличие...
И всё в таком духе


Честно говоря, игре не хватает не просто журнала с заметками подобного плана, а журнала квестов. Типа списка из названий ("Тайна 17-го числа", "Нашествие Зондов"), которые могли бы разворачиваться и показывать что сделано в этом направлении, а что ещё надо сделать + указание на карте места где надо это сделать.
Но это уже более сложная задача.

По существу.
Вариант 1. Конечно же простейший, но мало отличается от Word'a и бумаги. Причём уступает им в удобстве (банально зачеркнуть, составить список...).
Вариант 2. Нужно чтобы в программном коде игры как минимум срабатывало событие (в нужном нам месте!), которое вызывало функцию, которая понимала бы что и куда надо записать.

Ответить с цитированием Вверх
Старый 12.02.2015, 18:13   #3
Vasaka
Аватар для Vasaka
По умолчанию Re: Создание мода "Бортовой журнал"

Просто не удастся найти программиста, который это сделает.

Проще с нуля делать, чем эти старые авгиевы конюшни разгребать. Где-то я видел сделанную боёвку старкона написанную на C# + XNA. Теоретически, на этой базе можно доделать остальное, но тоже желающих делать не найдёшь.
Ответить с цитированием Вверх
Старый 12.02.2015, 18:31   #4
Malin
Аватар для Malin
По умолчанию Re: Создание мода "Бортовой журнал"


Цитата:
Сообщение от Vasaka

Проще с нуля делать, чем эти старые авгиевы конюшни разгребать

Да в чужой код лезть всё равно что в чужой храм в плавках идти

Ответить с цитированием Вверх
Старый 12.02.2015, 19:30   #5
Vasaka
Аватар для Vasaka
По умолчанию Re: Создание мода "Бортовой журнал"


Цитата:

Да в чужой код лезть всё равно что в чужой храм в плавках идти

Там ещё и на Си. Кто бы его понимал?
Ответить с цитированием Вверх
Старый 12.02.2015, 20:00   #6
SLY
Аватар для SLY
По умолчанию Re: Создание мода "Бортовой журнал"


Цитата:
Сообщение от Malin

Бывало мой бортовой журнал доходил до крайностей
Пример крайности
[15 июня 2155 года] Орбита альфы Павлина - II. Планета слишком горячая для высадки. Принято решение не собирать ресурсы. Курс на планету III.
[16 июня 2155 года] Орбита альфы Павлина - III. Обнаружено наличие...
И всё в таком духе

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

Цитата:
Сообщение от Malin

Вариант 1. Конечно же простейший, но мало отличается от Word'a и бумаги. Причём уступает им в удобстве (банально зачеркнуть, составить список...).

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

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

Цитата:
Сообщение от Malin

Вариант 2. Нужно чтобы в программном коде игры как минимум срабатывало событие (в нужном нам месте!), которое вызывало функцию, которая понимала бы что и куда надо записать.

Я далёк от программирования, но в игре каждая реплика вызывается по определённому тегу:

пример
#(GLAD_WHEN_YOU_COME_BACK) commander-000.ogg
Поскорее возвращайтесь, Капитан.

#(GIVE_FUEL) commander-001.ogg
У нас есть немного топлива для кораблей, бесполезное для наших энергетических систем.
Сейчас мы передадим 5 единиц топлива на Ваш корабль.

#(GIVE_FUEL_AGAIN) commander-002.ogg
У нас почти закончилось топливо, но ещё ЧУТЬ-ЧУТЬ осталось.
Вам следует бережнее к нему относиться.
Запускаем перекачку топлива.

#(ARE_YOU_SUPPLY_SHIP) commander-003.ogg
Внимание неопознанному кораблю!
Я командир Хэйс орбитальной станции порабощённой планеты Земля.
Сигнал нашего гиперволнового передатчика крайне слаб.
Ситуация критична -- энергетические ресурсы исчерпаны,
сканеры и дальнодействующие радары не работают,
мы не можем опознать ваш корабль.
Вы -- плановый корабль-заправщик Иерархии?
Повторяю, вы -- корабль-заправщик?

#(DO_YOU_HAVE_RADIO_THIS_TIME) commander-004.ogg
Вы нашли радиоактивные элементы для наших энергогенераторов?

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

Цитата:
Сообщение от Vasaka

Просто не удастся найти программиста, который это сделает.

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

Цитата:
Сообщение от Vasaka

Проще с нуля делать, чем эти старые авгиевы конюшни разгребать. Где-то я видел сделанную боёвку старкона написанную на C# + XNA. Теоретически, на этой базе можно доделать остальное, но тоже желающих делать не найдёшь.

Понятно, что проще. Но если идти по автоматическому варианту в любом случае придётся искать обращение к репликам и как-то привязываться к ним. А ручной вариант можно (наверное, вам виднее) и отдельно написать.. что-то типа текстового редактора, стилизовать под UQM и примагнитить слева к игре. Самая большая проблема мне здесь видится в том, чтобы он работал в фулл-скрине, и чтобы при этом основное окно игры смещалось вправо. Но, опять же, вам виднее. Я не программист.
Ответить с цитированием Вверх
Старый 12.02.2015, 20:33   #7
Malin
Аватар для Malin
По умолчанию Re: Создание мода "Бортовой журнал"


Цитата:
Сообщение от SLY

по современным меркам игровой индустрии

К этой игре это не относится. К ней относится термин, который ты привёл ниже - "ламповый". Листок и карандаш в принципе тоже.

Цитата:
Сообщение от SLY

играться не только за столом, а в любом месте и в любой позе

Игра делалась не для этих целей, то есть в ней изначально не закладывалась подобная идея. Конечно ты прав, хотелось бы, но...


Цитата:
Сообщение от SLY

реплика вызывается по определённому тегу:

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

Цитата:
Сообщение от Vasaka

Там ещё и на Си. Кто бы его понимал?

Есть опыт. Найти функцию не беда. В ставить туда кучу условий в принципе тоже (рутина жуткая, конечно, о списочном поиске там можно и не мечтать). Понадобиться добавить конечно ещё пару функций на добавление новой записи в журнал, проверку наличия записи в журнале и проча...
Сложнее другое - экран. Отображение всего этого дела как "примочки" сбоку может вызвать адовы глюки, ибо отображение пускает глубоченные корни в код игры, например. банальная проблема - начало координат верхняя левая точка - значит весь интерфейс, все штучки нужно сместить руками!

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

Ответить с цитированием Вверх
Старый 12.02.2015, 20:49   #8
Vasaka
Аватар для Vasaka
По умолчанию Re: Создание мода "Бортовой журнал"


Цитата:

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

Там всё сложнее. Надо ещё в тексте оставлять метки для этих событий и писать код который будет их проверять и заносить в блокнот. Но это ещё не самое сложное. Мы же не с виндовс формами дело имеем, где одной командой создаётся нужный элемент и ещё несколькими строчками нужные параметры. Тут это всё надо будет рисовать так, как это сделано в игре. Проще было бы вызывать записную книжку как вызывается трюм, например, но и там придётся дорабатывать. Тоже много мороки. Плюс ко всему ещё Си знать надо.


Цитата:

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

Я очень не хочу тебя расстраивать, но ты никогда не найдёшь человека на эту работу.


Цитата:

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

Я даже не знаю как тебе объяснить, что у тебя из этой идеи ничего не выйдет. Наверное, тебе всё-таки надо побегать с этой идеей и понять это через пару лет.
Ответить с цитированием Вверх
Старый 12.02.2015, 20:55   #9
Vasaka
Аватар для Vasaka
По умолчанию Re: Создание мода "Бортовой журнал"


Цитата:

Есть опыт. Найти функцию не беда. В ставить туда кучу условий в принципе тоже (рутина жуткая, конечно, о списочном поиске там можно и не мечтать). Понадобиться добавить конечно ещё пару функций на добавление новой записи в журнал, проверку наличия записи в журнале и проча...
Сложнее другое - экран. Отображение всего этого дела как "примочки" сбоку может вызвать адовы глюки, ибо отображение пускает глубоченные корни в код игры, например. банальная проблема - начало координат верхняя левая точка - значит весь интерфейс, все штучки нужно сместить руками!

Да мне-то это можно не объяснять. Я выше предложил как можно это решить, куда её засунуть, чтобы эту проблему избежать, но даже с этим будут проблемы и много-много работы, которую никто никогда не сделает.
Ответить с цитированием Вверх
Старый 12.02.2015, 21:43   #10
Malin
Аватар для Malin
По умолчанию Re: Создание мода "Бортовой журнал"

SLY, как это ни печально, Vasaka прав.
Вот тебе утешительный приз. Специально для тебя.За твоё рвение и любовь к SCII.
OnboardLog

Что делает:
- В зелёном поле можно печатать что душе угодно.
- Правый клик мыши вызывает контекстное меню.
- Через контекстное меню можно включить отображение рамки окна для изменения его размера.
- При закрытии автоматически сохраняет текст, положение и размер окна.
Качнуть OnboardLog


























Последний раз редактировалось Malin; 13.02.2015 в 16:57..
Ответить с цитированием Вверх
Ответ

Метки
"бортовой, мода, журнал", создание

Опции темы
Опции просмотра

Ваши права в разделе
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
Быстрый переход

 
Наш любимый хостер - Majordomo.ru!
Текущее время: 10:52. Часовой пояс GMT +4.

 

Powered by vBulletin® Version 3.8.7 Перевод:zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Время генерации страницы 0.21391 секунды с 12 запросами