After having a short conversation with the people in this topic at the GMC, and seeing various other threads around there on the same subject, I decided I’d create an example GMK (and GM6, courtesy of LGM) to show people how to make a game that looks like the Mode 7 style graphics found on the SNES.
Let me note from the outset – this example does not emulate Mode 7 graphics. Mode 7 was a special function the SNES had to scale, rotate, and distort backgrounds as they were drawn, and this example does not do this. It may be possible to recreate Mode 7’s functions using surfaces, but it would be a waste of time and energy to try to emulate this system using Game Maker. So instead, I am providing this example and the following list of style rules to demonstrate that if you adhere to certain self-imposed rules / restrictions, you can make games that look very similar to the old SNES classics without having to kludge together ridiculous graphics emulations.
I’m going to use Super Mario Kart as my guide – other games in the SNES library which made use of similar Mode 7 effects (like Pilotwings, for instance) may have broken the rules I will put forth, but you can be the judge of whether or not a certain visual technique breaks the feeling of the Mode 7 style (if there truly is such a thing). With that said, here’s the list:
- Flat ground / terrain – aside from players and a few obstacles, everything drawn in 3D is flat and usually textured. Terrain receding into the distance is usually a repeated pattern. The player’s domain is typically a well-detailed and large graphic.
- Fixed camera height and angle – the camera in the game never changes altitude, and never changes the vertical angle it views the world from.
- Sprite-based objects – even though the game world was presented as a 3D land mass, players, objects, and everything else was rendered as a 2D sprite.
- 2D background – no skyboxes in Mario Kart! Backgrounds are flat, and scroll parallax style.
- No interpolation – the SNES couldn’t interpolate colors between pixels, and this was very evident in Mode 7 distortions. Turn it off.
That’s pretty much it. The example I’ve made doesn’t include everything from the list, but I think it’s a pretty good example of how the Mode 7 effect can be created in Game Maker using regular old D3D.
You can download the example here (94 Kb).
Please use this example for learning only, and do not build off of it without asking permission from me first. Enjoy!