So I was watching Ikaruga:

And then raystorm:

After looking at their 3D backgrounds for a little bit, it appears that they use a lot of repeated segments.

How would one start with the development with such systems? Would there be editors that can be used (or at least help) with creating the environments? Perhaps a 3D map with splines describing the path of the ship, as well as events on the splines?

  • 1
    \$\begingroup\$ Environment/Backgrounds and ship movement are different things. I think you should separate these questions, because they don't necessarily belong together. \$\endgroup\$
    – bummzack
    Commented Aug 12, 2011 at 17:38
  • \$\begingroup\$ But then in the case of shmups like the ones I've linked, the ship path seems to be quite related with the actual backgrounds. Fly for 1km up north, and then suddenly bank left, right and enter a tunnel, etc. \$\endgroup\$
    – kamziro
    Commented Aug 13, 2011 at 8:41
  • 1
    \$\begingroup\$ Sure, it's related. But that concerns the path only, not the systematic behind drawing the background and using repeated segments and such. These things have nothing to do with ship movement and are a question on its own. So IMHO one question should be: How to edit/define ship movement path, and integrate this into the environment. The other question is about how to create environments with repeated segments and backgrounds etc. \$\endgroup\$
    – bummzack
    Commented Aug 13, 2011 at 8:55
  • 2
    \$\begingroup\$ Also this might be of interest: gamedev.stackexchange.com/questions/2712/… \$\endgroup\$
    – bummzack
    Commented Aug 13, 2011 at 8:56

1 Answer 1


I can't say I've personally implemented this, but here is my suggestion: With a sufficiently large background "world" and a sufficiently narrow field of view on that world, you could implement a "inner ring" background world similar to the world in the Halo games. Put the background camera inside the ring, pointing "outward" towards your background world, and move it along the inner orbit. Render this to texture, and use that as your background.

Of course you could also put the ship, enemies, etc inside the ring itself to avoid the render to texture process, but assuming an Ikaruga-like game, having to account for the curve of the ring (i.e. a third dimension, and at least one constantly changing axis) might cost more than the RTT, and would certainly be harder from a coding standpoint.

With clever maths, you can probably turn a "ribbon" world of known dimensions into a ring to make level editing easier. Any moving items in the background will need extra attention though.

Note the caveats, though. Without a large enough ring or with too wide a camera FOV, things will probably look weird, although perhaps you could account for that with some other method, like fish-eye.

EDIT: Thinking about the particular case of repeated segments that eventually change, I think maybe two half-rings would be a better solution. A repeatable half-ring would be able to connect with itself seamlessly, and when you're done repeating, swap out the next half-ring for the next segment. This is a little more complicated than a single, giant ribbon that gets turned into a ring, but if you need to repeat on-the-fly instead of a pre-specified number of times, it's a potential solution.

EDIT 2: For situations where you need to be able to move and repeat on both axes, consider a similar approach but with a torus. Could be much more challenging to construct.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .