Перейти к контенту

Курилка программистов


Рекомендуемые сообщения

(изменено)

Ребят, вот вы "потрошите" движок... Вопрос. Есть ли в ТЧ возможность восстановить/создать возможность использования всех возможностей ЗП движка по анимациям?

Понимаю, что не "удобное" по смыслу дело! А все таки кто-то задавался таким вопросом? (понимаю, что вопрос будет без ответа, но все же..., есть же альтруисты, как я...)

Изменено пользователем ed_rez

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Prosectors Project

Проект разрабатывают: C.I.U. (Lua, LUA C API), Nazgool (Lua), Malandrinus (Lua, C++)

Что это?

Это рефакторинг-проект, который нацелен на переработку ресурсов игры, в частности и кода. Добавляет множество систем, функций и исправлений. Мы искренне надеемся, что каждый для себя найдет что-то полезное, для этого все и затевалось.
Текущая версия проекта представляет собой практически законченную, по нашему мнению, техническую базу, которую мы разрабатываем для себя, и которой мы не против поделится со всеми :). Будем категорически рады увидеть единомышленников.
Какова цель проекта?
Изначальная идея состояла в том, чтобы вычистить мусор, оптимизировать код и написать все популярные модули и системы по новым правилам с использованием новых возможностей (читай исходников). Сейчас же произошла небольшая коррекция, теперь мы хотим продемонстрировать всем людям, которые еще не перешли на исходники или скептически к ним относятся, тот факт, что не стоит боятся чего-то нового, игра никак не меняется, зато существенно расширяются возможности, можно сказать до бесконечности. Мы пытаемся создать удобный и, что главнее, стабильный инструмент, где не нужно дополнительно возится что-то настраивая или адаптируя. Обобщая, на сегодняшний день готова такая лаконичная платформа для любых разработок, в которую уже интегрирован весь необходимый инструментарий. Исходя из этого, скептически настроенные люди могут просто взять и попробовать что-то создать на этой основе без лишнего ущерба для своего времени. В итоге, если хотя бы у нескольких людей с помощью этого проекта чаша весов склонится в сторону использования исходников, то проект был создан не зря.
Каковы промежуточные результаты?
На данный момент нам удалось сократить количество скриптов более чем в три раза по сравнению с оригиналом (140(+6) против 441). Переработано большое количество кода, вычищен мусор, оптимизированы многие участки, исправлена масса ошибок, но несмотря на это работы еще очень много. Новых игровых особенностей мы пока не вносили, так как чтобы их создавать нужно отточить рабочую платформу, созданием которой мы сейчас и заняты, а она включает не только системы вроде таймеров, хранилищ, дебагового функционала, но еще и оригинальный код, который относится к сюжету или игровым особенностям. Он также линкуется и перерабатывается с новым стилем скриптового кода. Также мы стараемся постоянно повышать качество скриптового кода, следовать канонам Lua, а также затруднительные участки оптимизировать с помощью движка, чего мы добились - показывают замеры.
Также не малую часть работы занимает и переработка конфигов, так как там тоже скопилось достаточное количество мусора, а работать с конфигами очень тяжело. Переработка кода и файлов идет постепенно, в отличии от скриптов, процесс достаточно емкий по времени и требует большого опыта.
Почему в файлах две системы событий?
Я объясню почему. Все системы, которые присутствуют в проекте написаны своими руками и сторонние системы не использовались, почему? Потому что мы хотим на 100% владеть пониманием тех систем, с которыми работаем, а это возможно только при личной разработке (или более длительному пониманию кода сторонних авторов). Вернемся к событиям. Они введены только для поддержки работы таймеров, разработка под основную систему событий не была завершена и обкатана в свое время, поэтому было принято решение взять ту систему, которая понятна и стабильна, и, самое главное, о которой можно напрямую спросить автора. Наконец, если разработка под основную систему событий будет доделана, то текущее положение вещей будет переделано. В любом случае волноваться не стоит, здесь абсолютно ничего страшного нет.
Высока-ли модульность в скриптах?
На наш взгляд мы продвинулись до достаточного уровня, чтобы отдельные системы, даже те, которые работают с объектами, можно было безболезненно включать и отключать путем добавления или удаления файлов. С помощью новой системы сохранения появилась абсолютная совместимость сейвов, и все модули (скрипты), в которых предусмотрена опциональность можно удалять в любой момент (а по умолчанию это абсолютно все скрипты), так как их данные хранятся не в net_packet. Более того, система сохранения сама вычистит данные этого модуля, если он был удален безвозвратно(!). Как это? Это значит, что вы этот модуль больше никогда не добавите к скриптам, а если вы хотите удалить какую-то систему лишь на время (но сохранить все ее данные), то и это тоже возможно. Таким образом, например, вам не нравится работа какой-либо опциональной системы (в которой что-либо сохраняется) на определенном этапе игры, у нас вы можете отключить эту систему на время, пройти без ее участия этот этап игры, а затем снова ее активировать, и все ее прежние данные никуда не потеряются. Весь предыдущий опыт комьюнити, вроде изолированного создания какой-то системы под дебагом у нас тоже присутствует.
Почему не присутствует обновленный LuaJIT?
Любой, кто подключал обновленный LuaJIT сталкивался с проблемами измененного алгоритма работы некоторых lua-функий. Поскольку луа – табличный язык, а проблемы встречаются именно там, то очевидно, что оригинальный сталкерский код не рассчитан на измененную работу функций, и отсюда начинались различные баги. Выход есть, это проверка и корректировка всех скриптов, но сразу заметим, что задача это довольно трудоемкая и мы от ее выполнения отказались. Но(!), я готов дать движок с новым LuaJIT именно для тех, кто захочет этим заняться, и если ваша работа увенчается успехом, то по крайней мере мы своим составом объявим вам благодарность, так как обновленный функционал открывает совершенно новые горизонты (см. документацию LuaJIT).
Почему нет документации ко всем системам?
Написание документации дело не быстрое, а без гарантий интереса к проекту не видим смысла расписывать принципы работы. В самих скриптах все достаточно подробно и понятно (на наш взгляд) отражено в комментариях. Если к системам проекта будет проявлен интерес, то руководства будут написаны.
Какие дополнения есть для диалогов?
Начнем, пожалуй, с главного. Мы переделали кеширование диалогов при старте игры, а точнее вырезали его вообще, и теперь любой диалог, любой граф и вся его начинка строится при непосредственном обращении к нему (при юзе персонажа, например), что это дает? Во-первых, с этим исправлением появляется смысл у динамичных диалогов, то есть они становятся действительно динамичными (и если в ветвлениях есть рандом, то он будет отрабатывать постоянно, ранее это было невозможно), а во-вторых появляется возможность строить графы диалогов прямо по ходу игры (даже не перезагружая игру вы можете постоянно перестраивать граф диалога), единственное нужно будет заранее зарегистрировать диалог, регистрация была оставлена для контроля, то есть набор диалогов по-прежнему статичен. Также мы задумались как можно дать функции диалога больше информации, рассматривался парсер и какая-то дополнительная информация. Выбор сделан в пользу второго, так как первое выглядит довольно громоздко, а информацию несет практически туже самую. Итого мы добавили в функции прекондишнов текст фразы, из него можно без труда понять где мы находимся, что сказал персонаж и что нам нужно сделать исходя из этого. В скриптовое получение фразы текст, разумеется, не передается, так как он вам известен заранее.
Почему ГГ так быстро устает? (или подобный вопрос)
Баланс никак не настраивался, сделаны такие грубые зарубки, из которых в дальнейшем возможно будет сделано что-то интересное. Если вы заметите какие-то сильные перегибы в балансе, то указывайте пожалуйста вкупе с вашим вариантом настройки этих параметров баланса. Корень зла зарыт в переработке различных расчетов прямо в движке, и чтобы эти обновленные формулы заставить качественно работать придется переработать довольно большую часть конфигов, поскольку в коллективе нет тех, кто мог бы этим заниматься, то это действо растянется надолго.
Как пользоваться рюкзаком?
Смотрите соответствующие видео на канале (ключевое слово - backpack). Под некоторыми видео существует подробное описание, которое ответит на большинство вопросов, остальные можно задать здесь. Стоит сразу предупредить, что данная система имеет ряд некритичных багов, о которых все-же стоит сообщать и вам, так как не исключено, что мы не увидели все недочеты.
YouTube-каналы разработчиков (не все материалы относятся к данному проекту): https://www.youtube.com/user/MrMalandrinus2010
Для более полного понимания давайте сразу продемонстрирую главный файл документации по движку: http://pastebin.com/FK0Wc3Nd

 

 

