Level design continues. I just finished the 37th out of 40! Some of you might note some familiarity in this one…

As has been the norm lately, this level doesn’t have any detail objects yet, so the final version will also have various nubbins and doodads decorating the scene.
Ben’s illustrated comic panels are coming along really well–there are now 10 out of 15 completed. David is also still hard at work on the music (sound comes soon), but it’s tougher to gauge his progress with numbers.
Suddenly, it feels like we’re getting close to the end of the project.
Numbers are fun, so here are a few: I just checked and the game currently has around seven hundred lines of dialogue. For comparison, the original had about fifty lines of monologue. Hooray! Some might think that “more words” isn’t necessarily “more better,” and those people are exactly right. However, the tone of this game is much more conversational (since it’s not all about a hermit this time around), and it’s much longer, too, so I think the extra text is appropriate.
Oh, also, the original game was under 2,000 lines of code in total, and the prequel is already past 6,000. 2,000 of those are just level data, though, and half of that 2,000 is just the tile maps. Here’s the above screenshot’s tile map because…I dunno, it looks kinda neat.
maps[36]=[[1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1],
[1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1],
[1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],
[1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],
[1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],
[1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],
[1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],
[1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],
[1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1]]
This is just the map of the terrain–each level also needs data for game objects like switches, characters, and doors, plus scenario data like hotspots, dialogue, triggers for dialogue, etc…but those don’t look particularly interesting. If you’re curious about the hotspots, dialogue triggering, and NPC behavior, you can check out this earlier post that covers those topics .
Note that the data is a 1:1 representation of the level where each number is one 20×20 pixel tile, but it’s mirrored across an imaginary diagonal line that extends from the top left to the bottom right.
Pop quiz for programmers who are interested in tile-based games: What’s the purpose of that mirroring?