April 2018 challenge: “Two worlds”

Contrast - Post-Mortem

Posted by Pygasm on 2018/05/07 00:12

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

Otherworlder - postmortem

Posted by Cosmologicon on 2018/05/06 23:55

The game structure was strongly inspired by a popular indie Flash game No One Has to Die. It contains a series of grid-based puzzles, each of which you need to play through several different times with different starting conditions to get different outcomes. In fact I was worried people might see it as too similar, but if they did nobody said anything.

The puzzles in No One Has to Die are (IMHO) quite easy. The main focus is on the unfolding story and the looping gameplay. I think they didn't want anyone to have trouble completing the game.

The puzzles in Otherworlder are also easy, and three commenters agreed. On the other hand two said they were unable to complete the game, so I'm not sure what would have been the best solution here. Maybe an easy mode.

One major limiting issue is that we didn't have the mechanics worked out until Wednesday. The original plan was to have a third character that's the cause of the tiles disappearing, who's invisible until the final act, and you had to deduce that there's something moving around and attacking you without being able to see it. In the end this was too complicated to make puzzles for, given our self-imposed constraint of being able to play through three times with three different outcomes. Simpler, like usual, turned out to be better, but finding exactly which simple mechanics to use is complicated. EnigmaticArcher also designed a couple levels using a switch mechanic that I didn't have time to implement.

The production on this game didn't quite live up to my standard, so I think our production score was higher than I would have given. Yeah there are no major bugs that came up, and I did get a couple special effects in, but I had several more in mind that I didn't have time for, and the whole thing feels rough around the edges to me. The characters as game pieces was an intentionally lazy choice to avoid having to animate. Also we didn't have voice acting or custom music.

I decided to keep the team and scope small since I had to move a few days after the deadline, and I think it worked out okay. But I'm hoping to make more involved games again in the future.

Thank you to everyone who played the game and left feedback! Congratulations to everyone who entered! I'm looking forward to seeing you all again next time!

1 comment

The Desert and the Sea - Post-mortem/Wrap-up

Posted by mit-mit on 2018/05/06 12:00

Thanks to everyone who played the game and left feedback! I had a lot of fun this comp ... there were some really entertaining games. Congrats to Cosmo and Enigmatic Archer for the team win. A few notes/after-thoughts about the game:

I was reasonably happy with how the game turned out: I had a lot of fun doing the world design and was happy to get a first-person perspective game to work well in python (I learnt a lot more about using OpenGL, and the wonders of Google poly :) ). I was happy with the visuals and sound, which I tried to put a lot of attention into this comp.

I wasn't really all that happy with the puzzle designs, and didn't really find the game "fun" to play. I had the idea of "portal-like" spatial puzzles from day one, but didn't really have a clear idea of exactly how I would implement these. I think I spent the first 5-6 days just so immersed in the fun of world-building that I got to day 6/7 and was like "oh yeah, I forgot this is supposed to be a game with like an objective and stuff ..." so got caught in the classic trap of not planning the levels/game mechanics out properly from the start. I also wanted to have more objects/mechanics that you would interact with (like switches that control things etc.), but ran out of time in implementing them. I built the entire final maze level in literally the last 1.5 hours, so super rushed at the end.

Congrats to everyone who participated and finished a game, particularly those competing for the first time: make sure you come back for the next comp! I love that this competition exists! Thanks too Mauve for running the ship, much appreciated!


Two Worlds - A Game About The Game Called Two Worlds - PDCA Cycle

Posted by PyJ on 2018/05/06 09:09

Plan, discarded, canceled and aborted. I planed to draw some pictures. I made a rough sample screen image, that turned out to be the final one. The plot was left in need of heavy editing. From the last challenge I leaned that I needed to spend more time on making data than on coding. 70%-30% was the balance I estimated. The result was 5%-95%. I'm not a productive programmer. I tried to write a clean code. It's a benefit of the full-scratch restriction. It still has some ridiculous coding design, so do not read it.

I chose to use a scale-up screen. I think it's good to apply a low resolution screen for a 2D game. Imagine a case that you make a platform game, and you use hand-drawn small chips. You will have to fill 1920x1080 screen, that will leave a lot of space between game characters, and it affects game balance. If using a small window for small chips, it would be difficult to see what's happening.
It was my challenge to figure out how to implement the screen scaling into pygame dirty-sprite system, as I could not find a suitable tutorial for it. The outcome was what you had seen. It looks fine with full screen.

I'm satisfied with the fact that I had made something playable three times in a row.
Many thanks to reviewers and PyWeek staff.

Add a comment

Jim's Big Win - Pyweek 25 reflection

Posted by speedlimit35 on 2018/05/06 06:49

Hi everyone,

Thank you for the feedback and awards given to our entry. I hope you guys enjoyed it! I was surprised at the number of positive replies we got. The awards, were a bit concerning but I thought it was pretty funny. Also, this is our first Pyweek and I actually have close to 0 experience with programming. But throughout this competition, even though we did not get the top 3 for any of the categories, I think I still got a lot out of this. Not only did I figure out to use Github with Kyler and more about the world of the cool chameleons overall, I also learned that I am the master spaghetti coder. Thank you Kyler for organizing my junk code!

