Так есть ли смысл рыпаться в геймдев разработку изучая кучу новых компетенций
И в случае если я таки решусь, на какие зп тут и на западе может примерно рассчитывать разработчик С++ со знанием того же UE4 + Vulkan?
разработчик С++ со знанием того же UE4 + Vulkan
system
выполняет системную команду в окружении текущего процесса. Если окружением является cmd, команда будет выполнена в cmd, если bash - то в bash. Строка команды будет передана в подключенный командный процессор, если таковой подключен. И даже в подсистеме оконных приложений Windows, system
позволит тебе запустить другую программу с передачей в нее параметров запуска.system("C:/Windows/System32/cmd mkdir directory")
, а чего просто не вписал и не попробовал? Можно даже так попробовать: system( "mkdir c:\\my-test-dir" )
.system
? При создании cars стоит указать тип vector, иначе это будет initializer_list, который несколько раз (!) будет копироваться в нормальный контейнер.
cars
будет иметь тип std::initializer_list<Car>
, но его копирование - это не проблема. std::initializer_list
является легковесной надстройкой над статическим массивом на стеке. Внутренняя реализация этого типа не стандартизирована, но практически всегда его размер не превышает двух регистров процессора. world.push_back(std::move(terr));
world
хранит std::unique_ptr<object>
, но std::move(terr)
вернет std::unique_ptr<Terrain>&&
. Чтобы в push_back
передать правильный std::unique_ptr<object>&&
будет использован конструктор преобразования (6). Это произойдет без проблем, но вот что потеряется - так это указание, какой именно деструктор нужно вызвать.vector<object>
означает вектор инстанций. Там будут храниться обособленные объекты. В частности, в коде vector<object> wld = { terr }
ты сказал неявно сузить экземпляр Terrain
до экземпляра object
и инициализировать вектор копией этого экземпляра.wld
ты мог обратиться к объекту terr
, в векторе тебе нужно хранить указатели.object
из вектора wld
ты мог получить данные о coords
, твой тип Terrain
должен оперировать полями object
, а от дубликатов этих полей в Terrain
нужно избавиться.А сейчас компилятор обращается к свойству coords класса object.
using namespace std;
. Это крайне плохая практика, если коротко. vector<object> wld = { terr };
Вопрос там у человека тоже был довольно интересный.