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

Official Website

Ok so. At long last I have a website for the project I’ve been working on for… two years? yikes.

So needless to say this has been a learning experience in addition to a massive undertaking. Note to future self “try” to make smaller games. Please.

The current state of the game is very different than what it once was. In the beginning it was meant to be puzzle rooms set in a space wreck. work your way out and find the mystery. that got scrapped pretty quick when I found I liked just moving around with the physics.

That developed towards more survival systems.

The movement and item physics changed a lot over time. I wanted the station to be confined to keep that feeling of claustrophobia (or as I call it: Comfortably small), but the room and door sizes caused issues with clipping and with items so I had to work out some more complex movements in addition to scrapped art assets.

over time I established I wanted to be able to travel between different small stations (debris clusters) scavenge the area and then move on. That gave me the player ship which started out as a cute little room with engines and a chair and is now growing into more of a small base as it became evident that moving items around in it was not fun.

The power network has been particularly annoying issue to me. Mainly because I’ve had issues getting it to function well, be bug-less and scale properly towards systems that use it.

Version 3 is in progress and changes all the conduit models to be spline based. This means I no longer have to make conduit models for ever room module, I can place conduits anywhere on the walls I want, and it also becomes an active part of gameplay more so than it was previously. It’s also much more complicated and buggy which is not ideal but if I can’t get something in that feels gamey I’m just going to have to stop calling it a game.

I’ve always had in mind that progressing toward rewards should require fixing broken components and reconnecting systems. The game is still on point towards that goal. I just need to try to scope better work towards the core fun.

One part of that fun has been the computer terminals which seems to be a very scale-able system as each program is it’s own UI interface and all file management and hard drive stuff is basically finished. The version 2 power manager program was a huge success and even gave a fun unexpected feature in which you could power off the console running the power manager.


For anyone who found and read this:

Thank you.
your support matters.

I care a great deal about this project and hope one day I can show you what I’ve been trying to make.

-Peter