What you say is true, but I just want to add onto that a little bit:
[LineSpace]
The art assets to make the game look pretty shouldn’t really be last… Like, yeah, things like the character art should only be added at the end, and before that you should use temporary art. But there are things you need to design first, or it will be very painful to make it look pretty after everything (or almost everything) is done, and the best example I can think of is level design, so I will use that:
[LineSpace]
I first want to say that if you prefer watching a video, you can watch one here. The guy there uses Unreal, but it applies to every engine. The reason it starts at 10:35 is because before that he explain Unreal-related things, which don’t matter here.
[LineSpace]
Now I will start with writing, if you prefer reading:
[LineSpace]
[LineSpace]
1. Prototype Pass: This is the very basic prototype of the level. You don’t care about making it look pretty, just make it work. Then you can get people to play it and make sure it plays good. This is pure gameplay. The layout of your level.
2. Meshing Pass: You add meshes and materials. Here you make it look pretty. You add in meshes and shapes to design how your level. It should look good and have the right shapes of your final level.
3. Lightning Pass: This is where you make everything come to life. You obviously make lightning, play with reflections, lightning, post-processing effects, details, etc.. This is not very relevant to most 2D games, but it’s extremely important for 3D games.
4. Polish Pass: You add final touches. Like particle effects, sound and basically whatever you can think of. In the video they say you should play with reflections here, but in my opinion it’s something that should only be done in the lightning pass. Though they have way more experience than me, so maybe it should be done in the polish pass.
Other things you need to do: This is not a step, you do this all the time while working on your level, in all the steps. Of course there is scripting, to make your level functional. Actually, that’s all I can think of, I just had to put it in a different category…
[LineSpace]
[LineSpace]
So every time you make a new level that will be in the game (not a test level, but an actual level), you go through those steps. You don’t put that kind of art in the end, because that will be very painful. You can find examples of how the level evolves each pass in the video.
[LineSpace]
[LineSpace]
[LineSpace]
BTW, the reason I make spaces using that “[LineSpace]” thing is because you can’t make line spaces in a reply…it’s pretty annoying. :/