Перейти к содержанию

  • записей
    12
  • комментариев
    17
  • просмотров
    13 115

Моддинг Fallout'а переживает новую жизнь

Авторизация  
Вис691

798 просмотров

Всем привет. На дворе 31-е декабря, а значит время нового поста из нашей регулярной рубрики. Ну как регулярной, иногда я немного задерживаюсь, но не сегодня!

 

В прошлый раз я поднимал тему бекапирования своих наработок. Тогда я не знал, как поступить и какой путь выбрать. Сейчас же, мне кажется, я нашёл ответ. Подойдёт он скриптерам, т.е. в моём случае попадание прямо в яблочко. Позвольте мне познакомить вас с модификацией Hot Reload. Первой и очень удобной функцией является то, что скрипты можно изменять и сохранять, не закрывая игру. Это намного ускоряет процесс разработки, т.к. ранее на каждое изменение нужно было запустить игру, проверить, закрыть игру и только потом продолжить разработку. А если в код закралась ошибка, и ты не понимаешь, где она, и перебираешь все возможные варианты... В общем, было очень неудобно. Но мы не жаловались, а принимали это как должное. С Hot Reload, конечно, куда приятнее. Скажу вам так: дороги назад я не вижу. Но и это ещё не всё! Каждый скрипт, который вы создали в вашем плагине, сохраняется в виде текстового файла в специальную директорию. Это позволяет открыть его в любом удобном вам редакторе. Я лично пользуюсь Notepad++, для которого ещё и плагин с подсветкой синтаксиса есть. Вроде бы и для VSCode тоже существует. Вот вам небольшой фрагмент того, как это выглядит:

Спойлер

srYYYeo.png

Другим преимуществом текстовых файлов является то, что их-то вполне можно и под git положить. Я лично создал репозиторий в Gitlab и пушу туда изменения по мере их готовности. Это и хранение актуальных версий где-то вне, и история изменений с возможностью возврата к прошлым версиям, если что-то пошло не так. Естественно, все изменения, сделанные в этих файлах, автоматически попадают в плагин. Не нужно ничего никуда копировать.

 

Если говорить о Каньоне, то я большую часть времени занимался переписыванием старых скриптов. Началось всё с того, что я нашёл логическую ошибку в работе своей мини-игры. Для её исправления требовалось влезть в основной скрипт, написанный ещё в далёком 2016 году. Честно говоря, смотреть на него было больно, а пытаться что-то поменять просто нереально, т.к. любое изменение привело бы к новым проблемам. А искать их в 1000+ строках кода, почему-то разбросанных по разным квестам, очень не хотелось. Поэтому я и переписал его. Стало намного лучше, во всех аспектах. Смотреть на скрипт теперь не так больно, я исправил ту самую логическую ошибку, сам размер скрипта заметно сократился, и теперь всё лежит в одном месте. Я также улучшил саму работу игры. Вот небольшой список было/стало:

- Было: оба кубика бросались, через 5 секунд считывались значение с верхней грани, если хоть одно получить не удавалось, то оба кубика перебрасывались. Это часто приводило к ситуациям, когда один кубик перебрасывался просто так или значение по счастливой случайности считывалось с ещё катящегося кубика. Чаще всего кубикам просто не хватало времени остановиться, и происходили постоянные перебросы.

- Стало: каждый кубик теперь обрабатывается отдельно. Значения считываются только после того, как кубик остановится. Если кубик упал на ребро, то перебрасывается только он. Количество успешных бросков выросло в разы.

- Было: меню отображения ставок имело фиксированный размер, который не зависел от разрешения экрана. Позиции всех элементов были захардкожены. Размер текста был един везде.

- Стало: размер меню теперь определяется динамически. Расположение элементов так же рассчитывается динамически. Размеры текста теперь подогнаны под размеры свободной области вокруг.

Процесс переписывания всё ещё идёт, сейчас я занимаюсь блокнотом.

 

Помимо этого было множество мелких правок и добавлений. Даже пришлось попробовать 3D-моделирование. Не могу сказать, что получилось отлично, но я остался доволен. Члены команды вроде тоже :D

 

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

  • Нравится 7
Авторизация  


5 Комментариев


Рекомендуемые комментарии

Цитата

- Стало: каждый кубик теперь обрабатывается отдельно. Значения считываются только после того, как кубик остановится. Если кубик упал на ребро, то перебрасывается только он. Количество успешных бросков выросло в разы.

Я полагаю будет задействован великий рандом? Или от Удачи игрока тоже будет зависеть успех выпавшей комбинации?

 

Цитата

Процесс переписывания всё ещё идёт, сейчас я занимаюсь блокнотом.

Я правильно пониманию, что у нас появится в игре своя записная книжка на РУССКОМ языке? :D

Поделиться этим комментарием


Ссылка на комментарий
4 часа назад, Infest сказал:

Я полагаю будет задействован великий рандом? Или от Удачи игрока тоже будет зависеть успех выпавшей комбинации?

 

Рандом. Там же в зависимости от ставки (или их комбинаций) нужны различные исходы для победы. Да и мало представляю, как это дело можно "подкрутить", чтобы игроку что-то конкретное выпадало чаще.

 

4 часа назад, Infest сказал:

Я правильно пониманию, что у нас появится в игре своя записная книжка на РУССКОМ языке? :D

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

 

  • Нравится 1

Поделиться этим комментарием


Ссылка на комментарий
1 час назад, Вис691 сказал:

Писать на русском можно сюда: 

Кривой блокнот, если честно) 

Поделиться этим комментарием


Ссылка на комментарий
22 часа назад, Infest сказал:

Кривой блокнот, если честно) 

Хех, какой есть. Но я вроде тоже долго с ним не пробегал.

Поделиться этим комментарием


Ссылка на комментарий
2 часа назад, Вис691 сказал:

Хех, какой есть. Но я вроде тоже долго с ним не пробегал.

Есть ещё To-Do List, но увы, non-cyrilic support. Но а как по мне, реализация маст-хэв. 

Поделиться этим комментарием


Ссылка на комментарий

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×
×
  • Создать...