CI-build для ядра линукса? С matrix-конфигом со всеми вариантами? Ннууу, технически это, вероятно, осуществимо, но на практике вряд ли кому-то по силам
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "PaperSprite.h"
#include "ComponentAssetBroker.h"
#include "PaperSpriteComponent.h"
#include "PhysicsEngine/BodySetup.h" // <<---
//////////////////////////////////////////////////////////////////////////
// FPaperSpriteAssetBroker
....
Файл BodySetup.h находится в Engine/Source/Runtime/Engine/Classes/PhysicsEngine/ и там нет ссылок ни на что, кроме PhysX и Chaos.
Так что да, всё та же PhysX (или Chaos) с заблокированной одной пространственной осью. Т.е. в 2D-играх объектам просто не позволяют перемещаться в направлениях, выводящих за плоскость, в которой происходит гемплей.
Вот Вам идея для эксперимента: попробовать реализовать одну и ту же игровую механику на PhysX и на Chaos и рассказать о результатах и полученном опыте.
В исходниках UE4 есть отдельные ветки 4.26-chaos и 4.27-chaos. Я не заглядывал туда, но названия подсказывают, что там другая физика.
Chaos тоже не идеален. Я в прошлые пару лет участвовал в проекте по созданию аналога Gazebo на UE, так там несколько раз пытались переехать на UE5, но так пока и остались на 4.26 из-за бага в Chaos, который рушил всю симуляцию.
А время на настройку Visual Studio, знакомство с его возможностями, поиск плагина, знакомство с плагином, где?
Так почти не было его. В школе на Turbo Pascal писал, потом Turbo C. Visual Studio после них как-то само зашло. На плагин пару часов, вроде бы, потратил.
В общем не вижу тут особой разницы. И там и там разовая работа по самообразованию, которая повышает ваш навык и вашу цену как эксперта
Разница в том, в какой области какой функционал проработан. В линуксах/макоси тоже не всё везде блестяще.
Именно "отнюдь". Не понимаю я, что там проработанного. Вы и сами согласны, что дополнительные вложения требуются.
В Visual studio я плагин поставил, окошко его открыл и продолжил заниматься своей основной задачей: отладкой алгоритма, решающего задачи заказчика. Который деньги платит, на минуточку, за решение только своих задач.
А в линуксе/макоси я должен потратить несколько дней на настройку инструментов, понаступать на все их баги, найти патчи, скачать исходники, в том числе и зависимостей, применить патчи, пересобрать инструменты. Ффух, можно дальше к своей основной задаче возвращаться.
Как вариант, можно ещё все изложенное в стоимость работ заложить и выкатить счет заказчику. Но это не отменяет моих сомнений в проработанности инструментов отладки под линукс.
Ну и последнее: отладка в Линуксе - это один из самых проработанных моментов вообще.
Отнюдь. Основываясь на своём многолетнем опыте разработки под виндой и линуксом, а в последнее время еще MacOS прибавилась, скажу, что это очень спорное утверждение.
"как решить задачу ABC". Некоторые решения будут совсем не аналогами, но они будут родными для линукса и прямыми по сути.
Вот Вам задача. Вывести на экран изображение из памяти отлаживаемой программы, выполнять программу по шагам и обновлять картинку, чтобы показать, как код её меняет. Указатель на данные изображения есть, формат, высота, ширина и прочая информация есть. Одновременно нужно показывать значения различных других переменных.
Короче, отладка программы, выполняющей какие-либо задачи из области image processing/computer vision. А картинки, для простоты, пусть лежат в объектах класса `cv::Mat` из известной библиотеки OpenCV.
В Visual Studio под виндой уже много лет есть плугин Image Watch, который с успехом решает и эту, и другие задачи. Во всех остальных IDE и ОС - костыли вокруг GDB, LLDB и Matplotlib, которые постоянно ломаются. Что-то похожее есть для Jetbrains-овских IDE, но в последнее время этот плугин стал платным, и не все IDE поддерживает, в частности в Rider for Unreal он не работал, когда я пытался его использовать.
Если именно эта логика стоит за действиями HP, то она мне кажется какой-то странной, детсадовской. Запретить пользователям из другой страны включать/выключать лампочки на ноутбуках, которые они у тебя купили... Не в аренду взяли, не в подарок получили, а бабки за них заплатили, причем было это больше 2 лет назад, даже гарантийный срок уже вышел. Напоминает мне свару между соседями, которую я как-то давно наблюдал. Основная суть свары выражается в следующей угрозе одного другому: "будешь приставать к моей жене - я на твоей машине колеса проколю". Ну отключили Gaming Hub. Дальше что?
Пишу это сообщение с ноута HP Omen 15, работающего под Kubuntu Linux 22.04, подсветку клавиатуры уже года три регулирую с помощью вот этого модуля https://github.com/pelrun/hp-omen-linux-module В одном из форков репозитория, вроде бы, есть решение для динамического изменения подсветки во времени.
если человек не затыкается, то это значит, что он не понял, что его поняли. Причём, иногда это просто удивительно, что простое "Я вас понял" может сделать с ситуацией
Нет. Для того, чтобы человек заткнулся, нужно решить его проблему и/или устранить причину его беспокойства. В Ваших примерах именно это и происходит. Если просто сказать "Я вас понял" и оставить все как есть, это не поможет.
И как поступит гипотетический босс из Вашего второго примера, если через три недели задача 21 останется в том же состоянии?
Все логично, понятно, обоснованно, с доводами согласен. Один момент: HRов нанимают не сотрудники, а директор, он же и зарплату им платит. Сюда же секретарь-референт, плановая группа, бухгалтерия, завхоз, итдитп. Это все (бюрократический) аппарат директора, который он нанимает себе для своих нужд. Соответственно, ему и рассуждать, кто и зачем нужен, а кто - нет.
... деньги, вложенные в удалённого работника делают больше денег, чем вложенные в офис и офисного работника...
А вот тут очень интересно, как это можно посчитать? Из очевидного: аренда офиса, зарплата уборщиц и кофе-леди и оплата VPN. Дальше остаётся как-то посчитать, насколько отрабатывает свою зарплату сотрудник, работая из дома и работая из офиса и сделать выводы. Вот с последним не всё понятно.
В статье из Википедии про RTSP, ссылку на которую Вы привели, сказано, что видео по RTSP не передаётся, для этого есть протокол RTP. Мой опыт разработки плеера для систем видеонаблюдения это подтверждает. По RTSP клиент и сервер договариваются о передаче данных и управляют ей командами PLAY, PAUSE и т.п. Сам видеопоток идет как раз по RTP. Что за пакеты Вы складывали в буфер FFmpeg? У FFmpeg есть библиотеки libavformat, libavcodec и т.п. и, соответственно, возможность встраивания в другой софт. Она прекрасно умеет парсить RTSP и даже декодировать видео на GPU через DirectX Video Acceleration (DXVA2). Поглядите исходники VLC, там всё есть. Единственная проблема, с которой мне пришлось столкнуться (лет 15 назад я это писал) - это какие-то глобальные константы внутри libavcodec, из-за чего вызов libavcodec_decode приходилось оборачивать в мьютексы. Возможно, уже все исправили, 15 лет прошло с тех пор.
Ваше описание архитектуры приложения довольно поверхностное, но кажется, там много неоптимального.
Компилировать код без оптимизаций и с отладочной информацией, а в gdb/lldb/visual studio запускать питон. Примерно так.
CI-build для ядра линукса? С matrix-конфигом со всеми вариантами? Ннууу, технически это, вероятно, осуществимо, но на практике вряд ли кому-то по силам
RTFS (read those f...ine sources). Открываем какой-нибудь исходник из плугина Paper2D и видим там ссылку на PhysicsEngine.
Файл BodySetup.h находится в
Engine/Source/Runtime/Engine/Classes/PhysicsEngine/
и там нет ссылок ни на что, кроме PhysX и Chaos.Так что да, всё та же PhysX (или Chaos) с заблокированной одной пространственной осью. Т.е. в 2D-играх объектам просто не позволяют перемещаться в направлениях, выводящих за плоскость, в которой происходит гемплей.
https://docs.unrealengine.com/4.27/en-US/AnimatingObjects/Paper2D/HowTo/Physics/
Судя по официальной доке, это всё тот же PhysX, но с залоченной одной пространственной осью.
Да и PhysicsCore плугин ничего другого не содержит.
Вот Вам идея для эксперимента: попробовать реализовать одну и ту же игровую механику на PhysX и на Chaos и рассказать о результатах и полученном опыте.
В исходниках UE4 есть отдельные ветки 4.26-chaos и 4.27-chaos. Я не заглядывал туда, но названия подсказывают, что там другая физика.
Chaos тоже не идеален. Я в прошлые пару лет участвовал в проекте по созданию аналога Gazebo на UE, так там несколько раз пытались переехать на UE5, но так пока и остались на 4.26 из-за бага в Chaos, который рушил всю симуляцию.
Еще интересная идея: https://www.stevestreeting.com/2020/07/26/using-bullet-for-physics-in-ue4/
В UE4 используется не собственный физический движок, а PhysX от nVidia.
Свой движок Chaos Destruction вместо PhysX они только в пятой версии начали использовать.
Не всё так страшно. Если чуть-чуть не подходит, можно допилить.
Так почти не было его. В школе на Turbo Pascal писал, потом Turbo C. Visual Studio после них как-то само зашло. На плагин пару часов, вроде бы, потратил.
Разница в том, в какой области какой функционал проработан. В линуксах/макоси тоже не всё везде блестяще.
А навыки совершенствовать надо постоянно, да.
Именно "отнюдь". Не понимаю я, что там проработанного. Вы и сами согласны, что дополнительные вложения требуются.
В Visual studio я плагин поставил, окошко его открыл и продолжил заниматься своей основной задачей: отладкой алгоритма, решающего задачи заказчика. Который деньги платит, на минуточку, за решение только своих задач.
А в линуксе/макоси я должен потратить несколько дней на настройку инструментов, понаступать на все их баги, найти патчи, скачать исходники, в том числе и зависимостей, применить патчи, пересобрать инструменты. Ффух, можно дальше к своей основной задаче возвращаться.
Как вариант, можно ещё все изложенное в стоимость работ заложить и выкатить счет заказчику. Но это не отменяет моих сомнений в проработанности инструментов отладки под линукс.
Ссылки перепутал. Вот правильная ссылка на плугин для IDEA.
А вот тот самый костыль для gdb/lldb, который работает через пень-колоду.
https://news.ycombinator.com/item?id=5125078 - не только моё мнение про отладку на Линукс и GDB.
VS Code тоже не панацея, многолетний баг решен костылём.
Отнюдь. Основываясь на своём многолетнем опыте разработки под виндой и линуксом, а в последнее время еще MacOS прибавилась, скажу, что это очень спорное утверждение.
Вот Вам задача. Вывести на экран изображение из памяти отлаживаемой программы, выполнять программу по шагам и обновлять картинку, чтобы показать, как код её меняет. Указатель на данные изображения есть, формат, высота, ширина и прочая информация есть. Одновременно нужно показывать значения различных других переменных.
Короче, отладка программы, выполняющей какие-либо задачи из области image processing/computer vision. А картинки, для простоты, пусть лежат в объектах класса `cv::Mat` из известной библиотеки OpenCV.
В Visual Studio под виндой уже много лет есть плугин Image Watch, который с успехом решает и эту, и другие задачи. Во всех остальных IDE и ОС - костыли вокруг GDB, LLDB и Matplotlib, которые постоянно ломаются. Что-то похожее есть для Jetbrains-овских IDE, но в последнее время этот плугин стал платным, и не все IDE поддерживает, в частности в Rider for Unreal он не работал, когда я пытался его использовать.
Статья является пересказом официальных инструкций от предыдущей версии.
Оригинал последней версии
Если именно эта логика стоит за действиями HP, то она мне кажется какой-то странной, детсадовской. Запретить пользователям из другой страны включать/выключать лампочки на ноутбуках, которые они у тебя купили... Не в аренду взяли, не в подарок получили, а бабки за них заплатили, причем было это больше 2 лет назад, даже гарантийный срок уже вышел. Напоминает мне свару между соседями, которую я как-то давно наблюдал. Основная суть свары выражается в следующей угрозе одного другому: "будешь приставать к моей жене - я на твоей машине колеса проколю". Ну отключили Gaming Hub. Дальше что?
Пишу это сообщение с ноута HP Omen 15, работающего под Kubuntu Linux 22.04, подсветку клавиатуры уже года три регулирую с помощью вот этого модуля https://github.com/pelrun/hp-omen-linux-module В одном из форков репозитория, вроде бы, есть решение для динамического изменения подсветки во времени.
Нет. Для того, чтобы человек заткнулся, нужно решить его проблему и/или устранить причину его беспокойства. В Ваших примерах именно это и происходит. Если просто сказать "Я вас понял" и оставить все как есть, это не поможет.
И как поступит гипотетический босс из Вашего второго примера, если через три недели задача 21 останется в том же состоянии?
Все логично, понятно, обоснованно, с доводами согласен. Один момент: HRов нанимают не сотрудники, а директор, он же и зарплату им платит. Сюда же секретарь-референт, плановая группа, бухгалтерия, завхоз, итдитп. Это все (бюрократический) аппарат директора, который он нанимает себе для своих нужд. Соответственно, ему и рассуждать, кто и зачем нужен, а кто - нет.
А вот тут очень интересно, как это можно посчитать? Из очевидного: аренда офиса, зарплата уборщиц и кофе-леди и оплата VPN. Дальше остаётся как-то посчитать, насколько отрабатывает свою зарплату сотрудник, работая из дома и работая из офиса и сделать выводы. Вот с последним не всё понятно.
Пользуюсь Orgzly на мобилке и плугином vim-orgmode на ПК.
А это приложение неудобное.
"Приключения Электроника". Там, помимо гуманоида, ещё робо-собака Рэсси была
В статье из Википедии про RTSP, ссылку на которую Вы привели, сказано, что видео по RTSP не передаётся, для этого есть протокол RTP. Мой опыт разработки плеера для систем видеонаблюдения это подтверждает. По RTSP клиент и сервер договариваются о передаче данных и управляют ей командами PLAY, PAUSE и т.п. Сам видеопоток идет как раз по RTP. Что за пакеты Вы складывали в буфер FFmpeg? У FFmpeg есть библиотеки libavformat, libavcodec и т.п. и, соответственно, возможность встраивания в другой софт. Она прекрасно умеет парсить RTSP и даже декодировать видео на GPU через DirectX Video Acceleration (DXVA2). Поглядите исходники VLC, там всё есть. Единственная проблема, с которой мне пришлось столкнуться (лет 15 назад я это писал) - это какие-то глобальные константы внутри libavcodec, из-за чего вызов libavcodec_decode приходилось оборачивать в мьютексы. Возможно, уже все исправили, 15 лет прошло с тех пор.
Ваше описание архитектуры приложения довольно поверхностное, но кажется, там много неоптимального.
И на https://automl.org ещё библиотеки перечислены
Решаемая задача называется network architecture search, сокращенно NAS, года 4-5 назад была популярна.
В Торче есть реализация https://pytorch.org/vision/stable/models/mnasnet.html
У Майкрософта тоже есть библиотека autoML