Тут нужно знать не только язык программирования, но и математику и желательно физику. Я например сейчас изучаю движок на примере Shooter Sample, пытаюсь воссоздать и понять почему именно так было написано, что-то делаю по своему. С программиованием посмотри уроки: Introduction to C++, чтобы понять зачем нужны макросы UCLASS, UPROPERTY, UFUNCTION итд.
Ну и не стоит отказываться полностью от blueprints, это очень мощный и удобный инструмент. Например создавать простую логику для игры (к примеру открытие дверей) я бы сделал на blueprints потому-что мороки меньше, а вот уже класс игрока на C++, потому-что тут удобнее не C++ все же. Если хочешь работать на C++, знать хорошо blueprint не обязательно, но хоть чуть-чуть нужно. Blueprints очень удобно использовать при настройке анимации и настройке звука, например я хочу воспроизводить звук при шаге игрока или при нацеливании, я создаю блуприн и указываю чтобы он выбрал один из 10 например похожих звуков случайно, чтобы звучало прикольнее )) Blueprints и C++ очень хорошо взаимодействованы, ты создаешь некоторые функции в C++, к примеру IsTargeting(), IsRunning() итд. и при настройке анимации ты уже в blueprints используешь эти функции чтобы узнать, какую анимацию тебе использовать. Вроде бы HUD тоже удобнее в блупринтах делать, но гуй я пока не пробовал делать, так что ничего по этому поводу не скажу ))
Ну и советую следовать эпиковский стандарту напимания кода: читать](Epic C++ Coding Standard for Unreal Engine | Unreal Engine 5.3 Documentation).