1.6 KiB
Networking
All that is left is optimization
ERADICATE DIRECT
We only need NONE, SOME and NETWORK.
Optimize compute and memory
OC does this too
Optimize both time and memory using graph theory.
Requirements
It obviously must be fast and memory-efficient, and respect the current semantics.
The current idea is to make NETWORK style nodes the only ones with a cache, and to instead appoint a connection that is also a NETWORK node, if any, as the one source of truth, or steal the source. This means only one node in a local network gets to actually compute the graph layout. Complications can happen when merges happen, the idea is to pick one source of truth then as well.
Also, onNodeAdded and onNodeRemoved should also be called when a reachable node is added/removed.
This is for perf. We only care about nodes being added/removed then.
This can be done by broadcasting to all of their connections, to circumvent the NONE/SOME/NETWORK asymmetric reachability sets.
Optimize power balancing
Use a smarter algorithm to prevent N storage nodes from iterating N^2 nodes each tick to balance power.
Computation
Pretty important for a computer mod
JNI
We need the JNI system so we can salvage our hard labor thrown into NeoNucleus. Also because it is a capable engine and has a good API for architectures, and NCL is very capable.
Worker threads
Computers need worker threads for running non-synchronized code, because otherwise we're cooked
Entities as machines
Aside from blocks like cases and robots, we should also support entities like drones. Not only for OC parity, but also as addons would def love that.