Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Numsgil

Pages: 1 ... 19 20 [21] 22
301
Off Topic / Music
« on: February 24, 2005, 08:16:26 PM »
Hey guys, it looks like a few of you have tried your hands at composing music.

I was thinking Darwinbots could use a track for the opening splash screen and options screen, and maybe a few tracks for the main game.  Obviously you'd be able to turn it off during the game if you like, etc. etc.

Post links to any music you have rights for that we could include in the game, or send them to Numsgil2002@yahoo.com with the subject line "Music for DB" and I'll link them myself.

For the opening screen I was thinking of the music that simant plays during its splash screen.  (BTW, if anyone knows a link of where to get that MDI, I'd love to have it).

For the main game we need something that's playful and mysterious at the same time.

I'm not sure how we'd inlcude the music yet.  It could make the main game download rather large.  Perhaps we could just do Midis or something along those lines.

Also, let's just talk about music!  Yeah.

302
Specialization, Metabolism, Digestions and Env Grid / Black Smokers
« on: February 24, 2005, 03:07:52 AM »
I'm working on figuring a metabolic system for black smokers.  If you don't know what that is, google it, there's all kinds of information.

I have thus far:

H2S + O2 + CO2 -> nrg + S + H20
S + H20 + O2 -> SO4 + nrg

As the two metabolic processes.

I don't know what happens to the SO4.  Does it get split and turned into H2S and O2 by the intense heat of the black smoker?

Other than that, I think this could work really well.  A black smoker would be a comparitvely long tub that emits H2S and alot of heat along the bottom of the screen (would only really make sense in pond mode).  The heat and Hydrogen Sulfide would dissipate into the environment.

You could edit the smoker attributes either through the options panel or by clicking on it during the simulation.

Organisms that contain this sulfuric metabolism are poisonous to most bots that aren't adapted, but if a carbon cycle organism learns to eat black smoker life forms some how it could develop a niche.

So many possibilities.

303
Aright, this is the system I wanted to implement.  Whatever the final version is, this should be a subset of it, the way Newtonian Physics is a subset of general relativity.

Food is divided into 'bits'.  Food is combined into the stomach of a bot.

Here are the food bit types:

Code: [Select]
Public Type StomachMouth
  Amount As Single 'how much stuff is actually in our stomach.
                   'used for calculating ratios
  
  Waste As Single 'chloroplasts in the presence of waste will use the waste up and become more productive
  nrg As Single
  light As Single 'silly, yes, but this is how plants will receive nrg from light
  protein As Single
  muscle As Single
  fat As Single
  Poison() As Poisontype 'we can have more than one type of poison in our stomach
  Venom() As Poisontype
  Slime As Single
  CalciumShell As Single
  SilicateShell As Single
  carbs As Single
  calcium As Single 'most of the time this will pass right through
  sand As Single 'Si2, this too shall pass
  SH2 As Single 'for black smokers
  SO4 As Single 'ditto
End Type

Look into the 'Energy Types and Stomachs' thread in the old forum.

Now, each bot has an enzyme array that it uses to digest foods.  The more enzymes you have, the more food you can digest at any given moment.

Light and photosynthesis are treated as a special case of this digestion process.

A bot recieves light into its stomach based on its surface area.  Light is removed from a bots stomach at the end of a cycle.  An enzyme called chloroplast converts light to nrg.  It is more productive in the presence of waste.



At the other end of the spectrum, each bot has a muscle array.

The strength of an action is determined by a heirarchy of muscles.

At the top you have general muscles.  These can perform all tasks.

Next you have group muscles.  These can only perform general tasks like movement and tie commands.

A list of all group areas:

Movement,
Shots,
Production and Metabolism
Digestion
Ties

Last you have specific muscles.  These can only affect a single command.

The strength of an action is determined by:

General Muscles + Group Muscles * 2 + Specific Muscles * 8

The coefficients are still undetermined, but you get the relative strengths.  The idea is that trying to specialize in all areas at once is less efficient than specializing in a few areas.

Now, each muscle can fire harder and harder, but it costs more and more energy.

Something like cost = 2 ^ Muscle Strength.

Each specialized muscle counts as 8 general muscles, etc.  You get the idea.

Desired Effect / (General Muscles + Group Muscles * 2 + Specific Muscles * 8) = Muscle Strength.

That is, Muscle Strength is used in cost figuring:

(General Muscles + Group Muscles * 2 + Specific Muscles * 8) * 2 ^ (Muscle Strength) = cost of action.



Muscles can be easily destroyed and turned into protein, but they take a long time to build up, and take alot of energy.  Muscles are split between parent and daughter cells during reproduction, so daughter cells inherit the specialization of the parent cell.

So for a cell to change anything about its specializations takes a long time and alot of energy, but is still possible since the mechanical mechanisms of the cell were never abandoned, just turned off.



That's it.  It's not quite finished.  Add your bits to complete the puzzle.

304
DNA - General / Viruses
« on: February 23, 2005, 12:31:18 PM »
I'm trying to make a virus that uses the new *.thisgene I'm working on to propogate itself.

But I don't know how to go about using the virus code.  I could look it up but I think everyone would benefit from someone showing how to use it here.

Start from the beginning, and go through the process step by step.

305
Suggestions / More realistic mutations
« on: February 23, 2005, 12:00:14 PM »
The idea behind this is simple:

A bot is more likely to have sharenrg mutate into sharebody than it is to have sharenrg change to shootval.

The machinery for sharing nrg is closer to sharing body than most other commands.  So in the mutations code, we assign probabilities for one thing to change into another thing, instead of having them more or less equal.

306
Dead-End and Solved Suggestion Requests / Aimshoot
« on: February 23, 2005, 02:49:00 AM »
I've already worked out the code for this, so this is more a thread for determining the balancing issues.

Storing a value in .aimshoot would make the shot shoot out in that direction, relative to the bot of course.

So:

cond
start
314 .aimshoot store
-1 .shoot store
stop

will fire -1 shots sideways. :blink: Pretty cool, huh.

307
Dead-End and Solved Suggestion Requests / Reallowing delgene weapons
« on: February 23, 2005, 02:37:20 AM »
I'm working on balancing combat and defenses enough that delgene weapons can be reallowed.

However, fact is that delgene is the most destructive weapon available to a robot, by far.

Therefore, I think delgene needs to be a time based command, like .mkvirus is.  This makes sense since that's what it was made for, anti virus commands.  This makes the delgene more on par with other weapons.

What's yall's thoughts? (Thought I'd be okie for a sec).

308
The Gene depository / End All DNA defense
« on: February 23, 2005, 01:39:19 AM »
Hey guys, this is the start of an end-all virus protection gene.

Code: [Select]
'end-all protection
cond
*.repro 0 !=
*.mrepro 0 != or
*.sexrepro 0 != or
*.delgene 0 != or
*.shoot -2 =
start
0 .repro store
0 .mrepro 0 store
0 .sexrepro store
0 .delgene store
0 .shoot store
stop

Obviously your repro gene will need to come after this for it to work.  Add improvements yourself, post the new version.

In the end we should have a single gene to protect against the more devestating viral attacks.

309
Dead-End and Solved Suggestion Requests / Planet Eaters
« on: February 23, 2005, 01:27:54 AM »
This would be very processor intensive, so it would only work for small sims.

Each bot is attracted towards other bots by inverse square law.  Basically gravitational pull, determined by each robots' mass.

Obviously this would be a just for fun mode.  It doesn't mirror anything in real life (anyway, I sure hope not!).   I think it would be fun to see bots learn to use a gravity sling effect from large groupings of vegs to accelerate to high speeds cheaply.

310
I'm working on energy types right now and I figured how to incorporate specialization with them.

Each robot will have a muscle array.  Muscles in spot 0 work for all actions but muscles elsewhere can only perform one specific task.  However, 1 muscle unit specialized to moving is much more powerful at moving than 1 muscle unit that's generalized.

Muscles are moved to daughter cells during reproduction like energy and everything else is.  (I'm working on having waste, pwaste, etc. moved to daughter cells as well, the same way energy is).

The power of an action would be something like muscles(0) + muscles(action) * 20, or something like that.

Poisons now can target muscle groups in addition to memory locations.  To render a bot mostly immobile, you can target the movement muscles.  To hinder a bot generally you can target the generalized muscles.  This could be accomplished by storing a negative number in ploc.

Venom would still only target memory locations since it is command based.

Dissassembling muscles will need to be expensive, so bots can't easily change specializations out of the blue.  Maybe muscles take a while to build?  (I'm using the idea here that muscles are built from proteins, instead of schvarz's version that proteins are muscles).

This solves the inheritance vs. practice debate nicely, since it does both at the same time.

311
F2 bots / Ymir (F2)(Numsgil)-21.02.05
« on: February 21, 2005, 12:01:38 PM »
Code: [Select]
'Ymir, AKA: dogfighter
'Designed for 2.35
'Version 1.1 - New conspec system to stop Umbra Draconis
'Version 1.2 - Added Slime to wallop Deathgrip
'Uses many of the new DNA functions and labels,
'manages to defeat every enemy easily and quickly except:
'1. Icarus, which it beats eventually, but some rounds may take a while (one round took 7 hours)
'2. Helios, which it lost to 25 to 42.

'our defines, so the code is a smidgen more readable
def newvectorx 600
def newvectory 601
def move_coeff 80 'a constant, not a memory variable
def bogey_threshold_distance 50 'point at which we stop chasing and start following
def threshhold 30 'speed threshold at which we chase bogeys
def aimdxbackup 603 'to protect against icrasus's turning shot
def meno_age 500

def IDTHING 604
def isnotconspec 605

cond
*.IDTHING 8741 !=
start
8741 .IDTHING store
stop

cond
*.eye5 0 >
*.memloc .IDTHING !=
start
.IDTHING .memloc store
stop

cond
*.memval 8741 !=
start
.isnotconspec inc
stop

'1=======================================
cond
*.robage 0 =
start
'we're a kid! make a tie
.shoot .vloc store
-2 .venval store
.shoot .ploc store
.tie inc
stop

'2=======================================
'deletes ties to parents and feeding ties (should anyway)
cond
*.numties 0 >
start
*.tiepres .deltie store
stop

'3=======================================

cond
'turn to thing in eyes
*.eye4 *.eye6 !=
*.isnotconspec 0 >
start
*.eye4 *.eye6 sub .aimsx store
stop

'4============================================
'We have a bogey at 12, in the distance
cond
*.eye5 .bogey_threshold_distance <
*.eye5 0 >
*.isnotconspec 0 >
start
'find our new needed vector

*.refveldx
*.refvelup .threshhold add

stop

'5=======================================
'we have the bogey in our sights, open fire and match his vector
cond
*.eye5 .bogey_threshold_distance >=
*.isnotconspec 0 >
*.refage 4 >
*.robage 4 >
*.reffixed 0 =
start
'if you have to ask, you'll never know :D
'*.refeye 1 sub sgn 1 add 2 div -5 mult -1 add .shoot store
-6 .shoot store

*.refveldx
*.refvelup

stop

'6=======================================
'this is to stop 'bumping' of fixed bots (a nasty behavior bug that drained alot of energy 'really fast)
cond
*.eye5 .bogey_threshold_distance >=
*.isnotconspec 0 >
*.refage 4 >
*.robage 4 >
*.reffixed 0 >
start
'if you have to ask, you'll never know :D
*.refeye 1 sub sgn 1 add 2 div -5 mult -1 add .shoot store

*.veldx -1 mult
*.velup -1 mult

stop

'7============================================
cond
'There's nothing here! Let's get sick and throw up, just like the teacups ride at Disneyworld
'add more eye angle conditions so we don't pass up a new meal
*.eye5 0 =
*.eye6 0 = and
*.eye4 0 = and
*.isnotconspec 0 = or
*.robage 20 > and
start

30 .aimsx store

stop

'8======================================

cond
'this gene does the actual movement
*.eye5 0 =
*.eye6 0 = and
*.eye4 0 = and
*.isnotconspec 0 = or not
start
'vectors are already on stack, in y over x form

*.mass 125 mult 100 div mult .up store
*.mass 125 mult 100 div mult .dx store
stop

'9=========================================
'reproduce! Yeah
'Only reproduces when it sees food, then throws the baby at the food
'if its an old bot, it gets menopasal,
cond
*.nrg 2000 >
*.body 100 >
*.eye5 50 <
*.eye5 0 >
*.refeye 0 =
*.robage .meno_age <
start
'100 *.nrg 500 div div .repro store
25 .repro store
stop

'10=========================================
'reproduce only if we have to
cond
*.body 10000 >
*.nrg 2000 > and
*.eye5 50 < and
start
40 .repro store
stop

'11========================================
'we're a baby, do a 180
cond
*.robage 1 =
start
627 .aimsx store
stop

'12=========================================
'get fat

cond
*.nrg 4000 >
*.nrg *.body >
*.robage 20 >
*.nrg 10000 > or
*.body 100 < or
start
100 .strbody store
stop

'13=========================================
cond
*.body 100 >
*.nrg *.body <
*.nrg 3000 <
start
100 .fdbody store
stop

'14=======================================
cond
*.body 100 >
*.nrg 700 <
start
100 .fdbody store
stop

cond
*.slime 200 <
*.robage .meno_age >
start
200 *.slime sub .mkslime store
stop

'15==========================================
'Poison
'============================================
cond
*.poison 1000 <
*.nrg 1000 >
*.robage .meno_age >
start
200 .strpoison store
stop

'============================================
'Venom
'============================================
'Possible venoms:
'Currently using #1
'1. shoot -2 shots
'2. Stop making shell, or make -shell
'3. Fix pos
'4. Turn around alot
'5. mrepro 50 or 99, makes the bot mutate so much it probably can't survive, would also work as a shot

'16=========================================
cond
*.venom 1000 <
*.nrg 3000 >
*.robage .meno_age >
start
200 .strvenom store
stop

'17=========================================
'SHELL
'==============================================
cond
'protects us if we're poisoned for a while
*.poisoned 0 >
*.shell 100 <
*.nrg 2000 >
start
100 *.shell sub .mkshell store
stop

'18==========================================
cond
*.refshell *.shell >
*.refshell 200 <
*.isnotconspec 0 >
start
*.refshell *.shell sub .mkshell store
stop

'19===========================================
cond
*.refshell 200 >
start
200 *.shell sub .mkshell store
stop

'20==========================================
'Maintenance
'============================================
cond
*.waste 100 >
start
-4 .shoot store
*.waste .shootval store
stop

'21=========================================
'DEFENSE
'===========================================
'turn to a bot that shot us and poop out a bullet for the heck of it
cond
*.eye5 50 <
*.shdn -2 != and
*.shdn 0 != and
*.robage 20 >
start
627 .aimsx store
-6 .shoot store
stop

'22=========================================
'They say imitation is the sincerest form of flatery
'later change so that a venom shot that makes bot shoot -2 is stored
cond
*.isnotconspec 0 >
*.shup 0 <
*.shup -2 !=
*.eye5 50 >
*.venom 20 <
*.refmulti 0 =
start
1 rnd .aimdx add .shoot store
313 .shootval store
stop

'23=========================================
cond
*.isnotconspec 0 >
*.shup 0 <
*.shup -2 !=
*.eye5 50 >
*.venom 20 >
start
-3 .shoot store
stop

'24=========================================
'defense against glacies draconis
cond
*.fixed 0 >
start
0 .fixpos store
stop

'25=========================================
'defense against helios
cond
*.shoot -2 =
start
0 .shoot store
stop

'26=========================================
'defense against delgene viral attacks
cond
*.delgene 0 >
start
0 .delgene store
stop

cond
*.isnotconspec 0 >
start
.isnotconspec dec
stop
end

312
Off Topic / Bestiary
« on: February 21, 2005, 07:48:58 AM »
(There really isn't a place for this.  PY, if you could make an actual 'bot forum' where people can post new bots, this could go there.)

Yes, an ambitious project.  I'd like to catalogue every bot known to exist, and in alphabetical order, listing relative strength, reproduction speed, etc.  I'm not sure of the form it would take, whether in a side document, html cross referenced set, or in this post.

This bestiary could be included in a zip file of all the bots, a more organized version of the bot archives available to download.

313
Off Topic / Old DB Forum
« on: February 21, 2005, 07:23:25 AM »
Always one to think for the future, this post is to help all the post trawelers out there that like to sort through old posts.  When this board is months or years old, and someone wants to search through the old posts, it's good if they know where it was.

The old, ~year old forum is at Darwinbots

Go trawl through those posts!

314
Bugs and fixes / Exploding Babies
« on: February 20, 2005, 11:42:11 PM »
Found this out when I was helping SyndLig weith his bot.  Occassionaly a bot will produce and baby, and that baby proceeds to die the first cycle its out.

Has anyone else noticed this bug?  I've seen it happen with babies that have > 500 energy, so I doubt it has anything to do with the baby using too much energy from its dna commands.

I'm still trying to trace the problem, unfortunately, it's not as easy as I'd like.  Something is draining massive amounts of energy in new born bots.

I thought it was the shock death function, but I artificially bypassed that and it's still doing it.

315
Off Topic / Forum Skin
« on: February 20, 2005, 06:00:13 AM »
This forum needs a skin!  I haven't given it a look, but look here for information on it.  I could do it, but my artistic skill is amateur, and I have the impression it isn't the simplest of processes.  If anyone is really good  at this kind of stuff, volunteer!

Pages: 1 ... 19 20 [21] 22