I told a friend earlier this week that there's a lot of naivety regarding how much work on a game is polish and iteration. Later this week, I found myself stressed by the fact that instead of pushing forward and designing new levels, I was instead re-doing the system for loading levels.
I'm sure this looks like just another Stonehenge screenshot, but what it represents is a level loader that doesn't break lighting!
As you may or may not know, Monumental Failure started as a game jam game. I had always wanted to include a split-screen multiplayer option, but game jam time constraints meant that didn't happen. For our Greenlight campaign, I knew the game jam version had to be fixed up, with prettier menus, non-meme-y gods, and most importantly (to me anyways) - split-screen! I devised a level-editing system that let each level have a scene it was designed in, a script to write all the designs to prefabs, and a main scene to load those prefabs, and had it repeat the loading for the number of players. It worked well, except for the lighting. It was subtle, but the loaded prefabs were always just a bit darker than they were in the design scenes.
To be honest, I don't know enough about Unity's lighting system to tell you why this is. I can tell you how I fixed it though.
Levels now consist of two scenes. The first, contains the lighting info and a directional light. Lightmap baking has to have its "auto" mode turned off. The second contains the "content", the actual designed game stuff. To load the level I first load the lighting, then additively load the content for each player, merging it in to the lighting scene. I can use the "Scene" object to grab all the root GameObjects in the scene and move their position so that players aren't playing on overlapping levels.
In the end, I am essentially throwing out about half the work I had done when making the original level loader. This sucks, but it's part of the process, and I can live with it. More importantly, it's better now. The levels load smoother and faster.
Two steps forward and one step back. Iteration can feel bad, especially when it means scrapping hard work I've already done. At the end of the day, I have to accept it as part of the process, and focus not on what is lost, but what is gained. At least, that's what I'm telling myself :-P
There's some weird banding in the grass that I'm going to have to polish that out. Iteration never ends!