Well, things still feel slightly frozen in place. I’m still trying to recreate a daily routine after the holidays shattered my schedule, and it feels like habits have been broken, both good and bad, and I’m remaking them now for better or worse. The project goes forward.
So, what progress have I made since the last update, two weeks ago?
First: The map editor is done. I may tweak it a bit as I get frustrated with one aspect or another of its implementation, and it’s pretty likely I’ll dig up a bug or two that I’ll need to fix, but all of the features I had planned on adding are added. It’s good to go. Hey, here’s a screenshot why not:
It just occurred to me that it’s been quite a while since I’ve shared progress shots like this. I should really try to get more of these up, it’s fun to see how something like this map editor has evolved. Anyway, a quick tour: On the left and right sides are arrows which switch between maps being edited (Hm, I just noticed it doesn’t actually display the currently active map number anywhere, I should add that). On the upper left are the inputs for placing a changer, nodes which transfer the player to another map when she enters them: You can see one changer, in red, with the label 000:00 in the lower right corner of the active map. In the middle is a picture of the currently active level, which can be dragged down and placed onto the map, and arrows to change to another active level (I also should add a text field that allows the user to type in a level ID, come to think of it). And, finally, on the upper right is a big obvious button you can use to drag warpers onto the field: Warpers are the cyan blocks with green lines coming off them. When the player enters the square with a warper in it it instead reroutes her to the square that is targeted.
So that’s the map editor. That’s done now. Aside from, um, the two things I thought to add while I was doing that run down and which I’ll probably add tomorrow.
Oh, I’ve also tested out and ensured that the aforementioned warpers and changers actually WORK. Well, at least I’ve tested the warpers and they seem to work: I’ll be testing the changers out more extensively once I go to the trouble of creating another map to work with.
After that, I started settling in to work on the entity editor, but got sidetracked by a number of really egregious collision detection bugs. The worst of these have been fixed by now, but there are some remaining issues with colliding at certain very specific points, most frequently at the bottoms of hills, right where they start climbing. If the character lands right in that specific spot she falls one tile into the ground – usually this isn’t that big a deal, but occasionally it can cause a chain reaction which causes her to fall through the ground completely and out the bottom of the level. So, uh, obviously that’s no good.
Now that I’ve got my head buried in the collision code, I intend to keep it there for as long as it takes to solve these issues once and for all. I’ve said it before and I’ll say it again, how the character reacts to her environment and how it reacts to her is the heart and soul of a 2d platformer: I have to make sure this feels right.
So! Collision programming until my discerning eyes can’t find any more flaws, and then it’s time to start figuring out the entity editor. That’s the plan for this week.