Whew! That was a fun but stressful week.
Whew! Despite not actually have a lose condition before the last day, and still having to hunt down sound effects in the hour before the challenge ended, I nonetheless managed to submit something in time that can unironically be called a "game". And I learned lots of cool things on the way, such as how ot do Nodal Analysis in numpy and what a catenary is.
This PyWeek was quite different for me than other ones: this is my first solo entry, I had a lot less time due to not being able to take a week off work, and I had chosen a particularly complex interpretation of the theme. I will probably choose a simpler game concept next time. The downside of a simulation is that it's hard to turn it into a game, and keep it balanced so that it stays challenging but not impossible. But it felt really rewarding to reach the point where it became game-like enough for people from the IRC channel to play my game and share their high scores with me, even beating my own.
Given more time, I would have been able to create a more sustained and balanced experience. When playing the game for a long time, you may notice that the end-game involves a gigantic mess of wires and running out of space around the generator. The plan was to make it possible to allow you to build more generators over time, but I just didn't get to that. I think it reaches a point where it just becomes mathematically impossible to proceed, but I haven't worked out the math.
I would have also improved the long-game performance; it's not bad, but it does currently solve a numpy matrix of a big linear system with Kirchoff's equations every frame, even though I could definitely optimize it to only recompute the voltages on each node when the grid has been altered. Even in a thread, if needed. So don't get the impression that it's Panda3D's fault if it runs slowly.
Panda3D had a bit of a reputation in PyWeek due to the difficulty installing, but I think that is history now since it can be easily installed using pip nowadays. And I'm not using fancy shaders, so no high-end GPU is needed. I'm not as confident about macOS, because, well, Apple seems to be committed to abandoning open standards like OpenGL. It seems to be playable on my old Mac Mini but the whole game does appear much darker than it should.
Thanks to all for a fun PyWeek experience! I'm looking forward to playing the other entries on here.