DevLog 05 - Designing the Level Maps



When it comes to designing a level for the Raycasting Game Maker, you will inevitably come across a few deeply frustrating quirks.


  1. One. You place down chosen walls and sprites with the left mouse button and you remove them with the right. This is a standard element of some custom map builders and other similar software.
    1. The problem is that the placement system can glitch and cause you to get stuck in one mode or the other, so you'll end up placing down tiles continuously without meaning to, or you'll start removing more tiles than you meant to.
  1. Two. The level map is actually oriented upside down. Or rather, your player character, when placed into the map screen, ALWAYS faces towards the bottom. His position cannot be altered or re-directed: he is always facing down.
    1. Therefore, while your instinct is likely to build your map starting from the bottom and moving upwards, that won't work with a character who's always facing the opposite direction.
    2. This means you MUST design the map as if you are looking UP at it from underneath. Or, you can think of it as a Vertical-Flip.

To counteract these issues, I decided to design my maps outside of RGM so they could be modified and saved without fear of losing them. And I could design them at my leisure in my preferred orientation before flipping them when I need to start building them inside RGM. Designing maps like this is fairly common inside Level Map or Tile Map editors for side scrolling platformers or isometric RPGs, but raycasted top-down tiles is a less common practice these days. Even Ultimate Doom Builder lets you view the maps from a free-floating 3D perspective in addition to your top-down sector view.  

My approach to these level maps was to think of it like a mini-map key: Every tile, for each wall and each sprite, would be represented by simplified symbols. That way, I could build a level map with the least amount of work that is still extremely readable and can be quickly converted to the correct tiles later. To do that, I took the total number of map tiles available in RGM, 64 x 64, and multiplied that by 5, basically giving each map square a 5 x 5 subdivision.


As it turns out, if you have the entire rainbow of colors to work with, you can represent quite a lot with just 25 pixels.  

  • For the Walls, they're represented by solid colors:
    • Green = the standard hedges
    • Red = barn walls
    • Navy = the void
    • Brown = chocolate castle


  • For any Wall variations from the base Wall texture, I draw extra colors along each edge of the square.
    • Alternating Red = a strawberry hedge
    • Rainbow = hedge with a candy row at the bottom
    • Alternating Orange = a candy corn hedge


For any waterfalls, I represent them by filling in the center 3 columns of pixels with either blue, pink, or cream.


Trees and Shrubs were a little tricky, but the key I settled on is as follows:


Rather than draw Maximus in full, or draw him inside the tile edges, his wall textures are always represented as sticking out from the wall 2 pixels.


Coins and Treasure boxes were pretty simple, just 2 small floating purple pixels for coins, and a tiny 2x3 box for chests.


Then we come to the enemy sprites. And this is part that surprised me the most. Despite only having 5x5 pixels to work with, basically every enemy can be represented if the right colors and shapes are used.  

Here are the Squirrels


Here are the Yellow Birds


The Living Skeletons


Living Chocolate Slimes


And Rabbits


By far, the single toughest element of designing the level maps has to be Wall Animation direction.


When you create a wall texture that has a scrolling animation, where the texture moves left or right and it's meant to tile with the adjacent walls, this can pose a problem if you want to have some walls that move Left-to-Right, and others that move Right-to-Left. Because whenever you're looking straight on at them, THAT's the direction they'll be moving. When designing the map for the levels that utilize scrolling textures, every tile is dropped in from a top-down perspective and the texture on the top is mapped to all 4 sides of the wall cubes when you play the actual game. 

So in order to make sure that the Left-scrolling walls and Right-scrolling walls are placed in the right spots, I decided to draw these micro arrows on every single wall tile to denote its direction. It was extremely tedious, but ultimately I believe these arrows are in the right orientation and should show up correctly in game. If not, I'm gonna have to do quite a bit of trouble-shooting.


Just like the other artwork for this game, everything is being built in Aseprite, and this approach has been extremely fun as well as effective. I've still got 2 more maps to build and every map will be ready to start testing once the enemies have been fully pixelized.  

The harsh reality of course, is I have no idea if my maps are too big, or if certain parts won't actually give the effect that I want them to in game. The exact proportions within the 3D perspective may force me to alter quite a bit. But that's why I plan to try smaller sections out in several test maps, which I will be sharing Let's Plays of in later Dev Logs, along with voice-over commentary.  

Catch ya next time where I share a bit about creating the waterfall animation.

Comments

Log in with itch.io to leave a comment.

thats smart and cool!