Are blueprints optimized and Capable of a full RPG game?

Are blueprints optimized enough, and is it logical and advanced enough to create a full 3D RPG with somewhat hack and slash type of game play? Like a zelda game.

This would mean creating complex boss fight patterns, having a multiple pool of weapons that interact differently with the enoviorment, a whole RPG text dialogue and save system. Applying textures and everything to the models…

I’m just wondering if blueprints is ideal enough to do something like that, if one understands all of blueprints functions can this be accomplished and would the game be optimized enough for playback on modern consoles? Say with a graphical fidelity of a game like Neptunia or so. I.E. not super res graphics.

Short answer: yes. With or without “super res” graphics.

Some of it might be a lot easier to do in C++ rather than deal with blueprint nodes, but another key point to think about is that it’s not “one or the other”. You can mix C++ and blueprint as necessary, so the conversation really shouldn’t ever be “blueprint OR C++”.

[=VincentMarisa;181240]
Are blueprints optimized enough, and is it logical and advanced enough
[/]

I have no idea. What are your benchmarks for those? What are your performance needs?

[=VincentMarisa;181240]
This would mean creating complex boss fight patterns, having a multiple pool of weapons that interact differently with the enoviorment, a whole RPG text dialogue and save system.
[/]

“complex boss fight patterns” - absolutely.

“multiple pool of weapons” - Lots of weapons? How many is lots? Borderlands 1 had something like 17 million different possible weapons. Borderlands 2 and the Pre-Sequel have even more. A quick count from this page shows nearly 80 in Call of Duty: Ghosts. Unless your weapons are going to be generated completely from scratch, including graphics, you’re going to make blueprints for them anyway, even if all your logic is in C++.

“that interact differently with the enoviorment” - Depends on how deep of interactions you plan.

“RPG text dialogue…system” - Yeah, this is feasible in Blueprints. I would write it in C++ for organization’s sake, but you don’t need blazing fast performance for a dialogue tree.

“save system” - Again would probably do this in C++ for cleanliness, but if you’re really dead set on not learning/using C++, sure.

[=VincentMarisa;181240]
Applying textures and everything to the models…
[/]

Why do this in blueprints? Why not just have textured models?

[=VincentMarisa;181240]
Say with a graphical fidelity of a game like Neptunia or so. I.E. not super res graphics.
[/]

From a quick glance at Google results, that game might surprise you with how much they have to do to achieve that art style.

If you really know what you’re doing, C++ will be a little faster for the things you’ve mentioned, but not so much that making them in Blueprints would be “wrong”.

If you don’t know what you’re doing, neither C++ nor Blueprints will be optimized enough for you.

The question is not “Are blueprints optimized enough?” The question is “Can I pull off a game like this with my current level of skill?”.

When I say this I don’t mean it in any offensive way, but it sounds like the answer to that question is “no”. And that’s okay, because your current level of skill can change quickly if you take small steps. Follow the tutorials in the learn tab. Make your own game, as absolutely tiny as you can come up with, and you’ll be surprised at how much work it is to polish it enough to be comfortable sharing it publically.

Why do I assume “no”? Because you’re asking vague questions. If you were asking concrete questions they’d be a lot easier to answer and you’d be a lot closer to being able to realize what you’re working on. Learn enough to ask concrete questions. Then learn more. And soon you’ll be able to tell whether you can accomplish what you want. (or at least be able to create just enough to test the viability of an idea.)

I believe you can use blueprints to make anything you want, as long as you tackle it chunk by chunk.

I am not making a game. I am making a map generator. And then I am making a path finding system that works with that map. And then I am making an AI. And then another system, and another. Maybe someday that will all add up to a game.

[=;181272]
I believe you can use blueprints to make anything you want, as long as you tackle it chunk by chunk.

I am not making a game. I am making a map generator. And then I am making a path finding system that works with that map. And then I am making an AI. And then another system, and another. Maybe someday that will all add up to a game.
[/]

