Download

Confused about Multiplayer, Saving, Open World, Voxel terrain, & Optimization. I need advice.

So let me give you my current scenario to help you better understand why I’m confused:
I open a level in the engine but I’m lost with what to do next in regards to the following:

  • I don’t know the best method/plugin etc to use to save the state of the multiplayer game.
  • I don’t know how many models, textures etc I can place before the game will crash or lag.
  • I don’t know how to implement an “open world” into my multiplayer game, or seamlessly transition from one multiplayer level to another while still keeping open the levels that players are currently on.
  • I don’t know which models or textures etc I might need to optimize or how to tell if they might even be a problem.

As someone who is currently unable to code anything & is currently learning how to use blueprints more, I need to understand the options I have for level design before I start trying to implement certain things into my project.
I don’t want to code anything but If I need to do something with blueprints, that will suffice. I realize that blueprints is still considered coding but this is the way I’ve chosen to explain things.
I’m not opposed to ever coding but it is something that I’ll be doing far in the future as a long term goal so please refrain from suggesting any coding other than blueprints as I currently want to stay within the realm of my capabilities.

What I want to do is make a very large, open world, persistent, multiplayer game with a dedicated server, with voxel terrain. However, I’m lost at where to go with this because I can’t code & I can’t find anyone to befriend that knows what they are doing who’d be willing to help me.
Which paid or free plugins, tools, people, websites, tutorials, blueprints, marketplace, videos etc, are there that would be able to help me to create my project without ANY coding involved(again blueprints is fine though)?
I’ve seen the MMO toolkit & voxel plugin, but it seems they’d still not be enough to help me achieve this type of project as it seems I’d probably need to code a lot of things to tweak it enough to get it working for what I want but perhaps I’m wrong about that?
I don’t want to make a single player game as I am set on the type of project I want to make so please, in advance, don’t suggest such things as I have no trouble figuring out most single player game aspects. It’s the multiplayer, saving the game, voxel terrain & open world aspects that I’m mainly struggling with.

The caveats (things that won’t be changed) you must understand before you suggest anything:

  • No coding involved other than blueprints (If necessary). I’m willing to allow others to do coding for me, although they will not be paid for doing so & they must do so in a way that I can access the code through blueprint functionality.
  • No “Windows OS only” tools, plugins. addons, assets etc.
  • I’m not willing to change the vision of my project other than the three things I’ve stated below.

The three things I’m willing to change in my projects vision if they can’t be done without coding:

  • It doesn’t have to be an “MMO” I’d be happy to start even with the functionality of even just 100 players at once.
  • Even though it greatly pains me to do so, I’d even be willing to forgo the open world aspect if there is no other alternative, so long as I’d still be able to have multiple very large levels, seamlessly integrate with each other with multiplayer functionality & voxel terrain.
  • As a last resort I’d also be willing to ditch the voxel terrain features if there is no other options.

My questions to all of you:
So out of the options that are available through the marketplace or otherwise;

  1. can I create an open world, multiplayer game without any coding?
  2. can I create an open world, multiplayer game with voxel terrain(dig/destroy/build terrain) without any coding?

If I can’t create an open world, multiplayer game without any coding;
3. what is the maximum size of a level that I can create?
4. what are the available procedures with tutorials/documentation I can follow to implement level transitions?
5. what tools/options etc are available to easily save the state of the multiplayer game without doing any coding, considering the default save system is not good enough for this functionality?
6. can I still have a non open world, multiplayer game with voxel terrain and multiple levels, without any coding? If so how?

Thank you in advance for your advice!

If you are only learning blueprints and cannot “code”, you should focus on building smaller games before doing doing anything with multiplayer at all.

The MMO Starter Kit by CodeSpartan is supposed to work with blueprints, but I believe you do need to compile it and UE4 yourself to enable the dedicated server features. I don’t know how large maps can be for it, but there is a 120+ page forum thread where you might find out.

Voxel Plugin also by CodeSpartan can supposedly create infinite worlds, but I see no mention of a multiplayer option. The docs seem quite sparse and progress seems slow, possibly because more effort is being made on the MMO Starter Kit.

