ASA: A Space Adventure is a "slideshow" adventure game : it means it doesn't use a realtime 3D engine. That's quite a good idea for your indie game if you are a very small team !
Let's see how you come to make this choice, and what it means...
(This article is not meant to debate on what's best between realtime and slideshow games. I'm just sharing my experience on building a slideshow game).
Using pre-calculated graphics was a choice to make the development easier for me, depending on both my skills and the fact that I was working on my own on ASA: A Space Adventure.
You have first to understand that I'm not originally into game making. As a short film director and a graphist specialized in 3D renderings, making ASA with pictures and videos instead of using a realtime 3D engine didn't need a very long thinking...
1 - When do you make precalculated pics, and not realtime ?
Pre-calculated 3D is a powerful way to make beautiful graphics in a game. Remember the Final Fantasy series on psx (7 to 9) ? The backgrounds were made of static pictures, and I believe that most people found this stunning. That was the case with most slideshow adventure games, including Myst and its sequels.
When you make a game in realtime, you spend a lot of time on adjusting and optimizing the number of polygons displayed, the quality of textures and shaders, the lighting... You really depend on technical restrictions, that is to say the power of the processor, the amount of memory, etc... For example, most players are familiar with terms like "anti-aliasing", which is a technique to make the realtime 3D look smoother, but is also asking a lot of hardware resources. If you enable or disable it in a game, this one can run faster or slower. So making a game with a realtime 3D engine is a big challenge if you're not really familiar with it.
So I decided to build ASA like a movie, but an interactive one, made of pictures and videos.
If you make pre-calculated graphics like in ASA, you can get rid of a lot of technical problems, and the hardware to play the game is not important anymore. You don't need to care about the amount of polygons in your scene, you can use more realistic lightings with better shadows, and you can even use magical tools such as photoshop... etc !
(Pictures from Mass Effect 3. Left : realtime 3D, in-game. Right : precalculated pic, more realistic.)
I'm sure you see the difference between a CG movie (like the game introduction) and a realtime animation scene (like a cut-scene) in a video game, don't you ? Well, that's exactly the difference between precalculated and realtime 3D.
Where realtime offers flexibility (you can move the camera in the scene, make the hero run and jump), precalculated offers high quality pictures (like a movie in theaters). Somehow...
2 - Rendering times and computer power...
Choosing to use only precalculated graphics made things much easier for me when making ASA - as explained above - because I could concentrate only on making the game, not on technical restrictions.
But there's a downside ! All the parameters that represent a full 3D scene (polygons, textures, lights...) have to be calculated at a given time, and that's a step called "rendering".
From this rendering step, you will obtain either a picture or a sequence of pictures (video).
(1 : realtime, no texture. 2 : original render. 3 : final render, with compositing)
Rendering is somehow "going from the 3D software to the final picture". You can see it as a compilation of the settings of your 3D scene. Then, the computer has a lot of calculations to do.
The problem of these calculations is that they can require a huge amount of time. Of course, that depends on your work. For a single picture, it's quite fast, but for a video, it's something you have to take in account in your production process. A video is composed of a succession of single pictures, you know it. In ASA, you have 25 pictures per second in the videos.
In my case, "rendering" a single picture could take from 1 to 15 minutes (15 is a maximum that I tried not to reach). In average, it was something like 3 minutes per picture.
Maybe you think that these 3 minutes are not an enormous amount of time ? Then you should try to report these 3 min of rendering per picture to the total number of pictures in the game.
ASA counts approximately 20 minutes of video and we said there were 25 pictures per second. That makes 1200 seconds at 25 pictures/s... or 30 000 pictures in total to calculate !
Still not convinced it's a lot ? Remember, the computer needs an average of 3 minutes to calculate one single picture.. and it had 30k ones to render. That means my poor laptop PC of 5-years old worked on calculating the ASA movies during 30 000 x 3 = 90 000 minutes, or 1 500 hours, or 62 days.
(ASA decomposed movement : this short video of 4 seconds is made of 105 pictures and had been rendered in 442 minutes = 7+ hours)
62 days, it is enormous : it's almost 2 months, that is to say almost half of the time I spent on developing ASA (5 months). And the worst is that, when the computer is calculating the final renderings, you can't do anything else, you can't work ! Because all the resources (processor, ram, graphic card) are required by the calculation !
tip : if you're in such a case, make sure that your renderings always happen in the night when you sleep !!
note : the rendering times can be reduced significantly if you have a very strong computer. Most societies working with pre-calculated 3D (game movies, cinema, advertising...) are using "render farms", which are like a network of powerful computers dedicated to 3D rendering !
If you have a game project and don't want to make it in realtime 3D, and if you think of making a Myst clone or something like Final Fantasy on PSX (or anything else) with precalculated 3D environments, then you have to be aware of these calculation times during the production process. That's important if your production planning is quite restrictive.
- if your game is based on static pictures only, it shouldn't be a big problem to use this method. It shall even be a strength : you can use photoshop to improve the quality of your 3D pics, and in the end, you will have something of a great quality (but without movement, on the contrary of realtime).
- if your game is quite ambitious and includes quite a lot of cutscenes (videos), you'd better get ready for a lot of troubles with the rendering step ! Think of your production process, and make sure it wouldn't be easier to make it in realtime.