This week I developed a very simple but powerful addition to the tile editor: Channel toggles. Each tile in a level holds three values, the collision shape of the tile, the graphics bank to draw from, and the index of the tile to draw from the graphics bank. Now that I have channel toggles, I can choose to only draw over one of those at a time in the level editor. Why is that so powerful? Let’s look at a few test cases.
Say, for instance, I want to create a secret passage. This would look like a normal chunk of level, but have a different collision body than the graphics would suggest. Before, i could do this by going in and replacing each tile individually with the same tile with a different collision value – not a big deal if all the tiles are the same, but a huge pain in the butt if it’s a bunch of different tile shapes that I need to select, modify, and set again individually. Now, I can just turn on only the collision channel and erase just the collision value of all the blocks in the passage, and pretty much instantly have something serviceable. A similar variant on this process has already come up: After a bit of testing, I realized that the grass tiles I’ve been working on would actually look a lot better if the top surface was offset a tile or two from where the top tiles look like they are, so that it looks like the character is running through the grass rather than on top of it. Using channel toggles, I could just toggle only the collision data, select the top of the grass, and move everything down one tile and instantly achieve that effect.
That’s just the collision channel. The secret tunnel problem could be solved in reverse as well, if I have an existing tunnel that I just want to make secret, by turning off the collision channel and leaving the other two on while I draw detail over the tunnel entrance. By using just the tile bank channel, I can quickly change the look of an area: With one draw I can change a section of grass to dirt, or dirt to stone. There are probably more applications of the tool that just aren’t occurring to me now. For a relatively minor change to the tile editor, this makes a big difference.
I’ve also started work on a pattern fill tool, for filling in big areas with a repeating fill of similar but different tiles so that I can avoid just using one tile over and over and looking too repetitious. If it goes well then it should be done later today, if not then tomorrow or something.
Aside from changes to the editor, I’ve been working on the grass tileset again. This may not actually have been a great tileset to focus on for my first one, because it’s turning out to be weird in a lot of ways. I’ve created a set of sort of pseudo-foreground tiles now that really help give the impression of rolling hills, and which there probably won’t be anything analogous to in any other tileset. Between that and the overall softness of shading and jaggedness of outline, there’s a lot of special challenges and special tricks to overcome those challenges with this tileset that, while educational, probably constitutes a very different process to that I’ll be using on other tilesets. Anyway, it’s getting very close to finished now, and along with the collision tweaks and foreground tiles mentioned above is starting to look pretty cool I think.
Still not perfect, but getting there. I’ll probably leave it basically here for a while and try to get the other area 1-1 tilesets done: Dirt, stone, and wood. It’s also probably getting to be time to start considering creating final animations for the player character, though I still need to do a bit of debugging on AnxEdit before I’ll be completely comfortable using it for important game work.
Since I had AnxEdit at a pretty good stopping point and since it’s been something I wanted to do for a while, I spent some time this week getting a new website up and running. I’m not quite ready to take it live yet, but eventually it will replace this site as my primary host for all of my writing and other media. Though there’s not a lot to say about it here, getting this site made is actually where I spent a lot of my effort over the last week, along with finally getting my code hosted on an external repository (on gitlab.com) so that even if I lose my laptop or something I don’t have to worry about losing progress on the project.
All in all, pretty good progress. Next week, more tilesets, finish up all the most worrisome bugs and missing features in AnxEdit, and get the website live.