Всем привет. На дворе 31-е декабря, а значит время нового поста из нашей регулярной рубрики. Ну как регулярной, иногда я немного задерживаюсь, но не сегодня!
В прошлый раз я поднимал тему бекапирования своих наработок. Тогда я не знал, как поступить и какой путь выбрать. Сейчас же, мне кажется, я нашёл ответ. Подойдёт он скриптерам, т.е. в моём случае попадание прямо в яблочко. Позвольте мне познакомить вас с модификацией Hot Reload. Первой и очень удобной функцией является то, что скрипты можно изменять и сохранять, не закрывая игру. Это намного ускоряет процесс разработки, т.к. ранее на каждое изменение нужно было запустить игру, проверить, закрыть игру и только потом продолжить разработку. А если в код закралась ошибка, и ты не понимаешь, где она, и перебираешь все возможные варианты... В общем, было очень неудобно. Но мы не жаловались, а принимали это как должное. С Hot Reload, конечно, куда приятнее. Скажу вам так: дороги назад я не вижу. Но и это ещё не всё! Каждый скрипт, который вы создали в вашем плагине, сохраняется в виде текстового файла в специальную директорию. Это позволяет открыть его в любом удобном вам редакторе. Я лично пользуюсь Notepad++, для которого ещё и плагин с подсветкой синтаксиса есть. Вроде бы и для VSCode тоже существует. Вот вам небольшой фрагмент того, как это выглядит:
Другим преимуществом текстовых файлов является то, что их-то вполне можно и под git положить. Я лично создал репозиторий в Gitlab и пушу туда изменения по мере их готовности. Это и хранение актуальных версий где-то вне, и история изменений с возможностью возврата к прошлым версиям, если что-то пошло не так. Естественно, все изменения, сделанные в этих файлах, автоматически попадают в плагин. Не нужно ничего никуда копировать.
Если говорить о Каньоне, то я большую часть времени занимался переписыванием старых скриптов. Началось всё с того, что я нашёл логическую ошибку в работе своей мини-игры. Для её исправления требовалось влезть в основной скрипт, написанный ещё в далёком 2016 году. Честно говоря, смотреть на него было больно, а пытаться что-то поменять просто нереально, т.к. любое изменение привело бы к новым проблемам. А искать их в 1000+ строках кода, почему-то разбросанных по разным квестам, очень не хотелось. Поэтому я и переписал его. Стало намного лучше, во всех аспектах. Смотреть на скрипт теперь не так больно, я исправил ту самую логическую ошибку, сам размер скрипта заметно сократился, и теперь всё лежит в одном месте. Я также улучшил саму работу игры. Вот небольшой список было/стало:
- Было: оба кубика бросались, через 5 секунд считывались значение с верхней грани, если хоть одно получить не удавалось, то оба кубика перебрасывались. Это часто приводило к ситуациям, когда один кубик перебрасывался просто так или значение по счастливой случайности считывалось с ещё катящегося кубика. Чаще всего кубикам просто не хватало времени остановиться, и происходили постоянные перебросы.
- Стало: каждый кубик теперь обрабатывается отдельно. Значения считываются только после того, как кубик остановится. Если кубик упал на ребро, то перебрасывается только он. Количество успешных бросков выросло в разы.
- Было: меню отображения ставок имело фиксированный размер, который не зависел от разрешения экрана. Позиции всех элементов были захардкожены. Размер текста был един везде.
- Стало: размер меню теперь определяется динамически. Расположение элементов так же рассчитывается динамически. Размеры текста теперь подогнаны под размеры свободной области вокруг.
Процесс переписывания всё ещё идёт, сейчас я занимаюсь блокнотом.
Помимо этого было множество мелких правок и добавлений. Даже пришлось попробовать 3D-моделирование. Не могу сказать, что получилось отлично, но я остался доволен. Члены команды вроде тоже
Ну вот, пожалуй, и всё на сегодня. Хочу пожелать всем мира и добра. Надеюсь, у вас и ваших близких всё будет хорошо.
Всем привет! Прошёл очередной год, а, значит, пришло время очередного отчёта. Сегодня хотел бы поднять две темы, лишь косвенно связанные с Каньоном. Кстати, забавно вышло. В прошлый раз писал, что защитился и вновь поступил. А сейчас выходит так, что скоро вновь защищаться буду. Ну да ладно, сейчас не об этом.
Начнём, пожалуй, с темы поста. Ребята, делайте бекапы. Терять прогресс, и делать что-то заново - невероятно больно. Первый раз у меня случился, когда я решил закинуть обновление от товарищей по команде. А так как у нас всё идёт архивом, я благополучно перезаписал свои наработки старой версией файла. И это было очень неприятно, т.к. это был файл интерфейса. А править эти .xml файлы - то ещё удовольствие. Пришлось вспоминать, что я там наваял, и делать заново. Я даже не уверен, что ничего не забыл. Состояние такое, будто я разобрал что-то, затем собрал заново, а у меня остались лишние детали. Но вроде работает, так что не всё так печально. Второй раз случился, когда я переставлял винду. Старая была явно чем-то заражена, поэтому я, не раздумывая, снёс абсолютно всё, что было на дисках. Естественно, перед этим я сохранил самую ценную инфу. Стоит ли говорить, что про моды на Fallout я забыл? Благо в этот раз потери были не такие большие - только плагин. Да и в том лишь диалоги, которые имеются в виде Word-овского документа. Так что это восстановить было несложно. Но муторно, не люблю монотонную работу . И собственно встаёт вопрос - а как бекапить? Очевидно, надо на какой-то внешний ресурс. Создавать git-репозиторий не хочется, звучит как оверкилл. С другой стороны, всякие .xml файлы там бы хорошо зашли, ибо можно будет отследить все изменения и историю. Может какой-нибудь onedrive? Но тут всю директорию с модами пихать не вариант, слишком тяжёлая. Значит, нужен механизм синхронизации... Не знаю, в общем! Если есть какие-то практики - пишите, очень интересно! Не хочу наступать на грабли в третий раз.
Переходим ко второй теме. Ребята, идите в ногу со временем. NVSE до сих пор развивается, не стесняйтесь переходить на новые фичи, ибо они зачастую сделаны лучше, чем оригинал. Я сейчас даже не говорю про лямбда-выражения и прочие продвинутые штуки. Возьму самый банальный пример. Стандартный set .. to и let из NVSE. Мало того, что возможностей у последней функции куда больше, так ещё и читаемость повышается в разы. Вот вам пример:
set MyVeryLongNamedQuest.SomeVariable to MyVeryLongNamedQuest.SomeVariable + 1
let MyVeryLongNamedQuest.SomeVariable += 1
Строка получилась в 2 раза короче! А с выходом xNVSE 6.1.0 можно даже так:
MyVeryLongNamedQuest.SomeVariable += 1
Если вам в скрипте потребуются строки или массивы, от let никуда не уйти. Так используйте эту функцию везде. Более того, ещё один огромный плюс, указанный в вики:
Если возникает ошибка (во время игры), то в консоль будет выведено сообщение, содержащее мод и скрипт, в котором возникла ошибка! Это очень круто, ибо помогает ловить ошибки, которые set просто молча игнорирует. В общем, не стесняйтесь развиваться вместе с NVSE. Может, однажды найдёте что-то, что давно искали. Однако я ни в коем случае не призываю бежать и переписывать старый, уже проверенный код. В этом может быть резон только, если удастся его оптимизировать и снизить нагрузку с игры. В остальных случаях - двигайтесь дальше.
Всем спасибо за внимание и с Наступающим!
Всем привет! В прошлый раз я говорил, что забот у меня будет немало: работа, написание диплома и т.д. Что же, диплом я написал, защитил, образование получил и вновь поступил. На работе перешёл на полную рабочую неделю. В общем, дел и правда немало было. Но и немного ковырял мод, не без этого. Поэтому сегодня я хотел бы поднять две небольшие темы.
Начнём с более интересной. Вы слышали про мод Book Menu Restored? С этой модификацией открывается возможность создавать полноценные книги, постеры и чертежи. И это только шаблоны! Можно придумать что-то своё, например карту. Лично меня этот релиз заинтересовал моментально, да и ребятам понравилось. Поэтому у нас в Каньоне будут книги. Надеюсь, не одна . Я потратил какое-то время на то, чтобы разобраться со шрифтами. Дело в том, что вы можете использовать любой шрифт, который есть в игре. Но! Вы также можете добавлять свои, если постараться... Во-первых, JIP добавляет дополнительные слоты. Но это не лучший вариант, т.к. неизвестно использовался ли этот слот в другом моде или нет. Шанс, конечно, невелик, но всё же. Я пошёл по другому пути. Я написал скрипт, который делает авто подмену шрифта при открытии нужной книги. А потом возвращает исходный. Схема довольно простая, но очень эффективная. И защищает от всевозможных конфликтов, что немаловажно. Кстати, для создания шрифта я использовал Oblivion Font Editor. Очень удобная вещь. К сожалению, не могу показать новый шрифт, ибо спойлеры, но могу показать картинку с ранними тестами, на которой представлены все стандартные шрифты. Жаль что, некоторые из них довольно кривые:
Вторая тема связана с написанием диалогов. НЕ ИСПОЛЬЗУЙТЕ такие программы как Word и прочие, в которых встроено автоформатирование. Почему, спросите вы? Да, я соглашусь, что это очень удобно. Особенно когда можно выделить какие-то участки текста цветом или ещё как-то. Или посмотреть на ошибки, подсвечиваемые программой. Но вот уже сколько раз натыкался и всё ещё продолжаю натыкаться на то, что при копировании в GECK всё выглядит отлично, а в игре символы пропадают. Я вам сейчас 2 примера приведу. Сравните: – и -, … и ... И если с дефисом, превратившемся в тире, всё более-менее ясно, то различий во втором примере можно и не разглядеть сходу. А всё очень просто: первый символ - это один знак многоточия, а второй - это 3 точки. И конечно, в игре первый не поддерживается. И вот такие приколы меня, если честно, не радуют. Наверняка есть и другие примеры автозамен, на которые я ещё не наткнулся. В общем, надеюсь, мой посыл ясен - используйте другие редакторы текста или избавляйтесь от автозамен.
А у вас были подобные случаи? Может, кто-то знает простое и изящное решение? Пишите комментарии, их я ещё проверяю . Не знаю, когда будет следующий пост и будет ли вообще... Всё-таки для постов нужна какая-то тема. Но посмотрим, я ещё не прощаюсь.
Всем привет! Опять я немного задержался с записью в блоге, увы. В любом случае, спешу поздравить всех уже с прошедшим, но ещё не забытым, Новым Годом! Желаю побольше крышек, верных компаньонов и красочных побед на пустошах. Ну а я, пожалуй, отчитаюсь за то, что было сделано, что не было сделано и что планируется сделать.
В конце прошлой записи я пообещал всем закончить то, что давно хотел сделать. В принципе, я считаю, что обещание я выполнил. Мой квест выходит на финишную прямую - осталось добавить несколько деталей, концовку и украсить всё это различными мелочами для разнообразия. С одной стороны, осталось немного, с другой стороны - мелочи отнимут кучу времени, мне кажется. Ну и протестировать всё надо, но этим я стараюсь заниматься параллельно с разработкой. В этот раз не хочу давать никаких сроков, но, думаю, к следующей записи в августе многое уже будет сделано.
Почему так медленно, раз осталось немного? Ах, на это есть всё те же 2 причины: работа и учёба. И если с первой всё более-менее ясно, то со второй пока что ничего не понятно. Дело в том, что следующий семестр является последним в бакалавриате, а значит придётся писать диплом. И мне бы хотелось написать его хорошо. А на это нужно время, причём много. Ибо даже когда знаешь, что писать, трудно придумать, как это написать. Но сейчас не об этом.
Касаемо второй идеи, которая у меня зародилась, хотелось бы отметить следующее. Во-первых, я думал над ней, причём немало. У меня в голове зародилась концепция самого квеста, локации и контента. Думаю, что в скором времени я поделюсь этой идеей с остальными, и мы решим, что с ней делать. В принципе, я считаю, что работы там не очень много, основная проблема - это придумать историю. К сожалению, особых спойлеров дать не могу, скажу лишь, что там придётся работать головой и, возможно, бумагой с ручкой. В общем не всем зайдёт
Напоследок хотел бы задать вам, читателям, вопрос. Помните The Pitt для Fallout 3? А точнее часть, где нужно было собирать стальные чушки? Для квеста было достаточно найти всего 10, но ведь их там было куда больше. Да что уж там говорить, находите больше, получаете больше наград! Лично мне очень понравилось бегать и искать эти самые чушки по всей локации. Особенно круто было то, что локация многоуровневая. Вопрос, собственно, вот в чём: понравилось ли вам и хотите ли вы чего-то подобного в Гранд-Каньоне? Опрос прикладываю, голосуйте. Думаю, если народ будет за, то мы сможем уговорить Магнума
А на этом у меня всё. Ещё раз всех с праздником, отдохните на выходных! Встретимся в августе.
Привет всем, кто читает эту запись! Сегодня 32-ое августа (я же обещал эту запись в августе), а значит пришло время поделиться тем, что успело накопиться за эти 8 месяцев. Буду честен, сделал я немного, но на то есть свои причины. Но обо всём по порядку.
Напомню, что я работаю над своим детективном квестом. К сожалению, жизнь меня не одарила способностями к сочинению и написанию чего-либо, поэтому диалогами занимаюсь не я. Пишет их всё тот же незаменимый Паха007, я же после этого потихоньку переношу их в игру. И весь этот процесс шёл довольно гладко, пока... Пока я не столкнулся с работой с AI пакетами. И тут повлияли даже не сами пакеты, а попытки сделать ситуацию более-менее реалистичной, продумать все детали и просчитать все потенциальные действия игрока. И, не знаю почему, это просто сломало меня. Может, я посчитал, что потребуется больше времени, чем у меня было на тот момент, может, что-то не получилось и я решил отложить разбор на потом, - я уже даже не помню. В любом случае, этот кусок и по сей день висит на мне мёртвым грузом.
Однако работа не ограничилась только лишь диалогами. Одним из нововведений, например, стала небольшая фишка, использование которой будет как и в моём квесте, так и за его пределами. Не хочу спойлерить детали, ибо иначе я раскрою все свои карты, и когда вы будете играть, ничего нового для себя не найдёте. Также я поработал над уликами для квеста и над, уже не раз упомянутом ранее, блокнотом детектива. Последний, кстати, вроде бы практически готов, но никогда нельзя быть уверенным на 100%.
Ну а теперь, пожалуй, о факторах, сказавшихся на столь медленную работу от меня. Основная причина остаётся неизменной - это отсутствие мотивации. Я уже не раз говорил, что моддинг уже не приносит мне былого удовольствия, как, скажем, лет 6 назад. Поэтому, когда у меня появляется свободное время, я предпочитаю его тратить на что-то другое. Ну а с тех пор как я начал работать, о свободном времени приходится только мечтать.
В любом случае, я не собираюсь останавливаться на полпути и подводить ребят. Я обещаю себе и всем вам, что до 2020 года я разберусь с текущими задачами. У меня, кстати, есть даже одна идея для ещё одного квеста. Тематика пересекается с одним из моих увлечений в реальной жизни, а сложность реализации будет полностью зависеть от того, захочу ли я чего-то масштабного (а-ля целая история с локациями) или же решу ограничиться чем-то поменьше. Однако основная суть от этого зависеть никак не будет, и я постараюсь сделать выбор, исходя из рациональной оценки моих сил, желания и возможностей. Однако до этого ещё нужно дойти, так что забегать вперёд пока что рано.
До новых встреч, друзья. Надеюсь, что следующий пост будет более оптимистичным
Доброго времени суток, друзья. Если вы читаете эту запись, то вы прошли нетрудный (но немного заковыристый) квест по нахождению блогов на этом сайте В качестве награды за выполнение сего квеста вы получаете немного спойлеров по Гранд-Каньону. Приступим!
Начнём, пожалуй, с того, за что отвечаю лично я. В течение последних месяцев я не так много работал над модом, не буду скрывать. Учёба и другие хобби отбирали практически всё свободное время. Однако в то же время могу заверить, что и делать по большому счёту особо и нечего. Прежде чем вы побежите в комментарии кричать: "В смысле нечего? Ты там совсем зажрался что ли?? У нас тут поле непаханое из различных задач, а ему делать нечего!", я постараюсь объяснить. Дело в том, что разработка той части, за которую я отвечаю, ведётся не только мной. Огромный вклад в разработку моего квеста вносит Паха007. Он согласился помочь с написанием диалогов для персонажей, когда я находился в кризисе. У меня получилось написать диалогов для пары человек за несколько месяцев - он же написал раз в 5 больше за более короткий срок. К сожалению, этого всё ещё не достаточно, а продолжать квест без диалогов я не могу. Однако торопить я никого не собираюсь - у Паши и своих забот хватает. Например, он переносит в игру сценарий RaggaL'a, который придумал не какой-то квест на 15 минут, а целую нелинейную сюжетную цепочку. О других достижениях Паши и других членов команды мы поговорим чуть ниже. А пока давайте вернёмся к тому, чем же я всё-таки занимался. После переработки блокнота и переноса всех диалогов в игру, я отправился дорабатывать саму механику Крэпса. Методом проб и ошибок во время стрима мне удалось запилить систему, отключающую рост потребностей во время игры. Теперь ваш персонаж может чувствовать себя максимально комфортно. Дополнительно разработан специальный перк (точнее его концепт, записанный у меня в блокноте), который вы получите в ходе игры. Ну и напоследок, для неудачных бросков добавлены небольшие сообщения в углу экрана, чтобы хоть как-то компенсировать ожидание. Неудачный бросок - это когда кубик падает на ребро и приходится его перебрасывать. К сожалению, изменить движок нельзя, поэтому кубики довольно часто остаются на ребре.
Перейдём к более значимым достижениям. Ребята в этом году продвинулись очень далеко. "Карта крутится, квесты мутятся!" - так кратко можно описать прогресс. А если более серьёзно, то благодаря Юре наша относительно пустая территория заполнилась различными поселениями, локациями, дорогами, мостами и всем-всем-всем. Не, я серьёзно не представляю, как у него это выходит - все мои попытки в даже самый маленький интерьер заканчивались через час-два, а на выходе получалось что-то ужасное (если вообще что-то получалось). Тут же речь в первую очередь идёт об открытых пространствах, которые, на мой взгляд, ещё труднее проектировать. Количество часов, потраченных на эту работу, измеряется в десятках, а то и в сотнях! Подобными показателями также может похвастаться уже упомянутый выше Паша. Дополнительные квесты, основные квесты, главная сюжетная линия... Мало того, что всё это нужно придумать, это ещё нужно внести в игру! И, поверьте, это делается не за 5 минут.
Видя весь этот процесс изнутри, я стал самым главным фанатом Гранд-Каньона, выход которого я жду всё больше и больше. Я специально стараюсь не влезать в обсуждения сюжетных аспектов - я всё равно ничего интересного не смогу предложить - я хочу после выхода лично окунуться в тот мир, который мы делаем. С одной стороны, я рад, что отвечаю за столь небольшую часть мода - это спасает меня от спойлеров, но в то же время я не справляюсь и с ней, и это меня огорчает. Вот такие неоднозначные итоги года я могу подвести для себя.
Надеюсь, вы дочитали до этого момента, потому что в данном абзаце я хочу поздравить всех с наступающим праздником. От всей души поздравляю каждого с Новым Годом и желаю воплотить все ваши мечты и достичь всех целей в следующем, 2019ом, году! Увидимся в августе
Вторая попытка перенести интересный пост в мой блог, чтобы он не потерялся. Напоминаю, что подобные записи могут иногда здесь появляться. Убрал окошко цитаты, чтобы читалось удобнее.
======================================
Возвращаясь к самому первому посту в этой теме, наткнулся на интересную фразу:
Конкретно, конечно, имею в виду пометку про переменные типа Long. По интересному стечению обстоятельств я таки столкнулся с этим типом. Самое забавное, что пришлось им пользоваться самому. Если вкратце, то нужен был код, позволяющий одну из восемнадцати переменных увеличивать до одного, а остальные семнадцать уменьшать до нуля. Если говорить совсем по-простому, представьте что перед вами 18 лампочек. В любой момент времени гореть может только одна. Пускай горит лампа номер 5. Если вы зажигаете, скажем, лампу номер 12, то 5ая обязана потухнуть. Как это сделать? Ну, из логичных вариантов на ум приходит запоминать, какая лампа горит в данный момент и при зажигании другой тушить её и запоминать новую. К сожалению, переводя это всё в код скрипта, необходимо будет писать 18 проверок а-ля "Если горела лампа номер 1, то потушить её. Иначе если горела лампа номер 2, то потушить её ..." И так далее. Решение рабочее, но учитывая ограничения на количество строк в скрипте, не самое элегантное. А есть и более плохой вариант (который и использовался изначально, когда переменных-"лампочек" было около пяти): не запоминаем вообще ничего, а просто постоянно выключаем все лампы, кроме нужной. Даже если лампа и не горела в данный момент. "Если зажгли лампу номер 1, то потушить лампу номер 2 потушить лампу номер 3 ... иначе если зажгли лампу номер 2, то потушить лампу номер 1 потушить лампу номер 3 ..." Думаю, смысл ясен. Очевидно, что этот вариант совершенно неприемлемый. Однако он имеет место быть, если была бы возможность/необходимость зажигать сразу несколько ламп. Тогда бы прошлый, более компактный вариант, не совсем бы подходил и раздувался бы по количеству строк.
"Что же делать?" - подумал я. Хотелось бы иметь всего одну кнопку, по нажатию которой сразу бы выставлялись все 18 состояний ламп. И тут я придумал следующее: в качестве кнопки будем передавать обычное число, скажем, 4. Вы наверное спросите, а как число 4 может изменить состояние всех 18ти лампочек? Всё очень просто - переведите число в двоичную систему, тогда оно будет состоять только из нулей и единиц. Даже если вы про такую только слышали или вообще слышите впервые, то ничего не составит труда разобраться. Это абсолютно такие же числа, которыми мы пользуемся. Как работает наша система? У нас есть 10 цифр 0-9, и, когда мы доходим до следующего после 9ки числа, мы просто добавляем новый разряд и получаем 10. Также и там, только цифр всего 2. Но это всё теория, которую даже знать не надо - есть куча конвертеров в Интернете, где за 5 секунд вы сможете перевести любое число в любую систему.
Вернёмся к нашим баранам. Что я там выбрал, 4ку? В двоичной системе это число записывается как 100. "И что же тебе это даёт?" - спросите вы. А всё очень просто, пускай 0 - это лампа выключается, а 1 - включается. Добавлю для наглядности нулей перед нашим числом, чтобы выровнять по по количеству лампочек: 000000000000000100. Соответственно, каждый разряд соответствует своей лампочке. Имея функцию, которая просто приравнивает лампочки к разрядам а-ля "Лампа 1 = 0 (т.е. тушим её) Лампа 2 = 0 ... Лампа 16 = 1 (зажигаем) ..." мы с лёгкостью избавили себя от 18ти проверок (или 18*18 изменений состояний по второму методу) и сократили код до 18 строк. Ну, конечно, их по факту чуть больше, но не в этом смысл. При этом мы можем "зажечь" абсолютно любую комбинацию из этих ламп (хоть мне и нужно было только по одной). Допустим, хочу зажечь 2ую, 7ую и 15ую лампы. Всё, что мне нужно - это записать последовательность 010000100000001000 и перевести это число в привычную нам десятичную систему. Вручную или через конвертер получаем 67592. Передаём это число в функцию ("нажимаем кнопку") и радуемся жизни. Горят ровно те лампы, которые были нужны. А главное - совершенно не надо думать, чтобы "запрограммировать" какую-либо комбинацию. Выписал в строку 18 цифр и перевёл из двоичной систему в десятичную. Удобно, красиво, лаконично на мой взгляд.
Проблема лишь в том, что с увеличением количества лампочек, увеличивается и количество комбинаций. 67592 явно больше, чем 32767 (см. цитату - это граница integer'a). Отсюда и применение переменной типа Long. Но он тоже не вечен - максимум в теории мы можем завести 31 лампочку (2147483647 = 1111111111111111111111111111111 (31 символ)). А если работаем конкретно с ГЕККом, то у функции, работающей с разрядами, к сожалению, есть ограничение на примерно 20 разрядов-"лампочек".
Собственно, пожалуй, это всё, что я хотел сегодня рассказать. Хотелось бы почитать ваше мнение - достаточно ли понятно я всё рассказал, может вопросы какие остались? Придумали/знаете другой способ для зажигания конкретно одной лампочки? Поделитесь им, не стесняйтесь. Да и насколько интересно это было читать? А то, может, я время от времени буду подобными интересными моментами делиться. Или наоборот не буду, если вам не понравилось.
Источник: Школа Скриптинга
Добро пожаловать в мою регулярную рубрику блогов, где я рассказываю, что нового произошло за последнее время и как это выглядит со стороны разработки. Для новых читателей и для тех, кто забыл, напомню, что блоги выходят с завидной постоянностью - 2 раза в год, по двум главным праздникам: в Новый Год и в мой День Рождения Сегодняшний же "выпуск" немного задержался, но не верю, что кто-то его вообще ждал.
В последней записи мы говорили о нуар квесте, который я разрабатываю. Сегодня мы вновь поговорим о нём. Как только я передал диалоги для персонажей другому члену команды, Пахе007, у меня буквально развязались руки. Мало того, что я доработал некоторые аспекты самой азартной игры (сделал анти-чит систему, добавил мелкие полезные функции, пофиксил некоторые баги и т.д.), так я успел поработать и над блокнотом детектива. Начальный рабочий вариант содержал в себе 2400+ строчек кода и ужасно пролагивал секунд на 5 при его открытии. Страшно подумать, сколько бы он лагал у людей с большИм количеством модов. Поэтому сразу же после очередного коллективного апдейта, я начал переписывать концепцию блокнота. Получилось неплохо - количество строк сократилось почти в 2 раза. Пролаг же, к сожалению, остался, но теперь он не такой большой (около полутора секунд). Посмотрим, может удастся и ещё что-нибудь вырезать. Кстати, это было сделано в прямом эфире - любой желающий мог посмотреть на процесс и столкнуться с некоторыми небольшими спойлерами Буду ли ещё стримить разработку, я не знаю, но если кому будет интересно - пишите в комментарии, найду способ вас предупредить заранее.
Откуда же такой громкий заголовок у этой записи. Дело в том, что мы решили выпустить первую версию мода. Уверен, что она будет не последней, скорее что-то типа открытой бетки. Что, стало интересно? Не спешите радоваться - пускай мы и обговорили потенциальную дату выхода, я её называть не буду. Почему? Да чтобы не давать ложных обещаний. Чтобы потом не извиняться, если что-то пойдёт не так. Все мы люди, и у всех нас возникают проблемы. Могу заверить, что команда прикладывает все усилия в разработку. Для некоторых из нас этот мод является последней работой в сеттинге Фоллаута, а возможно и в моддинге в целом.
На этом эта краткая запись подошла к концу. Если у кого-то есть вопросы - не стесняйтесь задавать их в комментариях. Встретимся где-то в районе Нового Года. Надеюсь, что к этому моменту дата выхода будет более чёткой, и я смогу ей поделиться (если мы не анонсируем её раньше).
Всем привет. Вот и настал день очередного праздника, а значит время новой записи в этом блоге! Вот такая у нас традиция (просто автор слишком ленив писать чаще, вот и всё ). Сегодня хотелось бы поговорить о том, что произошло за эти месяцы и подвести итоги года в целом.
Но прежде чем мы начнём, я просто обязан поздравить всех вас, читателей и модо-ожидателей, с Новым Годом! Желаю побольше крышек, патронов и стимуляторов! Пускай в этом году к вам на помощь всегда прибегают собаки (не забудьте перк!). Ведите себя хорошо и не купайтесь в радиации.
Отлично, с официальной частью покончено, можно и о деле поговорить. На чём мы остановились? Ах да, нуар квест и его разработка. Составление списка подозреваемых заняло не так много времени, но он получился немаленьким. А это означает лишь одну вещь - каждому нужен свой набор диалогов, со своими уникальными выборами. Привязки к перкам, предметам и прочему... Всё это поставило меня в тупик. Я честно брал с собой блокнот и пытался писать в универе хоть что-то, но выходило сухо и неинтересно, и мне это, конечно, не нравилось! В итоге из 19 персонажей свои диалоги получили всего 4. Это катастрофически медленно, ибо я хочу покончить с этим квестом побыстрее и переключиться на что-то ещё. С одной стороны, не всё так плохо - у 11 человек должна быть всего лишь одна строчка с их мыслями, советами, догадками, т.к. у них есть алиби. Остаётся 8 человек с полной системой диалогов, из которых прописаны только 2...
Честно говоря, не знаю, что с этим делать. С одной стороны, хочется кому-то это передать, а самому заниматься тех. частью, где мне помощь не нужна. С другой стороны, у каждого и так есть свои дела (и поверьте делают они намного больше, чем я). Также масла в огонь подливает учёба. В этом году я постарался погрузиться в неё поглубже, ибо иначе я бы из неё не выплыл вообще. С ней получилось тоже не всё так гладко, но в итоге я пока что доволен результатом.
Итого, что мы имеем за этот год? Полностью готовый и пофикшенный Крэпс со своей античит системой. Это не может не радовать. Нуар квест, встрявший на этапе написания диалогов. Тут реально беда. Срочно нужен сценарист. Не уверен, что сам потяну это дело. Да и энтузиазма нет особо. А делать что-то так, лишь бы что-то было, я не хочу. По-прежнему хочу интересную и нелинейную историю. Вот так всегда бывает - хочешь чего-то, а сам делать это не хочешь. Только ситуации бывают разные. Кто-то просто ленится, а кто-то без помощи не может. Я где-то посередине, наверно
Не люблю загадывать наперёд, но хотелось бы в течении следующего года всё же увидеть готовый вариант квеста. Посмотрим, как оно будет в действительности.
А на этом у меня, пожалуй, всё. Ещё раз всех с праздником! До новых встреч!
И снова всем привет. Что-то нечасто я здесь что-то пишу, да и так совпало, что прошлая и эта части вышли в праздники. Сегодня хотелось бы поговорить о том, что было сделано мной за это время, с какими трудностями я столкнулся и что есть в дальнейших планах.
Начнём, пожалуй, с того, что сделал я катастрофически мало. Из моих предыдущих записей вы знаете (а если не знаете, то вам сюда и сюда), что я разработал целую азартную игру для нашей модификации. И, чтобы сделать её чуть более интересной, не так давно я добавил анти-чит систему, подобную Вегасовской. С самой системой проблем не возникло, хотя я боялся приступать к ней около полутора лет! Меня пугал факт работы с внешними файлами, но оказалось, что всё необычайно просто. Зачастую в жизни происходит так же: вы боитесь что-то сделать, откладываете это, а когда всё-таки решаетесь, не понимаете, чего вы всё это время боялись. Так что, ребят, не зря говорят, что глаза боятся, а руки делают!
К сожалению, во время тестов анти-чит системы я обнаружил что сам Крэпс работал неправильно. В нём было несколько важных ошибок, которые я исправил далеко не сразу. Пришлось убить пару ночей на решение всех проблем, зато теперь мод должен работать нормально, и я несказанно этому рад.
Если вы внимательно читали первую часть блога, то могли отметить, что я разрабатываю какой-то квест. В целом, это будет что-то типа нуар истории, где наш герой собственноручно должен будет распутать сложное дело. Очень хочется сделать что-то действительно небанальное и интересное, но моя фантазия иногда подводит. А вот навыки со временем растут, поэтому для удобства у игрока будет некий "блокнот", как я его назвал. Процесс его создания можно увидеть, начиная с этого изображения. ОСТОРОЖНО: последний скрин в том альбоме - спойлер, поэтому открывайте его на свой страх и риск. С другой стороны, на нём вы можете увидеть чуть ли не конечный вариант того, что есть сейчас. Естественно, всё это будет модифицироваться.
Также стоит отметить, что у квеста будет 2 сложности на выбор: простая и сложная. При прохождении на простой сложности ваше расследование будет постоянно подкрепляться различными сообщениями-рассуждениями ГГ. Не подумайте, никаких маркеров на улики и прочего не будет - квест всё также будет интересен для прохождения! Однако повысить сложность вам не удастся. На сложном уровне всё будет зависеть только от вас. Никаких подсказок, никаких сообщений, ничего. В любой момент вы сможете понизить уровень, если будет совсем тяжело. Однако награда также будет ниже, так что подумайте дважды. Правда, саму награду ещё нужно придумать
Ну а теперь к проблемам, с которыми приходится сталкиваться. Хочу быть честным, поэтому скажу, как есть. Летняя пора, куча времени, но ты находишься на отдыхе, далеко от компьютера. В голове крутится куча идей, но желание реализовывать их нет. В то же время, ты понимаешь, что никто другой их не потянет по разным причинам. Я стараюсь подавить это состояние, но пока не очень успешно. Единственное, что хочу сказать: я закончу то, что начал. Я найду в себе силы, чего бы мне это не стоило. А вот дальше... Дальше проблема... Ну да ладно, вначале давайте доживём до релиза.
На этом у меня, пожалуй, всё. Да, немного, но лучше, чем совсем ничего. Встретимся на какой-нибудь праздник: пускай будет как небольшая традиция. Как всегда, задавайте вопросы, выдвигайте идеи, пишите, про что хотите услышать в следующий раз. Напоминаю, только здесь вы сможете найти какую-нибудь "секретную" информацию. Нечасто, немного, но можете. Всем удачи
Вот и настал тот день, когда я вновь пишу что-то в своём блоге. И так уж совпало, что сегодня 31ое декабря, а это значит, что я поздравляю всех с Наступающим (Наступившим) Новым Годом! Пусть все ваши мечты сбудутся!
Праздник - это, конечно, хорошо, но мы здесь не за этим, верно ? Сегодня темой разговора будет разработка основной части мода, т.е. то, что прошло без моего участия . Как я сказал ранее, до моего вступления в разработку над модом работали Паша и Юра. На самом деле я не сильно вдавался в подробности, поэтому кое-где могу и обмануть. Если что, то меня поправят.
Идея проекта принадлежит Паше. Именно он начал разработку первых локаций, персонажей, квестов... В принципе он занимается этим и по сей день. С работой по ландшафту, по территориям и прочему ему помогал Юра. Изначально проект был не столь масштабным, и сюжет был завязан только на идее "Охотника за головами". Но в какой-то момент было принято решение полностью пересмотреть концепцию, оставив "Охотника", лишь как вступление к глобальной истории.
Атмосфера в проекте нередко обострялась. Насколько мне известно, дело дошло до того, что планировалось закрыть проект. Но ребята не сдались, ведь терять столько наработок было бы ужасно обидно. Начались появляться темы с конкретными задачами и примерными сроками их реализации, появлялись более подробные описания фракций, сюжета в целом. Всё это я видел, т.к. у Каньона не было своего закрытого от всех форума. Тут же начали зарождаться идеи объединения нескольких проектов в один. Сюда можно отнести небезызвестное поместье "Стронгстоун", прекрасно проработанные Дашей персонажи, Сашина идея мэра собственного города, ну и мой крэпс (часть ссылок дать не могу, т.к. они находятся во внутреннем форуме, доступ к которому есть только у команды). Несложно догадаться, что количество участников в проекте увеличилось.
Однако встал интересный вопрос, а где всё это разместить? Самым логичным решением оказалось создание отдельного мира, где и будут происходить события мода. В результате обсуждений мы сошлись на территории Гранд Каньона - отсюда и возникло название проекта.
Время шло, каждый из нас вносил что-то новое в проект. Наши обсуждения в чате начали привлекать пользователей. Вопросов становилось всё больше, а с ответами мы не спешили. Все понимали необходимость анонса, но всегда что-то мешало. И примерно через полгода пустых (или не очень) разговоров нам удалось представить свой проект публике. Приятно видеть, что многие ждут выхода модификации, всячески поддерживают нас (в том числе и идейно!). Так что если кто вдруг ещё не знает, что мы с радостью примем любые идеи, обсудим их, и перенесём в мод, то вам сюда.
На данный момент идей просто уйма. Я, если честно, не знаю, как мы справимся, но я обещаю, что мы доведём дело до конца. Ваша поддержка даёт стимул продолжать работу над проектом в целом так же, как в своё время поддержка ребят дала мне стимул закончить крэпс. Спасибо, что следите за обсуждениями, выдвигаете свои идеи, да и просто следите за проектом.
А на этом, пожалуй, на сегодня всё. К сожалению, не могу слить секретных скринов просто потому, что речь идёт не моих разработках Надеюсь, вам интересно читать мою писанину. Опять же, если есть вопросы - задавайте, с радостью отвечу. До новых встреч, друзья!
Всем привет, ребят! Добро пожаловать в мой блог, в котором я постараюсь время от времени выкладывать информацию о недавно анонсированной модификации от нашей команды. Записи будут не очень длинными, собственно поэтому я пишу их в виде блога, а не статей. Я планирую освещать некоторые технические вопросы, с которыми столкнулся лично, возможно, сливать некоторые свои (именно свои) наработки. Так что кто хочет быть в курсе, добро пожаловать!
Что ж, сегодня речь пойдёт о начале разработки. Начну, пожалуй, с того, что расскажу свою роль в команде. В основном я пишу скрипты: простые и трудные, короткие и длинные, в общем, самые разные. При этом я люблю делать что-то новое, бросать вызовы себе и своим навыкам... Именно так я и решил разработать свою азартную игру, а именно, крэпс. За точку начала можно взять 24.06.15. Это был мой личный проект, разрабатываемый для улучшения своих навыков, конкретнее я хотел научиться делать свой HUD для модов. Поэтому как только я получил желаемый результат (в плане худа), я решил "подзабить" на функционал игры в целом. Однако к тому моменту я успел выпустить ролик, который был замечен Пашей. Он параллельно мне, если не ошибаюсь вместе с Юрой, разрабатывал свою модификацию. И тут мне поступает предложение присоединиться к разработке, чтобы разнообразить контент мода. Дело было примерно в августе того же года.
*Чуть подробнее про крэпс можно узнать из моего первого блога, а также из вышеупомянутого ролика.
[sharedmedia=videos:videos:90]
Я с радостью принял предложение и продолжил медленно, но верно допиливать крэпс. Из-за учёбы процесс шёл очень медленно, однако ребята меня никогда не торопили, за что им огромное спасибо. Однако рано или поздно всё кончается - закончилась и моя работа. Конечно, есть некоторые аспекты, нуждающиеся в допиле, но игра полностью функциональна в данный момент. Разработка заняла чуть меньше года, было написано больше 1000 скриптовых строк... С другой стороны, мне крэпс неплохо так приелся и нужно было переключиться на что-то другое.
Естественно мне захотелось сделать что-то также в рамках Каньона. Было принято решение разработать квест, которым я занимаюсь и по сей день. Подробнее о нём мы говорим как-нибудь позже, впрочем как и том, что происходило в рамках проекта, когда я работал над крэпсом. Ведь ребята не сидели сложа руки, а работали по всем фронтам
А на этом пока всё. Если есть вопросы по крэпсу или по Каньону в целом, то я с радостью отвечу. А пока держите скриншот интерфейса.