Update 6
Today, I've added three elements to Arcane!
Firstly, pressure plates:
All pressure plates in a room need to be pressed to open the grey doors. The doors close again if just one plate is released.
This was surprisingly easy to implement! Because pressure plates are fixed features of a room, I don't need to do anything to their coordinates or variables - I just have a few lines of code that run every turn and check if the doors need to be opened or closed.
In my flowchart, I had some idea that doors can close on objects and destroy them. I decided not to go this route, just because it was easier. I think the consequences of this are interesting when you put a pressure plate next to the door it opens:
The way that objects are processed right now is that players and blocks move before pressure plates and doors are checked. So if the player moves onto an open door and that door closes on the same turn, the player is standing on the door. This offers protection from enemies - closed doors are walls, and enemies can't move into walls! Similarly, a block can't be placed on closed doors, but it can be placed on an open door even when that door closes the same turn. There's some sneaky potential there for shuffling a block into a space it shouldn't be able to get to.
Speaking of places a block shouldn't get to, I made anti-block zones:
Just tiles that stop blocks being placed on them. This will help me to control what the player can do when I get around to designing puzzles. As seen in the GIF, they're made to complement pressure plates. This will lead to some cool situations in the actual game, I hope - maybe the player needs to lure an enemy to a pressure plate she can't get to but which can't be weighed down with a block?
Finally, I added another type of key, by copying the code for square keys, finding "square", replacing with "triangle." Here's a GIF of the triangle key in action, in a simple puzzle I mocked up using anti-block zones.
(I screwed up here and put the wall tileset on the wrong depth layer, which is why the top of the Hungry's head disappears as it eats the player. If I keep working on Arcane past the jam, I need to sort out depth. I'd want to code it so that objects south of over objects will always be in front, to preserve the faux-3D effect of the wall tileset.)
These are probably the last elements I'll add, other than different shapes of blocks (I'm planning to make a bunch of those this evening while I catch up on podcasts). I think I have enough elements now to make some cool puzzles with a bit of variety. At this point I want to take stock and think about the project as a game jam entry, and rescope it a bit.
I'm very happy with the progress I've made, but there's not much of an actual game yet. I want to set aside a lot of time to make some good puzzles for the game. Let's say 5 days to make at least 15 puzzles. So I want to be done with the game engine by Monday. And I'm planning to take Saturday off to rest and check out everyone else's projects (I haven't... been a very good community member so far.....), so that's only a couple of days to finish the heavy coding work.
I had a couple features I wanted to add. I wanted to let the player wander from room to room to solve puzzles in their own order, but I'm going to scratch this for now, since I haven't started on this idea yet and I don't know how to do it. I won't have game-wide save data for the same reasons, and the player probably won't need it anyway. On the other hand, I'll keep the idea of letting the player save state within a puzzle, since I've been working towards it for a while and it would be really nice to have.
Also I forgot that there needs to be a framework to interact with the game. So that means a title screen, some way to select levels, maybe an instructions screen and a victory screen, and a way to quit levels. Also I need to fix the menu I've got so that it's attached to the Control object, to make it easier to put it in levels.
Also I want to finish that music track that's half done, and maybe add sound effects if I have time.
So that's a lot still to do! I think I'll try to get the save system working tomorrow, and scratch it and move on if it doesn't work out. Maybe do some simple title screens and music work on Sunday to relax? I've never been good at timetabling.