I got to the point where I was writing a lot of code in my experimental builder project. I wondered at what point I should move all of this stuff into the main project again, so I asked reddit for best practice and got some reasonable replies. I decided to move the code immediately into the main project and create a new scene.
Making a new scene inside the main project for building-only didn't work very well in this case because there were loads of things that I needed to deal with in the main game. For example, I wanted the menu controls to be the same as the movement controls, so I needed a way to switch them off. If you set up an "experiment" scene then you need to carry over all that functionality. You end up rebuilding the main scene! If I need some sort of deep "undo" then I have source control to help me with that.
Some refactoring was required too. I moved the flying physics out of the enemy and player and into its own class.
The next piece to solve was the "building menu". I've always wanted the barrel to turn to show new widgets and gizmos and for the menus to be in the 3D world rather than a 2D overlay (which would be easier). The end-goal is to have buildings grouped into types so you select a type and then choose a building for its type. I won't have lots to start with, so the menu needs only to be a single thing.
I really enjoyed getting back into Modeler and creating the updated barrel controller. I decided to let the player build while on the move. You can't change the heading or thrust of the Cloudship in build mode but you can see around and switch by pressing B. You can see me testing that below.
The current Cloudship was a placeholder, hurriedly put together. For the builder to work, I need models that can be used with the builder grid. The player will start with a smaller Cloudship base and then as they grow, can choose to jump to a different base with different properties - such as maximum speed, torque, health and damage when ramming etc. I decided to just have one somewhere in the middle of the size range to test building. I'll add base updating in the future.
I've added in the steam vents underneath (like the original game had) and they will have cool particle emitters that will puff along at the correct speed. I want to add more stuff to it later but it will do for now. I don't like leaving something not-finished but this is an important way of working: doing just enough and then iterate over and over. I'll need lots of these bases in the end.
The sharp eyed will also notice that the dark patches of the Cloudship have gone. This is an old rendering trick I've taken from Lightwave. Rather than have light bounce off the ground (expensive), create a light of the same colour and shine it up. Works rather well.
Putting buildings of different sizes into the menu and then getting them onto the model. I'll need a bunch of models for that. Then I'll add economy and start getting the Cloudship's movement parameters to be based on the buildings that have been chosen.