Designing a 2D level with an illusory 3rd dimension

Godot Version

4.2.1

Question

Hi all! Software engineer here that is pretty new to Godot so please bear with me :pray:

I am presently trying to learn Godot by implementing a small-scoped game idea I had. I thought I’d start by implementing some basic movement mechanics and navigation.

The idea is to have a 2D player moving inside a house. The camera is static in each room, and when the player changes rooms, the camera moves to the room that the player moved to. This should be easily implemented with FixedPoints, area2ds, and collisionshapes. ( Although some good example references would really help).

There is a caveat though. I want the game to keep having a “dollhouse view” just like lakeview cabin has, however, I want to somehow give the illusion of a 3rd dimension by shifting the camera a little bit, but without turning it isometric (like graveyard keeper). This means that I want the characters and house to look as if you are looking at them from the front(ish), but to be able to move toward the back of a room. I’m attaching the following photo to help a bit.

Untitled

I am really struggling with how to design and import the 2d pixel art for this endeavor. Do I use tilemaps? Do I use something else? Any ideas and references would be immensely appreciated <3

1 Like

I don’t have any references, but that seems a little hard to do in 2d. You would need to create a custom system that all node positions will adjust based on camera placement.

I think you should use a 3d environment with bilborded sprites on the z plane with an orthographic camera, And you will get it for free.

What needs to move towards the back of the room? You mentioned the camera would be static, so if it’s just the characters, that can be done with a slight topdown angle in your art, Y-sorting for correct draw order, and programming the navigation like a topdown game (Edit: To answer your question, yes, TileMaps can definitely help with this.). This article on projection has an example from Streets of Rage about halfway down with characters moving in multiple planes in a mostly sideview projection.

If it’s the cameras you want to move backwards, I agree that will be quite difficult to simulate in 2D, especially in a closed room. 3D would be easy, but it will be an extra challenge getting the art scaled and aligned to be pixel perfect (if that is a goal).

2 Likes

Yeah, I was discussing this with a friend and he told me of the bilboarded sprites solution, but I think I am looking for what @dandeliondino is suggesting.

Yeah, I might not have been that clear, but I just meant the characters moving back in the rooms. Ok, the article you sent is :sparkles: amazing :sparkles:, thank you so much! I think that the Streets of Rage example is a pretty good one.

I’m still left with a general question though. When one goes to design a house interior for example for this type of game, are tilesets usually the way to go with designing the environment? (And in this specific example the tiles just have that distortion effect on their sprites, but the tiles themselves as godot objects remain squares?)

How would you design a room with wooden floorboards and a wall with wallpaper for example? Making a tilemap seems like a bit too much work for assets that won’t necessarily be used that much right (different rooms have different wallpapers for example)?

1 Like

Ok, glad that’s what you meant, since it will be a lot easier to do.

Here are examples of interior tilesets in traditional topdown and sidescroller projections. Topdown pixel art is often in a fake perspective like this that shows the entire top and the entire side of objects. So using topdown art with a shortened depth for the room and sideview character sprites could work.

But you could also make everything strictly sideview but just add a few rows of floor tiles for depth (like Streets of Rage does). Or create art that’s in between the two.

Fantasy Interior Tiles by CardinalZebra

IMG_0653

Living Room by dai420

IMG_0654

TileMaps would be helpful if you’re using assets like these because they would keep everything on a grid, allow reusing tiles, and make navigation easier to set up. However, if you’re using a whole hand-drawn room as a backdrop, or aligning objects by pixel rather than on a grid, you might have some objects in the TileMap and some separate, or forego TileMaps completely. You’ll usually use a square grid on a TileMap, but it can be rectangular or diamond-shaped (isometric) depending on your needs. Hope that helps!

Orthographic camera would make this as similar of a challenge as it would be in 2d.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.