voxel plugin by Phyronnaz is also supposed to allow you to create infinite worlds. This has free and paid versions, with the paid one supporting multiplayer games. Progress seems to be quicker with this one and the docs are more complete. There’s also a forum thread on it.

There’s also Voxel Farm, but most of the options are expensive.

If it were me who had to choose, I’d at least try the free version of voxel plugin and ask questions in the forums/threads for each of the above.

Thank you very much, unfortunately, I’ve actually already seen all 4 of those, and have asked questions of their creators. Unfortunately some of the questions have not been answered, and I was more or less told that the Voxel Plugin by Phyronnaz will not work with infinite multiplayer worlds out of the box. Voxel Plugin by CodeSpartan apparently does not let you create even large worlds within default unreal engine settings without crashing, judging by multiple comments. Voxel farm unfortunately won’t work because it is far to expensive and is windows only unless you pay an extreme amount of money per year and know how to implement the source code.

I thought the default terrain size for voxel plugin by Phyronnaz was around 131 km by 131 km. Does that size not work in multiplayer games? 17,161 square kilometres (6625 square miles) is bigger than most games.

To be honest I didn’t get a very clear answer from them about said topic, or if it was I didn’t really understand it either way, it seemed it was more or less that the multiplayer does not have the same functionality that the singleplayer has in regards to certain areas. Is there a post by them anywhere stating how big a multiplayer level could be when using their plugin? I was not able to find one, and I had more questions I asked them but they haven’t been answered yet… Also I wouldn’t be able to test it ahead of time because you have to buy the plugin to test the multiplayer functionality… It’s a bit misleading because I was reading over a lot of the materials and most of it refers to singleplayer only(without stating so) and is somewhat difficult to tell which its referring to. If it is able to do multiplayer at that size, I think it would still work well, although I’d still need the ability to implement multiple levels for the design I’m going for. Besides that question I have one other which is the fact that one of the components is Windows only, and I’m not entirely sure if it is a component that I’d actually need to use or not because I don’t know enough about it. Thank you for your help & advice as always I’m very grateful.

Hmm. Maybe it’s something to do with not being able to procedurally generate terrain identically for multiple players. I’m just guessing.

I’m far from an expert on UE4, but I have been doing a lot of research on larger terrains. From what I’ve learned, it seems that the largest terrain size supported as standard is around 8000 by 8000 metres or 8km by 8km, giving a total area of 64 square km (24.7 square miles), but object positioning and physics can get a little jittery on the far edges at that size.

There is a feature called world composition, that allows you to place any number of terrains edge to edge, and UE will load them in and out of memory as the players moves onto them. Unfortunately for your intended use, the standard multiplayer options won’t work with this feature without additional coding. I don’t know if the MMO Starter Kit has the necessary extra code to support world composition.

Would your intended game design support having multiple layers in your open world? You could add a lot of extra playable areas by including networks of connected underground tunnels, dungeons, sewers, caves etc.beneath a terrain of 4km by 4km and still be able to use the existing multiplayer options.

Well as I said if I’m able to implement at least multiple large levels, I’m still willing to forgo an open world if I have no other choice. Yes I know about said feature and how it won’t work with multiplayer, and I haven’t had any answers back on the Mmo kit post I made asking questions. Yes it will have multiple layers, but its a large scale project that is not intended to be layered for that purpose, also when you layer things in such a way like that, it can ruin water level, horizon colors, kill zones etc, it’s a very tricky thing.

Just an update about the suggestions that were mentioned, Voxel Plugin by CodeSpartan does not work on Linux, does not support open worlds, and does not even support multiplayer out of the box. MMO Starter kit by CodeSpartan only works on Windows & does not support open worlds. Voxel plugin by Phyronnaz does not even currently work on the latest version of unreal engine & is not even on the marketplace, you have to literally download a third party app to get the latest versions of said plugin. So basically I am out of options in regards to voxels & open world currently.

I know you were saying you don’t want to change your plans, but I think it’d be better if you try to do something much simpler, possibly without multiplayer, it looks like your starting from a place far from being able to attempt a big project like that and it has so many challenges to overcome even for someone experienced.

