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 ... 509
Darwinbots3 / Re: Trying to get darwinbots3 to build.
« on: December 30, 2019, 05:40:41 AM »
Modules look for dependencies in Bin/Release/...  You might double check that .dlls actually got put there after you ran  Likewise in Visual Studio you might try expanding the "References" of a project and see if there's any broken links.  DarwinbotsGUI has references to Azimuth there, for instance.  I can tell you is I did a fresh checkout on my machine and it worked, but it's entirely possible there's some assumption I'm making about how stuff is setup that isn't true for everyone.  I looked through the project files and didn't see any hard coded paths, for instance, but maybe there is one somewhere being sneaky.

Alternatively you might try looking at any local changes.  It's possible that VS2017 tired to do an in-place upgrade that screwed some stuff up.


On purpose I didn't want to have one single solution.  It may be overkill (arguably an enterprise solution) but it helps enforce separation of concerns and makes cloning one of the individual modules on another project easier (say, if I wanted to mess around in Unity with the Math library and not with the graphics library).  I've also found that a single solution tends to dramatically inflate build times, even if it only contains projects that aren't changing, as Visual Studio has to scan for which projects have changes.  I'm ideally aiming for build times of under 1 or 2 seconds to keep iteration time high.  The downside is that it's harder to do a build of everything (though is supposed to make that trivial) and I often need several visual studio instances open, one for each module.

Darwinbots3 / Re: possible new project
« on: December 20, 2019, 11:33:04 AM »
Ah, you're basically describing a broad phase, specifically a uniform grid.  (See this lecture, for instance).  There are a couple other methods, each with pros and cons.  Personally I like sort and sweep (also called sweep and prune) just for the simplicity of implementation.  You basically project all your convex boundaries on to an arbitrary axis, sort everything, and find potential collisions by walking forward or backward from a given point.  Spatial hash could also work.  Basically a uniform grid but instead of having every cell be unique you take the x,y coordinates of non-empty cells and use it to construct a hash function in to a hash table.  Then you're only really storing cells that have stuff in them.  Worst case two cells map to the same hash cell but you still have to do a narrow phase check so it's just a few extra narrow phase checks in practice and not a big deal.

Darwinbots3 / Re: possible new project
« on: December 19, 2019, 05:03:16 PM »
Hey PY!  It's been a long time!

I'd chuck the old C++ version, except maybe to see how I approached some things.  For better or worse it inherits a lot of the sins of the VB6 version and I was a fairly green engineer at the time.  There's a lot I'd do differently.

For an environment grid I'd ditch object oriented entirely and do a functional style.  Essentially several flat 2D arrays of scalars with some kernels to apply to them.  I feel that's more likely to be both testable and performant.  This talk is python-centric but about doing Conway's game of life in an object oriented way and why that might not be the best way to do it.  Might give you some food for thought.

It probably just makes sense to host code on github (assuming you want to open source it) but you're welcome to any server resources you'd like.  The server is just running linux where we have (essentially) root access.

When I find free time I still try to work on DB3 but I'm happy to put together a few CLs for your project if there's anything well defined you'd like to farm out.

Darwinbots3 / Re: Trying to get darwinbots3 to build.
« on: October 18, 2019, 08:08:21 PM »
There aren't any up to date build instructions, but should work.

The default version of visual studio it looks for is 12.0, which is Visual Studio 2013.  You can change the version by adding `--version XXX` to the arguments to  You can see the different versions of Visual Studio here:  It looks like 2017 is 15.0

That said, I don't know if the build script will work with newer versions of Visual Studio.

Bugs and fixes / Re: How are teleporters working for you?
« on: March 29, 2019, 03:05:04 AM »
Are you having a similar issue?  Like, it works at first but then stops after a while?

Newbie / Re: Sexual Reproduction Issue
« on: January 11, 2019, 06:14:10 AM »
Alga_Minimalis normally reproduces asexually.  Did you modify it to reproduce sexually?  I tried a similar sim years ago but that was before sexual reproduction.  I would think your bigger problem is keeping the prey from taking in predator DNA and becoming a photosynthetic predator, which would cause a lot more problems.

Either way, I don't have any off hand ideas.  We were talking about a minimum similarity measure with sexual reproduction to prevent vastly dissimilar species from sexually reproducing but I don't know if it was implemented.

I wouldn't worry too much about the cannibal predator species producing dumb babies from time to time.  The energy loss from producing a child then eating it aren't as high in Darwinbots as in the real world.

Off Topic / Re: Good alternatives to darwinbots
« on: November 04, 2018, 08:32:09 AM »
If you're in to the scripting aspect, there's screeps.  I haven't played it but it's relatively well reviewed.  Personally I like programming games but it always feels like I should just be doing actual programming.

