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.

Messages - Numsgil

Pages: [1] 2 3 ... 508
DNA - General / Re: It doesnt work.
« on: June 24, 2017, 12:13:18 PM »
If you're doing what I think you are it should be

*.totalbots *.totalmyspecies sub > 20

The asterisk is important or else you're just pointing to a memory location and not the value in the memory location.

If it still doesn't work it's possible those sysvars are broken.  Use the bot memory inspection tool and see if the variables in those sysvar locations look right.

Newbie / Re: Windows 10 version?
« on: June 18, 2017, 06:23:17 AM »
It should work, as far as I know.  What error does it give you?

Newbie / Re: How did you find DarwinBots?
« on: June 18, 2017, 06:22:50 AM »
I've been looking at Screeps, too, trying to decide if I want to get that involved in to a programming game or not.

Newbie / Re: Hi
« on: May 13, 2017, 11:07:56 AM »
I've checked in the unit tests.  I've put them in their own folder just so things don't get entirely crazy.  However, they don't seem to be showing up in the test app (it shows 0 tests).  I couldn't figure out where it went wrong.  Maybe you can take a look at it?

Newbie / Re: Hi
« on: May 11, 2017, 01:12:40 PM »
Just an update that I haven't forgotten about you.

I recently had to reinstall Windows 7, so there was a lot of ActiveX wrangling to get Visual Basic working.  I'm trying to go through and sanitize it so this won't be as much of an issue in the future.

I'm sorry it's taking so long.  Next patch won't take so long for me to review I promise.

Newbie / Re: Hi
« on: May 08, 2017, 06:09:14 AM »
Looks good.  Give me a day or so to give it a look over and check it in.

Newbie / Re: Hi
« on: May 07, 2017, 06:56:31 AM »
I haven't been doing any work in the VB6 code for many years now, so I don't know what all needs doing there.  I think bugs at least are pretty well squished.

If you were feeling really adventurous you could try and figure out testing.  Not knowing if a change is breaking something has been a huge issue for us in that code base.  From a quick google I found SimplyVBUnit.  If you wanted to you could try and figure out how to set that up so that we had some unit tests.  That would be a gigantic help.  If you aren't familiar with unit testing I think the Stepping Through the Looking Glass: Test-Driven Game Development is a good introduction.

In terms of what to test to start with, if you look in common.bas, there's a bunch of low level functions that get used all over the place.  Testing VectorMagnitude would be a good place to start.  Make sure it doesn't overflow especially.

When you're ready, you can create a SVN patch (for tortoise see Creating and Applying Patches) and upload it to the forums here in a post (if it's not too big).  I'll review it and make sure you're on the right track and check it in.  After a few such patches I'll give you an account to check code in with yourself.

Newbie / Re: Where can I find the latest source code (ver 2.48.32)?
« on: May 06, 2017, 06:15:46 AM »
Oh wait, no, scratch that, it's in there I think, at least up to 2.48.32.

It's under SVN control.  The repository lives here.

Newbie / Re: Where can I find the latest source code (ver 2.48.32)?
« on: May 06, 2017, 06:12:35 AM »
Looks like Botsareus hasn't been updating the repository with any of his recent changes.  You might shoot him a personal message and ask him to do that.

Newbie / Re: Hi
« on: May 06, 2017, 06:08:40 AM »
Yes, I'm doing active development on a next version.  I recently dropped a sort of preview thing here.

If you know/can learn C#, I'm sure I could give you some tasks you'd find interesting.  Information on getting the source code up and running is found here.

If you know Visual Basic 6, you could play around in the current version.  In some ways it's an easier codebase to figure out and modify, but it's also pretty easy to break stuff without knowing since it's not really tested.  Its SVN is here.

Suggestions / Re: GPGPU acceleration?
« on: May 01, 2017, 06:46:58 AM »
Why would that be easier for a GPU than DNA as it is? If the node code can mutate, wouldn't you run into the same problem of divergence?

Yeah I guess you're right.

Suggestions / Re: GPGPU acceleration?
« on: April 30, 2017, 12:22:01 PM »
So there would be a fixed set of these node functions that, arranged in different tree structures, produce different bot behaviours? With a pre-written kernel for each function?

I was thinking more that the code in a node could change but all bots in a species would share the tree structure and code so you could go wide that way, but using preset nodes works, too.

Darwinbots3 / Re: Bot testbed
« on: April 30, 2017, 12:14:29 PM »
Thanks, yeah, it's a bug I know about and on my todo list.  When you resume, the program loses the DirectX context and there's nothing to catch that and reset it.

Suggestions / Re: GPGPU acceleration?
« on: April 28, 2017, 08:46:07 PM »
I guess you're probably right. I was thinking that if 90% of the bots have very similar DNA and are doing exactly the same activity, there would be very little divergence and it would effectively be SIMD.  I'd still like to make a prototype, maybe with some minimal language rather than DNA, so I can compare the performance with that on a CPU.

I don't think it's impossible with a bit of ingenuity to come up with something, but it's a bit awkward.  At their core, bots have 1000 inputs (their memory) and 1000 outputs (their memory after storing stuff in to it).  GPUs don't really like mapping inputs to outputs in the large scale like that.  They tend to be more comfortable mapping a small fixed number of inputs to 1 output over and over in parallel, and doing multiple passes if they need to.

One idea: I could imagine a DNA language built around the idea of smaller DNA programs feeding to each other.  Like, imagine a neural network, but instead of a sum and logistic function each node is a small program.  If each small program had 16 inputs, say, and a single output that fed on to the next layer of nodes, each node could be executed massively in parallel using the GPUs quite nicely.  I don't know if this would be even remotely efficient, but it would sort of map to how the hardware works at least.

Darwinbots3 / Re: Bot testbed
« on: April 28, 2017, 08:20:35 PM »
Loops don't get decompressed.  There's no mechanism in the DNA to do it, and even if there were, the loop counter is just an integer on the stack and can't be deduced necessarily from a static analysis of a DNA program.

For your example, there are two codules for robot A:

'Main' codule:
3 1 loop

'Codule 1:
a b c d

Likewise for robot B there are two codules:

'Main' codule:
4 1 loop

'Codule 1:
a b z d

Let's say that the main codules and the ones in slot 1 get matched together.  I've marked where they have subsequences in common with ^:

Code: [Select]
3 1 loop
4 1 loop
  ^ ^

a b c d
a b z d
^ ^   ^

In effect any crossover events here would just swap codules between the two different DNA programs.  So in addition to basically having no effect, it's also possible for it to end effectively as:

4 { a b c d } loop


3 { a b z d } loop

Pages: [1] 2 3 ... 508