You can do it with some minimal math. Basically you take 3d points x,y,z and project it to the screen with:

screenx=x/z

screeny=y/z

size=1/z

If the perspective is too severe you can scale it with:

screenx=scale*x/z

screeny=scale*y/z

size=scale/z

The camera is at 0,0,0 but if you want to move it around you can also do this:

screenx=scale*(x-camerax)/(z-cameraz)

screeny=scale*(y-cameray)/(z-cameraz)

size=scale/(z-cameraz)

you can also hide anything behind the camera by seeing if scale/(z-cameraz)<0 for each object.

lines are done by taking two points and using lerp to find the in between positions.

https://www.dropbox.com/s/5fser7xtmov44 ... .capx?dl=1

Thank you, this was very helpful.

I was able to make a very basic/linear node generator after figuring out how your example worked: https://www.dropbox.com/s/w5m8q3fyw97fg ... .capx?dl=0

The method I used to focus on the next node is not perfect but it works for now. My biggest concern now is how I will generate different paths and allow the player to choose which path to take.

The goal is to make it branch out like the sector map in FTL (shown below)

I will experiment some more to try and find an efficient way to accomplish this.