If you're in to the evolution aspect, I don't know of very much new, to be honest.  My impression is that most of that creative energy is currently doing neural net stuff, since that's super en vogue right now.  So any artificial life simulations of depth are from 10+ years ago.

But I'd love to hear I'm wrong! :)

Announcements / Re: Darwinbots 2.48.31
« on: September 13, 2018, 06:44:50 AM »
Nothing at the moment.  I'm a bit stuck on the fluid model I'm using.

I had a problem with the fluid velocity becoming infinite far away from the bot.  I found this article which discusses the problem and provides a simple solution.  Now I need to find the forces the fluid puts on the bot and vice versa, which shouldn't be too hard but I've run out of steam.

Announcements / Re: Darwinbots 2.48.31
« on: May 02, 2018, 10:46:45 AM »
There's been very little.  (I'm still plunking away at the fluid model for Darwinbots3 but I'm at least several months away from something releasable on that front.  There's not active Darwinbots2 development going on right now, as far as I know).

Darwinbots3 / Re: Bot testbed
« on: November 13, 2017, 07:24:40 AM »
Yeah, that might work.  We can maybe even do pinching to reproduce still, and use the same idea of relaxing the spindle angles slowly over time.

Darwinbots3 / Re: Bot testbed
« on: November 10, 2017, 07:02:00 AM »
Yes, I was thinking along the same lines.  There are two issues to think about:

If you pinch a bot, are the two resulting shapes valid bots?  You have to take the points on the perimeter of the original bot that formed the endpoints for its spindles and map those to the spindles of the new daughter bots.  Even if you try to make the nucleus of the daughter bots as close to the nucleus of the original bot as possible, they can't exactly overlap, since spindles have a minimum length so the nuclei have to be 2x that minimum distance apart.  We could just disallow reproduction until the two resulting daughter bots would be valid, but that's maybe a bit finicky.  We could let them split in an invalid configuration and just softly correct it over a few frames, but that has implications for physics.

Second, if bots reproduce by pinching, that means they need a mechanism for adding more spindles.  Again, the spindles are a uniform angular distance apart, so adding 1 more spindle to a bot changes where the end points of the spindles are.  For bots with lots of spindles that's not that big of a deal but if your bot had like 7 spindles, the difference is pretty obvious.  Do you snap it in to the correct place, or move it slowly over multiple cycles?  Either way has strong implications for either physics or DNA control.

Alternatively you could have bots only be able to double, triple, etc. the number of spindles they have.  That would let the new spindles appear between the existing ones and not have to change the geometry at all.  But it does limit the behavior of bots somewhat.

These aren't insurmountable issues, but I don't have clean answers to them yet, either.

Darwinbots3 / Re: Bot testbed
« on: November 09, 2017, 05:53:58 AM »
I've uploaded a new version at the top of the thread.

DNA changes:
Upgraded the integer stack to handle 15 digits.
Changed unit angles from 1080 to 9000 to give more room within the domain of a bot's memory [-9999, 9999].

Fixed a crash that occurs if the UI takes too long to start up.
If DirectX version is too low starts up with the null renderer instead of crashing.
Fixed crash when the directX context was lost (because of shutting a laptop lid, for instance).
Fixed an issue with how DNA is parsed that caused a crash if users used a bad metatag.

New features:
Added a watch window for DNA.  You can enter arbitrary DNA snippets in the watch window and it will evaluate them and show the results.  You can also enter numbers to view the memory contents at that memloc.
Added an autos window for DNA to show which memlocs were modifieid in the last cycle.

Minor tweaks:
The undo stack is cleared when loading from a save.
Fixed issue with render and UI not updating the first cycle after loading a save.
Opening the save or load dialogs pauses the simulation now.  Loading a simulation loads it in a paused state.

Darwinbots3 / Re: Bot testbed
« on: November 07, 2017, 08:55:56 AM »
I'm taking a break at the moment, but if you're interested I can post my most recent build.  It fixes a number of issues.

@Numsgil will you be able to support using HTTP GET and PUT in the darwinbots client directly, or will it still use an external program with an incoming and outgoing directory?

Although Visual Basic 6 is supposed to support http libraries, in practice we've had better success with external programs that read and write the files, with the DB2 app just reading and writing files.


For the server code, can you explain which abuses you're trying to protect against?

I got the https certificates but certbot is having a hard time installing them in to apache.  We have a lot of virtual hosts that are Include'd from other files, and I think that's confusing it.  I'll need to manually add the certificates to all the virtual host files.  Sometime in the next few days hopefully.

Pages: [1] 2 3 ... 509