Where can I use blueprints for my multiplayer FPS?

Hi I have the beginnings of a multiplayer game coded. All the character combat components like movement, shooting and applying damage will be in C++ mostly.

What I’m wondering about is can I feasibly use blueprints to implement a number of pretty large and complex systems to what I consider to be a pretty complex game (graphics won’t be next gen, I’m actually fine skimping on graphics it’s more about gameplay for me).

Each game will take place on a ship and be 20-60 minutes long. 12-24 players will spawn and their names, roles and colours will be randomly generated. There will be a chat system in blueprints. There is an inventory system and shops with 20-40 items mostly consumable items which have different effects . About 10 different weapons. Weapons will be able to be upgraded up to 5 times. Basic health upgrades. There is a resource system that will increase income and be used by player to upgrade terminals and buy items and weapons.

There will be AI NPCs spawnable by a player. Players may also get infected and transform pawns. One player will have an in depth upgrade system and be able to evolve into different forms. The ship will be 6 levels and relatively large for a multiplayer map. Not Battlefield large but not as small as COD or something. Maybe about 3-4 cod levels.

There will be triggered events like lights being shut off, or turrets being turned off, there will be AI vs AI mechanics like turrets attacking NPCs that can be spawned by evil players. Eventually there may even be space travel to and from other ships within a small orbital area of a planet.

My question is where do I go C++? What do I optimise early so I don’t get a headache later on? Is there anything I need to watch out for? I realise there are a lot of different systems here, and I will try to test as well as I can with the two computers I have but I would appreciate some information from an industry vet who knows what the pitfalls are. I’m trying to keep assets relatively mid-level. I’ve bought asset packs from Unreal for my level and character, although I haven’t brought any of them into blender to count the polygons yet.

Should I be careful with animations and keep poly counts low? AI NPC logic? Where do I have to use C++ and where can I use BP to save time? I want this game to be playable on current mid range computers. I realise that using Steam listen servers may result in lower performance and therefore I think it could be relatively low cost and easy to use a dedicated server instead. In that case do I have to worry about anything? Thanks.

Look into Lyra project (either use it as base for your game, or just look there how epic done it all).

Making C++ game in unreal is not simple task, so there are no simple answers to your questions. All depends how serious (and modular) you want your game code be.

Thanks I’ll definitely have a look at Lyra during this project to see where I can learn and improve. My question is more about if I do use blueprints for some of these systems, let’s say I used blueprints for everything except player stats, player movement, and shooting/combat physics. Is my game going to have performance issues? I personally don’t care about perfect modular code, or perfect competitive FPS performance, this is a game is a third person deception shooter for ■■■■■ and giggles, but it can’t be unplayable.

I’m just wondering can I get a good product out that doesn’t have performance and latency issues on mid-range computers, given the project scope I described.

Ok so this is learning project. :smiley: And you do not care you suffer much later when game has huge (but little messy) code.

So best way to start is this:

  • prototype code in blueprints
  • when code works (does what you want), transfer some function to C++ side, at first do function library in c++, then actors, then subsystems and plugins.
  • when you done with making those silly functions, do communication in c++ in project, like events etc.
  • then dig into data assets (great to make it all modular), subsystems (singletons), plugins etc.