Now I will Reply to all the feedback for fun :)

Fun Prod Inno Disq N/W Comments

1 1 2   

Just a little strange for me. I don't get it. I just hid in a corner during the game and then you

can't die. It's a little stupid...

There was a help page. It is in the menu page. I think if you read it, the game will make more sense. 

3 4 3   

ha ha, I won the game just hitting all the rock keys randomly!!!

Yeah, I am not advanced enough to make it more complicated. I hope you had fun though!

3 4 3   

Very silly game story. That was entertaining. You guys obviously put a lot of care into this,

made it comical, and your labor shows. This was a fine first pyweek. Congrats.

Thank You. This comment made me really happy.

3 3 4   

Great voice acting and art. The game was very hard though. You need three hands.

:) Kyler kept telling me that the game was too hard

3 3 3   

Pretty sure that some of it was intended to be "abstract". Not much gameplay interested me. But

a nice first pyweek entry.


3 3 3   

A very strange game.


4 2 1   

Much wow...

Much Thank

3 3 2   



3 3 3   

Nice graphics, speech effects and a story which makes curious about what happens next. I still

don't know whether one can really win the game. I gets really fast at the end.

It is completely possible to win the game. I asked a random kid I know to play it and he beat it on his second try. If you still have trouble beating it, you can cheat by looking at the code. I think that will make it pretty clear on how to beat the game easily.

4 4 3   

Fun had. I liked the voice overs, cool art and zany, confusing story. I beat the boss by mashing

the a/d/c/b/h/o with six fingers as fast as I could. I enjoyed my apple green onion sandwich :)


4 4 4   

It was fun! First time I play I skipped intro and don't know that rocks can be killed. I think it is

impossible to win. Second time I read intro and try to kill rocks. I think it is impossible to

win. Rocks flying too fast. Third time I just launched the game because I want to listen its

music and look at its pictures. May be I missed something. Fourth time I play the game after a

little code diving. I win! It is one of funniest games in this PyWeek!

Thank You! Sorry if we made the game too hard though...

2 4 4   

An impossible game, until you figure out spamming the keys works, then it's too easy. Weird but

enjoyable storyline.

Thank You!

2 3 1   

Acid byproduct of Contemporary art?


1 2 1   

I ended up just mashing keys in order to win. I can't imagine pressing them reflexively as

intended. I don't find memes amusing so the story and graphics really aren't for me.

The meme was just surface level stuff that Kyler wanted to add on. I hope you enjoyed the music then!

1 2 2   

Although this was probaly meant to be ironic and purposely bad under the likes of pilotredsun

(which the artwork reminded me of the most), the use of outdated trends and the poor concept did

not connect with me.

It's ok. It's normal to feel really bad when you see a dead overused meme show up in something. And was not meant to ironic or purposely bad. Just wanted to clear things up. (Why did the snake cover himself with butter and salt?? Because he was a popCORN snake!)

Congratulations to everyone who finished this project on time! It is a very challenging challenge and involves real deal good time management which I do not really have for some reason. Need to learn how to program over the summer... And again, Thank You everyone for giving us feedback! I really felt happy when I read the positive comments especially after 2 weeks of waiting. Thank Thank Thank

Here is a picture I drew do conclude this entry.


I SEE YOU. THE GANG. SPOOK? Next pyweek I will be going solo. See you guys next pyweek...

1 comment

Parallel - And it's over. Okay then...

Posted by OrionDark7 on 2018/05/06 06:10

Okay I learned something (hey, that's the only reason I'm here.), and I figured out what I should've improved, but it mostly comes down to one thing:

