streaming, levels whatnot?

Hi!
I am about to finish building my first semi-serious game in Unity.
I have been testing the gameplay in one level, and I think it is going to work out.

Now I am planning on expanding the whole thing with multiple levels, each level would basically use the same assets over and over again, and the difference between levels is just rearranging the said assets (position rotation scale etc)

what would be the most efficient way to set up both the workflow and the delivery of these levels?

I am considering just creating the levels in unity as scenes, and then download the scenes as needed via Loadlevel(name), this makes the process of authoring the scenes very easy, but I am worried that I would get duplicate data between the levels, and bloated filesize as a result.

Another path would be to author the scenes in Unity like previously, and then run some kind of editorscript to export the position etc for each of the elements of my scenes, and the upon entering a new level just instantiate and position the game elements accordingly.

What are your experiences in this area?

Do as you are and re-use the same assets across multiple levels, then in the build settings dialog put the levels in the order you want them to be “packed”/played by the user, then build a streaming web player. Doing this will tell Unity to create your web player data file such that the assets used first will be streamed down and available first, thus allowing level 0 to load quickly while the rest streams down in the background. Just be sure that when using a streaming web player that you’re checking the availability of additional levels before going to them. For example, check CanStreamedLevelBeLoaded before calling LoadLevel just to be safe. This is the best way to do as you describe, or in any game with multiple levels where you want playback to begin as soon as possible and allow additional downloads in the background.

Well, let’s be clear about something in that LoadLevel does not trigger a download, it attempts to load that level’s data from the locally stored/cached web player file. As noted above just make a streaming web player where you re-use assets across levels, those assets will only download once so after the wait for the first level, later levels should load very quickly (assets will mostly be present so LoadLevel is good to go!). This won’t “duplicate” data between levels, it’s re-using data already present. :slight_smile:

For more info, check the docs, specifically Web Player Streaming