Final screenshot

On the Nature of Reflections

Version 2 is recommended. It contains a workaround for later versions of pygame. For more details and to report bugs see here.

You play a theoretical physicist who is transported to a realm where he may explore the nature of reflections. Move mirrors to align lines of sight so that you and your reflection may work together.

How it fits the theme: the physicist sees his reflection as his evil twin, countering his every move.

Unfortunately I didn't have all week this time, so it's not my best work. There are 8 quick stages, with the last one being very optional. Expect 5-10 minutes of gameplay. If you get stuck at any point, hold Shift for a tip, and skip any stage you don't want to play!


Give this entry an award


Ratings (show detail)

Overall: 4.1
Fun: 3.6
Production: 4.2
Innovation: 4.6

Respondents: 10


File Uploader Date
Final entry v2
Cosmologicon 2022/03/27 18:18
Final entry v1
Cosmologicon 2022/03/27 14:17
Final screenshot
Cosmologicon 2022/03/27 14:10

Diary Entries

Final entry uploaded

Okay, the game is uploaded. It's not great. I had some other things come up so I was only able to spend a couple days worth of time on it total. I had to cut the mechanics where you work against your reflection before you work together, so the connection to the theme isn't as clear as I wanted. Still, let me know if you find any bugs.

Version difference and performance note: I recommend playing version 2 of this game. If you have the option, Pygame 1.9.6 will get you better performance than Pygame 2.1.2. On the last day when I went to test it with 2.1.2 I found a severe performance degradation. Pygame 1.9.6 is apparently much more efficient at drawing enormous polygons with pygame.draw.polygon, which is used to draw the mask for the reflection effect in the game. If you want to test whether your version of pygame is affected, try out the following code. It will either take a fraction of a second, or several seconds:

import pygame
screen = pygame.display.set_mode((500, 500))
pygame.draw.polygon(screen, (0,0,0), [(0,0), (0,100000), (100000,0)])

Because of this, version 1 is unplayably slow with Pygame 2.1.2. During the upload period, I implemented a workaround to reduce the size of the polygons drawn, which version 2 includes. Version 2 is still slower with Pygame 2.1.2 than Pygame 1.9.6, but should be playable. You'll still see bad framerates, but it should be more like 10fps than 0.1fps. Let me know if you still have any issue. Thanks!

Add a comment