Well needless to say I am abandoning the idea I had a few days ago, as it was another idea bound by the constraints of not being able to build trees on moving asteroids.
Now that planting bug on moving asteroids has been fixed, my intention is to go straight for the most ambitious map of all - a fully procedural "big bang" style map.
It will be called "Big Bang", not "Fluffy's Big Bang", by the way :P
So I was just gonna lay out my intention for what this map will be like.
At the very start, there are no seedlings and no trees. There are only tiny little space rocks - hundreds of them - all starting in a random location around the centre, and moving in a random direction at a random speed.
All of these will have their own individual gravitational fields, and all of them will move and be affected by gravity.
For the first 30 seconds or so, they will fly around bumping into each other. When they touch, the two asteroids become one - they "snap together", sort of like two raindrops progressing down a car windscreen snap together when they come close enough.
The snapping effect will have an effect on their momentum.
The treecap and send distance for each asteroid are dynamically adjusted according to their current size. The tiny initial rocks will be considered comets, and will have a treecap of 0.
After 30 seconds, this "snap together" behaviour will cease, and when they touch, they will instead bounce off each other. The bouncing will be such that the asteroids cannot "settle" against one another, they should always bounce clear.
An asteroid that bounces off another asteroid loses one tree and a percentage of any seedlings orbiting it.
At 30 seconds of game time, a series of friendly and enemy seedlings are added.
The enemy seedlings will be - out of necessity, I suspect - controlled by the Infected AI engine, which I may or may not overhaul as part of the project. The reason why I think it will be necessary to use the Infected engine is that I believe the original AI is not capable of recalculating traversable paths in a dynamic way during Function LevelLogic() While loops, therefore moving asteroids would completely confuse it. I might be wrong about this... would need to do some testing.
The game then proceeds. The player must traverse the procedurally generated galaxy, finding a way to reach all asteroids, and destroying the enemy empire wherever they lurk. If the player owns all of the non-comet asteroids in the galaxy, they win. If they own no asteroids, they lose.
In this way, every time you play the game, a brand new, procedurally generated universe is created, with all the asteroids in it moving and orbiting around each other in interesting ways.
This should hopefully provide a lot of replayability, and hopefully a lot of campfire-style stories about galaxy arms colliding and massive carnage will be the result... :>
However, I am currently moving house. This massive level design project will therefore take considerable time to get underway, but I will be sure to post again when coding begins. :>