A little information required

Hi everyone!

Firstly, I come from the SQL, PHP, vb, html, etc. level of coding, basically I do the easy stuff (back office/DB applications) when it comes to programming.
Recently a friend of mine introduced me to UE4 and I am hooked. (Completely, think I’ve spent more hours with UE4 than my wife and work combined in the last 2 weeks)

We have figured out the basics like creating the character, mapping inputs, creating a static mesh generated world (very limited), opening doors, turning on lights, etc. and generally basic things which you should know before you attempt to build anything.
Everything we’ve managed to learn so far has come with about 8 - 10 weeks of tutorials, “stealing” with our eyes, copying examples (for learning purposes) and reading a stupid amount of posts in order to find what we need.

As we have no background in game development, we have reached a point at which we require more of a kick in the right direction than a shove.

This brings me to our problem:

Between the two of us we think we know enough of the basic requirements to build a smallish game to test our capabilities.
We’ve done quite a bit of research and have decided we are going balls to the wall and building our idea in our spare time to see if what we want is possible (looks like it is.)
Thinking that we couldn’t be the only ones out there who have had such an idea, we left one of the bigger components till last.

The details of the problem:

3D side scrolling terrain. (literally side scrolling, nothing fancy just left to right with a 3D look and feel)

We are able to find tons of information relating to 3D procedural world generation and 2D level generation but we can’t seem to find anything relating to 3D side scrolling terrain generation.
We know 2D is close to what we need, but with my limited knowledge of UE4 I am unable to translate the 2D explanations effectively.
I’ve manged to generate a smallish 3D version of what we were looking for but we have so many things we want to add and we have no idea where to start looking for them or even which questions to ask.

We understand that we can take the blueprints and modify them but then when I open them I realize that I should have paid more attention to maths at school.

The question:

We are looking to generate random fixed size 3D worlds with the 2D side scrolling feel (which scrolls left to right).

1.) The terrain needs to be something along the lines of starbound’s terrain, where you have a defined Z-axle min/max (height or depth) and a random X-axle min/max which is exposed to change (left to right).
2.) The terrain needs to be able to take damage/be destroyed. (we wan’t to be able to dig a hole)
3.) Randomly generated caves in the terrain. (Explore by digging to the cave and/or walking into a cave)
4.) Randomly generated resources like metals in the terrain (at this stage we don’t care if they are just blocks with different textures as long as we can generate them)
5.) Culling/streaming to make sure we only have the minimum required terrain visible at any given time (I’m not sure but I think this comes with the default project already?)

We are not asking anyone to create this and hand it to us on a silver plate.
All we ask is that examples/discussions are posted of how this can be achieved.
If you have something which only generates a flat 3D wall, please post it.
If you have something which can add random textures (even if it 's just two which randomly generate) please post it.
Anything you might think of which may aid us in understanding how it works even if it’s just a partial blueprint which does one specific feature and doesn’t work without another part.
You can always just post a link which require us to spend several hours learning and we’ll be off to go read up on it and figure it out.

Anything we can use as reference material to study and look through would be greatly appreciated.

We got to page 57 of this forum before we gave up trying to read all the posts.
There’s just too many posts which have nothing to do with our requirement which makes the time we spend reading forum topics less valuable than writing this post.
That said we’ve found a few posts that have given us some direction but not enough (mostly my lack of knowledge about game development)

We would greatly appreciate any help.

Lastly consider this post more along the line of persons trying to learn how to create a 3D side scroll’er rather than people trying to get something for free.
We will put in as much effort as we can to understand the posts and learn the lessons in them.

Thanks in advance to those who reply.

Cheers,
Nedomah

Hi, I see that you are very dedicated so I will step aside from work and try to explain some workflows that may work at early stage.

But firstly

I disagree a bit with you, yes there is a math but in like 99% of the cases its mostly very basic stuff. The advanced stuff in like 40% of the cases involve vectors XYZ and rotations, but still there are nodes that do this automatically for you. So believe me, its not so complicated (I have bad grades in math). Anyway, there is a bit long learning curve when it comes to blueprints, you need to just understand the basic logic behind blueprints and their limitations which you will learn about this in the process of the production.

There are few things for you to consider learning before beginning to work on your game:

  • 3D software - Blender (free) or 3DsMax/Maya (paid) - You need to have some basic knowledge on how to model a 3D object, how to texture it (material ids, normals etc). You will need this to model characters, landscape, etc. if you are going for 3D game.
  • Image manipulating software - GIMP (free) or Photoshop (paid) - You will need this to create the textures and animation sequences.
  • Blueprints - Terminology (boolean, integer, float etc), how to create if statements and use them, get/set references, Arrays, get/set world/relative location/rotation/scale (learn the difference between World and Relative transforms), interactions etc.

For your game I think 2D sprites are going to be very useful so find everything about them.

1: The terrain can be created by a boxes/squares where the character will go on and just procedurally spawn them with random variations on scale or position (Z axis) - For this you need to learn how to spawn instanced mesh,** arrays**, random world scale/position and how to use construction scripts. The construction script will be very useful to have a control over how the level will look like.
2: To be able dig a holes etc its going to be a bit more complicated. Take a look on destructible mesh (if you want 3D effects) and collision/hit responses. You can create some random destruction animations (Photoshop, AE) and use 2D sprites. The logic should be something like this: When character is on “destructible” ground (if statements, branch) and begin to dig the ground, set animations 2d sprites.
3: This is going to be complicated. I dont have an idea on how you can do this now.
4: This is easy. Learn how to spawn stuffs from arrays that consist of references of resource objects.
5: Streaming Levels and how to manage them in blueprints - Here are some nodes that will be useful: GetStreamingLevel, ShouldBeVisible, ShouldBeLoaded

So lets your first step be just prototyping simple gameplay with blueprints, make a simple level and learn how to use key inputs to manipulate the character, spawn objects, how to pick objects, how to use 2D sprites. Just basic stuffs until you get familiar with UE4 and blueprints.
I am not going to lie you, its going to be very long process of work until you get familiar with UE4 especially to get familiar with blueprints and 3D softwares. It took for me 7 months (every day - 8 hours per day) to be comfortable especially with blueprints and UE4 generally.

I dont have the time to provide links but you can try to find information yourself by using the bolded text as keywords. Here are some more - Procedural 2D terrain, How to create inventory, spawning objects, and use google as much as you can.
There is also a UE4 slack chat, there are more than 2000 peoples from the UE4 community so you can ask there for help. https://forums.unrealengine.com/showthread.php?71341-Unreal-Slackers-The-unofficial-Slack-chat-for-Unreal-Engine-developers&highlight=slack

:slight_smile:

Hi NasteX,

Thank you for your feed back, really appreciate it.

We are lucky enough to have a friend who does this for a living and he is willing to help out when we get to that section in the project.
Currently we are using the starter/free content to build our project which should be more than fine until we have a working game.
That said we will definitely spend some time with him to get a more in depth understanding of how it works.

As far as the other items in the reply:
Thank you, Thank you and Thank you.

I’ll read through them tonight and see what I can find and get working.

Cheers,
Nedomah

This is nice, things will be much easier like that.

Check PM.