Firstly, I must say I still have many questions I’ve proposed in this thread that have still gone unanswered, & some even had nothing to do with multiplayer.
I also find it discouraging and disheartening when people recommend others to change the view of their projects, as it is something I have noticed occur very often in the game development community for years now (Note I’ve been part of the game development community years before I ever joined this forum).
Simply people telling newcomers or the inexperienced that they can’t or shouldn’t do something instead of helping them figure out how to actually do it or at least even motivating them to achieve their goals. I have seen people who KNOW how to do the very things that people ask for help about, waste their own time by messaging said people telling them they are to inexperienced to do that and should try something else, without even helping them with anything at all besides stroking their own ego. Another odd thing is that I may be the first one actually speaking about this after all these years, perhaps I’ve finally understood what is really going on here and am going to liberate others through my words. So while it is not mandatory for people to help others, if one truly wanted to help, they need to first understand that people can have different learning styles & methods, and what worked for you may not work for others, but it doesn’t mean that someone should just give up if something is becoming to challenging.
So, I understand why you’d say that, but I’ve learned that I personally learn best by reverse engineering as opposed to starting from scratch, I’m actually much more efficient that way, further, there are no start to finish up to date tutorials that I am aware of that will allow me to create what I’d like so I just have to wait until someone creates a blueprint or plugin or tutorial for it. Not everyone learns best through open ended methods, in fact I’d assume thousands of people have given up because that is the only method they could find. Most of the things you can find are either outdated or very open ended or limited use cases, at least from my perspective. Once I’ve been able to reverse engineer something it makes it way easier for me to start it from scratch. In terms of singleplayer games, I won’t be learning that much by making one in blueprints, and I have no interest in making one either, it’s only by dedicating myself to learning things I don’t know about that makes me improve. Nonetheless I’m still open to advice about saving & optimization as I have not had any advice on that yet. Another thing I could use advice on is if there is a way to code in C++ with Unreal Engine on Linux, without using Visual Studio, as I still have not found an answer to that yet. Open ended questions never get good answers in the game development community, but when you are not experienced enough in certain areas it makes it difficult to be more specific with questions.

The issue there is that people want to do projects that they aren’t capable of doing, and it’s not an issue of it simply being challenging, it’s a case of being something they really can’t accomplish.
For you, a big issue is that you’re coming from a position of limited knowledge and you want to do something that takes a massive amount of complicated work, but instead of wanting to learn how to do that you want something brought down to your current level of knowledge. You’re already starting at a point where it’s not within your capability.
I try to encourage people to do something that they could reasonably accomplish rather than trying to take on something that they would work on for years without ever finishing. The vast majority of projects go nowhere, a big reason why is that is that people want to do projects that they can’t do.
If you truly know how to do single player gameplay well, then do a really good single player game, and then take on a bigger project once you’ve got more knowledge of the process and maybe you were even lucky to sell a game and make some money which would allow you to put money into development of a bigger project.

When people tell you to “try something smaller first” they are not telling you to give up. They are telling how that by doing smaller things first you’ll acquire the knowledge to do the bigger things later. It allows you to face problems one at a time and be able to make less open ended questions that are more likely to be answered. Most of your questions are so open ended it would take someone literal hours of research and writing to answer them.

For some of your questions:

Yes, you can code and use the editor on Linux.

The process is called “traveling” in UE4. https://docs.unrealengine.com/en-us/Gameplay/Networking/Travelling

Thank you very much for both of those links. Is VS Code able to be used as an IDE or should I use one of the recommended IDE like QT creator? I wouldn’t know which one is best to use.

One of the main reasons that many of your initial questions weren’t answered is that the answer would be “it depends”.

For example, there isn’t a definitive answer to how many models, textures etc you can place before the game will crash or lag, as it depends on how complex the models and textures are, the capabilities of the computer you’re using, what else the computer is doing etc. If you’re using voxel terrain, that will use more computer resources than standard terrain, as will keeping track of multiple players (even if they aren’t visible on screen) compared with having just one. Using blueprints instead of C++ will also slow things down to some extent.

Your main issue is that your ideal game design requires three unusual features and you have restrictions on how you want to create it. Very few games are open world, voxel based and multiplayer, and AFAIK none of those were created without coding.

