Why is it so inconvenient to code in 4.18?

I got started using blueprints to get to know the API and just tried switching to C++…It is ridiculously inconvenient to code in UE4. Every time I add a new class it tries to open a new instance of VS which obviously doesn’t work and the intellisense is constantly wrong. Compile times are even way slower (I have a fast computer). Am I doing something wrong here? Why is the workflow so much smoother using blueprints. It feels like I’m not even supposed use C++.

So with using Visual Studio, I find that it is imperative that you use Visual Assist to help with syntax highlighting and other stuff to make your life working with UE4 and C++ easier. You can find Visual Assist here : https://www.wholetomato.com/

Adding a new C++ class from UE4 is an absolute pain I agree. One trick I found is that once UE4 says it’s adding the class, you can just cancel and quit UE4. The header and source files are actually already created when you do that, you just need to click “GenerateProjectFiles” again to link the files to the UE4 project.

Compile times can be slow depending on your computer specs. Aside from recommended 16GB of memory, from there if you want compile to be faster you need an SSD. I find it imperative to have a fast SSD, especially if you are working with the engine source code. You can easily find a pretty good 500 GB SSD for 200 ish dollars.

Doing all these should improve your workflow and make working with UE4 C++ less of a pain. You will get used to it.

I feel like quitting UE4 is just as inconvenient though… Is there any way to get it to stop opening new instances??

The opening of new visual studio instances is a bug, that unfortunately doesn’t seem going to be fixed any time soon (probably till 4.19 Unreal Engine Issues and Bug Tracker (UE-51608))

A solution that I found that seems to work for me (at least for now), if you have the engine and your project installed on the same hard drive, try copy pasting your project into another drive and then work in your project from there. Seems that if the drive path of the engine and your project are different you don’t get that annoying bug anymore.

huh. I guess I’ll see if I can find another HD laying around. I wish they would fix this sooner, it’s really annoying.

My Intellisense is still pretty horrible though, and it looks like the product from Whole Tomato isn’t free. Do you know of any other solutions for this?
For example, calling GetMesh always shows an error stating “pointer to incomplete class type is not allowed” and won’t show any auto complete.

Intellisense is a hit and miss, sometimes it fast others it slow, probably has to do with the thousands of lines of code that the engine is made of.
For GetMesh I believe you have to include the correct header file.

Ahh sweet! Just found this link that explains the new (4.16+) dependency system for anyone else