PyWeek 28 challenge: “Tower”
Stacky Tower - Stacky Tower: Christmas Update!
Posted by dowski on 2019/12/22 21:45
- Present: reactivates the block below
- Snowball Gun: fires a snowball that freezes the block across from you - the next block dropped by your opponent doesn't take effect
Planet SMASH! - Planet SMASH!: Postmortem
Posted by Tee on 2019/10/14 00:22
Battle Tower - Conclusion for Battle Tower
Posted by chrisyan2000 on 2019/10/13 00:14
Welp this is all I can put together given two days ;( hopefully will have enough time for the next pyweek
And by the way, I'm pretty sure in the 'README.txt' and the front page I said to *hold* space to attack, looks like most people have missed that.
And the hitbox might feels weird because the damage detection is determined at the time one swing has finished, if you turn around before the last tick of the swing, the hitbox might feel a little weird to you.
Will make sure to make the path compatible with mac/linux as well as using python 3.7+ next time ;(
Towers of Strength - Hello world
Posted by coen on 2019/10/12 10:42
And apparently I should have posted a diary entry so people can reach me. So here it is
Apologies to anyone who failed to run my game, especially if you then tried to reach me and couldn't. I'll do better next time
Derplings: Tower Ascent - Missing requirements.txt
Posted by macskay on 2019/10/08 06:52
Spire of Chaos - A strategy guide
Posted by Darni on 2019/10/03 00:51
- Each level has an entrance and an exit that you should try to find
- Different actions take different time. Take a look at the clock on the bottom left, you have until the end of day seven or you lose.
- There's always a path to the exit of each level. If you don't find it, try searching (S key) for hidden doors in the perimeter of the explored area. If you don't have high awareness, you may need to search each square a few times to find it.
- You'll see small dark grey extensions of a corridors to the sides indicating paths that are yet unexplored.
- Check your HP bar if you're taking damage. If it's low, you can always rest (R key); that recovers all your HP. You spend a lot of time, but resting should make it unusual to lose because your HP got down to zero.
- Items can give you bonuses to actions, but you have to choose to use the item on the relevant menu. Those options are shown in green (and are generally better than the equivalent non-green option)
- You can only carry one pair of boots, if you pick one, you have to drop the other
- You are trying to get to the top of the tower, not explore everything/pick up all items/kill all monsters. If you go for a "completionist" approach, you'll most likely run out of time. many obstacles you can just walk around
- If you need to get extra items, fight monsters. They sometimes drop loot.
- Alternating search and walk makes you go more slowly, but lowers the chance of stepping on a random trap significantly.
- There are never traps where monsters or items are. And traps within doors only affect you when trying (successfully or not) to open it.
- Breaking/unlocking a door triggers a trap, but destroys the trap afterwards. Trying to untrap it might trigger it many times instead. Depending on how strong/agile you are, you might choose to take the hit. (especially if you are in a hurry)
- Walking through a trap is sometimes a good option if you're in a hurry (and the trap is not the kind that delays you)
- The exit of each level is always in the bottom right corner of the map. Try to always make progress towards it
- Try to have something on your feet always, even if you don't use it. Those acid trap pits are nasty.
- Depending on what you're good at (fighting monsters vs opening doors), you most likely want to choose a path where you can take advantage of your skills/items.
- This is a balance issue that I'd like to fix: There are more than enough health potions. So upgrading your health is usually not worth it
- This is a balance issue that I'd like to fix: escaping a monster is usually a bad idea (if you don't want to fight it, don't move into its room on the first place!). That makes the boots of escaping a pretty useless item... except for protecting your feet. Very occasionally an escape is useful (if you get to a monster room to check what's behind a corner and see that it's a dead end with nothing of value).
Babel - Finished!
Posted by LeopardShark on 2019/09/30 18:55
- If you find the button 'click' sound annoying you can disable it by commenting out line 42 in src/ui.py.
- If you want to play with a custom set of languages, you can edit the dictionary on lines 163–165 of src/text.py.
- You can give yourself more or less time by editing the inital_time() and extra_time() functions on lines 15–36 of game.py.
Improbable Mission Force - Improbable Mission Force Soundtrack
Posted by mit-mit on 2019/09/30 16:44
Hope you enjoy!
Hobot's Ascent - A wild game appeared!
Posted by rdb on 2019/09/30 11:08
Tower was not our favourite theme, but it was definitely something we could work with, by making that the setting of the game world. I teamed up this time with momojohobo, who had greatly impressed me with his ability to animate and produce music last PyWeek. He encouraged me to try a new art style for this game, which was inspired by games like Samorost and Machinarium. I'd never tried this before, but I wanted to make a 2-D game this time around, and I was happy to try something new; I quickly learned that the GIMP's Clone, Perspective and Burn tools would become my new friends for the week.
During the first few days, all seemed well; my teammate created the charming titular character while I started work on the first two levels. After I'd drawn each level I'd hand it off to momojohobo to do his superb animation magic in Blender 2.80. Because I had never done this kind of thing before, other than a little bit of practice on the Saturday before PyWeek, I was a little unconfident and slow; but I was nonetheless quite pleased with the results—I'm especially proud of how the second floor turned out.
Where we ran into significant trouble was with the export pipeline. Because the recently-released Blender 2.80 had changed some core elements of its API, the existing exporters to Panda3D didn't work; fortunately, there was now a glTF 2.0 exporter in Blender, and we could import those in Panda3D with the help of the panda3d-gltf plug-in on PyPI. But, these things were less battle-tested. They actually performed admirably well, but given our somewhat esoteric uses, we ran into a lot little issues here and there. Each new issue we encountered required hours of debugging and hours more of trying to find a workaround. We also ended up with a quite elaborate script to fix up and optimize the assets after conversion.
At the point where we had ironed out or worked around most of the issues, we had only a little over three days left, and the stress could be felt—we had only two and a half levels, and new issues could still pop up around any corner. We both agreed that we weren't going to worry about finishing a game on time, but primarily to just have fun. Though the initial plan was that I would draw all the levels, we realised that I really needed to start writing some code, so momojohobo took over the level design of the remaining levels.
The last two (!) days were filled with frantic coding to actually get the levels scripted up in Panda3D. Because the entire level was rigged up as a single model, and the export tools insisted on having each animation affect the whole level, I ended up making heavy use of Panda3D's ability to define Actor sub-parts using joint filters. It took some time to come to that conclusion, but it ended up working very elegantly and simply. This is an aspect where I think the choice of Panda3D really paid off, because I honestly don't know how I would have gotten all this to work anywhere else, especially within such a short period of time.
The final level to be rigged (the one with all the clocks) was scripted up with 6 hours on the clock. I am personally not really quite happy with some of the puzzles to make it in last; they were produced under stress to get more content in, and as some of my friends have pointed out I appreciate that the clocks puzzle in particular can be a little frustrating. If you don't figure it out, the solution is in a comment in game/floors/time.py in the source code.
We're also aware of the many graphical glitches, for which there wasn't time to fix; some of them would have required us to redo how we did a bunch of things in the animations, which would have required us to revise all of the animations—definitely something we didn't have time for. We now know how to avoid all these pitfalls in the future, though, and if we were to do it all over again, we'd be making a game that's thrice as good.
m47pyweek28 - Summary, some random thoughts
Posted by Master47 on 2019/09/29 21:19