Перейти к контенту
Азраэль

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

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

@SkyLoader, согласен. А от куда она появится, движуха? Все с ума посходили по другим движкам. Вон на Унити уже делают пародию на сталкера "35 мм". В УДК и Крайенжин поубежали мододелы. Я все эти три движка видел, частично представление имею - хороши возможности у них, но не то, особенно UDK. Такая шляпа УДК или игры которые на нём выходят, моё железо и моё представление об оптимизации уровня, не желают воспринимать действительное. Много мододелов поразбрелось по новым онлайн играм. Я бы конечно свалил бы и сам, но к сожалению, тот движок который я бы хотел заиметь, до сих пор закрыт на сто замков - это Dunia. Есть конечно возможность делать моды на Фар Край, но ограничены возможности - нет исходного кода, нет редакторов моделей и т.д.

andreyholkin.gif

rod_cccp.gif

 

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

но к сожалению, тот движок который я бы хотел заиметь, до сих пор закрыт на сто замков - это Dunia.

 

Dunia не закрыт на какие-то "сто замков". Он просто тупо не доступен для лицензирования сторонним разработчикам. И скорее всего никогда не будет доступен.

 

В том, что ты будешь его когда-либо "держать в руках", я сильно сомневаюсь.

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

---------------------------------

www.amk-zone.de

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

 

 

Все с ума посходили по другим движкам

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

Сначала написал с нуля свой игровой движок, склепал простенькую игру на нем, побаловался рендером 3д-моделей и трюками с их текстурированием,

А потом полюбил всеми фибрами сталкерский иксрей и стал лепить моды на нем.

Вот правда, куда бегать, зачем) ведь и здесь неплохо кормят, очень даже.

  • Нравится 1
  • Согласен 2

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

@Zander_driver, я не про тех кто уже сросся со Сталкером. Я про тех кто пришел и ушел. Сколько уже моделей сталкера перетащили на эти движки. Даже идею Сталкера на Биг Ворлд и то замутили под названием sZone Online Ведь все эти люди наверняка начинали с ковыряния Сталкера.

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

andreyholkin.gif

rod_cccp.gif

 

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

А что плохого в том, что "Сталкер" пытаются переделать под другие движки?

  • Согласен 2
  • Полезно 1

:az1000106: где бы код изменить :facepalm:

Работает - не трогай.©Любой программист

Mr_God.gif

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

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

Добавлено  warwer,

Укажи платформу.

Этот пост для тем: Ковыряемся в файлах... (чего?)

И, как пища для ума, на будущее: какой вопрос - такой ответ.

По твоему вопросу можно только посочувствовать твоему горю. Для адекватного ответа нужен адекватный вопрос с подробностями.

:az1000106: где бы код изменить :facepalm:

Работает - не трогай.©Любой программист

Mr_God.gif

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

@Mr_God, Ради разнообразия можно попробовать задуматься о том, какую информацию ты дал о своей проблеме. Вот предположим некто собрался тебе помочь, и... что ему ты сообщил? ничего.

Телепатически прочесть твои логи вылетов вряд ли кто-то сможет - нужные специалисты в отпуске. Можно ждать когда они вернутся, а можно попробовать общаться конструктивно. Выбирать тебе.

  • Согласен 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

Создавалось чтобы поощрить лень программиста, а я почитав это, дико затосковал по языкам где надо обязательно заранее объявить каждую переменную и указать ее тип...

Вот я всегда удивлялся как можно сравнивать языки с динамической и статической типизацией. По мне так это еще хуже холивара про пробелы и табы. Ну разные это вещи. Особенно убивает один мой знакомый, который утверждает, что PHP ну такой классный язык, а какие там массивы по сравнению с Java и C#...

ТЧ 1.0004. SAP и Trans mod

github

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

 

 

как можно сравнивать языки с динамической и статической типизацией

Вот так и можно.

В статической типизации, я объявил переменную, сказал - это integer, все, тчк, ничем другим оно не будет. Или компилятор мне перефразирует "не в мою смену, приятель".

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

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

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

 

При наличии некоторого опыта привыкнуть конечно можно ко всему. Запомнить и зарубить на носу что вот там и там не стоит пользоваться оператором #, Запомнить что вот там можно доверить Луа перегнать число в строку или наоборот, а вот там надо строго ручками указывать что есть что и дергая type(var), на каждом шагу бить Луа по рукам за попытки сделать по своему... как же их дофига на самом деле, этих бесячих подводных камней динамической типизации. В случае с Луа опыт помогает, а взять другой язык? :) опять все сначала... нет пожалуй чем меньше языков с динамической типизацией знаешь, тем целее нервы. Имхо.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

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

Я год кодил на JS в одном большом проекте, ох и жесть там с этим дебагом, сотни строчек кода непонятных значений. Спасают адекватные названия переменных, а ну и юнит тестирование никто не отменял. Я зарекся писать на динамике большие проекты, только если скажут "надо" или уж совсем прижмет. Да, я "статист".

Кто то скажет, что на динамике удобнее прогать, делаешь с переменной что душе вздумается. Ага, и огребаешь с этого. Баги есть везде и найдется тот тестировщик, который поломает самый идеальный код на динамике.

ТЧ 1.0004. SAP и Trans mod

github

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

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

 

 

Да, я "статист".

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

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

Здравствуйте все, у меня возникло вопросов касательно движка. Зачем в исходном коде столько классов для оружия? Занимается ли кто-то созданием единой абстракции для оружия? Велика ли внешняя зависимость от "лишних" классов вооружения?

Ещё насколько я понял, класс CWeaponKnife является дочерним для CWeapon, а CWeapon — дочерний для CShootingObject (взял из заголовочных файлов), т. е., если применить транслокацию, то нож — стреляющий объект, что забавно.

