Code center > Darwinbots Program Source Code

Another turn of the crank on the VB version?

(1/2) > >>

EricL:
Hey all.  Yes, I've been working on my book.  It's going well.  I may post a chapter or two here at some point.

I'll be able to spend time again on DB towards the end of August.  Would people be interested in seeing some more work done on the VB fork?  I see there are a few bug reports and suggestions...  Perhaps I'll do some easy things on the VB fork, drop a point release or two and in parallel, spend some time on the C++ port....

Has that gone anywhere?  I see there has been some good thinking on new algorithms, physics, etc.   But the essense of my question is "Has any real effort been expended on a straght accross C++ port of a snap shot of the 2.43 VB fork?"  If so, I would not want to obsolete that by taking the VB fork forward...

Nice to be back...

googlyeyesultra:
I have no clue whether or not the C++ version is in active development, however, not applying bug-fixes to the "official" and most widely used version is rather silly. I'm pretty sure the C++ version is going to develop somewhat different bugs, so bug fixing this one shouldn't obsolete the other (which is already obsolete, I might add).

Oh, and pretty pleases fix the bug where infoshots, ties, and venom can insta-kill by shooting 32000 into mkshell, strpoison, etc. It really discourages interesting tactics, because they don't develop. Both bots die within about 2 cycles.

Jez:
Eric! Nice to see you drop by again; I look forward to an update on your book's progress or the chance to read some of what you have written.

I think the C++ port has been dropped in favour of a C# port as re. the quote of Num's here; http://www.darwinbots.com/Forum/index.php?showtopic=2109

Would be lovely if you could fix a couple of the problems that have been identified in the meantime, tie feeding not working properly in particular.

Very pleased to see you back...

Numsgil:
Instead of a port, I'm thinking of a sequel.  Take existing ideas that work, trash the ones that don't, and rehash it into an architecture that grows easily.  Pull code from the C++ and VB versions as necessary.

The C++ source at present is a bit sloppy.  It wouldn't be markedly easier to maintain than the VB version.  I've been doing a lot of reading and research the last year or so, and I think I can devise a system that grows well.  There are two primary ideas I've experimented with that have worked very well.

First, This thesis paper explores various architectures that developers could use in games, and proposes what's called a "system of systems".  Basically the data is stored in a central repository, and various modules (physics, DNA execution, save/load routines, etc.) operate on this data.  I worked on a smaller project that used this design, and it worked quite well.  New features are usually easy to add because the interdependency between modules is so low.

Second, Unit testing was very useful in another project.  I was working on a GUI library for a 3D engine, and built it using unit tests from the ground up.  It's extremely useful for isolating, reproducing, and preventing bugs and catching pathological test cases.  In a program that needs to run flawlessly for hundreds of hours, like Darwinbots, I think using a lot of unit tests from the start will prevent a build up of weird errors that are hard to pinpoint.

Following the two above, I'd like the major subsystems (DNA, physics, etc.) to have their own separate sandbox programs, unintegrated with the other systems.  The DNA language could have a command line interpreter like Ruby does with irb.  Physics could have a series of simple interactive demos.  That way different programmers could work on seperate systems relatively easily, and there would be some simple programs new users (which would be practically everybody) can play and understand what's going on.

And last, pulling from SCRUM, I think a stable release every month, starting with something extremely basic, is a good way to go about it.  Start with an empty interface, and add features iteratively.

I'm about half and half on using C# or C++ with different libraries.  There are aspects of C# that lend itself very well to what Darwinbots can be, and there are also some details which I find maddening.  Also, C++ generally has 3rd party libraries I'm more pleased with than those available for C#. I'm also evenly split on whether to build our own physics engine or use a 3rd party one.  I've been doing a lot of research into physics engines, and the more I learn the more I realize how specialized Darwinbots is.  I think a streamlined, simplified engine would give more aesthetically pleasing results.  I know enough to program the system I want, I'm just not yet at the point where I can make it fast enough.

Endy:
Cool  

Wish I knew more so I could help. Been taking a look at different sorts of compiler languages/programs to see how the others do things. Ran into something called Scratch had an amazingly easy drop and drag system to build programs. Somthing similar would make it radically easy to design bots.

Should start up a general list of stuff everyone has seen working in DB. That way people can say what they think of the different features.

Navigation

[0] Message Index

[#] Next page

Go to full version