I have a game that has gameboards that are essentially grids but they change throughout the game. Some of the “levels” are procedurally generated so that they are different every time you play, while others are always the same (such as the tutorial level). The way my gameboard works for the procedurally generated levels, it would be pretty easy for me to have the fixed levels also generated through the same script at runtime (actually much easier than building it in the editor). My question is whether that will be more or less resource hungry? Is there any advantages to building everything in the editor vs. building it through instantiation?
It is well proven that generating data by algorithm saves space. That is to say, if your algorithm for generating the level is reasonably fast, creating the counterpart in the editor would, in theory, make the packaged game larger.
This is the classic space vs speed argument, as there is some processing time consumed to generate the level, but it is likely still faster than the speed of storage loading the data (and parsing, etc).
There is no intrinsic advantage to data loaded from the editor. There is some potential that the artists may have optimized the data better than that generated by the algorithm, but with attention to detail the exact opposite may end up being true. A classic example is a mesh generated as an object of revolution or extrusion which generates lots of points. If generated by 3D modeling software, the processed through mesh optimizers, the result can be much more efficient than the original, generated mesh. If your algorithm has this optimization code, you can apply it when generated a run time, but if you don’t have such optimization you might find you can’t match the results produced by artists who had access to an optimizer in their editing tools.