Devlog #1 – Transaction Mechanic using Node System In Unity
Hello, After all this time developing the Teller’s Duty game, I finally got around to doing a devlog, it’s a bit difficult to develop while devlogging, you have to get used to it hahaha.

Initial Idea
Okay, let’s discuss one of the features in Teller’s Duty, namely customer transactions, a feature that is the core mechanic of this game, which allows customers to queue and make transactions with teller’s and tellers determine whether to accept or reject the transaction.
After in-depth research on the implementation of these features, I finally thought of the node system, because in the previous game I had used the node system but only for the dialogue system, now I want to develop it more advanced, namely the transaction and dialogue system are made into the same system.

XNode
I am very grateful to the author of this xnode library https://github.com/Siccity/xNode
because I can make this well in unity even though the code was 5 years ago, but it is still relevant and supported by the latest unity.
In terms of basic architecture, we use a Linear Finite State Machine, which is the Node System itself, so every decision is actually clear where the ending is, unless there are some values that we randomize.
Node Graph
There is a component called Node Graph that contains one full transaction from a customer, this Node graph contains who the customer is doing the transaction and what nodes are used to assemble a transaction.
State Node
State Nodes are part of the node graph, and interestingly can be extended to almost any form of new feature that will be included in the transaction, for example existing state nodes
- Customer Move State – to set the movement of the customer character
- Dialogue State – to display the dialogue of the customer
- Basic Transaction State – to display the document and enable transaction accept or reject mode
- etc.
Example:
Basic Transaction State

You can see, the game designer can add transactions made by customers with the customer’s personal data automatically entered from the customer data in the graph node, the game designer can add any errors that will be included in the transaction.
The cool thing is, all of that can be automated by extending the basic transaction feature to dynamic, so transaction errors don’t need to be added manually, and everything is automated by the system.