Development Forum |
 |
| 
Vermidia
 
|
9/23/2021 | 2 |
I've gone through and poked at C3's source code quite a bit, which led me to a google spreadsheet with all the rules!
I probably don't explain some of these very well, so this thread is mostly for questions and/or suggestions to improve it.
You know...wait...nevermind... wait...no...umm...maybe later... |
 Peppery One
Papriko
    
|
9/23/2021 | |
This all sounds very interesting, but I have to admit that I don't know how to read that spreadsheet.
Lets play plants! Photosynthesis... Photosynthesis... Photosynthesis... |

Vermidia
 
|
9/23/2021 | |
SVRules are for brain lobes and brain tracts, which have processing rules and initialization rules.
Both those sections are composed of 16 lines, each line containing an OpCode(by default stop in every single line).
OpCodes usually also have an Operand(though some don't) which are in a diff part of the spreadsheet. Operands could be thought of like variables in caos.
Each OpCode with an Operands either reads it(Uses it for something but doesn't modify it) or writes it(changes it in some way).
What everything does is written in the description part, the code part is just what the relevant parts in the source code look like.
You know...wait...nevermind... wait...no...umm...maybe later... |
 Peppery One
Papriko
    
|
9/23/2021 | |
Uhm, I found the problem... At the risk of sounding stupid, but I didn't see the other pages, just the "general info" one XD
Explains why it felt oddly short and incomplete...
Would you mind providing an example perhaps?
Lets play plants! Photosynthesis... Photosynthesis... Photosynthesis... |

Vermidia
 
|
9/24/2021 | 1 |
For an example, The Stimulus Lobe's Update Rule starts with:
[load from] [neuron] [input]
Load from is the OpCode, neuron is the operand, and input is what I labeled value entry in the operand sheet. This command sets the accumulator to the current neuron's input it's on(neurons are likely processed in numerical order).
the next line(line 2) is:
[if < ] [zero]
This means that if the value in the accumulator(which was just set from the neuron input) is greater than zero, the next Opcode(or line if you want to think of it that way) is skipped. Line 3 is:
[blank] [accumulator]
So here, if the accumulator was less than zero in the previous line, this is run, and it just sets the accumulator to zero. If the accumulator in the last line was greater than zero, then this is never run, so the accumulator would still be whatever the neuron's input was. Line 4 is:
[store in] [neuron] [state]
This sets the current neurons state to what the accumulator currently is. By this point, it would be either zero or greater. Line 5 is:
[blank] [neuron] [input]
This just sets the neuron's input to 0.
Every OpCode after is [stop] which just tells the brain to not process anything after the line they're on(so here nothing after line 6 would be processed).
So in total, in the genetics kit it would look like this:
Line 1: load from neuron input
Line 2: if < zero
Line 3: blank accumulator
Line 4: store in neuron state
Line 5: blank neuron input
Line 6: stop
Line 7: stop
(The stops go up to line 16, which is the max amount of lines a rule can have)
You know...wait...nevermind... wait...no...umm...maybe later... |
|