In contrast, you play as 0x, a lone creature in a monochrome, industrial world.

While traversing through the game, you have the power to "Flip" the background, making some objects interactable, and some uninteractable.

For example, a White Block in a black background would be interactable, but a black block in a black background would be uninteractable, and vice versa.

This is all to collect the elusive RGB Sphere, the only color in the melancholy world.

Work your way through 15 challenging levels, using the mechanics and obstacles to obtain the RGB sphere and bring color to this world.

Main Programmer: Pygasm
Artist: Smeaton

Source can also be found at: https://github.com/Pygasm/Contrast

Requires python 3.x and pygame.



Watch your step
Presented by Cosmologicon

Very challenging
Presented by yarolig

Smooooothhh Background
Presented by speedlimit35

Give this entry an award


Ratings (show detail)

Overall: 3.8
Fun: 4
Production: 3.6
Innovation: 3.8

Respondents: 18


File Uploader Date
Universal Port (Hopefully)
Pygasm 2018/04/22 20:45
Pygasm 2018/04/21 22:46

Diary Entries

10 Hours

Excited :)

Add a comment

First stage: Design

The game will be about a monochrome world with a line separating two contrasting areas, one initially white, one initially black. As you traverse you can flip yourself to the opposite area where gravity is reversed and vice versa, what you cant control is the backgrounds, which shift colors and make drastic changes to the environment, black objects are invisible in black and therefore non-interactable. White is interact-able in a black background, however and vice versa. The backgrounds change only when you press certain buttons which could flip both the top and the bottom, only the top, or only the bottom.

Now we need to get coding!

Add a comment

Stage 2: Core mechanics

The thing we did now was to add the basic platformer mechanics, like jumping, and the sort.
You can see the result above.

Add a comment

Stage 2.5: Setbacks

So of course, I continued adding more and more features to the game, including animation and a flip mechanic!

we fly high blares in the background

Sadly the flip mechanic, which was supposed to teleport you to the other area, never panned out, so I removed all traces from it and started from a blank slate, working on only one mechanic.

Add a comment

Stage 3: Major Mechanics

I fixed up animations, added some nice background things, and added music! (PilotRedSuns 'Greetings')

I need to add more sfx and images, more obstacles, and finally design levels I have friday off so that day will be a complete coding marathon.

Add a comment

Stage 4: More stuff

I added a title, credits, icon, cloud decor, and more sounds for everything from jumping to flipping colors

I need to add obstacles and design levels :/

Add a comment

Stage 5: Almost done!

Today was intense, first I added several obstacles such as falling platforms and jump pads, and then added three levels, need to add 6 more levels.

And now, heres me being immature.

1 comment

Stage 6: DONE!

All files uploaded 22 minutes to end! Got the last levels done, polished mechanics, fixed some random bugs that popped out, and pushed everything up to github and uploaded the 118mb .zip! phew!

Now, enjoy the RGB Sphere.

Add a comment

Contrast download

There are three ways to get contrast.

Way 1: Get it from github, go to github.com/Pygasm/Contrast and download the game, then read the instructions on "run.txt"

Way 2: Get it from my pyweek entry, click on my main entry, and click on "Contrast.zip", and read run.txt after extracting.

Way 3: Get it from my domain (Not done, will add later)

If run.txt is not included, here are the instructions

1. Install python 3.6.x
2. Run this command to install pygame, py -m pip install pygame
3. Open "Contrast.py"

Add a comment

Currently Rewriting

I never thought I had to say that I needed to optimize a 2d python game, but here I am :/

Mostly It will contain less looped functions and more variables in order to lessen the load on the CPU, along with better written code that allows me to return some functions that used to be windows-only

Still not sure to push it to github during judging since that could cause me to be disqualified in some loopholey way.



Thank you all so much for the awards! I could not have done it without you!

An optimized version with more levels is in the works and will be released soon, stay tuned!

1 comment


So yeah, I was .10 points away from winning overall >.<

Either way I got two silvers, one gold, and one bronze, so that will make up for it.

Im going to review the reviews and try to explain some criticisms you have.


I loved all the different features added to the game. Easier to get started, hard to win.

Neat! I actually was not expecting praise for the level design, because that was the last thing we did and was the most rushed.

I feel like the basic idea has been done but the execution was really good here. Good
challenging platforming, although it could have used less floaty controls. I often slipped
off of platforms that I had landed on. By the end I had mostly gotten used to it, though. Thanks,
this was fun! (119 MB for the download, though? I definitely recommend using ogg or mp3 or
something instead of wav for your soundtrack!)

