Pinky’s Postmortem

Posted by (twitter: @zenmumbler)
September 7th, 2015 12:21 pm

With little over a week left in the voting period, here’s a quick recap of my thoughts on this LD.


I, like many others, used reverse Pac-Man as the core idea, with the added change that while you’re technically the baddy, in this game you are role-reversed once more and Pac-Man is the hunter. It’s like role-reversal Inception, that guy Nolan’s got nothing on me.

Play it now!

You’re Pinky the ghost and you need to find keys in the Pac maze to open up the door to the ghost base while avoiding the mindless Pac-Abominations who can kill at but a touch. That’s really kind of it, concept wise. Navigate maze, find keys, avoid walking spheres, win.

Last time I used the 2D canvas implementation but since I’ve been busy with 3D and OpenGL 4 in my C++ library, this time I wanted to experiment with WebGL. So far, I have ignored the “Don’t learn new things during a Jam” mantra as I am a stubborn fool, but it has been in my favour, if not always in the game’s. So in PN, you move around a 3D extruded version of the pac maze.

First, I went for 1st person view, but I wanted a 3rd person camera, because 1st person would have just been _too easy_. Sigh. Since I wanted to keep it low profile and compatible, I couldn’t use the Pointer Lock APIs and keyboard controls are more like directional pads than sticks so I went with 3D of the late 1990s, in the glory days of the PSX. Fixed cameras. This was a major gamble as I had never done anything like this before. The decision was both good and bad.

✅ The good parts were that I put the cameras up high on the wall, so to speak, to give an oppressive feel of you being watched in the darkness.
? The bad was that switching between camera points becomes disorienting quickly when there are no landmarks or distinguishing features to help your mind orient.
? Additionally, I had to spend a _lot_ of time tweaking both the exact positions of the cameras to be far enough but not too far and in code rejecting cameras that can’t see you or are too far away. It’s very easy to end up with quickly oscillating camera viewpoints and the only reason that is not the case here is because I put in all the time to avoid it, which I should have been using for things like sound or other things.

levelmap✅ Coming from desktop GL 4, learning WebGL was surprisingly easy and fun. The feature set is so limited that if you are familiar with the core concepts of 3D programming, you’re up and running very quickly. That was fun.
? I didn’t have time for any audio, which would have helped immersion and atmosphere immensely. It was on my list but even with 72 hours I just did not get to it.

✅ I was able to quickly prototype the level by having it be a simple image. Using a PNG with the color channels having specific meanings I had the full Pac maze available for both level mesh generation, collision testing, camera placement and AI path placement. This was essential to dev speed.

<– Black = wall, blue = AI path, Green = camera

? I was so busy with cameras and getting it done, I never really acted on the fact that the Pac maze is too just not a good fit for this 3rd person camera view. Everything looks the same. I applied a colour gradient over the whole maze for basic guidance, but it was not nearly enough. I should have customised the playing field and/or added distinguishing features/marks.

In the end though, I had a start and end screen and a working game, I had a lot of fun and I learned new things. All good stuff.

And I’m continuing this vibe and will make one game a week for a while. I’ll post updates on my Twitter if you’re interested.

Leave a Reply

You must be logged in to post a comment.

[cache: storing page]