Epic News

Good news everyone! The project got funding! From Epic! The title is a pun!

I’m so happy for the flexibility this offers me and I’m very grateful to the great folks at Epic that made this happen for me. If you’re reading this: Thank you, I’ll be keeping in touch.

Oh! The screen above shows a mock-up of the exterior of the new asteroid map. That’s the version 5 ship. I wish I could say it’s the final but I’m already seeing stuff that may need changes. I gutted the whole interior and rebuilt it with the new gameplay in mind (detachable panels)

Will be working more on the ship later on. Current goals are fleshing out core gameplay: Atmosphere control and farming (Oh buddy we’re gonna get space farms.)

Was sad to see the Printer gone from the ship but that mechanic would have to be end game content anyway. Maybe later??

Considering how to reuse the Blueprint card models and I think I can re-purpose them in connection with the computer hard drives. Given how I’ve piggy-backed the power network to function and a network connection (in the power manager program) I think I can setup more items and systems to require a hard drive with “software” installed. Really expands that whole system.

I’ve been wondering if including viruses would be too brutal to gameplay. Depending on outcome it could be a tactical move. At some point I will be adding locked doors and then reaching resources will start to become the multi solution puzzle I want the game to be.

Oh and I fixed the power conduit generation! (I broke it to fix part of it and then fixed it again) I solved some long standing bugs that I had been dealing with for a while and didn’t understand. It still have a few small bugs which I have chosen to ignore for now (forever).

I’m looking into if I should leverage the conduits for water/liquid transfer as well and I think it’s a good idea gameplay wise but there’s some conflicts with generation and that is a system I would rather not break again or add more to (it’s slow). I think I can limit the scope of it to a small area and allow the player to expand on it on their own. win win.

I mentioned the exterior (rocky) part of the station was placeholder? I’d like the option to have a spacesuit that can be used to exit into vacuum (both decompressed rooms and outside) For this to be worthwhile I need each map to generate differently. I have my eye on a few new features to Unreal which might be workable. Ultimately I need to be able to dynamically build meshes so they smooth out and allow the interior tunnels to punch out dynamically. This whole thought is for later but I thought I’d share it.

Ok bye!

-Peter

Atmosphere Troubles

So one of the major systems I wanted to include was complex atmospheric pressure, temperature and particle makeup.

The desired end result being a complex balance between systems which make heat, oxygen, CO2 and so on that could easily create a dangerous environment or directly cause harm to the player or the content of the rooms.

I started by building a post process effect that would fade away into the distance to simulate the thick air effect. Then I made a custom depth mask which would remove this fog from anything outside of windows.

Good first step. But I wanted more out of it. I wanted to be able to open a door to a depressurized room and watch as it equalized.

This proved a lot harder. First attempt would use custom depth masking and stencils in doorways with a complex system of possible pathing options and rebuilding those stencils for the post process to apply the correct atmosphere effect beyond that doorway.

I used a spheremask and the direction and location vector to get a “in doorway” mask to swap out with the other effect.

Finally I made the math equalize the rooms by particle percentage and volume. It worked out pretty well, but there were a few problems.

  1. Once Equalized rooms where all one and any heat, oxygen or CO2 would be added to that massive pool, effectively spreading out and travelling unlimited distance.

    All uniqueness of the rooms was gone. further more: rooms would be unheatable as the heat would always equalize and dissipate.

    The effect would need to be removed from the doorways and more dynamically placed between module piece connections.

  2. The method custom depth stencils use makes it impractical for any kind of effect stacking. Meaning if two doorways with different atmospheres line up with the player camera the one farther will not render until the player passes through.

    Making an undesirable pop-in effect.

    Note: Custom depth stencils CAN be stacked by giving each farther a smaller Bit. However for this to work you have to set the model to ignore depth. A condition of the effect is that it uses depth.

Conclusion:

The method of air transfer needs work. atmosphere modifying systems need to portion off sections from the whole and leak back in more slowly.

the visual effect is good in theory but might not be possible.

Edge Cases

 

     Progress on the conduit based power system has been moving at a pace of a sort.

It’s a hard concept and I don’t get to dedicate as much time to the project as I would like. This makes for slow going.

 

   Bit of background: The conduits are made to be placed by the player to connect references to the power system, build networks and decide if you can or cannot turn on lights, and devices. They reference an overarching power network and pass all information through it. This works.

    Conduits also need to procedurally generate in the rooms so that they link up in a meaningful way. I used a set of nodes that link up at ends to build a pathable network. the path moves from room to room until it finds it’s chosen power source or bumps into an existing power conduit. This also works.

     Conduits also can only be so long so if the path they are taking is too long they need to split up and connect two or more lines. This mostly works.

 

The crux of the issue is the system has become so large and so convoluted that finding and fixing all of it’s many edge case errors is proving quite complicated.

Stuff like: links not connecting pointed at eachother.

Or: Conduits misjudging their maximum length and falling short.

Or:  Whatever happened here? I think It generated a conduit with no target. Quite bad.

 

Positive side? It’s fun!

     The mechanic really feels like problem solving with limited resources and that is exactly what I wanted. It will take some time but it’s going somewhere really interesting and (I think) quite unique.

-Peter

Procedural Networks

I expected finish off my conduit generation system on one long weekend. It didn’t work out and as you can see from this screenshot the debug abounds.

The system is good in theory. I sphere trace at defined points. build a network of connected ends. with those ends I can follow small segments of line from a start to a finish.

If the path goes the wrong way and reaches as ending it steps back to a saved past crossroads and tries another path.

From what I can tell it’s either stepping back when it shouldn’t or not getting the network it needs to keep moving forward. As of yet I don’t know why.

All my tests confirm there are no dead ends that shouldn’t be there and the network builds correctly. I can only assume my logic is faulty somewhere else.

Only thing to do is keep poking it until it gives up it’s secrets.

-Peter

Update: Sometimes Remove Array Item and Remove Array Index can be used interchangeably. However Remove Array Item will remove ALL references of an item. Also, I guess, sometimes things which should be unique and not the same are actually the same thing????

Don’t know. It works. Doesn’t matter.

Spline Conduits



Progress in the last month had a few hiccups, but, in the end it all works out. The main problem of March-April has been the spline conduits. Getting them to link, both visually and otherwise.

The end result is splines with plugs that chase an invisible “Held item” and create new nodes on the walls were placed. It can link up to other conduits, splitters and sockets.

It’s not perfect but it functions. Until it comes time for polish, that’s a win.




After that, I just had to rebuild the Power Network to generate using the new reference path. I’m not sure if it will run faster than the old version or not but it seems at least less convoluted than before and should be more direct in optimizing.

The next step is going to be in having this system work in generation. I have to figure out a way to, for example, move a line of wires from one socket in one room alone the wall, through the door, down the hall, around the corner, and into another room where it needs to plug into something that needs power.

This needs to work every time, not have any visual or connection errors, and also generate reasonably quickly.

I think I have an idea but it’s not without it’s potential issues. basically I’m doing several passes where I randomly step between rooms until I reach the target, then I compare the passes to find out which is shortest, and use that one.

Once I have the path from room A to room B I need the paths of the conduits through each room. Either from the one door to the next or from the door to the power target.

Each time it labels a set of points as a path. After the first path is defined the next path can be created faster by linking with the existing one.

The “Paths” of the wires in the rooms are a bit trickier. I need to make a group of points that form a line which can be used for the Spline. The points need to recognize overlapping so they can form a more complete linkup of potential paths.

Once all of this is finished it will use the defined pathways to generate Conduits and Splitters to place.

So that’s the plan.

Oh and I made this:


-Peter