Professional development with Blueprint a year later ...

I’m a designer in a team of about 20 people. We’ve just finished our deliverable, and now its post mortem time. Among the designers and programmers blueprints are coming up a lot. I wanted to see what other people’s thoughts are in the community.

Without going into specifics, our product was a Multiplayer FPS. We’ve got a mix of people ranging from 20 year vets to relatively fresh hires from school. We had extensive experience in Unreal3.

Some challenges we’ve found with using blueprints:

Blueprints are great for prototyping, but they scale poorly with complexity.

This is the big one, and we’re trying to get a feel for where the (new) dividing line between designers and programmers is. Blueprints changed the traditional split for good or ill, and I don’t think we hit the right mix this last year.

It seems like there’s a few general workflows:

  1. Do as much as possible in cpp, use bp for glue.
  2. Designers prototype in bp, create a functional prototype. Programmers then evaluate the prototype, and rebuild cpp systems from scratch in an extensible and robust way.
  3. Build half in bp where there’s high designer foot traffic, half in cpp for the heavy lifting.

We did some variant of #3. We had programmers working in bp and cpp, and designers making fairly major game systems in bp, with some exposed bits from cpp.

As a result, our knowledge base became pretty diffused. We were really asking designers to be junior programmers, which was largely OK, since we’re CS background heavy, but clearly designers building chunks of the game in bp, need to communicate with programmers on a much closer level than before.

Core blueprints were fought over a lot, and diffing seems pretty useless. I think the general consensus is that blueprints are harder to read at a glance when reviewing unfamiliar code.

Blueprints have had some circular dependency issues (super scary), along with some other general blueprint weirdness.

So, how have others here found working with bp in a professional capacity with medium to larger teams?

A) How well have you found blueprints working in production?
B) What way did you split design and programmer work and what ratio of bp and cpp?
C) Any positive developments from using bp?

Last note. I’m not slamming bp as unusable. I’m highlighting some issues we found, in the hopes of finding better/best practices for larger teams using a mix of bp and cpp. Its great that we now have more flexibility in developing a game, but with any new tool, we need time to work out the best place, and best time to use it.

Super curious to hear how other teams have approached this. Thoughts?

Hey, I’m in a small team (4 people working online).

Our pipeline is to do everything (almost) in BPs and then rebuild cpp from scratch.

It’s okay for us.

Our project, tho, is fairly small.

I’m mostly troubled by how much of UE is not accessible by blueprints.

I can’t draw on any professional experience, but what I’ve found so far in my own experiments is a variant of number 1 works well for me.

All of the core foundation stuff that won’t change much, where, as you said, the “heavy lifting” is done I do in cpp. I then expose the blueprints where it is much quicker and easier to tweak things like jump height, behaviour etc. As you have said, blueprints don’t scale too well with complexity, so keep it relatively high level.

As an example, for a weapon pickup I would write all of the weapon firing and projectile code in cpp and expose a blueprint where the designers can tweak things like fire rate, what projectiles it fires, sounds, appearance etc in blueprints. They can then use the blueprints to create a weapon pickup that when touched, gives the player a weapon, makes a sound and disappears, and cpp worries about network messages, damage events, inventory management and so on.

In this situation, the spawning of projectiles, the way the player’s inventory works, how it’s replicated in multiplayer doesn’t change from weapon to weapon so keep it in cpp, but the behaviour of each weapon does, so do it in BP.