Yeah, I used an acceleration algorithm here which made the controls floaty, going to tweak it. Plus alot of the large files were from redundancy (No spritesheets, wav files). Luckily I am going to tweak these in the new release.

Nice platformer. It felt somewhat smooth compared to a lot I've played for some reason (it may
be related to the level design). The background was also nice. You should probably test on some
other computers, because it started to lag a little bit before what I think is the end (the snivy
sprite). If you guys made the music for this, great work on that. ^-^

That was the easter egg XD. Someone enjoys the floaty controls at least! The music was not ours, but PilotRedSuns (Its been around longer than a month). Go check him/her out!

well done

Thanks ^^

I like that the levels are short and progressive. Well done.

More praise for level design, whoa!

I'd say the production quality of this is well done. I like how you used markdown in the docs to
drag pictures in. I suppose not everyone would appreciate this, but I did because PyCharm's
markdown add-on rendered a nice doc. The controls were tight, the gravity was realistic
enough, and the floaty things were an appealing backdrop.

As far as innovation, I think you did also well. It also made it quite challenging, switching
between the two terrains. I needed some help here, perhaps some ghosted images so I didn't have
to rely so much on visual memory and try-try-try-retry until I get it right. That's just my
preference, but it did affect my scoring...

for fun. I got a handful of levels in and found it so difficult, I could not look forward to 8 or 10
more levels. I see in your diary how you had to optimize your performance, so I suppose adding
the nice ghosty terrain would not have been possible anyway. On the last screen the frame rate
dropped drastically, and everything was in slowmo. I'm not hung up on those issues, so I can
honestly say I still had fun. I wish I could have played the whole thing. It is a let down when I

Please take my negative feedback as it's meant, only to help you improve. No criticism from me,
I know the challenges of Python, pygame, and pyweek. :) Thanks for making this game.

Thanks! Guess it depends on preference to like a game or not...

Not much special about the theme but! Neat background and graphics and stuffs like those.
There were a plenty of efforts put in the graphics and levels! Nice game overall, would be
better if the performance could be improved, it's a little laggy for my poor laptop. And if
would be better if there are dialogs that are meaningful!

Yeah, that was a major issue. Too many image manipulations at draw-time, luckily those got moved to load-time and are now not as intensive.

Another jumping game! Interesting. Some levels are too challenging.

I could see that.

There was a point where i came stuck and i have to close the game and start from the beginning, a
reset button would have been nice.

Oh noes! Another victim of my innocent easter egg ;_;

This was an interesting game to play, and quite a clever use of the two worlds theme. I was killed
lots of times! :-)

Thanks ^^

Good keyboard smasher.

Thanks again!

Such clever level design! love it!

Wow! Thanks!

This was pretty challenging, which was good. Some of the levels required a lot of
experimentation and lateral thinking to find a working solution, which I liked a lot. I think
the controls were a little floaty though - slow acceleration and deceleration, which is
frustrating in a platform game - and there were several collision detection bugs.

I know, again, the algorithm I used was not the best, but I can tweak the friction. Thanks anyway.

This makes really fun playing. Switching between the different worlds during game play is
perfectly implemented and innovative. Fun, skill and puzzle in a simple, innovative and
intuitive form. Also sound and the greyscale color palette made the whole thing round.

Thanks, I thought people would enjoy the art-style.

I really liked this entry: the concept was very cool and there were some great level designs … I
found it challenging but not frustrating. Music and graphics were cute and I liked the end
sequence, a feeling of completion. Well done! One thing to note is that the game seemed to get
slower and slower (i.e. framerate) the longer I took in a level … not sure if this was

No, It was not. Again, bad optimization.

Really enjoyable game. The fun of an old-school platformer with a novel twist. Worthy of
further development.

Yep! Im adding some more levels and rewriting/optimizing the game.

Great game! Very fun and nice. But can you use pilotredsun music?

Yep. If its been out longer than a month, you can use it.

It didn't run until I fixed a problem in the level's state machine regarding some sort of
cooldown, but that could just be me. There were also a few collision bugs and lag spikes for some
reason and i've got a pretty nice computer. Once it was working, it was pretty fun. The idea was
really nice and you did a good job.

>< Another bug that never happened to me!!! Again, optimization was an issue, thanks anyway

Anyway, thanks for getting me second place on my first pyweek! Hope you all enjoyed!

Add a comment