This ^
This is how I am going about things as well. Learning from scratch you need allot of different skills, so learning how to do things bit by bit or chunks of gameplay at a time will make it easier in the long term. Things can always be taken from Blueprint and made up in C++ (and vice versa if you really want :P) so don’t be of the mind that somethings must be done a certain way and either c++ OR BP.

Hi VincentMaria,

I am currently writing a tutorial on setting up a “dialogue system” in blueprints. Once I get it posted to the wiki I will add it here so you can have a look. Note: This system is not a “best practices” system, it was built to test the possibility of creating dialogue without using data tables and/or any outside resources other than blueprints. There are many improvements that can be made to it but it should at least point you in a good direction for this portion of an RPG style game.

You might find Billy Bramer’s post found in this april fortnite thread useful.

[=Billy Bramer]
Another thing I wanted to touch on specifically was also blueprint performance vs. C++, because that came up in the stream a few times and I don’t think we did a fantastic job answering that particular part (Cameron gets over-excited, what can I say? ) The answer here ends up a little bit complicated. The simple version of the answer is that native C++ outperforms blueprints. Cameron was correct in that if you see a blueprint-exposed function you can call on an actor, etc., it’s really just calling back to the C++ code written for it, however, there is an overhead cost associated with executing blueprints that isn’t present with purely native code. As engine programmer Golding mentions in this thread: https://forums.unrealengine.com/show...ance-Benchmark , if we consider blueprints as similar to UE3’s old UnrealScript, it would be a rough rule-of-thumb of around a 10x difference, but that could vary considerably depending on the scenario. Ultimately if you’re only using a few nodes that are calling back into C++ functionality that is handling most of the heavy lifting of an operation, that’d likely end up faster than that estimate. The estimate also initially sounds large, but keep in mind that there is a very big difference between “slower than C++” and “too slow to be used.” Hundreds of UE3 games (including all of Epic’s titles) were written with extensive amounts of UnrealScript handling the gameplay logic. The vast majority of cases you’d want to use blueprints in will be fine, even if they aren’t exactly the speed of C++. Fortnite has numerous uses of blueprints all over the place. The parts of the game that are super performance critical tend to already be in C++, so you shouldn’t feel worried about putting gameplay logic in blueprints. The areas where you do want to be careful are the same as if you were writing in C++. Just like you wouldn’t want to run really performance-intensive code inside every C++ actor’s tick functions, you also shouldn’t put tons of performance crazy operations inside the Tick event of a blueprint. We tend to make a lot of our blueprint logic event-based (triggered when some event happens, like taking damage, etc.) instead of trying to do everything every frame in a tick function.
[/]

I would rather worry about when i lose track on blueprints. Small BPs are great, and fast to create, but it gets ugly quite fast when you make bigger nets.
For eg. 3 nested loops with few conditions inside could be very messy in BP while that stuff in C++ is readable.

Anything that does not require more than 1 dimensional array as data is fine in BPs, but moment you want to store your party variables in array, or date of every NPC in area it gets ugly. Then some day (few months later) another member of your team will want to connect some faction reputation system to party members. All when nobody really remembers how that old BP is working.

I tried to make labyrinth construction algorithm in BPs as exercise when i was learning BP. Network got quite messy for such simple algorithm. On top of that I could not do step debugging in construction BP. It forced me to move everything into level BP, then I had problems with spawning blueprints in game time. Anyway I learned a lot about blueprints from this, however i never finished that. Also writing it all in C++ would me much easier, esp with multidimensional arrays or other data structures like stack. Yes all this is doable with macros and few additional operations, but why to reinvent wheel when this all is in C++ layer.

And another example from my learning BP times: i made blueprint that created stairs or walls out of meshes, with some nice randomization options. It was right task to make in blueprints. I could tweak and add functionality without recompiling whole thing. Two nested loops with rnd from stream is quite easy to handle in BP, no need for C++ compiling etc. Also great plus of it is that i can migrate that BP to another game and instead of blocky stairs i can create hex grid. Or with few more nodes i can make my stairs BP into paved street that follows spline.

So do not make complicated game in BPs only, complexity of networks for BP raise faster than same code in C++, you get that “too messy to work with it” much faster in BP.

