Search Unity

minimum machines needed to create computers inside a game.

Discussion in 'Game Design' started by TheGaul, Sep 1, 2019.

  1. TheGaul

    TheGaul

    Joined:
    Apr 15, 2019
    Posts:
    199
    So everyone knows you can create computers and machines inside minecraft.

    What do you think is the minimum set of machines that can achieve computations inside a game? (But is also easy to understand?)

    Actually from my research, I found that allowing a player to create a rail track with different colored markers on it. And have a train which stops above 2 neighbouring markers and depending on the color of those markers (using a special set of rules) changes their colors and then either goes forward or backwards is enough for a Turing complete machine. (Though not especially intuitive). The programs, input and output would be encoded as different color markers on the track.

    Other methods would be to have things like and-gates and or-gates and wire them together. A bit like Little Big Planet. But that causes the problem of a spaghetti mess of wires.

    Or you could do similar things but with mechanical elements.

    Are there any games you know of that do this kind of thing really well?
     
  2. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,203
    Modern games that have logic elements tend to offer a decent selection of them but the truth of the matter is you only need NAND gates or a NOR gates as these two gates are functionally complete meaning that you can replicate all the functionality of the other games by simply combining NANDs or NORs.

    https://en.wikipedia.org/wiki/NAND_gate
    https://en.wikipedia.org/wiki/NOR_gate

    That said depending on the way you implement the logic simulation may make it necessary to implement logic elements other than just these two gates. Many logic simulators have an optimization that prevents you from feeding the output of a gate directly back into the gate's input, but in the real world you can do that with NOT gates to create a ring oscillator (ie a clock generator). Therefore functionality that would normally be created this way may have to be separate logic elements.

    https://en.wikipedia.org/wiki/Ring_oscillator
     
    Last edited: Sep 1, 2019
  3. TheGaul

    TheGaul

    Joined:
    Apr 15, 2019
    Posts:
    199
    Thanks! One idea I had was instead of electricity, have little streams of ants.

    Then instead of gates have anthills. The ant-hills would contain a "queen ant" which gives birth to streams of ants unless other ants come in to the anthill and destroy the lava. Basically this would correspond to a "NOR" gate, like you say.

    Each ant-hill would be supplied by only certain other anthills. You could even have circular networks.

    The gates would be:

    OR GATE

    \
    hill--> hill-->
    /

    NOT GATE

    -->hill-->

    AND GATE

    -->hill
    \
    hill-->
    /
    -->hill


    Perfect! (It would be a very slow computer though!) I'm not sure what the point of these computers would be though. They would have to feed into something to actually do something. Maybe there could be a wheel or something powered by ants. Or an ant-hill that is a sensor, or a button, that only produces ants due to certain inputs. And a "clock" ant-hill that periodically produces streams of ants (although this might be achieved by two hills feeding into each other hill<--->hill).

    Well it does something.

    ants.png
    I'm not sure it's Turing Complete. But maybe it is. Computation with ladybirds.
     
    Last edited: Sep 1, 2019
    Ryiah likes this.