Problems migrating from blueprint project to c++

Okay so I’d like to share my little journey that I’ve had using Rocket. I sent one of my team members some of my headers and they said, but these dont show up in the create blueprint menu, Im thinking well thats odd because they compile fine so I went exploring.

I found keywords like blueprinttype and blueprintable and I thought these might be it but upon getting my code to compile again I quickly found out these wernt the key. I had remembered someone mentioning having to compile in Rocket so my next order of business was to search out how to do this, it took some time because VS kept nerfing my projects when I closed Rocket before closing VS.

It was at this time I started thinking, well maybe I should be starting a new C++ project instead of a blueprint one even though a majority of the project is blueprint Im wanting to add C++. I started a new first person template then today after exploring low and behold I found something unexpected.

I found the compile button, stunned and shocked I quickly tested out creating a class extending from uobject and after a tiny crash it was on my blueprint menu, just where I had expected my other classes to be.

Why had the compile button not been there before I wondered, so I double checked and yes if you create a new first person blueprint template it is infact no where to be found and this problem had me stumped for ages because I really wasnt looking to do alot of C++ just simply create a few headers to fill out functionality within blueprints.

The whole process is extremely tedious and counter-intuative to the point I was wishing the old close/open UDK system back as I was constantly creating new projects because of an issue where it couldnt find the game module after Id compiled in VS but quit Rocket first. Even creating the headers is lengthy, not knowing which modifers go in what macros but I found those in ObjectBase.h.

All in all my experience with VS has been [less than perfect][3], thats not even counting my past experiences not related to Rocket. Atleast the building seems functional now even though I had seen people say you have to compile twice I thought it was just lack of experience talking, or perhaps its my lack of experience. Ive been programming for going on 20 years though since back in DOS and never had this much trouble getting code working in a game engine ever, even my experience with quake back in the day using xtreegold and the commandline went smoother because of all the little nuances in this current process.

I thought I would share this in hopes that the whole process can be made alittle bit easier, if not alot more so because if a person whos used Unreal Engine for 10 years has this much trouble, people new to the engine could quite possibly move along instead of taking the time to work it out as I have.

Thanks.

Hi Daniel,

Thanks for your report. We’re currently working toward responding as soon as possible. Thanks for your patience.

Sean

Thanks Sean, take your time :slight_smile: Its holidays and I got a new version to play with in the mean time so its all good.

Hi Daniel,

Thanks for the feedback.

You say that you sent a teammate a header file, and then they could not make a blueprint from the new class type. Did you also send the .cpp file? Did the header have the Blueprintable keyword? And did your teammate re-open the Editor after compiling?

Regarding the Compile button not appearing. It does not show for a Blueprint project by default because there is no code to compile. Once you have added code to the project and compiled, the button will appear once you have restarted the editor. Restarting the editor is necessary any time that code is added.

As for Visual Studio “nerfing” your projects, we’d be interested in knowing exactly what you mean and any steps that could be taken to reproduce this. If you are able to provide any more information, please make a new UDN post for us to address this.

Thanks

Well most of the nerfing happens between builds, it seems impossible to migrate a WIP project over at all. For example my current predicament is that I cant click the create code file because I cant compile and I cant compile because I need to move a structure to a new header, so Im stuck in a chicken egg problem which tends to be much the case in regards to nerfing. The solution is quite simple though I simply start a new project and recreate the files using the add code to project thing and do that for all the classes then copy/paste them over.

As you can see though this is quite tedious but it seems to be almost necessary a majority of the time which is unfortunate. I didnt actually realize restarting the editor was part of the steps and I’ll certainly make a note of that, I honestly dont see why compile isnt always there just greyed out when unavailable because I wasnt even aware of the compile button entirely because I started with a blueprint project and had alot of issues just getting simple headers to compile.

I dont think I actually provided any of the extra structure stuff with headers only the headers themselves which usually works but I guess in regards to Rocket we have to include all the cpp, generated and whatnot even if they are purely skeletons and serve no real purpose. Im not sure if this would cause any issues with compiling, I did actually have blueprintable inherited but that didnt make any difference (because there was no compile button to be found).

I can appreciate what automation can do for time consuming tasks but its getting in the way alot for me currently. I wonder if theres a method to manually create files or do it from within VS so I dont need to have Rocket open if Im just programming (not designing). I mean the overhead isnt too bad if I close the level preview window but it takes some time to get back to normal. I have said in the past I wouldnt mind seeing rocket as a dock or toolbar and each subeditor can be opened from there so the core systems such as the backend managed code can run in the background without all the overhead of the front end renderer. Im not entirely sure how plausable that is though.

I think VS does have an incremental build system where it only updates/removes a compiled file if it was actually successful but this doesnt seem to be the case for Rocket and if it is that certainly doesnt work between builds. This isnt a problem for me though, I understand why the dll can be deprecated because its included code has been updated and may even break my code but right now I havent got a line of functional code written. Partly because Im continually having to piece together the managed structure manually, kind of defeating the purpose of it in the first place.

[This is a private staff comment only]

Assigning to engineer due to feedback. Let Licensee-Support know if there is anything you would like us to address.