Files
NeoComputers/TODO.md
2026-04-29 21:58:43 +03:00

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.