The messiness of blueprints i find depends on how much you actually want to make it work in blueprint. I find that good use of functions, macros and collapsed graphs have solved all of my problems with BPs being messy (to me).
I guess I’m also more likely to remember how they work because one of the projects I’m currently working on is exclusively BP.

I have to say NO, at least not right now, maybe in a few months they take care of the shortcomings, but at the moment, no you can’t. There are simple but important things that you have to revert back to C++ to take care of, unfortunately even for a much simpler game than what you asked.

This is an example that I’ve been facing for the last week. I can easily take care of it in 5 minutes in C++, but as mentioned there, I am actually trying to answer this question realistically: “Is BP capable of creating a complete game, even a simple puzzle for mobile?”. So far the answer is no, I’m sure Epic will try to take care of these small (but again, critical) shortcomings, at least to change the answer to that question to YES, but I don’t know when that be.

Until then, if you want to work on anything seriously, no matter the size or the genre of the game, you need to use a combination of C++ and BP. (including using plugins that others wrote in C++ if need be)


Regardless of those issues however, for more complex stuff, let’s say managing a WOW like inventory page, or a huge quest system, I would recommend to use C++ for it for a couple of reasons, even if it is perfectly possible to do in BP. Although if you don’t know programming, but are going to really work on it, then you can very easily make whatever you want in the BP, regardless of its complexity (again, IF it can be done in BP at all), and then once it’s all working, if you see a hit in performance, or are just having too many headaches trying to extend that system, then get someone to port those individual parts to C++ for you. That’s what some people out there are doing.

Related to the post above, 's extra blueprint nodes are pretty much required if you plan on using BP exclusively for a decent scale of game.

[=;181463]
Related to the post above, 's extra blueprint nodes are pretty much required if you plan on using BP exclusively for a decent scale of game.
[/]

Which… is using C++. So again one way or another you need some C++. That exact plugin was actually discussed in the comments of that question’s answerhub page.

A plugin is a good way for anyone who doesn’t know C++ himself, but if you want to go that way, you should keep in mind the trade offs of using one.

I think it really depends on how disciplined you are about organizing your blueprints. It can get messy real fast, but then, so can bad code. There’s enough tools at our disposal to make maintainable, clean blueprints for sure.

Here is that NPC dialogue system I said I’d get up:

This is not the most elegant solution, but it does show that a full NPC conversation system can definitely be done in blueprints.

@Veovis

Thanks. I read your hole post. Indeed I am not that experinced and may be a bit over ambitious. I wanted to avoid c++ as I heard it’s really hard to learn and heard about blueprints as a visual scripting. Well I managed to actually make some type of games in Construct and some functionality in Playmaker for other programs, they’re visual scripting technology. But I found it still to be hard and a bit limited. Blueprints still seems like the most advanced technology I’ve come across yet. I’ve already watched all the tutorials on unreals the other day but I still find it really complicated to understand. I’m going to go play around with it more.

Also, I read about your artstyle comment, is it really that hard to achieve? I’ve made another topic on it kind of because I’m wondering. But yeah I did want to do a 2D 3D kind of anime art style for my game.

@

Thank you!!! You’re awesome for making that, keep making them cause newbs like me need these things to learn! It’s really a big help, I will do your hole tutorial.

Sorry for not responding, I kind of posted this then went off to do other things. I read all replies though and thanks for the advice.

Well if you are looking to make this an online RPG, no it is not. There is no support for databases via blueprints as far as I know.
I’m really disappointed by this.

Maybe some “alike” behaviour could be achieved with DataAssets, I don’t know if you wants to rely on SQL and such, but a string (or some struct/UObject with more info) database can be created on the Editor.

I’m currently making a RPG completely in blueprints. It’s absolutely possible. is your friend as well as the people here on the forums! Also the guy making Alice in Tokyo Wonderland has a series of tutorials on setting up a Hack n Slash style RPG. You’ll need to get information from other places to fill in some of the gaps and learn some of the things he doesn’t talk about.