Unreal Engine Side Project: Pt0

Discuss anything in general about the IceBlink Engine + Toolset project (or anything else) here.
youngneil1
Posts: 148
Joined: Mon Jan 20, 2020 9:01 am

Unreal Engine Side Project: Pt0

Post by youngneil1 »

I am gonna use this thread to keep myself posting and in touch here, even with my thoughts trailing a bit away from IB right now.

So, driven by curiosity for the ray tracing tech and triggered by the arrival of a 3080rtx (thank you Jer for the congrats :) ) I dipped a toe into Ureal Engine (UE). I had used Unity for some developing excercise prior working on IB, now I wanted to see how I would cope with the other big engine.

UE is C++ (instead of C#), not too far away, but still lots of new stuff to learn from a coding perspective. To be honest though, I am much more using the Blueprint sytsem that comes with UE. Main reason in the beginning was that it allowed easier and commented, context sensitive access to all the existing prebuild functions. After some time with it I also appreciate the clarity that comes with this visual coding style. It's very easy to reorganize nodes and put them into comment tidy boxes. Like a kid playing with wooden building blocks :) .

Next up - what the hell is Pt0 about :lol: ?
youngneil1
Posts: 148
Joined: Mon Jan 20, 2020 9:01 am

Re: Unreal Engine Side Project: Pt0

Post by youngneil1 »

Pt0 - or in long form: Paths to Zero - is an action adventure game (3rd and first person) about finding your way to the center of a procedurally generated debris field with mixed elements of single- and multiplayer.

The field floats in utter blackness, illuminated by three orbiting lights of unknown origin bathing the field in shifting light and shadow. It stretches 200.000 km in x and y direction, being 20km high/thin all the time.

The player traverses the field alone and only on foot, supported by a limited energy jetpack. It is easy to drop towards death within the field as gravity is strong, pulling downward (which respawns the player in the multiplayer hub world). On his back a counter displays 999.999.999 at the start. This distance to the center in meters is counting down should the player move in the right direction.

No torch or flashlight is available which makes dark areas in the field very scary. The player can rotate the three orbiting lights though, controlling the flow of light and shadow. Furthermore, he carries two crystal cubes with him which emit light in a small area around them once thrown into the world. These act as beacons to throw into dark places. They also provide sense of scale as they fly along the abstract, sometimes gigantic elements that the field is made of.

To be continued...
User avatar
slowdive
Site Admin
Posts: 485
Joined: Wed Jan 15, 2020 4:37 am

Re: Unreal Engine Side Project: Pt0

Post by slowdive »

Sound interesting! So will Unity not handle ray tracing anytime soon? Unity seems like the best engine to learn for those familiar with Java/C#. I guess learning c++ wouldn't be the worst thing, but the learning curve for memory handling seems step. I've thought about moving IB to Unity a few times, but I don't know anything about using Unity and I'm not sure that there would be a great benefit for IB.
youngneil1
Posts: 148
Joined: Mon Jan 20, 2020 9:01 am

Re: Unreal Engine Side Project: Pt0

Post by youngneil1 »

I think Unity will also (or maybe can already) handel ray tracing. Nvidia is doing special development branches for UE4 though (with with Nvidia exclusive RTX optimizations and also DLSS; one needs to register for DLSS access though and on first attempt this did not work out for me). Unity certainly is cool, cant go wrong there either.

Ah, I made a little video on Pt0, so you can get a better idea:

https://youtu.be/MBUIL97U4P0
youngneil1
Posts: 148
Joined: Mon Jan 20, 2020 9:01 am

Re: Unreal Engine Side Project: Pt0

Post by youngneil1 »

I guess learning c++ wouldn't be the worst thing, but the learning curve for memory handling seems step
Yes, this would be a nightmare to manage by hand. Fortunately, UE4 has an inbuild system called "Reflection", which ia handles garbage collection (https://www.unrealengine.com/en-US/blog ... dated=true). I do not know though how well it works in the end :lol:.
User avatar
Dorateen
Posts: 262
Joined: Thu Jan 16, 2020 3:03 pm

Re: Unreal Engine Side Project: Pt0

Post by Dorateen »

Looks pretty slick. The figure reminds me of a classic Star Wars stormtrooper, with the shiny white and black color scheme.
User avatar
slowdive
Site Admin
Posts: 485
Joined: Wed Jan 15, 2020 4:37 am

Re: Unreal Engine Side Project: Pt0

Post by slowdive »

youngneil1 wrote: Wed Dec 23, 2020 9:52 am Ah, I made a little video on Pt0, so you can get a better idea:

https://youtu.be/MBUIL97U4P0
That is so cool that you figured all of this out in Unreal engine. My kids and I watched the video and they were really impressed with the flying and throwing the green light cubes :lol: My daughter really wants to learn how to make games like this (she plays iPad games that are 3D and exploring worlds), but the steep learning curve is intimidating to her. I have her watch video tutorials on how to make simple games in Unity and how to make simple models in Blender. I reminder her it is a TON of work just to make something even very small :P
youngneil1
Posts: 148
Joined: Mon Jan 20, 2020 9:01 am

Re: Unreal Engine Side Project: Pt0

Post by youngneil1 »

Looks pretty slick. The figure reminds me of a classic Star Wars stormtrooper, with the shiny white and black color scheme.
Thank you, Dorateen. Hehe, absolutey, I am loving the stormrooper aesthetic. This one comes will Unreal Engine, it is the standard player character (pawn). The reflectiveness of the armor/suit fits perfectly to the ray tracing tech.
That is so cool that you figured all of this out in Unreal engine. My kids and I watched the video and they were really impressed with the flying and throwing the green light cubes :lol: My daughter really wants to learn how to make games like this (she plays iPad games that are 3D and exploring worlds), but the steep learning curve is intimidating to her. I have her watch video tutorials on how to make simple games in Unity and how to make simple models in Blender. I reminder her it is a TON of work just to make something even very small :P
Ah, compared how you set up IB from the ground, toying with UE4 is rather easy. As with most things, finding a way to begin, not getting overwhelmed and getting a first foothold is the most difficult part (well, so far). So, cool - many thanks to your children for the appreciation, Jer. Awesome that your daughter is looking into game development (I am watching lots of video tutorials right now, too). It is hard work for sure (I imagine especially if done for a living, with a boss and such :lol: ).

That said, follow your dreams rings very right to me.

Next little update:

https://www.youtube.com/watch?v=Ql2ylrF ... e=youtu.be
youngneil1
Posts: 148
Joined: Mon Jan 20, 2020 9:01 am

Re: Unreal Engine Side Project: Pt0

Post by youngneil1 »

Just a little battle plan for next steps:

0. Shortcuts to remember: use ctrl-key down to to rewire nodes, press c for comments inside the blueprints, draw of output pins and select "make" option to turn them into variables (same as promote to variable?)

1. Is world position rebase still working correctly with the sublevel anchors (force rebase and see results)?
2. Add a rendertotext call to display our large scale world position over the head of the player character, maye also use rendertotext for info on spawners (level position, large scale world position); maybe diretcly use HUD
3. Could add a debug cube/shape for last spawn trigger and reabse trigger to actually see them
4. Build simple spawner actor (with no mesh of its own) to be used for every sublevel (this spawner will likely generate hierarchical instanced static meshes around him, created by an hierarchical instanced static mesh component inside the spawner); spawner's construction script allows us to see the results diretcly in the editor; use lods for the static meshes to increase performance even more, looks easy; exposing the variables of tge soawning algorithm allwos us real time experimentation in the edtior; pre-combine actor groups placed in a level into single static mesh pieces (group select them and press RMB, select turn into static mesh option then); pre make diffent instances for differnet color schemes as we can onky modify an ibstance's transform, but not the material; leave scale at 1.0, test if this is a must); manipulating arrays of HISM uses repalceAtLogic, moving the last element into the gap, careful here...
5. Populate world with these - rather boring at the beginning - spawners and debug, especially with an eye for performance (size of sublevels, streaming radius, alternative ways to create the cube meshes, maybe use an actor pool solution, etc.)
6. Create spalsh/intro screen (Pt0 for the win :) !)
7. Create main menu (Begin Play, Options, Quit for starters)
8. Enable entering a large scale world coordintae to spawn the palyer into the world at this location (likely asked for after gebin play button is pressed)
9. Think of interaction between nighbouring spawners: interaction like nueighbouring spawners influence chance for type of current soawner...

To be continued..
youngneil1
Posts: 148
Joined: Mon Jan 20, 2020 9:01 am

Re: Unreal Engine Side Project: Pt0

Post by youngneil1 »

A bunch of templates for meshes (spawners) will be placed at a far edge if the level. These are actors with HISM Components. One of them is for sub level anchors.

The routines for initializing the 25x25x25 field of sublevel anchors reside currently in the player characters event graph. So do the routines for updating this field of sub level anchors after the player moved 1km.

The sub level anchor indices are kept in an array, ideally of structs. Such struct stores gridx, gridy and gridz of each sublevel anchor. It also holds a bolol for spawnSublevel.
Post Reply