Комментарии 64
6. Математика Quake (q_math.cpp) — это знаменитый трюк с битовым хакингом позаимствован прямиком из движка Quake 3 Джона Кармака. Даже разработчики из Raven, читавшие его годы спустя, не смогли разобраться, как он работает.
https://ru.wikipedia.org/wiki/Быстрый_обратный_квадратный_корень
Это было даже здесь, на Хабре. Более того, подобный коммент был в исходниках Квейка, т.е. от самой Id.
Комментарии переведены по-разному, но обратившись к статье Википедии на английском языке с исходником Quake III и к исходнику Q_rsqrt() Jedi Academy можно убедиться, что эти фрагменты идентичны, включая комментарии и закомментированную строчку в конце.
То есть часть ругательств в исходниках была бережно перенесена из более древних проектов.
Я полез копать эту тему и случайно нашёл статью 2023 года, которая на основе анализа 11 тысяч репозиториев на Github утверждает, что код с ругательствами статистически качественнее, чем код без них: https://cme.h-its.org/exelixis/pubs/JanThesis.pdf
Всё ещё лучшая игра про поединки на световых мечах.
Я помню эту офигенную игру. Играл в детстве. Но я знаю, что с тогг момента вышли пару новых SW. Мое железо не тянет, так что я не в теме, но неужели там бои хуже?!
Вышло-то вышло, но разработчикам не хватает... решимости? фантазии? Не знаю, чего, в общем, чтобы сделать световые мечи такими, какими они были в фильмах.
Вот самый очевидный пример: Fallen Order (ну и сиквел его, Survivor). Там световой меч это просто, ну, палка, который ты бьёшь противников. Не отрезаешь им руки-ноги, как ожидалось бы, а ну вот просто тыкаешь, как в Dark Souls каком-нибудь. С этим как-то можно было мириться двадцать лет назад в KotOR, но сейчас-то в чём проблема? Слишком просто будет? Так геймдизайнеры у вас за что деньги получают? Пускай придумают, чтобы было не слишком просто.
В общем, там бои не то чтобы хуже, просто они не про фехтование на световых мечах.
Конечности и в оригинале по дефолту очень редко отлетают. Но если в консоли прописать одну команду - меч начинает рубить как надо, и врагов и игрока, становится весело, но хардкорно
Это требование издателей, кажется, было, да, посчитали что как-то многовато расчленёнки.
Но я больше про то, что враги умирают с одного-двух тычков, а не впитывают урон и не блокируют световой меч(!), как будто у них там оружие и броня сплошняком из кортозиса сделаны.
не блокируют световой меч(!)
А как во вселенной SW объясняют возможность блокирования светового меча другим световым мечом?
Честно говоря без понятия, техномагия. Вот просто блокируют они и всё, такой канон у вселенной.
То есть там пытаются что-то про магнитные поля писать в официальных энциклопедиях, но это всё настолько комично выглядит, что лучше бы не писали вовсе ничего.
Начинают обычно с того, что меч не именно “световой”, а скорее что-то вроде плазмы в силовом поле. А силовые поля друг друга блокируют, этож силовые поля
ну, в книгах РВ авторы поддержали именно эту идею
в частности, сейчас вспоминается пара случаев: один "меч" с регулируемой длиной, в котором описывалось как раз расширение силового поля, и второй - меч Люка, который тот сконструировал сам (то самое изменение цвета меча в фильмах) взамен потерянного на Беспине. В книгах более подробно описывается в том числе фокусирующий кристалл, регулятор силового поля, источник питания.
И, емнип, эти же кристаллы допускают "но если кристалл вот эдакий - то оно уже не меч а плеть; а если вот так треснутый то он ещё и ветвится как молния"
Если это не тот расширенный канон, который уже не канон потому что мышь выкинул.
Если это не тот расширенный канон, который уже не канон
ну, я не говорил про "канон" так-то. РВ - расширенная вселенная. С одной стороны книги писались так что общая линия с лукасартс согласовывалась, с другой стороны сам Лукас (еще до продажи Диснею) мог все переиграть или заретконить. В нынешней вселенной наплаканной Диснеем - вообще ничего не понятно, потому что весь бэкграунд выкинули =)
но если кристалл вот эдакий - то оно уже не меч а плеть а если вот так треснутый то он ещё и ветвится как молния
А вот этого не помню. Помню энергетический кнут времен Дарта Бэйна из "гибкого", да и тот не совсем "световой меч", остальное - почти стандартные "палки"
g_saberrealisticcombat 2 или 3 - эх, как сейчас помню. Причем на 2-ке конечности постоянно отлетали, но только при нажатии кнопки удара, а на 3-ке - достаточно было модели меча коснуться другого тела
Нужен коллаб Ghostrunner c Звездными войнами!
С этим как-то можно было мириться двадцать лет назад в KotOR
KotOR так вообще РПГ буквально с механикой кубиков, как совместить стандартное РПГшное “вы нанесли 15 урона” с тем, что каждый непропущенный тычок ваншотит даже Эйнштейн не сообразит
Потому и можно было закрыть глаза на это.
Но в целом-то придумать можно было бы: побольше противников давать, или выдать Бастилу и сделать ГГ джедаем (надеюсь, что можно безболезненно написать спойлеры к игре возрастом 20+ лет) попозже, или в качестве противников выдавать не бомжей, а всяких ситхов пожиже, да мало ли способов.
Все одно, оно не совместимо с механикой классической РПГ, коей игра является, а все эти варианты превратят ее в экшон. Это же буквально жанровое, а не техническое ограничение. Так-то никто не считает за недостаток, что в каком-нибудь “Фоллауте” пистолет (тем более лазерный) не ваншотит с вероятностью 95%, как в реальности
Это всё справедливо, но лудонарративный диссонанс всё равно присутствует.
Ну он так-то присутствует буквально в любой РПГ (да, черт возьми, даже в почти любом шутане кроме самых хардкорных) - глобально простой меч должен расчленять не сильно хуже светового, особенно если противник не в металлической броне, любой огнестрел должен убивать с одного-двух выстрелов, тяжелый огнестрел вообще не должен оставлять шансов на выживание (это же справедливо и для другого дистанционного оружия - что бластеров из тех же ЗВ, что каких-нибудь турбо-плазменных винтовок). ЗВ со световыми мечами тут особняком не стоят, это буквально всеобщая жанровая условность
ну.... теоретический нанять пяток усратых D&D мастеров и попросить их реально продумать как вписать в Игру такое - я думаю при наличии пары недель, неограниченного запас Пива, Кофе и вкусняшек и понимания что в их игру будут потом играть миллионы они бы справились....
Даже мне видится с десяток вариантов как на тех же кубиках реализовать отсечение конечностей и так чтобы оно не сильно ломало канон игры.... а так джедаи Имба по канону и эту имбовость надо использовать очень правильно - ибо ИМБА это зверь страшный именно тем что вписать его куда либо так чтобы он при этом оставался интересным невероятно сложно....
Да само-то отсечение конечностей это несложно - этож банальной “критическое попадание”/“критический промах”, тут вопрос в том, что механика РПГ предполагает кучку “-5ХП -2ХП -3ХП”, а не “промах-блок-блок-промах-ваншот”, ее конечно можно так переделать, но это будет совсем не ДнД, а самое главное это та жанровая условность которая характерна буквально для каждой квази-ДнДшной РПГ, то что меч световой, а не железный дела не меняет
Сделать реалистичный световой меч - кошмар для геймдизайнера. Если любое касание отрубает конечность, то как балансировать босс-файты? Приходится вводить условности вроде "полоски брони" или щитов
По иммерсивности боях на световых мечах действительно до сих пор нет ничего лучше, но в Fallen Order у тебя соулс-лайн боевка, где ты дерешься и с адептами силы в т.ч. Игра неплохая, как фанат вселенной ЗВ, ставлю ей 7.
Не то чтобы конкурентов много. Всё остальное лайтсейберное фехтование - это аркадные экшоны. Я не то чтобы против, но хочется разнообразия.
Не то чтобы конкурентов много.
Что удивительно, кстати. Мне кажется, что киберспортивный потенциал у игры был бы шикарный. Собственно, в мультиплеер Jedi Academy до сих пор какие-то бешеные фанаты рубятся.
Во-во. Некоторое время назад попробовал под VR "Blade & Sorcery" с модом про звёздные войны - плакал от счастья как младенец
А я на поисковик своё негодование обрушивал, обычно 😅Видимо скоро до ИИ-агентов прогресс дойдет в этом плане)
Те, кто программировал игры в 80-е на медленных машинах, знают, что там не могло быть чистого школьного логичного кода.
Борьба шла за каждый такт и каждый байт.
Почти в любой игре были нестандартные решения и даже использование формально ошибочных команд, которые вводят процессор в состояние ошибки, но попутно он выполняет то, что нужно программисту. Причем сильно быстрее, чем логичный школьный код.
Тем, кто занимался ещё ЕГГОГологией, приветы! ;-)
Борьба шла за каждый такт и каждый байт.
Джон Кармак (автор сабжевого движка) как-то дал пятичасовое интервью, из которого примерно половина посвящена именно этому.
ЕГГОГологией
Сразу видно человека из раньшего времени! (с)
Да, мы такие... Программируем ещё. )) Теперь, вот, неожиданно понадобилось всем многочисленные контроллеры в машинных кодах и на яз. ассемблера программировать. А, ведь, предрекали уже в 80-х, что скоро работа программиста будет сводиться к приказам компьютерам на языке пятого поколения а-ля Prolog. Теперь, вот, нейросети, говорят, все будут делать...
)) Эх! Помню-помню... приходилось спускаться в подвалы... на несколько уровней ниже обычного ЕГГОГа, туда, где "тьма"... и тонкая красная линия через весь черный дисплей.Там уже тщедушный процессор клинило, бывало, намертво. Только аппаратный "рисет" по питанию.
Олдскульные хаки вообще отдельный вид искусства) Чего стоит только рисование спрайтов через манипуляции с регистрами видеопамяти напрямую в обход ОС. Сейчас за такое компилятор по рукам набьет

