Download

Is this Even Worth Attempting?

Firstly, hello! I am Jon.

What I am hoping for is some thoughts about an idea I’m about to present. Hopefully I will know whether or not the idea is worth pursuing by the responses I receive, just so I don’t go chasing a dream that I can’t catch.

I am new to UE4, and I would still say I’m new to the whole concept of making 3D games, 3D modeling notwithstanding. I have been a self-taught artist for 14 years, with one 2D animation class last year that didn’t really help tweak my drawing or animation skills. So I’m more of an artist / animator / idea man than a coding mastermind. Unfortunately, I’m hoping to work a job in software development one day, and I think I have a long way to go. But I really want to get there eventually.

I have tried to make games before, but only by using The Games Factory and Multimedia Fusion 2 by Clickteam. Obviously, the coding used in these engines isn’t nearly as in-depth as coding in C#, C++, Java, what have you, but it gave me some logical experience that would aid in my coding classes last year.

I have more or less given up on the countless 2D game ideas I’ve started and dropped in the past due to a lack of knowledge, understanding, motivation, and/or focus. Most of them weren’t fun anyway, because I mostly focused on the graphics, not what made the game actually fun. But I have been theorizing and studying the latter in recent years, and so I have decided that I would try this idea out.

I am not going to ask, “bruvvvv how do u make dis game”. I am aware that this idea is almost certainly miles above my head and current understanding, but I’d like to try anyway.

I am going to ask this instead: do you suppose a game, like the concept I am about to present, could be both possible and hardware non-intensive / efficient?


The game takes place on 9 “planes”, divided by tiles in 11 columns and 11 rows. Only tiles within 9 rows and 9 columns are accessible; the rest are just bumpers that make the plane look like it goes on, even though you can’t go past the magically invisible walls to get to them.

You start from the first plane, Viens, working your way up as you find a way to ascend to the next plane. As you ascend, your current plane changes to the next one.

Technically, it’s a (11 * 11 * 22) cube.
Gameplay-wise, it’s actually (9 * 9 * 18).

I’ll explain this and the reason for the doubled figures in a below section. But here’s a picture for starters:

I believe something called “level streaming” could help with this, but I don’t know how far it can be stretched or how it could be manipulated to a smooth effect. I haven’t tried it out yet.

You can also (momentarily) switch between planes, at the exact same coordinates. Here’s another picture:

Finally, you can invert planes. This is the reason for the doubled figures: each tile has a complete inverse, and when you invert, your height is calculated and set by how far from the ground you were when you switched, and then your momentum is resumed.

I tried this idea out with Unreal’s landscapes—it wouldn’t work for me. I think I’ll have to model mesh objects as my planes, copy them, and then flip their normals. (I don’t think double-sided geometry does the trick. I think I tried something similar in Unity but to no avail).

Here’s a picture, and I hope it makes sense:

The 9 planes will have to be fairly large, much larger than usual because the game will take place at high speeds and altitudes. I definitely don’t want the player to cross a plane from A to I in only 20 seconds, and that’s with a walk speed of about 3000 – 4800. I’m thinking each tile will take about 10-15 seconds to cross (no obstructions and at full speed). If this helps give you a size estimate, that means it would take between 1.5 to 2 minutes to cross an unobstructed plane from one end to the other.

In the end, 11 * 11 * 22 = 2662 tiles. This includes the inverses.

I’m not expecting to be able to have the absolute greatest and most high-end graphics ever, and I believe I’m willing to forego any normal maps whatsoever if necessary. I like cartoony styles.

I’ll try to figure out most of this stuff by myself, but I have to ask first: Can you perceive any way that this could be possible and reasonable? Or is this way too big for Unreal or any game engine to handle?

I really don’t know these things. I just have ideas, and I need to know if they can be grounded in reality before I try to do them. Feel free to dumb things down for me, I know I’m new.

If you have questions or need to know more, please ask! And thank you a ton for looking at this and thank you a million times more for replying if you do!

Cheers,

-Jon

What is the purpose of the grid? When it’s presented that way I’m seeing a pretty manageable puzzle game, but then you talked about movement and that doesn’t make sense with a grid.

Lol.

Honestly while I don’t understand why you represented your example with a grid (Grid doesn’t make sense to me here), I’d compare this to Flappy bird in game complexity (What UE4 can handle).