Тема проекта здесь: http://www.amk-team.ru/forum/topic/13387-prosectors-project/#entry1036058

Изменено пользователем ed_rez
  • Нравится 1
  • Полезно 1

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

ТЧ. Задам вопрос здесь. Может не по знанию, но желание узнать имеется. Кто-нибудь делал правки движка для ТЧ, где при включенном ПНВ не был "слышен" ГГ? Звук с комментарием в СДК для ПНВ не причем, заменялся, кодировался не в СДК. Но НПС реагируют на включение ПНВ.

Изменено пользователем ed_rez

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Поделиться этим сообщением


Ссылка на сообщение
(изменено)
а не пробывал убавить радиус распространения звука в СДК в самом звуке.
Звук с комментарием в СДК для ПНВ не причем

Самое первое было сделано! И ни одним радиусом, а еще и типом звука, сменой на World ambient, на который НПС вообще никак не реагируют. Это первое! Затем:

Как можно закодировать звук без СДК?

Элементарно, кодеком Ogg, который есть во всех аудиоредакторах, кодировщиках,... И целью было обнулить комментарии СДК и сделать звук не понятным для движка. Т.е. движок его воспроизводит, как проигрыватель, но никаких команд не дает ни по одной схеме поведения НПС.

Вы шта, там все белены пообъелись?

