u/untitledparsnip

Image 1 — How's my Super Mario Kart graphics engine? (Python)
Image 2 — How's my Super Mario Kart graphics engine? (Python)
Image 3 — How's my Super Mario Kart graphics engine? (Python)
Image 4 — How's my Super Mario Kart graphics engine? (Python)
Image 5 — How's my Super Mario Kart graphics engine? (Python)
Image 6 — How's my Super Mario Kart graphics engine? (Python)
Image 7 — How's my Super Mario Kart graphics engine? (Python)
▲ 45 r/gameDevPromotion+5 crossposts

How's my Super Mario Kart graphics engine? (Python)

GitHub page

I was researching about Super Mario Kart recently and how it managed to create 3D graphics on such a primitive console, when I found out it wasn't 3D at all. It's called Mode 7 graphics.

It works by turning a top-down 2D track map into scanlines, then widening scanlines closer to the player to make the map have a one-point perspective.

Anyways, I decided to use this research to make a mode 7 rendering engine in Python and Pygame. It's called SevEngine, and the latest update's v1.1. Its purpose is to serve as a helping hand for retro game developers trying to figure out complex math like Mode 7, but it's still functional in every sense.

It's completely customizable with variables for FOV, texture scaling, shading, physics, and more, and works with any skybox and floor texture that you put into it.

Non-Python-coders can still play it like a video game using the sample textures and default settings along with WASD/arrow keys. Check it out for yourself on the GitHub page!

u/untitledparsnip — 5 days ago
▲ 33 r/pygame

Super Mario Kart graphics engine on Pygame!

MAJOR UPDATE v1.1 OUT NOW! SCROLL DOWN FOR GIFS AND IMAGES

GIFS AND IMAGES BELOW

GitHub page (with source code for all versions)

Is it pygame, Pygame, or PyGame? Anyways, I did a little research on the Mode 7 graphics from Super Mario Kart on the SNES that made it look 3d, and I found it fairly easy to emulate in pygame, thanks to a few YouTube tutorials.

I wanted to make a game engine for retro game developers, but casual redditors can also use it. It's extremely customizable with variables for shading, FOV, physics, and scaling. You can use your own assets with it.

It comes with two sample skies and two sample maps, so users can also enjoy playing it, too! It's very fun although its poorly optimized. I'm working on the further versions which will have numba optimization and collision. As of now, it focuses more on the math part: it works by scaling a top-down 2d map to look 3d by widening the scanlines closer to the player. Think of a square with a pathway drawn onto it, and the square is widened into a trapezoid at its lower ends to have a one-point perspective look.

Anyways, here are some fun sneak peeks! The name of the engine is SevEngine v1 and I'm planning on releasing more versions. Stay notified in this post.

At default settings

The settings I found best

Settings section in source code

I used a different skybox and settings to get a different experience

Anyone can contribute on the GitHub page! Please do! And, as anyone else, I would LOVE any feedback or suggestions!

UPDATE v1.1:

Hello redittors! As of now, I've published the new update v1.1 for SevEngine! Here are the major additions:

MUCH higher FPS and resolution using numba

Finite maps with color-customizable voids

v1.1 demo

As you can see, the rendering is much smoother and less pixelated, and the map texture doesn't keep repeating itself, with a black void beyond the borders (you can change the void's color). This will work with any skybox and floor texture that you give.

And of course, the finite rendering can be disabled to produce the original v1 infinite repeating map texture.

For more information and to inspect the files, go to the GitHub page

reddit.com
u/untitledparsnip — 6 days ago