Aight - before some of you explode - this is meant to be a “bit” sarcastic. I use UE4 sine February 2017 - so that is nearly 9 months now. Well 8 if you count when i really started to do more than just click the “play button” in example projects.
I started some projects and still keep programming on one game - and yes despite all hardships and ignorance of mine thisone will turn out to be great [/self confidence].
But here’s some stuff I’ve been stumbling over - more or less constantly and could never really solve it. So everything is welcome- from serious bashing to professional help and a few cheap laughs. SO if you finished laughing and have some goodtips for me - that would be appreciated as well.
Whenever you wanna interact/change/destroy/annoy any object (“Actor” for pros) you need a “reference”. As a beginner you think if you throw a 3D model in your level and name it “myCoolSword” that would be good enough as a reference, but obviously not. You try to move/change/kill (“Destroy” for Pros) that damn thing but no chance. So you google and - Tadah you need a reference. Good news: For stuff you placed (“threw into the map”) you can select them and open the blueprint and right click anywhere to create an Reference. Well at least if you didn’t fumble around too much already in the blueprint, after a while the selected object gets kinda “lost” - easy fix - save and close blueprint, select that actor and open the blueprintagain and Tadah you can create a reference. Well at least for most blueprints. Some are however immune to that. Pro trick: use the level blueprint - it can take pretty much everything. Unfortunately it gets much harder if you spawn an actor from a blueprint. Since you didn’t throw it in the level you can’t select it. Within the same blueprint you can use the neat blue line from the spawning as a reference, but that’s where it ends.Words can’t describe how many hours i have tried to get a reference to something and in the end i just gave up and either just threw it into the map and made it invisible until i need it or just spawned it from a different blueprint. Why can’t we just right click anything and make a reference from a unique name something like “Myshittysword” and use that from anywhere?
To cast or not to cast
If you’re a pro you just try to throw all logic into the level blueprint. Never look back, never care how bloated it becomes, at least that always works. The good life ends when you add blueprints to actors - you can do wonderful things, but hell breaks lose once you need to access one blueprint from another. SO what about all that cool stuff in your level blueprint? For some weird reason i will never find out the level blueprint can access stuff from all other blueprints, but you can ever access the level blueprint from another bueprint(Level Blueprint should have a “one way” sign on top). The you will discover “cast”. You can “cast” to some blueprints which is totally unintuitive since you will “cast” to some other friggin blueprint to access a function in it. If you know which function you wanna call then why can’t you just call it, what is this cast stuff al about? I will never find out. But “cast” is a weak magic. Often it is also a one-way street, so you can’t just cast to every blueprint. So often you will have one cool function ina blueprint, but you can’t access it from where you need it. Same for variables. In the end ithrow all variables to the “Game mode” - whatever itwas intended for (no idea, really!) since you can at least cast to it.
See rant #2 - sometimes you can cast sometimes not. How cool it would have been to have global variables and global functions. Nearly every programming language knows that and at least to me that does make sense. So what’s the problem of not having them in UE4? bad karma? Yeah i know it’s so cool to have a function called “HideMyButterknife” in every blueprint and that it does something completely different in every other blueprint, but personally Id nt have a problem with sch function (or variable) names having to be unique if i could use them globally.
Don’t effin hog memory like it’s for free
Seriously - memory is a problem in UE4. UE4was the reason i had to upgrade my laptop to 16GB of RAM. And yeah it probably would have been like 128G of RAm if 16GB wasn’t the maximum supported. I’ve never ran out of memory so often -actually never before as with UE4. Build lighting for one small room - out of memory. Import some animations and clickthe play button - out of memory. Work for a while - out of memory. And the joke here is - at my current game it is all just one appartment. Well OK not completely empty - but how do some people work with whole worlds? I had to seriously cut down on my lightmap -not just because building it took like 12 hours - but because it also consumed RAM. SO at least i know got my shitty little one-person appartment map down from 4 GB RAM usage to 2GB on initial loading. And yeah that is just on initial loading -as soon as i really do something like loading models, previewing them, editing materials and so on UE4 keeps consuming RAM like some rockstars keep consuming cocaine. I know most people here probably useeneterprise level servers with 128GB RAM or more, but hey - i enjoy using a laptop. Don’t wanna play that “other engines” card, but i think some RAM usageis really unnecessary, garbage collection, blah. The joke here is when i build lightmaps my “Initially usign 4GB RAM” map drop down to like 200MB RAM usage - so hey it is possible, just we haven’t done it the clever way yet.
5.Why is the editor like effin 17GB?
Honestly - see point#4. Yeah i see that most people also wanna compile for Android and iphone and crap and it all costs space, but where did these 17GB go? Is there the latest star wars blue ray hidden somewhere in it? I have used some smaller engines -where"small" means like 2GB -which still is quite a lot i think -and put them on a RAM disk which was really nice to handle. But yeah for UE4 this is out of the question - at least on my laptop. No way that people who are sure they will never develop for Android, ios, PS4 or whatever could vouch to get rid of all that? Not like we’ve been asked.
6.Why is saving stuff so hard?
OK maybe the worst 2D Tetris game in Android or the coll 3D Spaceshuttle flight simulator of NASA don’t need to save anything, but for casual games this is not completely unreasonably - we wanna save some variables, actor positions and states. I have had a hard time and it took me hours to just save and load a dozen of variables and this probably goes back to point #3 - but why is the saving system such a crap? A good saving system would save me so much time. Ah yeah the good old days of the 90s when i used some crappy 2D game maker thingy and cold just click like “make save state” tick all the variables to save and done. But yeah i guess now I’m really getting greedy - and i already had my fights with people who told me that UE4 is NOT a “3D game engine” (Wut?), but also used in automotive visualization, by NASA, to create 2D space shooters for iphone and what not. Yeah i got it. But it would be cool.
Yeah after all is said and done - I’ll keep up fighting. Mostly just doing workarounds and hopefully learning one or another trick. But take it as the rare chance to see it from the eyes of a true “noob” who has ot (yet?) written 3 books about UE4 and learned everything on his own just by fumbling and disassembling some demos.