Master Key Pocket - a text-less adventure

Update #14

Calling it almost done was a stretch just because Ice dungeon was finished, there's still more things to be done than just making more content.

Originally, this update was supposed to be published on august and would focus on some of the optimizations done to the game and maybe create a thread describing the music process. The latter was discarded as soon as I discovered a tool that could streamline the entire process and I started shifting my focus on the level design. Here's a recap of the past few weeks.


As mentioned earlier, the game had some performance issues on real hardware (Thanks @qhoang for testing it on device); while it was mostly stable on the overworld, any room that used the lightning system ran poorly. This was due to the way it worked. When you light up another source, the game would now update that source every time the player moved; at least it didn't update for every frame.

The fox lightning up the room
This was implemented in May of last year

Instead, the source would now update once as soon as it light up, and rather than changing the frame of the tile like the player does, the tiles would be swapped with its "baked" equivalent, which is the same tile but without any extra frames. Here's a snippet of the code that does it. "Color" is what I call the tiles that have a baked equivalent, I'm not good with variable names.

//swap the tiles with its baked equivalent around source location
	while TileLightX<=TileLightMaxX do
		while TileLightY<=TileLightMaxY do
			ColorList = name TileLightX,TileLightY
			IsColor = 1
			if ColorList=="brick" then
			elseif ColorList=="brick 2" then
			elseif ColorList=="brick 3" then
			elseif ColorList=="brick 4" then
			elseif ColorList=="brick 5" then
			elseif ColorList=="brick corner" then
			elseif ColorList=="brick corner 2" then
			elseif ColorList=="brick corner 3" then
			elseif ColorList=="brick corner 4" then
			elseif ColorList=="brick border" then
			elseif ColorList=="brick border 2" then
			elseif ColorList=="brick border 3" then
			elseif ColorList=="brick border 4" then
			elseif ColorList=="rock" then
			elseif ColorList=="rock 2" then
			elseif ColorList=="rock 3" then
			elseif ColorList=="rock 4" then
			elseif ColorList=="corner" then
			elseif ColorList=="corner 2" then
			elseif ColorList=="corner 3" then
			elseif ColorList=="corner 4" then
			elseif ColorList=="border rock" then
			elseif ColorList=="border rock 2" then
			elseif ColorList=="border rock 3" then
			elseif ColorList=="border rock 4" then
			elseif ColorList=="pot" then
			else
				IsColor = 0
			end
			if IsColor==1 then
				tell TileLightX,TileLightY to
					swap "bright_{ColorList}"
				end
			end
			TileLightY++
		end
		TileLightX++
		TileLightY = TileLightMinY
	end

Other optimizations aren't as interesting as this one, as these were just wasted uses of calls and using emit. As soon as I didn't receive any bug reports, I focused on the overworld again.


Since the new lightning system has been reworked, the first dungeon too was slightly reworked; I made it a little brighter because I realized that it wasn't a good idea to make the first dungeon purely dark, It's now much smaller and not entirely dark.


From then, I've only kept focused on designing the overworld and recreating each room in the pulp editor. There are twice as many rooms compared to earlier builds (not mentioning the underground levels which are half as big) which means there's a lot of things to track of, particularly collectibles. Each room that contains a puzzle or a chest needs to be tracked in the room's script, this is one of the primary reasons I'm taking my time with this.

Fortunately, I have a fixed list of things to finish before I can call this complete. As of writing, every chest has just been revised; There dozens of them and some have been overlooked in the designing process. From here, I'll start making more interesting progress than listing and fixing stuff.

Hopefully, I can get everything done by spring of next year.

2 Likes