DarthViper commented on the grid as well, try to go into a little bit more of what the grid is for.

I think he says that the game willl have like 0 levels (like when you enter inferno from maquiavelo IIRC)… and also that each level can have a “inverse” or more like a gravity flip, but not in the direction of the gravity, he want to turn the whole level upside down, so a new way to play is in front of you, I mean, for example, he put an apparent rock that hits the floor, but if you switch, you dont see it at all, only where the rock crash in the other side.

Or some like that.

My bad, let me explain a bit more: The grid / cube / thingy is my visual representation of the game world, the easiest and most intuitive one I could think of, but it’s not the actual game layout itself. More accurately, it’s a sort of mini-map.

Each plane has a “grid”. You don’t see it, but depending on where you are, some HUD feature will tell you what coordinates you are at. The grid uses 0-9 and A-I for its coordinates.

The planes are labeled from Viens to Deviņi. Those numbers are its coordinates. So, if you are at F3 on plane Seši, your coordinates are displayed as F3Seši. That’s more of a feature than a gameplay element.

Here’s an old draft of what plane Viens might like like in game:

But, imagine eight more of these planes, which you won’t see all at the same time. They look different, they present different challenges, but they are all the exact same size in length, width, and bounding box height. They are also aligned in the exact same place, which makes it easy and logical to switch and / or invert to a different plane, because all of the planes are already in the exact same position.

I hope this helps somewhat!

I like the sound of this.

Of course, I won’t get too excited, because now that I’ve explained my idea a bit more, your answer may be different.

I may not have fully understood you, but I think you mostly have the right idea. There are 9 levels / planes and all of them have inverted states. When the planes are flipped, the gravity remains intact: this offers new ways to reach areas, have fun exploring, and or solve problems. This idea aids in the puzzle / open world aspect of the game.

You are right about the rock, though: floating islands in the sky are also part of the game, and the depressions that are left by them (where they were on the ground before the went into the sky) are pits on normal planes, but mountains when inverted.

I hope this helps a bit more!

Thank you all for your replies so far,

-Jon

You could do this using landscapes, sort of.

Instead of sculpting the landscape, you would want to generate a 2 different heightmaps, one being the inverse of the other. When you want the player to inverse the landscape, just change the material of the landscape. At least, probably? I haven’t tried doing that, though it seems like it could work.

If that doesn’t work, then go with your static mesh idea, have 2 different meshes. Make the pivot point of each at the center of the “tile”. Use a BP to call it. When you perform an action (button press, menu selection, whatever), then replace the tile mesh with the inverted mesh.

There’s a few other ways to do it, but yea… the engine is fully capable of doing what you’re wanting to do.

Yeah, I think there’s just a couple things to figure out there–I haven’t done this type of thing before, but ideally you’d be able to stream each plane out in the same file, rather than loading between each as a different map separately. But you’d have to have some way of making sure your character gets placed on the ground since I’m guessing the landscape won’t be at the same height where your character will be when it switches planes.

Awesome. I have hope!

The heightmap idea seems like a good one, but I was hoping to change the look of the environment on the planes’ inverted states, and I think that will leave a lot of the foliage / other details in the same place. Nonetheless, I’ll have to test that out to see if the heightmap idea works. Of course, I’ll have to learn how to do that first, but I’m sure I can find a way if I just study some tutorials or look up some examples on YouTube. I wonder, though, how you would measure the distance between the player’s bottom Z coordinate and the landscape directly below. Maybe make another actor that follows the player on the X and Y axes, but follows the contour of the landscape on the Z axis, then compare the distance between?

The static mesh idea actually might work! I think I see what you’re getting at, but I’ll have to learn how to implement it, too. Then after that I could look into a way to get the height differences between the plane and the player then adjust accordingly.

Thanks for these good ideas and the good information!

Right, you could be on a mountain on one plane and then in an ocean in the previous plane when you switch. Switching back would be problematic because of the height differences, so you are correct here. I’ll have to implement some algorithm that checks if the player is below the surface of the plane that they’ll be switching to, and then make sure they are placed on the surface of that plane so they don’t fall down infinitely below the mesh. Or, if they’re 3 feet off the ground on one plane, they’ll be 3 feet off the ground on the next plane, regardless of height differences.

I will have to look more into streaming, it seems like that will be the way to go. Thanks for your reply and ideas!

Thanks again everyone,

-Jon