Messages - Numsgil

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.

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.

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).

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.

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].

Crashes: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.

@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.

For the https it's pretty simple to set it up, but if you give me access to the server hosting it I can do it for you.

Would you mind just walking me through setting it up? I'd like to have at least some idea of what's changed so when it breaks I vaguely know what to poke The server is just a linux box.

Quote

Would also be neat to have a matrix.org / riot.im server if you'd like me to set one up.

Can you give me the elevator pitch for how you think it'd work? Is it just a matter of hooking up the Darwinbots client/desktop app, and then matrix would be the server? Do we have/get to run matrix on our own server?

Quote

For the internet mode, will the DB client ask for if there's a bot available to get regularly and always take it if there is one, or is the server side more intelligent and selectively chooses DB clients?

At the moment/historically it's first-come-first-serve, and there's nothing to prevent either duplication of bots when two people download a file at once or getting your own bot back. But we can certainly do something smarter, especially if it's only a little bit of code to enable. But my first priority would just be getting something set up.

Quote

I've got measures in place to prevent abuse (Draining all bots / pushing out a lot of your own bots)

Can you issue login credentials to people? That would prevent at least some sorts of abuses I'm concerned with. If we could tie it in the forum authentication that would be even better, but that might be tricky.