Author Topic: Control Genes  (Read 4942 times)

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Control Genes
« on: October 28, 2005, 04:48:53 AM »
Figured out we can make fairly extensive ctrl genes now. We just store an activation number into a location then readback that location and mult appropiate portions of a condition with it.

Code: [Select]
cond
*.eye5 0 =
*.nrg 100 <
start
0 50 store
stop

cond
*.eye5 0 >
*50 0 =
start
1 50 store
stop

cond
*.eye5 *50 mult 0 =
start
314 rnd .aimdx store
stop

Advanced Conspec Recognition on the cheap :)
Checks: refup, refdn, refsx, refdx, refeye, refshoot, refaimdx, refaimsx
Only thing I couldn't use was refties/myties. The numbers just didn't work out right.

Code: [Select]
cond
'Gene should allow bot to test amongst 8 different refs/myvars randomly
.refup 7 rnd add * .myup 7 rnd add * !=
*.eye5 37 >
start
-1 .shoot store
stop
« Last Edit: October 28, 2005, 04:55:08 AM by Endy »

Offline Light

  • Bot Destroyer
  • ***
  • Posts: 245
    • View Profile
Control Genes
« Reply #1 on: October 28, 2005, 05:34:13 AM »
The only problem I see with this is that it is vunerable to viruses, but a neat idea  ;)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Control Genes
« Reply #2 on: October 28, 2005, 09:02:12 AM »
Most techniques are vulnerable to viruses I think ;)

Looks pretty cool.  If you could find a way to combine 1 and 2nd gene into one, then it'd be even better.  (hint: use the new 'else' flow command.)

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Control Genes
« Reply #3 on: October 30, 2005, 08:53:50 PM »
Actually the second is a bit messed up...I forgot that x rnd wouldn't be necessarily the same. Maybe use the timer and a store/inc series to make it work. :redface:

We actually can do more with these ctrl genes than I originally thought. Instead of just setting a condition they can actually change the conditions themselves to varying degrees.

True Stemcell Bots
Situational Awareness

The Stemcell Bots would use epigenics to control phenotype expression. The epigenic loc would modify the conditions and activations by activating/de-activating or modifying whole genes.

For situational awareness the bots could modify the genes based on external situations. If it saw an enemy for instance it could activate it's own defensive genes. Or to behave like a spoor simply shut all the genes down, except for a random checker gene.

A few oddball things you can do with this is a version of Non-Deteministic gene flow and self modify a bot's behavior based on the mode it's in. A modification from F1 to F2, for example, would de-activate all the TF genes a bot has.

Small Example:
Code: [Select]
cond
*.refeye *.myeye !=
*.eye5 0 >
*.refeye 0 !=
start
1 971 store
stop

cond
*.poison 100 *971 mult <
start
100 *.poison sub 2 div .strpoison *971 mult store
stop

I feel like DB is definitly getting closer to the goal with impressive dna abilities like this. Programming is getting realistically complex, I think DB has actually surpassed VB in some ways.

I'll see about posting up a wiki, with all this explained and some more examples.
« Last Edit: October 30, 2005, 09:01:50 PM by Endy »

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Control Genes
« Reply #4 on: October 30, 2005, 09:51:02 PM »
For those of you designing spin-offs, I'd recommend keeping/adding the newer dna ctrls. Using math in conditions could always be done in essence by setting up your values in previous gene. The new * is extremly useful since it allows changable conditional values.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Control Genes
« Reply #5 on: October 30, 2005, 10:06:14 PM »
The only thing that the DNA really lacks is a way to swap the top values of the stack.

This could be extremely useful, but it also modifies the idea of how the stack works to be less strict...

I dunno, just throwing that out there.  Swapping the top values in the stack allows for some truly mind boggling feats of programming prowess ;)

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Control Genes
« Reply #6 on: October 30, 2005, 11:05:22 PM »
That's kind of what I was thinking for the flip command would do.

Code: [Select]
A rnd dup B flip

Stack:
A rnd
B
'Same A rnd
A rnd

add flip

Stack:
A rnd
B + A rnd

C add !=

' Meaning check if A rnd + B and same A rnd +C !=

I don't think it'd be relaxing standards too much. Not sure what else could be done with it, but then again I haven't really looked either.

Maybe after the port happens would be a good time to look into it.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Control Genes
« Reply #7 on: October 30, 2005, 11:46:40 PM »
That's probably a good idea.

Speaking of the port, I have 2 other active programmers.  The GUI is being worked on by someone that's not me!

That means I get to spend more time on the engine making it fast and less on making the clicky tabs more clicky.

Everyone thank wolfhound for his excellent work ;)

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Control Genes
« Reply #8 on: November 01, 2005, 04:34:53 PM »
Cool I'd love to see the GUI improved. It does well enough but if we make the interface better and cooler looking it would give the program a boost.

It's kind of like this massive behind the scenes program has this dinky looking interface. It also gets annoying having to jury-rig sims to do what I need to.