Code center > Darwinbots Program Source Code

C++ refactoring

<< < (5/5)

Numsgil:
I learned VB playing with Darwinbots too.  I think that goes for PY as well.

Alot of the C++ code as it stands is a proper port from the VB source.  Especially in the DNA, Robot, and Shot code.  These are extensively tested (though not as tested as their VB brethren) and should be the sources for these features in any C# code.

What primarily worries me isn't the core engine as much as the GUI on top.  Probably half of Darwinbots is GUI coding, which I didn't realize when I started.  It's pretty easy to abstract the engine if you understand Darwinbots at all.  It's that damned GUI code, like the robot placement box especially, that refuse to be ported easily.

Any work for a C# version should start with a very complete GUI (DNA debugger, error handling, the options form, saving and loading settings, robot details, mutation rates, etc.) and setting up a 3rd party physics library.  After or concurrently a massive effort to define a OO architecture for the engine is necessary.  I have a pretty good skeleton set up in my current C# project, and I think it will be a good starting point.

If those things are done, the engine will fall into place without much effort.

frankle:

--- Quote ---
--- Quote ---With 90% of the coding done already in c++, the last 10% should go fairly smoothly.
--- End quote ---
Care to make a wager? Seriously, I don't want to be insulting. I could really use some help and I really would like to see the code ported but that is very naive statement you are making there.
--- End quote ---
Hehe, notice I said "smoothly" not "quickly", I think that with careful planning, any project can go quite smoothly, if not quickly.

That being said, I suck at GUI coding. I'm good with core stuff, but when it comes to GUI, I'm all thumbs.

frankle:
I would like to see the latest VB source code, just so I can get a sense of the program. Where do I get that?

EricL:
Generally I post the source on the downloads page when I drop "official" releases.    I plan to do this later this week when I drop the "official" 2.43.

That said however, this latest buddy drop has gone on a long time and it makes sense to keep the source somewhere other than my personal machine.  So, there is now a link on the source page to the latest buddy drop.

Darwinsource2.42.9p (Latest Buddy Drop)

My plan is to update that link on the source download page so that there is always a link to the latest buddy drop source.  Fair warning, I would not recommend starting your own fork off a buddy drop.  Some features may not be complete or fully tested and to save space, I'm planning to nuke buddy drop source posts each time a new buddy comes out, maintaining only the latest source.  Of course, source drops for "official" un-letterred versions will live on the server in perpetuity.

So, have a look with this buddy drop but maybe wait a few days for 2.43 before you start making changes you want to keep.  Otherwise, you will have to manually re-sync (so to speak).

Cheers.  Let me know if you have questions.   If you get ambitious, I have a long work item list....  

Navigation

[0] Message Index

[*] Previous page

Go to full version