March 2022 challenge: “My evil twin”
Posted by Tee on 2022/04/10 19:53
Thanks for all your comments!
This one was really fun to design. I do feel like it needed an extra day to make it shine though. I'll discuss the main gimmick in the game, so skip this post if you want to avoid spoilers. Let me start with the non-spoilery development stuff.
The main ideas of this game took me a while to narrow down. I only started implementation around mid-week, which is why things might look a bit clumsy. In particular, if I had more time, I would have fixed/improved animations, added at least one more level, improved the undo system, and added an actual ending. I had a broader storyline in mind that I'll talk about below but I could only hint at it in the final version. Overall, it went fine given the limited time.
Having two separate games that interacted with each other was a fun idea to play with. I was trying to think of an idea where you would have a divided game (other Pyweek games had similar concepts) and stumbled into the question, why not make them actual separate games that interacted with each other?
From then on, the challenge was what to make, and this was harder than it sounds. Early iterations had more complicated puzzle mechanics, but I realized that I needed to make them as simple as possible because otherwise you couldn't combine them. I also scrapped an idea where you would have certain "glitching tiles" that served as a portal to transfer objects from one game to the other, which I think would have been a cool direction but completely different.
I chose the path constraint because it adds depth to the game without much complexity and doesn't interfere with combining the games, and it kind of came naturally after I decided to put a "ball of twine" in the game to play with the "entwined" idea. I'm especially fond of this constraint because it was the basis for another Pyweek game of mine that did well, Walkway, 10 years ago (wow, was it that long?). Nowadays you have famous games like The Witness that went extremely deep with this mechanic, so it doesn't feel too novel anymore, but I think it's still a powerful puzzle mechanic and very interesting to combine with other mechanics.
In the end, I settled with the idea of shared buttons (ultimately tokens): hitting a button would affect both worlds. The red mechanic was pretty simple, the blue one I think is more interesting especially in combination with the path constraint, since it could block you from triggering it towards certain directions depending on your movement. I wish I had more time to explore these mechanics, I think it's possible to do more with them, but that's how Pyweek goes.
I really wish I had more time for levels. It was unusually hard to design them, I had to iterate a lot. Each pair of levels was taking 1-2 hours. The reason is that they needed to both be interesting individually, and together.
My method was to first make each individual version, and then hope that I'd be lucky enough to tweak them to make the combined version. But every time that I tweaked a level, I realized that I was breaking either the individual or the combined version, or making them less interesting. The main reason why it was so easy to break was the blue mechanic. I could add more platforms for the combined version, but they actually would interact with how other platforms moved around, which would make the blue version unsolvable. And because the area is so tight, it's difficult to make things work together. In the end, unfortunately I was only able to make 2 real pairs of levels and a tutorial, but I think because you play the game three times, it's still a reasonable length for a short Pyweek game.
Finally, I had no idea how difficult these puzzles would be. Usually I get a lot of comments on being too difficult -- and I do usually try to tone it down, I'm just not great at it -- but I was so tight on time, and I didn't have full control of the levels for the above reasons, so I kind of left it to chance. Only one person said it was too difficult so it looks like it wasn't a disaster, which is better than how it usually goes. :)
I had planned a neat storyline for the game, even though I kind of knew I wouldn't have time to include it.
I wanted the twins to chat with the player during or between the levels, talking about how their game was better than the other. At the end of each game, each twin would finally lament that their puzzles were not that interesting and they wish they made more interesting puzzles. There also would be a mysterious portal of the opposite color at the end of each game guarded by num_levels torches (or perhaps just the torches arranged in a mystical circle), which is why the current version has flames as the special combined token. Once you play them together, the dialogue would change and they would first keep complaining about each other, but they would slowly appreciate that the puzzles are more interesting together. In the final ending, as you light the torches with the flames you get throughout the game, the games would mix up together, and the twins would reconciliate and come to the conclusion that they should have worked together to make the game, and finally thank the player for making them realize that.
I had a little fun with the game title. Of course, the title "Entwined" itself serves as a hint that the two games are intertwined and interact with each other. What I'm not sure if anyone noticed this is that, in the main screen when you run both games together, the reason why the "TWIN" part of "ENTWINED" becomes red (blue) in the blue (red) game is not only to highlight the wordplay with the "twin" Pyweek theme, but to indicate that the red (blue) twin has joined the game. :)
I had limited time to play your games (sorry if I didn't make it to yours), but I've enjoyed playing them. Congratulations to everyone who finished, and to Cosmologicon and Mirror Mirror! Thanks mauve for hosting. See you all next time.
Posted by Blueish on 2022/04/10 06:41
It did ok. Negative health was an issue. I wasnt able to fit in more music than the SFX. Also some people said that Up + Left and Up + right was not working. I did some testing and it works fine on Mac, so its probably a Windows only bug (weird). I intentionally made the game difficult. Others didnt know the controls/ how to change the settings but that was explained in the README. One player also said they couldnt switch back to the other twin but that is probably because the Meter wasnt full (again, explained in the README).
Posted by zwerver on 2022/03/28 12:31
I love you.
Posted by mit-mit on 2022/03/28 12:06
We have posted a playthrough video of the game here: https://youtu.be/5AHixv2CV7Q
Posted by catornot on 2022/03/28 02:07
After fixing bugs I forgot to change the start level back to 0. woops.
I hope it won't be that hard for you to figure out everything.
Two Day Escapade - The song for the Underwater Map
Posted by Kevin-Dono on 2022/03/28 00:01
This is the song that was made for the underwater map, but wasn't able to get put in 😭
Just putting here because why not :D
https://youtu.be/SpWb_5Oa_xY Underwater Jam
Posted by Anonymous4045 on 2022/03/27 23:35
Whew. A lot has happened in the past 48 hours. I'll try to give a rundown here.
Yesterday, I worked a lot on polishing and optimizations. I also made all the sound effects and music.
Today was spent packaging files and making things compatible for the most people possible. I tried to do stuff with pyinstaller, but kept getting appdir errors on launch.
All in all, I'm pretty happy with how the game came out. I spent probably 20+ hours on it in total. If I were to go back, I'd change things, sure, but for a first pyweek entry, I'd say I did decently well. I went from making snake to pong to this 😂
What I used to make the game:
Code development: PyCharm
Sprite creation: Piskel
Sound effects: Audacity
Music: Bosca Ceoil
Posted by gummbum on 2022/03/27 19:15
Hi, people. Our game was fashioned after the old popular KABOOM! although it's not a complete ripoff. Knowing this you might see some of the elements of that old favorite in the evil twin dropping stuff, the collection mechanic and progressive levels design. Once we started design in earnest the game concept took a sharp detour that only secretly resembled KABOOM. But we kept KABOOM in the name to pay homage to that old school icon that helped define early game genre.
Let us know what you think here and in the ratings. Happy Pyweek rating!
Posted by BeautifulReques on 2022/03/27 16:11
Things I forgot in README.md
In windows you need to go the src and run the game
Posted by catornot on 2022/03/27 15:54
After uploading the project, I discovered there was a bug with some game objects that made the game easier, so it had to be fixed.