I have plans of an advanced 2D and 3D RPG combo game with the 3D segment having heavily detailed textures and animations along with just as much or more 2D content. I can create the 3D segment using Blueprints, but I am aware that the content in the 2D segment require a lot of C++. Everything in the 2D segment is made up of pixel art ranging from 96x96 to 512x512, it is a vertical and side scroller, and it has most the features of any RPG of its kind would have such as portraits, dialog, & a collection of items. Also, both the 2D and 3D segments are going to have plenty of cut scenes and animations. All content is custom from music to models.
What would be the recommended level of experience in C++ to complete the 2D segment and if needed custom features in the 3D segment using this engine?
I don’t want to discourage you from learning, but I would consider using blueprints. As C++ purist I like to program everything, but I have to admit that blueprints have a way to make things much easier.
The main benefit of Blueprints is that they are quicker, and easier to get started with, and to orient yourself. I can try things out in blueprint, don’t need to recompile, and don’t need to mind function interfaces and stuff, since its all visual. It is easy to get going. Once I have my proof of concept in Blueprint I take it to C++. That said: There are things that you simply can’t do in Blueprints, since not every function is exposed to them. This workflow works nice for gameplay programming for me, but I have no clue about graphics programming. What would that be? Do you want to write custom shaders, or change the renderer? I imagine that to be way harder.
I do have plans on using Blueprint, but I have a 2D retro segment of the game as well. It was very difficult to get any information on the details of developing a retro game at all, but when I did find something I was told that to accomplish what I intend to do I needed to do a lot of it in C++. I know that it is preferable to use something like Gamemaker for a retro game, but a good 45% of the game is in 3D with a high level of detail, which requires a good engine. I haven’t really figured out to what extent I could reach in Blueprint in the creation of my game, but I am doing my best to make it clear what I’m trying to do. Almost a half and half game of 3D and 2D segments that the player will be switching between very often, with the 3D rendering rather demanding (Blender models and custom textures). Based on that, can you develop a game with that kind of content using Blueprint and then take it to C++ if needed?
Can you descripe what you mean with retro game? If I think about retro games, I associate that with low res textures, and old school music. And to achieve that, you don’t need to do anything different in the engine, than you would do with high res textures and any other kind of music.
So where are the differences that would actually require you to do something in C++? For me, it seems largely dependant on the assets, not the engine.
You would be correct with everything except the music with the retro segment. You could compare it to Undertale, Earthbound, or Stardew Valley. So, then it is possible to create the mobility, functions, dialogue, animations, etc. as in these games through Blueprint alone?
I only have done gameplay programming so far (mostly actor components), so I don’t have a great deal of experience in creating dialogue and animations. However I know the engine a fair bit by now. So:
Mobility: Yeah that would be totally doable. Just check out the Blueprint examples that come with the engine. 3rd person will show you some 3d movement, and I think there also is a sidescroller example.
Functions: I don’t exactly know what you mean by that. If you just mean a c++ analog i.e. general functionality that is accessible from many places, then yes, you can do that (I think thats called blueprint function library).
Dialogue: I guess this is mostly interface stuff. That almost exclusively happens in Blueprint (There is a seperate sub-tool for interfaces). Getting the appropriate text loaded into your interface might be the hardest part here, but that should be doable in Blueprint.
Animations: Haven’t done much on that, but there also is a sub-tool for that, and that all happens very visually. That said, the tool aims at skeletal-mesh animation, so you might have to ask around to make 2d sprite-animations happen.
If I were you, I would simply try to make some very specific goals happen, and see where it goes. As I said: Blueprints are quick, so if it isn’t possible (which I don’t think) you will also know quickly. It might be a good idea to use a C++ project nonetheless, since it is basically a superset of a blueprint project. No reason to restrict qourself more than you need to, and if you find a thing or two that have to be done in c++, then you don’t have to throw away your project.
Maybe one more point on your original question. What c++ experience do you need:
I am studying computer science, so I have a fair bit of knowledge about c++ and programming language concepts. I would say if you use c++ and feel comfortable with pointers, you can give it a shot. Of course you need to know more than pointers, but I am assuming that you know this stuff if you use pointers and don’t feel lost doing so. I would recommend Blueprints to C++ Beginners, and C++ to C++ Intermediates.
That said: Unreal has a ton of custom stuff added to c++, and you have to learn the API. The ton of custom stuff is explained really well, but the API is not always. And it really takes time to learn it. I have worked with unreal now for maybe 7 months, and I know the API to a point, where I spend twice as much time searching for how stuff works as I do actually writing code. In the beginning its 95% / 5%.
I worked sparsely in the beginning, so you may achive my level in 2 months if you really spend 4 hours a day on the engine, but it still takes a lot of work up front. I might not be representive though, because I am doing a bunch of nontriveal stuff, that uses some less good documented parts of the engine, so my entry-hurdle might have been bigger than yours might be. Your game sounds more suited to what the engine provides, from what i can tell.
Thank you very much for your help. You have answered, for the most part, the entirety of my question. I know the 3D cut scenes can be made in Matinee and as far as the 2D animations, I think I can import animations I already made for the sprites and maybe cinematic scenes as well. I will definitely be creating the project in C++, I just wanted to know to what extent I could build this in Blueprint. Thanks again and good luck with your study.
Maybe one more point on your original question. What c++ experience do you need:
I am studying computer science, so I have a fair bit of knowledge about c++ and programming language concepts. I would say if you use c++ and feel comfortable with pointers, you can give it a shot. Of course you need to know more than pointers, but I am assuming that you know this stuff if you use pointers and don’t feel lost doing so. I would recommend Blueprints to C++ Beginners, and C++ to C++ Intermediates.
That said: Unreal has a ton of custom stuff added to c++, and you have to learn the API. The ton of custom stuff is explained really well, but the API is not always. And it really takes time to learn it. I have worked with unreal now for maybe 7 months, and I know the API to a point, where I spend twice as much time searching for how stuff works as I do actually writing code. In the beginning its 95% / 5%.
I worked sparsely in the beginning, so you may achive my level in 2 months if you really spend 4 hours a day on the engine, but it still takes a lot of work up front. I might not be representive though, because I am doing a bunch of nontriveal stuff, that uses some less good documented parts of the engine, so my entry-hurdle might have been bigger than yours might be. Your game sounds more suited to what the engine provides, from what i can tell.