The past year I’ve been more intensively learning UE4 to make a game I wanted to create for a long time. It’s nothing too complex. It’s basically a somewhat topdown game where the player controls a boat and fights against other boats and static enemies. The movement is all arcade-like.
Almost immediately found out that the standard character movement component was unusable due to the movement requiring to be physics based as well as the pawn not being humanoid. The CMC was simply too restrictive for that to work. Especially in combination with the waterbody system.
So I set up a bunch of blueprints and got myself a very responsive boat that behaves exactly the way I wanted to and is fun to mess around with. All looked great until I tried to replicate this on an AI boat and wanted it to move around as well. It did nothing due to lacking a CMC as it turned out. It was from that point on that I realized how much of a rabbit hole that is. From my understanding, movement always HAS to be done through a CMC. If not for navigation, then for optimization or multiplayer sake. And a custom CMC can only be achieved via C++.
My experience with C++ is barely worth mentioning. I made a UI-less tool once that converted feet and inches to the metric system a couple years ago and that’s it. Other than that, I do have some experience with a top level programming language as I was working on a large mod for Mafia. The language is useless, but it taught me a lot about the jist of programming as I had to push a lot of boundaries in that mod to get things to work. It was very challenging but a lot of fun to learn.
I’d be happy to learn C++ with the sole intention of using it inside UE4, in particular just for the CMC, but I’m now wondering how achievable that is. In pretty much any topic I come across, C++ is portrayed to be something only for the gods that I ought to have learned 2 decades ago at least. Is it really such an unobtainable language to learn, or is it possible to learn it solely for some tweaks in UE4 here and there? I don’t wish for a full professional understanding of C++, nor does the game require it for anything else besides the CMC as far as I know since the gameplay itself is very straightforward. Again I’m a hobbyist so there’s no deadline or anything. But I want to know if it’s even worth getting into or if it’s so complex that I shouldn’t even bother.
Can anyone give me some insight on this? If learning C++ is not an option, is there any other way I could move forward?
I’m also interested in c++ to code a custom CMC, but I do not have 31 hours… Any tutorial to learn specifically about optimizing this component? I’ll let chat gpt deal with the specifics of the code hahaha
For my purpose I think that video is exactly what I need. Thanks for sharing that!
I do hope that with a basic understanding of C++ one is able to tweak the CMC or other parts in Unreal. And I’m not necessarily talking Grade A programming work, just enough so that I can get things to work that simply cannot be done via blueprints. In an artistic sense comparable to someone learning the basics of Blender to get at least some models in the game to get the job done until either a professional can take over, or their experience grows to improve on it later on.
For now I’ll put the game aside and sit down for some C++
@Ivan3z I have the same case as a 3D artist. Have been doing it for 20 years as well and posses a boatload of knowledge on the subject. And even still when I learn a new render engine or technique I’m humbled by how much new stuff is there to take in.
That said. My brother didn’t start doing 3D until like 5 years ago, and after 1 year he already surpassed my modelling skills regarding videogame models. So it’s certainly possible in that field to learn a sufficient amount of skills to make quality models without the decades of experience. I’m hoping that with C++ that there is a bit of a middle ground there. Not expecting to learn it in a weekend, but also not hoping that you need at least a decade’s worth of experience to get anything to work at all.
While learning C++ (or to code in general) is a valuable endeavor, I’m not convinced that all avenues of approach have been considered here. I don’t think it’s reasonable to think you’re going to sit down with that tutorial and turn around and touch UE components in any meaningful or efficient manner. As a hobbyist you’ll know that every new area you touch you uncover a whole different world. For this effort you’ll scratch the surface of C++ with a tutorial and then hop over into UE and scratch your head like, WTH is this?! There’s C++ then there’s UE C++ . Again, I think it’s a valuable endeavor but I’m just not convinced you’re in the “need” zone just yet.
Now that the neigh saying is out of the way , what about your AI with the CMC is not working? The CMC component can certainly be used with AI. Here’s an example among many…
What I want to say is that no one starts running without first learning to walk.
You don’t need to be an engineer to program in unreal. Epic already does the engineering part for you, but without some basic knowledge of C++ everything you are going to see in Unreal will be like Mandarin Chinese for you.
It is worth investing 31 hours and learning the basics of C++. In exchange you will have your own criteria. You will stop being a coy and paste automaton on YouTube. You can make your own decisions and make your own design.
In any case, that is no guarantee of anything. I have also watched many YouTube videos. Supposed computer gurus. And then you see what they make the blueprint and it looks like a plate of spaghetti.
The problem with computing is that the programmer has total freedom to do things as he wants. And the programming community respects that a lot. Yes, their programs work, that’s true. But in most cases you can do it much better.
As advice. If you make code, and you see that it is becoming too complicated, then you are probably going in the wrong direction.
I do feel like it could be worthwile for me to get that basic understanding of C++ since the subject in itself thankfully interests me. Especially since I always considered myself a non-programmer, but at some point actually managed to program some things which still surprises myself. Albeit via blueprint or some top level game specific script. It’s great.
I suppose with blueprints it went a similar way for me. Although I’m far from being an expert, I did go from googling “how to make a boat” to specifics only due to eventually understanding what blueprints are generally all about. That whole abacadabra aspect has vanished and I don’t need to google every single button, jargon or method anymore.
The Issue I have with the standard CMC is that it seems impossible to provide physics based input with it. Also everything is centered about the actor being a humanoid, which gave me a lot of headache and also didn’t feel right. It felt like trying to put a cardboard car over a bycicle and calling it a car. So I made a controllable pawn for the player with completely custom movement which now works exactly to my liking. Only now I found out that any movement done through the pawn event graph lacks all the deeper features that the CMC provides such as pathfinding. Also I want to keep the possibility open for turning it into a multiplayer, and to my understanding this would be an open door for hackers if the movement isn’t done through a CMC.