Down The Drain
- Non-traditional sensory input
- stealth
- shrinkwrap
- exploration
The game we actually made:
- a 3D tunnel racer with a single level that runs for 2 minutes 15 seconds... can you beat it?
- all you need is a browser
Awards
The "Premature Salmon Related Artwork" award for unused thematic concept designs.
Presented by ntoll
Scores
Ratings (show detail)
Overall: 3.3
Fun: 3.2
Production: 3.7
Innovation: 3.1
Respondents: 18
Files
File | Uploader | Date |
---|---|---|
Screenshot_2023-09-25_at_01.27.19.png
Proof that you can actually win this game |
ambv | 2023/09/24 23:27 |
down-the-drain.zip
— final
Surely it's easier to play by going to https://langa.pl/downthedrain/ but if you really want to try it locally, unzip and run "python server.py". |
ambv | 2023/09/24 22:50 |
Screenshot_2023-09-25_at_00.44.27.png
A screenshot of a crash |
ambv | 2023/09/24 22:45 |
brute-south.png
Brute |
tenth | 2023/09/23 22:52 |
bellflower-ring.gif
Bellflower ringing animation |
tenth | 2023/09/23 22:51 |
drift-king-salmon.png
Off topic - Some concept art for the Salmon Run theme (that was ultimately not chosen) |
tenth | 2023/09/17 20:32 |
Diary Entries
Getting excited about the wrong theme
Perhaps we can visit the world of drift-racing salmon vs. giant robot bears sometime in the future.
Oof
In practice, though (especially, in US time zones), it's not as much time as it sounds like. Especially depending on how many work emergencies come up during the week, and how burned out you feel (and what degree of a headache you have) by the time you're ready to switch to Video Game mode...
It doesn't seem like our entry will be particularly playable in time, but it's been really nice to get back into a creative project! And it seems like we do want to keep working on it beyond the end of this challenge (if only so we're more prepared for next time...)
I am impressed with all the new features that Tiled has added since I last used it, though the UI continues to be challenging. (Lots of submenus you can accidentally close, and then have a hard time finding again.) I wasn't expecting to be able to use it to generate random terrain, and was especially pleased with the Tile Transformation system - being able to generate a full "blob" tileset from only 15 hand-drawn tiles is really cool! I just really wish they hadn't dropped support for expressing those rotations in the output files, which kind of defeats the purpose? (Unless I'm missing something, which is totally possible...)
Sadly it wasn't until Saturday afternoon, hours away from the due date, that we were actually getting close to something playable, and cranking out some decent (placeholder) sprites and animations... But I am looking forward to doing more justice to this concept in the future!
It's tubes, okay?
- this is written in PyScript, which packages Pyodide in a way that is very easy to use for new projects;
- graphics and audio bind to THREE.js, a wonderful library that makes using WebGL pretty easy;
- but there is no JavaScript in this project, it's all Python 3.11!
- it runs everywhere without installation, including my iPhone;
- it easily runs at 60FPS in Firefox and at a whopping 120FPS in Chrome -- remember that all logic here is written in Python;
- it looks really nice, even if I only used the most primitive pieces of THREE.js this time.
- collision detection is a complex beast, and no algorithm is perfect;
- in space no one can hear you scream that there's actually not three but six attributes needed to position and orient an object in three dimensions;
- there are many clock domains: if you want to make your game synchronize to audio, you can't naively increment calculations in an animation frame callback, because some systems will run 60 of them per second, some 120, and some will struggle with even 30;
- JavaScript is an FFI language in Pyodide, so there are some surprises like the fact that you need to call create_proxy() when passing callbacks so that Python's memory management doesn't destroy the function before it's called by JavaScript;
- THREE.js is very powerful but still easy to use, even though many examples available online for it no longer work because it moves very quickly in terms of API changes;
- more importantly, you can successfully write Python in the browser while reading JavaScript API docs and survive to tell the tale!