Got a little bit of tester feedback over the last couple days, mostly pretty positive, some bugs I already knew about and some I didn’t. Realised I hadn’t really tested what happens if you get stuck under monoliths, so that sounds like an issue for one tester at least. And it seems the ending sequence for the Rezzed build also didn’t work 100% of the time, whoops. The esc/start button works at least, so hopefully, whoever plays it can do that!
Planned Tasks
- Go back over my own blog post(!) from yesterday and try to figure out how I can light the clouds and environment with two different coloured lights.
- The problem with using a standard Unity directional light is, that won’t light the clouds. So I have to use trueSkys sun (too bright, never see stars) or moon, which might still be too bright.
- In terms of ambient, my code currently just takes colors/intensity from trueSky, so I need to be able to tweak this now per planet. In my LevelManager (sits in a planet scene), I might have a bool you can turn on for ‘custom ambient’ which is adjusted via Unity’s Lighting.
- If I can get the terrain/cloud lighting working well, then I might do some more tests with trueSky’s skybox. I might be able to try an 8192 resolution, but I’m not sure just how crazy that is for memory usage, or if there’s a way around that. Perhaps by compressing it/crunching it or maybe even using one of those texture streaming type plugins. *shrug*
- Going to have a bash at doing some geometry that mimics riverbeds, so we slide around in half pipes that criss-cross each other. I have an old bit of reference that has stared at me the past year that I’ve wanted to try.
Interruptions
Had a delivery I had to deal with that took me over an hour :/ Late start again…
Lighting Clouds
So yesterday I said…
I’m trying to use trueSky’s moon to give the clouds a bit of lighting from the nebulae, but unfortunately the higher I set the moon lighting, the duller the skybox gets (due to camera exposure). Reducing the atmospheric brightness fixes this issue
Yet at some point I abandoned that for some reason. Trying again.
- To get the moon lighting the clouds, moon’s albedo needs to be 1 and diameter non-zero, giving me a moon that I don’t want. I may be able to fudge a transparent moon texture in to hide it.
- Then we over crank the lighting effects on the clouds to receive an unnatural amount of light (from the ‘bright nebula’)
Here’s just a test for colors from nebula hitting clouds, with a highly incorrect blue light on the terrain!
This is working, I’m able to adjust cloud color/brightness, and with that, they look more separated from the nebula as well, which is good. So I’m moving onto coding in custom ambient levels per planet.
Custom Ambient Per Planet
That was way too ez for a master coder (extreme sarcasm) like myself. Took about 5-10 mins. You can see we have some red being picked up by the terrain, the clouds are kinda half blue, half red (pinkish), which I might tweak a bit still:
Now that we have cloud color + terrain ambient + directional lighting all working, time to make the nebula look decent. I think this is a task that could potentially take days, and knowing me I’ll mess with it that long!
Nebula
Gonna mess with:
- 8192 resolution, see what memory usage is etc, and how much better the res is. NFI if 8192 is easy for modern PCs or I’m a total idiot for even considering it.
- Will probably find some public domain NASA nebula photos I can use, then get painting/compositing I guess!
- Just need to keep that blue/greenish and red color scheme.
So an 8192×4096 is ‘only’ 16mb, maybe not a bad option? That’s with DXT1 compression. However, the end result just looks *so much* like a photograph that it really kills the mood a bit.
Another issue is that I have such heavy image effects that we don’t quite get nice ‘pin prick’ looking stars, and I’m hesitant about adjusting settings (and lo’, it took 5 hrs) for one planet. I’d like the game to have a cohesive feel, and all that blur is needed to hide the non-existent art team I have :)
So I might try for something more like Homeworld did, way back in the day:
While they were super smart about how they made these (it’s all vertex colored with a somewhat complex mesh) I’ll just brute force some blurred nebula, because one man art team, and because there’s some pretty amazing nebula photos available that I can press blur on.
- Found a camera bug, which I think I just also fixed… A tester reported this too so fingers crossed this didn’t happen to the Rezzed reviewer dude! 5 mins!
OK I got overly wrapped up tweaking values there for some time! Maybe because I’m fairly happy with how it’s looking. I’ve got the fuzzy nebula for now, I don’t mind it, it isn’t amazing but I’ll probably come back to it later. Probably took 2 hours. Here’s how it’s looking:
With these low and numerous clouds, I’m thinking even more that I need to raise the camera up when we enter them, so we can see more easily exactly where we are. Might be even more ‘jarring’ though if we constantly move up and down… hmmm. I might also play with trueSky’s threshold distance, which kinda lets you see through close clouds.
Cloud “Surfing”
I just made a pretty fun gameplay discovery, where you can ride clouds like waves (they’re moving really fast). I’ve angled them a bit towards the objective, and a bit sideways, so you can just look left a little to see them coming in. And it feels real nice when you’re riding along in one. Would like to do an animated gif but I need to at least fudge in an ‘advance level’ key or some way to just Build one level. Perhaps a ‘testing single scene’ bool and a string in the LevelManager for the scene to load…
The other thing that needs ‘fixing’ now is that lightning in this level is ridiculous, there’s so much easy to access cloud you’re just being hit endlessly. This is more fog than cloud, so adding this to the list.
Maybe did another hour of cloud tweaking both visually and gameplay wise.
Fudging Level Loading
Well maybe not fudge… I’m gonna use this a lot, so maybe I’ll try and do it well :P
My current GameManager code goes:
- if (SceneManager.GetActiveScene().name == “ManagerScene”) //load the start screen
- {
- Debug.Log(“ManagerScene is active, loading start screen”);
- LoadEXOScene(“IntroEarth”);
- }
- else
- {
- SceneSetup(SceneManager.GetActiveScene());
- }
In a build, the active scene is always the ManagerScene. So I need to tell it to do otherwise, “if (BuildingForSingleScene)”.
And if we are building to just test a single scene, I wonder if I can grab the active scene name, like an Editor Script or something, rather than me having to type in the scene to build/load each time?
Alternatively, I could instead do some much simpler system where, if I whack a debug key (a number), in the intro screen, it’ll load that planet. Rather than learn editor scripting, this winz for now and doesn’t require any re-writing!
Done in about 30 mins. A few things I’d done earlier, of course, caused other scenes to break and it took me a little while to figure out what was going on!
Lightning, Off
Should be pretty easy. Eventually I might query trueSky to see if there’s a storm added in, but now I’ll just blam in a bool and set it in scene setup. Done, 5 mins. To prep for the animated gif I spent another 15 mins or so tweaking the clouds!
Din Dins O’Clock
Boom!
Animated Giffage
Hopefully can record something that looks good in kinda 15 mins, then render it out etc, might take another 30 ish mins.
That took a while as well! Probably 30-45 mins. I think this is partially a sign that the camera angle and look of the clouds needs some tweaking, as it shouldn’t be so hard to get some good footage…
You can check it out on my Twitter @JayWeston
That’s it for me. Probably not even 6 hours today but feel like I got a decent amount done still.