P. S.: Сильно не пинайте, я не спец в C++, только начал изучать.

Изменено пользователем Invervinus
Добавлено  HellRatz,

Пока никто из знатоков не ответил, покури эту темку, может что найдешь для себя: http://www.amk-team.ru/forum/topic/7450-spravochnik-po-funktciiam-i-klassam/

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

А зачем столько классов оружия в сталкере?

Ну наверно, возможно, предполагалось методом smart_cast отличать один ствол от другого. На деле это делается (регистрируется) в методе void CObjectFactory::register_classes(), а в скриптах проверяется методом clsid. В общем, можно спокойно удалить часть классов, и к тому же, классы потребляют часть ресурсов, и если в классе нет особой нужды, то его лучше не создавать.

Вот пример нужных классов, все классы пустышки надо удалить, удалён так же очень вредный класс CWeaponCustomPistol, из-за него наследники не стреляли очередями.

10461754m.png

Изменено пользователем НаноБот
  • Полезно 1

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

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

@НаноБот, про бинокль вспомнил, а где тогда бэтээрный класс? Я mounted_weapon в ПКМ ручном использовал. Баговый, конечно он, для оружия . Для пистолета может и пойдёт, так как стреляет без очередей, хотя этот же Моунтед веапонс стреляет в технике очередью. Еще у него баг, когда на базу кондыляешь, оружие само в рюкзак складывается, и сталкеры не матерятся, когда им стволом в рожу тычешь.

@Invervinus,  я уже ранее показывал видео.

 

 

Не всё в движке стреляет. Вот например механический эффект нанесения кила по ГГ и по всея живности. Я собирал мину на этом недоразумении движка. Прикольно. Только это никого не заинтересовало. Жаль - даже рыбок или бабочек ни кто не предложил сделать.

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

andreyholkin.gif

rod_cccp.gif

 

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

Зачем в исходном коде столько классов для оружия?

 

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

 

 

Занимается ли кто-то созданием единой абстракции для оружия?

 

Наверное стоило бы этим заняться, но для начала надо создать проект с собираемым движком и разобраться со многими другими сопутствующими проблемами. Я так понимаю, что если кто что и сделал, то застрял на втором этапе, так что до оружия руки не доходят =)

 

 

Велика ли внешняя зависимость от "лишних" классов вооружения?

 

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

 

 

нож — стреляющий объект, что забавно.

 

Нож внутри использует специальную пулю для нанесения хита. В этом есть свой смысл, поскольку не нужно отлаживать альтернативный механизм.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий
В этом есть свой смысл, поскольку не нужно отлаживать альтернативный механизм

А по другому не реализовать нанесения достаточного кила. Хотя, мысль есть. Если сделать механический удар шейпом с материалом атаченного предмета, по подобию радиационной воды, то можно наносить урон. Только надо еще движок править и СДК на новый килл.

 

 

просто делали игру под свои нужды, поэтому вопросами оптимальности не затруднялись

Они правильно делали.

Сейчас я приведу пример и всем станет понятно зачем это сделано было.

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

 

У оружия полно завязок на пакеты анимаций, их названий. Потому по анимациям будет вылет. Да и разрабы разбили еще на легкий класс оружия и тяжелый, а это слоты, запреты и будущий вылет, если объединить пистолет с автоматом.

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

andreyholkin.gif

rod_cccp.gif

 

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

@Desertir, я упомяну, что в Lua существует расширение, которое позволяет использовать статическую типизацию. При использовании статических переменных в сотни раз возрастает скорость (Lua уже не "перебирает" все возможное при исполнении кода) и в тысячи раз сокращается объем потребляемой памяти.

 

Сейчас я приведу пример и всем станет понятно зачем это сделано было.

Не могу со всем здесь согласиться. Я совсем немного правил оружие, и особенности дочерних классов поднимал выше, как и советует Malandrinus, результаты вполне позитивные (теперь классы вроде CWeaponBinoculars практически пусты). Не составляет никакого труда производить подобные операции, здесь больше вопросов в дизайне кастомайзинга родительских классов. К тому же для программиста совершенно нет разницы какие там могут быть различия, если будут моделлеры готовые делать и переделывать, то я думаю все это организовать никакого труда не составит. Одна, на мой взгляд, из главных причин, почему для оружия так мало всего сделано это нехватка моделлеров.

 

Я не совсем понял про слоты, ты говоришь о инвентарных? Если о них, то здесь опять все решается кастомайзингом.

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

А по другому не реализовать

 

Это вопрос? Если вопрос, то ответ на него простой: а зачем? Есть уже реализованный способ, зачем делать что-то ещё?

 

 

мысль есть. Если сделать механический удар шейпом с материалом атаченного предмета, по подобию радиационной воды, то можно наносить урон. Только надо еще движок править и СДК на новый килл.

 

Геометрия худа принципиально не может взаимодействовать с геометрией уровня или объектами уровня. Это просто картинка, рисуемая на фоне всего остального. И возвращаясь к началу, а зачем это всё надо, если уже есть готовый способ нанесения хита?

 

 

В игре есть класс авто, ...но на этом классе нельзя делать танк с гесеницами.

 

вот и было бы два класса: колёсная техника и гусеничная. Но ведь не надо при этом делать по отдельному классу на Запорожец, Ниву, БТР и т.д., не так ли? Вот с машинами разрабы сделали грамотно, создали общий класс, где есть в том числе и оружие, которое можно при необходимости заблокировать для конкретной секции.

 

 

У оружия полно завязок

 

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

 

У меня есть стойкое ощущение, что ряд частей движка поручали людям по остаточному принципу. Вот оружие и GUI явно относятся к этой категории.

  • Нравится 2
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

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