Home       About Me       Contact       Downloads       Part 37    Part 39   

Part 38: Building a Solar System

October 28, 2011

Fig 1: Planet with Asteroid Belt, Moon with Ring

Most of the votes on the poll last week went to working on SeaOfMemes, so I went back to the Part 24 demo code and looked over what I had.

The basic elements of that demo are the planet with its asteroid belt and the moon with its ringworld (Figure 1.) Within the asteroid belt, we have plain asteroids (Figure 2), green asteroids (Figure 3), and the "generation ships" (Figure 4.) Click on each for the Part 22 videos, if you haven't seen them.

I'm not sure I will use all of these elements in the final system, but I do want to try them out. They represent a range of environments -- big sphere (planet) smaller sphere (moon), very small spheres (asteroids), big cylinder (the ringworld) and small cylinder (the generation ship.) This should give me some idea what it's like to build in various topologies. Are the small asteroids usable, or are they just too curved and lumpy? What is the right size for a world, large enough that there's plenty of interest, but not so much that you are constantly lost and alone?

Fig 2: Plain Asteroids
Fig 3: Green Asteroids
Fig 4: Generation Ships

I used the techniques described in Part 18 to add a field of asteroids. In that part, I was working on a whole solar system of asteroids and had not bothered to count them (there would be millions.) In this version, the ring is much smaller, since it's around a planet. Right now, there are 202,232 asteroids. Some of them will be generation ships.

I haven't settled on a range of sizes, so I can't tell you the total surface area yet. A radius 5 km. rock has 314 km2 of surface area, so if that's the average, there will be around 60 million km2 of build area in the asteroid belt, making this by far the largest area in the system. The other objects are currently set to:

ObjectRadiusSurface Area
Planet1000 km
625 miles
12.5 million km2
7.8 million mi2  
Moon500 km
312 miles
3.1 million km2
1.9 million mi2
Ringworld  800 km
500 miles  
394,784 km2
245,360 mi2

The total surface areas seem large, especially for the planet and moon, despite the fact that the Earth and Moon are both much larger than this (6300 km and 1700 km radius.) I still have some interest in trying a system where gravity is much stronger than normal, but bodies have realistic gravity and spin with that assumption. This version is just arbitrary.

I'm going to have to fiddle with all these sizes until I get something I'm happy with.

Generation Ships

While I was playing with the various objects, I decided I didn't really like the generation ship. It has some problems. The three window strips I added don't really give you much outside awareness. I can't think of how smaller ships are going to enter and leave. But my biggest gripe is that it's another object that players can't create or modify.

When I thought that, I wondered if I could allow players to modify it. I want the polygon landscape to be modifiable, so why not the shell of the generation ship? Perhaps players could cut more holes in it, or add structures on the outside, even if they couldn't build one from scratch. That lead me to thinking that perhaps the "generation ship" shouldn't be a ship at all, but rather a hollowed out asteroid.

If players can dig in an asteroid, they could eventually hollow it out. If they can change the spin, they can live on the inside. And if there were holes on the sides, you could see more of the view, and get ships in and out easily. That led to Figure 6.

Fig 6: A hollowed asteroid

I haven't made up my mind about this either. I think they would look more natural and interesting mixed with unmodified asteroids. On the other hand, it looks a little weird to me, probably because of the proportions. We'll see.


When I started putting together the new version, I thought there would just be a close view and a distant view. The close view would be like the landscape demo in Part 28, where you can walk around in the world. I need to redo this for the surface of a sphere and use it for both the planet and moon. I need a cylindrical version for the ringworld, and perhaps the inside of an asteroid.

The distant view would show the stars, planets, etc. and would just be in the sky of the close view. It would also be used when you are in a spaceship moving around, until you landed on an object.

Thinking about this some more, I think I also need a "medium view". This would be used as an asteroid comes into view. There can be a lot of them in view at once, and I don't want to use a high resolution version on all of them.

I also need a medium view when you are approaching a planet. This would kick in when the flat texture is close enough to resolve an atmosphere. You'd see something like this NASA shot of Earth (Figure 7.)

Fig 7: Approaching Earth

And once I have this medium view, there's no reason it can't be drawn at the horizon when you are on the planet, just in case you get up high. My current landscape demo just stops the scenery at 64 km.

So the plan is to do near, medium and far versions of each of the objects, then mix them together so that you smoothly transition from one to another as you are flying through the system. I need to handle a local coordinate system for each object, so that the normal walking/flying keys take you around the asteroid, ringworld, etc.

I hope to have a demo of this for the next part.

Home       About Me       Contact       Downloads       Part 37    Part 39   

blog comments powered by Disqus