Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I'm an artist with a concept, not the developer, and I'm trying to wrap my head around the approach I should be taking for the following scenario, namely whether to model in Photoshop or 3DS Max.

Say I have a simple animation loop of a rotating planet with a moon orbiting it that I want to play in the background of a game menu screen. Thanks to your help I have some ideas as to how to represent this illusion in 2D. But what if instead I had thousands of different scenes of this nature I wanted to represent in-game, using different planets, moon configurations, orbiting ships, passing asteroids, various backgrounds, etc. I assume that attempting to render these as video files and apply individually as movie texture is out of the question due to hardware and/or storage limitations on mobile devices, and that the scenes would be too complex for spriting.

Would I be best off using a 3D game engine to individually render constituent objects (a rotating planet, an orbiting moon, a drifting debris field) and then place them in front of a static backdrop (a JPEG of a nebula and star field, for example)? I assume for the same reasons as above that you wouldn't actually pre-render these objects, but instead send instructions to the game engine to draw a sphere, map a couple of textures to it, give it rotational parameters, etc.? Is this basically how it works? What about for the non-simple shapes like asteroids, ships, etc., can you also send a model parameter?

Keeping in mind that these scenes will be backgrounds only and non-interactive, am I on the right track?

share|improve this question
1  
Yes, that's how games do it. –  Krom Stern Jan 11 '13 at 5:27
    
What kind of platform do you intend to use? If you need to render 3d models on a PC you have less limitations then on android for example. Also, if you'd use XNA or unity you don't need to worry about creating a render engine and it's quite easy (in comparison to creating a full engine) to create what you want. –  Thomas Jan 11 '13 at 8:04
add comment

2 Answers 2

up vote 6 down vote accepted

Well, first, you're right that if you want to have thousands of permutations of these scenes, which operate in "real-time", your options are either to make a stupid amount of videos/slideshow images which would be altogether prohibitive in size...

So you've got a few answers...

You can certainly build a 3D scene, where you build a render-engine which takes models/textures, and animate them.

You probably don't want to have thousands of stars on screen, though.

The alternative is similar... ...build an engine, and instead of making 3D models, just use images (transparent) of batches of stars.
You can move the image of a star (or stars) around.
Likewise, those sprites (think of it like using collage cutouts, you're moving around on a board), you could treat some of them like a slideshow -- so mini videos or mini slideshows of just small groups of stars and tiny details which you couldn't make models.

And then you can randomize collections of those pieces, their positions, movements, et cetera...
Voila, reusable pieces (smaller size), useful for creating many different scenes.

share|improve this answer
2  
I think it will probably look better if you render these objects in your game engine with some simple lighting then using all kinds of sprites. This way you can also vary the position of your lights and make even more different looking scenes. I think creating this engine could be faster then to actually create all the required sprites etc. –  Thomas Jan 11 '13 at 8:02
1  
@Thomas you might not be wrong... Or a particle engine might work for the background stars... It really all depends. But thousands of stars onscreen with a bunch of planets around each, in the far background, while a handful of prominent planets/vehicles are in the foreground/mid ground doesn't sound like the background should be full-blown 3D. Foreground, definitely, midground-probably. But how do you make a model for gas weaving through a nebula. In the old days, that stuff was just a painted-on background with reused layers. –  Norguard Jan 11 '13 at 14:40
    
Stars in the background and nebula's can be created with pixelshaders quite simple but it all come's down to the platform you wish to target and if you prefer beauty over performance. –  Thomas Jan 11 '13 at 15:21
    
Norguard, that's been one of my primary confusions so far (concerning achieving visual effects like "gas weaving through a nebulae" etc.). Is a fully "painted-on" background for very distant objects just not the way to go, even if the scene is complex? Are there issues with storing/displaying 1000 unique hand painted background images on say, an iPad or Nexus tablet? –  Rob Jan 11 '13 at 16:03
    
@Rob there are definitely issues with that. Which is exactly why I suggested making lots of smaller groups of those things (with transparent backgrounds), and then randomizing their positions. If your developer is great with math, you might even be able to auto-generate some, and save them out (to prevent drawing them). But if you saved 100 of those far-background images (just small individual hand-painted sections of the whole), and mixed and matched, like a collage, it might be easier. Foreground, do whatever you know looks good and fits the game (2D/3D). –  Norguard Jan 11 '13 at 17:14
show 5 more comments

Yes, you are on the right track. The magic term you are looking for is called procedural generation. It is frequently used in games as well as animation to create an almost unlimited variety of possible terrain/creatures/vegetation/items/backgrounds or virtually anything.

A computer can draw. A computer can model. A computer can determine where to put the created objects down. A computer can animate and make your planets float around. It is thus perfectly possible to let the computer create a whole new scene out of nothing.

It is however very hard to get it look right. After all, drawing one beautiful nebula yourself is much easier than to write a system that lets the computer generate many different nebulae.

share|improve this answer
    
Right, I understand something about procedural generation, just nothing about game engines and what exactly they do and don't do...how much of the responsibility is going to be on me as the artist versus on the computer as the display device. I'm starting to get a clearer picture of that now with your all's help, so I can figure out which technologies and books to further explore for specific implementation questions! –  Rob Jan 11 '13 at 16:07
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.