As I see it, if you don’t want to wait around for someone else to create the necessary compatible plugins, you have two choices: simplify your design or learn enough programming skills to allow you to complete it.

Btw, have you looked at the Tombstone (formerly C4) Engine? It has voxel terrain, visual scripting, networking options and runs on Linux. I’m not sure how large a world you can create with it though, the demo is Windows only and it’s almost $400 for a perpetual license.

So I take it, that I’d just need to develop the game and try it out on different systems to see if it runs or not? My question also entailed, things such as texture size, amount of polygons etc. I want to know the best way to handle these things if there is a guide on them, because for instance, I believe I’ve heard that a very large texture could create lag but I need to understand better on said specifics.

I will most likely develop my programming skills, but I wanted to become an expert at blueprints first as a stepping stone.

I have not heard of Tombstone before you mentioned it, thank you very much for telling me about it. I really do appreciate that you are trying to help me find a solution to be able to make the type of game I want to make. I took a look at it. I’m very interested, but there’s a few things that I’m skeptical about. I can’t find any videos showcasing the visual scripting, voxel terrain features, or networking options to see if they would be useful for me at this current point in time or not. I don’t like the fact that their forum is private(can’t be viewed unless you are a member & only has about 700 or so total posts (this game engine has been around for years so that makes me very concerned). There isn’t any marketplace for it like in unreal, unity or cryengine. No community oriented people use it at all, as you can see from the lack of any videos/tutorials etc made for it at all. the only video I found made by someone who isn’t affiliated with the engine only showcased a few things about it(none of which showcased any features I needed to see) using the demo and that was done by someone who’s channel is showcasing engines in general, not that they personally use the engine. It is such a large investment for something where you don’t really know what you are getting from my current perspective… Perhaps that would change in time when more people use it or the price comes down, because if they claim to have said features already built in, it is definitely something of interest. Until I can see more about it, it will be put on hold for me. Maybe someone else who needs said features will be willing to try it out and make some videos and post here about it, I’d be welcome to hear from you even if it takes a few months/years for you to find this forum post. Thank you.

Texture sizes and amount of polygons will affect performance depending on the target machine the game will run. The performance issues translated as lag will only happen depending on conditions on the target machine, like processor speed/performance per core, graphics card, amount of RAM and VRAM. The very first thing when deciding to go for a project is to determine which is the minimum hardware you (developer) expect it to run and the more platforms (PC, Xbox, PS4, mobile) more is likely you will succeed in defining the assets you need to go for.

For a big of a project with several platforms, you will always make the textures in high resolution and you will have copies of that texture inside the engine with different sizes (downscaled) for use with different platforms and/or scalability settings. As for polygons, no matter what the mesh is, you will always need to have LoD (Level of Details) which are copies of the same mesh with different amount of polygons. The engine when importing the mesh (with all those copies built-in) will use the distance from the camera to know which mesh it will load at runtime to deal with the necessary overload in the scene, meaning the objects near camera will have LoD0 (level of detail zero) with the most details, while the objects the most far from it will have LoDx (being x varying to the number of reduced meshes you want, usually 5 levels is enough for most of uses, meaning 0 to 4). The engine has a built-in reducing mechanism where you can define for a single mesh (without LoD) the number of LoD and the amount expected for each reduction. This is accomplished in the mesh editor.

Your goal is high and for such high goals usually there is a team to tackle the tasks, each one being the best of their line of knowledge, and then a production goes smoothly. Even at Epic you won’t find people that knows 100% of everything necessary to build a game, but they have 100% of the people with knowledge of the engine’s parts to make that happen. Same goes for other studios, which has also a high number of artists to build the props, levels, characters, sound, visual effects, film and by last the bits and bolts boys and girls which are code developers enabled to fulfill the lose points. I am the one that believes a full blueprint game can be done with the right plugins, so I think that after you are really efficient coding in blueprints you need to start studying (the way you think it works) how the plugins around can help you and which one you need to choose which most approaches the design goal you have in mind and that you know you will be able to extend its functionalities to provide what is missing.

I’m very grateful for such an in depth response to my questions, thank you very much!

How does one exactly go about deciding & implementing which lower resolution textures will be applied when a lower graphics setting is applied? Is there a plugin or feature or such that can help with this?

If I import a free mesh from the learning tab for instance, how do I tell how many levels of detail it may have within it?

Something that I’d like most of you to realize, is that I already realize that what I may want to do may usually take a team, this has been parroted to every inexperienced person on every game development forum for years now, I’ve seen such discussions already and I’m fine with attempting to do it on my own as long as I’m able to find actual solutions for what I want to do, I don’t mind if it takes longer or is more challenging, as I’m currently doing this as a hobby, for fun, yes I actually have fun doing this. I’m enjoying game development very much, for me it’s similar to playing games but even better. I am also willing to simplify areas if I need to if something can not be achieved. For instance while I would still prefer a voxel solution & I am still open to more ideas about it, but in the meantime I’ve currently developed my own work around, which is not as in depth but still achieves some of the functions that I need.You may be surprised at how much I’ve learned already even in the past few days & there will probably be more questions from me in the near future as I encounter more challenges. I try to take it a few steps at a time so it doesn’t become overwhelming.

On that note, if I add a blueprint addon to my project, is there a way to open said blueprints within an IDE C++ editor, or does it stay solely within blueprints?

@Pine722 for the questions:

For Unreal Engine 4, when you choose a lower scalability settings the engine will try to scale down and filter said texture (it needs to be power of 2 at least that I know) to fit the demand of such scalability needs. Scalability settings is usually something the end user will configure in the game’s settings, so you don’t know which would be, but lets say you create a game with the lower hardware spec to handle it which will usually deal with High settings (several game consoles can deal with high settings, but not Epic settings), so you don’t need to worry that much, because the engine will try to do the best with what you are giving to her to deal with. Sometimes, this automatic thing is not desirable, and them since you created all textures in high resolution (lets say 8k), you can at anytime make the engine to auto-generate a down sample of that same texture stored and you can select it and apply to the material where it is in use. Overall, the task is called scene optimization, and it is something you need to do to balance the entire scene costs. There are profiling tools inside the engine which will tell to you for a giving scalability which features and the respective costs in the scene at the editor, and with that you can know which needs a tweak and it is all a visual thing, so colors representing good and other color meaning bad optimizations, so you will know what to go after. There are specific Epic’s livestreams covering the use of profiling tools.

To know how many Level of Details a mesh have, you need to open then in the mesh editor and look for the right panel which such info can be found.

For the blueprint thing, if the addon (we like to call them plugins) is a blueprint only solution, you can open it as blueprint only (there is no option to open it as C++) and they will always stay that way. There are other addons which are a mix of C++ code which exposes their functionality to use in blueprints. These C++ plugins always (depending on where you get them) will have the source code, so you can rebuild them in other platforms (if they are white-listed for those platforms, so caution when you purchase or download them). In such cases, you are free to change the source, since it is granted that you can do it. There is a fact that blueprints can be marked to pass through a process of nativization, but there are several cases where this doesn’t work, and working or not, you can’t rely on accessing the code generated for them, because the smallest change in the blueprint will cause the code to change and the life-cycle is one way (blueprint -> native code and not opposite).

The Tombstone Engine is only 2 years old or so, despite it being an updated version of the C4 Engine originally released in 2005. The forums used to be open to anyone who wanted to register, but I think they restricted it to license holders only when the engine changed. The wiki and API docs are public though.

AFAIK the demo on their site is actually a fully working binary version of the engine with a few demo levels included. You could try contacting them to see if they have a Linux version of that to try or perhaps test the Windows version using WINE or similar.

It would be tougher to get started with than UE4 though, as there aren’t as many tutorials or books on it. It depends on how important voxel terrain is to you whether the extra effort is worthwhile.

If huge continuous terrain without loading screens is your priority, then UE4 is probably a much better choice. Unity now has a similar feature, but visual scripting is only available as a plugin.

I’ve also heard that Epic made some improvements to open world support with multiplayer when creating Fortnite, so they may end up being included in one of the UE4 updates.

This page might help you plan how to learn how to use UE4.