Forensic Friday 56: Research Nodes Galore
Forensic Friday! On a Friday! Indeed we find ourselves on the precipice of the hopefully last slow-burn sprint of development until the game is ready for early access. With that comes the slow but steady cracking away of features each week until voila, the game is out and ready to play. Currently, development is a single-man operation, but that is soon to change. Well, on the programming side, probably not as quickly as one may hope, but the current one-man operation is doing a pretty good job! Most of this week was spent implementing the research tree, quite an exciting addition, though the complimentary experiment system is still waiting to be re-implemented. However, all that should happen by the end of next week and we can gracefully move on to the second batch of features: Facility Raids & Controllable guards. Not exactly the highest priority in the list of things to implement, but also not something that would take too long! (That’s what we always say, then 2 months later…) Anyways. Onto the main event! Research screen!!!
NODES! ARHHHHHHH! #
The research system. Something that can be described as a series of nodes. Nothing too special there. But! We have something to make it stand out from every other research system ever seen to date… cue the drumroll… it’s 3D! If that wasn’t clear in the previous Forensic Friday 55, then we have clearly not communicated the extra dimension well, or the mockup was crap. Though I’d like to believe the former. Anyways, images before words, so here are some images of what the research screen looks like so far.
Research tree with only a few initial nodes.
Complex research tree with many nodes revealed by scientists
Note purple “mystery” node appears disconnected from the rest of the tree
These images illustrate some aspects of the research tree, most of the fact that it’s coloured, and navigated in 3D, and it’s pretty all straightforward from there. The way we figured researching should work is this loop:
- Get a proposal for the experiment (on anomaly) from a scientist on site (or an external source)
- Accept and organise experiment to complete the proposal
- Gain experiment report item and store it in a lab
- The lab generates research points from stored experiments
- Spend research points to start the research effort (on the node)
- Assign scientists to research node to speed up research
- Unlock the research node and gain any items, effects etc it grants
Pretty simple, however, there is a slight novel mechanic that we had in mind for the research tree…
Mystery nodes #
Mystery nodes are nodes that randomly appear in your research tree. They are usually very distant, and you don’t necessarily know how to get there, but you do get hints that it could be something interesting. So naturally you research things in that direction until you can finally unlock the research. Could it pay off? Who knows, perhaps it could?
It is effectively a way we can provide short (or long-term goals) for players to strive for in research, and makes the process more interesting, within playthroughs and between them too. The idea is that it represents scientists having random ideas and epiphanies about future technology and research that could be within the realms of possibility, and then you can lead the cutting end front of research in that direction. Hopefully, that’s pretty cool!
That combined with the tree being completely randomised between playthroughs could lead to a lot of replayability. At least that’s what we hope!
Placement of Nodes #
For those more technically minded, you might ask “What algorithm did you use to place the nodes?”, well, the answer is a lot simpler than you think. We initially were going to do some research into Force Directed Graphs, and layout the nodes using something from this very useful paper however! Simplicity is simply the best. So instead, for the sake of speed (and our heads), we decided to implement a very simple novel method we came up with ourselves. We call it the “Chunk Graph” method. We trivially place nodes by looping through all the nodes using a flood fill algorithm and placing each traversed node into a chunk, where each chunk can only hold one node. Then we add some random offset to the nodes to make it look less “robotic” Pretty simple!
First successful version of “Chunk Graph” layout with bias towards placing nodes up (creating tree aesthetic)
So yeah, this approach works pretty well, and is very easy to comprehend! (We didn’t fail at implementing a Force-Directed Graph and give up trying to be smart)
This image is our failed attempt to implement a Force-Directed Graph (it is as good as random)
The only issue with this system is that there is a limit to the number of neighbours of each node that can be displayed (placed in chunks), which is quite bad! Especially with the foreseen modding scene, we can totally expect modders to vandalise the research tree with branching horrors beyond comprehension. However, a slight modification to the algorithm can always remedy this limitation. And as with all things, we will deal with it when we get there!
Anyways. All that is said and done, all that’s left is to show a short video of it in action!
You may also notice the “experiment archive” tab! That is probably left for a future Forensic Friday though!
The last thing to note is that we have fortunately received a large amount of interest from composers willing to provide their creative talent for the project. Amazing! Not much else can be said other than, we will probably have a composer by the end of next week! We have a lot of talented and extremely professional composers register their interest, so it is very cool to see.
The same goes for the artistic side, and our other job openings, but thats all for us anyway. We will keep you updated about such things as that happen, and this will be the last time we mention it probably!
Case Closed #
Well, with that comes the end. A Forensic Friday with actual pure feature progression is truly a gem, considering the past 5 Forensic Fridays have been cast in a dark shadow of utility AI. But development continues! And this blog post must come to an end so? I may continue doing what I do best, developing!
Well, wish everyone a great weekend, and week too. Join the discord if you want cookies, and tell your friends about the game. We love cookies! Oh, and you guys too I guess? (Our lawyer recommended I to put a disclaimer that we do not in fact have any feelings towards internet people, but we do appreciate you)
Do we actually have a lawyer though?
I should really stop typing now! Ciao!