COMMUNICATION (a.k.a. the one thing i'm not good at)

What we could've changed and done better:

  • Tell people that running into walls kills you
  • Tell people that there was something in the settings to make the controls less jittery (Few people figured it out)
  • Tell people why they died so they understand.

Oh and one more thing, whoever marked our entry "not working" just for using python 2.7, please note: you're supposed to rate people's games on the aspects of the game, not the technologies it's based on.

Well that was a good PyWeek, see you all in 6 months.

Add a comment

Flip - Flip: Postmortem

Posted by Tee on 2018/05/06 03:56

Hey everyone,

Thank you all for the feedback! I'm glad that you had fun! Here's a quick postmortem.

Puzzle design

I always enjoy designing these puzzle games. It's like a little system that you have to figure out how to make fun. This one in particular was tricky: the frequency aspect of the puzzle led to some interesting challenges.

The fact that the board is laid out in alternating colors like a chessboard is not arbitrary. The location of the frequency gem is actually very important to the solution of the puzzle. For gems with even value, depending whether the gem is on a light or a dark tile, it allows or not certain patterns to be traversed. This is sort of a parity property. While this is also sort of true for odd gems, odd gems are special in that their "parity" depends on whether you pick them up while the world is red or blue. However, I thought that was too obscure and would lead to lost players wondering what they did wrong, so for the odd gems I made the levels so you are actually forced to pick them up at certain colors (if I haven't missed anything). I play a lot with this in the later levels, which have more than one gem of the same value but with different "parities".

I also had some trouble with depth. I'm not sure how you as players felt, but with only the components in the first part of the game, I wasn't able to make a super deep level. Mostly you had to figure out what order to do things, what path to choose, and how to switch to the color/state that you want. What I was initially hoping for was that you might have to think about the "number of turns left to flip" with which you want to arrive at a certain tile. However, it turns out that there's little flexibility there in the sense that the player can always sort of adjust themselves at the tile instead of having to plan ahead.

In other words, aside from choosing the right order to do things, the puzzle at its core is "local". This is why I added the stabilizers that appear in the later levels: they let you affect tiles that are far away, which gave me more flexibility in making interesting levels. For example, you may have to interact with stabilizers to activate a "support" to pass a certain pattern ("support" is what I call an adjacent tile that lets you switch colors by having a safe place to move). I think this is not something that is obvious and I hope it has the ability to give some players an "aha" moment.

I'm curious to hear if you figured out these properties of the puzzle! I didn't until I got deeper into the level design, so while I hope they influenced the decisions of the player at an intuitive level, I have no idea if a player would notice them explicitly.

Response to comments

Thanks for your comments! I especially appreciate all the positive feedback and I'm just glad that I made something most of you enjoyed. :) I want to reply to a few of the comments here:

"I feel like you applied the theme in a very direct way to the puzzle genre instead of doing something a bit more out of the box."

I like to think that there is some innovation in my game -- I haven't played a similar puzzle -- but I do see your point. Throughout the years I found out that the only way I can finish Pyweeks is by making simple and minimal games (and grow from them only if I have the time). Even if this was a simple puzzle idea, I thought it was a really interesting idea to explore in a design sense. With time, I've started to care less about the ideas that seed a game and more about the way they are grown. I think that's where the most interesting challenges lie.

"please make a simple, easy way to run the game consistent with the readme."

Sorry to hear you had trouble. I'm not sure what happened: all you need is Python 3 and Pygame. Also, I'd appreciate it if next time you tick the DNW checkbox so I don't end up with a 1 1 1!

"Would have loved an undo button" / "When I played later levels, I wanted a rewinding function."

Yes! Sorry about that. I didn't have the time to include one and I thought it wasn't too bad not to have one.

"a visual indication on the tiles themselves when they were about to change."

Good point! The indicator on top tells you when they will change, but I completely agree that it's inconvenient to keep looking away from the puzzle. It's not the first time I missed something like this (i.e. having an indicator of something important outside the visual focus of the player). I tend to playtest my games by myself, so I often miss things that are obvious to me but not to a new player. But yes, it wouldn't have been hard to have added it; I would have made the character glimmer and added an indicator sound.

"The music itself was good, but I don't think it was exactly fitting" / "This is a neat puzzle game with the weirdest music ever. Why all the meowing..?" / "...best music..." / "choice of music [...] are pretty top notch"

It seems that my choice of music was a bit polarizing. :) I wanted the music to be somewhat quirky and fun, and that's what I found. Music isn't my strength at all -- I can't make music, so I just choose one that I like in the limited amount of time that I have (with the appropriate license, of course). (I hope that in general people don't take into account the music of my games too much, since they're not mine...)

"A bit more bling would have boosted the production score even more." / "Given the simplicity of the game concept, I would like to see better graphical and sound effects (ie. juice)." / "I would've give it an exceptional innovation if there are more functioning events and storyline maybe."

Indeed. I wish I had the time. And, not that it excuses anything, but the simplicity is intentional. Otherwise I wouldn't be able to finish these games in one week. In other words: don't expect that to change. :)

"I would love that if there was some sort of objective other than completing levels. As it is, the motivation is to say that you finished which I don't find very compelling."

My answer to this is also that I wish I had the time. But I argue that, ideally, a puzzle game should be fun by itself and not need too much fluff. If you didn't find it compelling, then I have failed you. :)

Unfortunately I didn't get a chance to play and rate your games this time. The timing of this Pyweek was not very good for me. But congratulations to mit-mit and to Universe Factory for winning, and to everyone else who finished their games! Thanks to mauve for hosting this Pyweek and see you next time!



Posted by Pygasm on 2018/05/06 01:55

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

Jim's Big Win - Thank you so much!

Posted by kylerchin on 2018/05/05 08:48

Judging ends in a few hrs, thank you so much! There is still some time left before the end of Pyweek 25, so by the power of this awesome community, Help us get to number #1!
Thank you so much everyone for all the awesome awards! #pygame
We got a Jackie Chan Award!

Alright, I'm going to live my life now. See you in Exactly 15hrs and 15min!

1 comment

Contrast - Currently Rewriting

Posted by Pygasm on 2018/04/25 12:25

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.