Как-то неудобно получилось...
Да там просто кладезь цитат для важных переговоров.
Я про метку sourcecraft в нижнем правом углу
Яндекс сам себя не прорекламирует.
Но зачем так палиться в рекламе?
Под статьёй-анонсом о введении этой "фичи" с SourceCraft'ом люди серьёзно обсуждали и предлагали Хабру уменьшить размер кнопки (раньше это был не значок, а огромная кнопка "Объяснить с SourceCraft" же), добавить возможность автору статьи выбирать, показывать кнопку или нет, обсуждали, а нужна ли вообще автоматизированная попытка объяснения кода и т.п., и никто им (обсуждающим) не указал, что это чистой воды реклама Яндекса (очередная). Так что один заметит рекламу и возмутится, а десять подумают "какой хороший сервис, заботится о читателях".
«А я такою стою и кланяюсь, кланяюсь...» ©
Жёстко прописываем исключение просто для того, чтобы графические карты AMD/ATI не вызывали вылет инструмента.
Золотой костыль.
15 лет назад много таких комментариев встречал в js На сайтах. Например, когда шла речь про прослушивание событий в IE И других браузерах. // А теперь делаем для этого е*****о осла 😂😂😂
NPC_reactions.cpp — реальная логика кода, когда игрок стоит, направив прицел прямо в лицо дружественного NPC.
//спрашиваем, какого хера он делает
А что не так-то? Если бы мне в реальной жизни дружественный персонаж направил прицел прямо в лицо, я бы тоже для начала спросил, кого хера он творит.
В оригинальной статье в исходниках слово fuck встречается 22 раза.
Тут требуется перевод Гоблина.
Отличный пост, спасибо, было весело почитать. Игра супер, но теперь я знаю, что это давалось болью и страданиями.
Читаю и понимаю, что за двадцать лет в разработке игр не поменялось ровным счетом ничего)) Мы все так же материм кривое железо, пишем костыли для старых API и втыкаем магические числа, чтобы оно просто работало до релиза
//нахрен, просто шарашим Силой
В оригинале не про Силу речь, насколько можно судить в отсутствие контекста, а про принуждение чего-то к выполнению:
//fuck it, just force it
Теперь понятно, почему в игре можно было присесть и спамить атакой мечом - и соперник просто ничего не мог сделать.

Исходный код Jedi Academy переполнен яростными комментариями разработчиков