Мне рассказывать про звук!? Улыбнул!

 

Если я задал вопрос, то значит все предпринял для решения, но не хватает знаний программирования. И пришел сюда за решениями, а получаю, как "папу начинают учить делать детей" по части звука.  :lol3:

Изменено пользователем ed_rez

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Поделиться этим сообщением


Ссылка на сообщение

 

 

использовать звуки без комментария - плохая идея, так как будет использоваться дальность слышимости по умолчанию - 300 метров.

Эвона как, буду знать. Мой эксперимент с подставленным файлом:

snd_night_vision_on = $no_sound
snd_night_vision_off = $no_sound
snd_night_vision_idle = $no_sound

не дал результатов. И только теперь мне понятны причины. Благодарю за ответ!

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Поделиться этим сообщением


Ссылка на сообщение
(изменено)
что движок и сам воспроизводит звук так как надо

Все, что я мог сказать ему по этому поводу- я сказал, надеюсь убедил.

Или тот же ворлд-амбиент?
И ни одним радиусом, а еще и типом звука, сменой на World ambient, на который НПС вообще никак не реагируют.

Странно, но что-то я видно накосячил, если звук ПНВ продолжал "бить" на всю катушку 300 м. Видно с приоритетами в папках было что-то не так. Как-то привык все правки изначально подкидывать в папку mods, чтобы не путать с тем, что уже работает.

Что мешает просто поменять коммент в СДК?

И это самый лучший вариант в тех случаях, когда у нас исходник звука, а не пожатый *.ogg превращенный без потерь в качестве в *.wav, а затем по новой мы пережимаем снова в *.ogg, который уже изначально был пожат кодеком. Чтобы сохранить звук в максимальном качестве, необходимо брать исходники для кодировок, а не уже "убитые" звуки после пожатия. Каждая кодировка пожатого/кодированного звука портит звук до ниже плинтуса. Тема изучена от и до не в Сталкере. Поэтому предельно максимально стараюсь нигде не кодировать, т.к. смена комментария- это таже кодировка с  *.wav в *.ogg.

Другим словом использую ПЫС звук, а добавленный звук, там уже имею исходники в 48кГц и свыше 2 мбайт/c. У нас же от ПЫС остается после кодировки = 44.1 кГц и максимум 100 кбит/c.

Изменено пользователем ed_rez
  • Согласен 1

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Поделиться этим сообщением


Ссылка на сообщение

@Дизель

может мы друг друга не допоняли!? Делал я загрузочный экран в стиле ЗП, а текстурки уровней для загрузочного пожал до размера 2х2 и сделал прозрачными. Все работает без глюков.

  • Согласен 1

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Поделиться этим сообщением


Ссылка на сообщение

 

 

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

Занятная локация получится. А главное старое но по новому.  :good2:

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Поделиться этим сообщением


Ссылка на сообщение

@UnLoaded

тогда еще маленький вопросик. Если помнишь чистый ТЧ, то был в сюжете броник "Лечебный Берилл", где опять "лечебный" это условность. Может и здесь возможно решить вопрос таким же образом?

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Поделиться этим сообщением


Ссылка на сообщение
10 минут назад, dsh сказал:

то в формулах обозначает S?

Дык это, расстояние же. Или что-то не так понял!?:russian_ru:

  • Согласен 1

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Поделиться этим сообщением


Ссылка на сообщение
4 часа назад, Malandrinus сказал:

рендер сделаны на очень приличном уровне

Программисты рендера и шейдеров готовы с тобой поспорить. 

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

@Zander_driver

тут разговор скорее не о "приличный", т.к. тут все ясно, а о том, как сделаны эти рендеры для всей трилогии. Ничем не отличается от твоего вопроса. Знаю, что твой вопрос поднимался где-то, возможно на геймеру, а по факту, то в РР проекте лишние классы оружия вырезаны и заменены какими-то иными, не имеющими отношения к оружию. Исходников пока по проекту не предвидится, возможно будут сливаться с выходом ТИ.

Также есть вероятность, что в движке от @Zagolski также проведена работа по вырезанию, но думаю, что стоит у него лично спрашивать. Исходники также не выкладывались.

Изменено пользователем ed_rez

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Поделиться этим сообщением


Ссылка на сообщение

@Malandrinus

я не смогу своими словами объяснить. Читал обсуждения программистом на геймеру. Меня этот вопрос интересует в сюжетном проекте, поэтому приходится вникать в некоторые вопросы рендеров и шейдеров.

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

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