Author Topic: Quick Question on C++ DB Version  (Read 881 times)

Offline rwill128

  • Bot Builder
  • **
  • Posts: 67
    • View Profile
Quick Question on C++ DB Version
« on: April 25, 2013, 01:09:13 AM »
So I see there's a C++ port of DarwinBots that never got finished, and I presume development was halted in favor of working on DB3 code.

But I did download the project snapshot posted by Numsgil in 2006, just out of curiosity, a few minutes ago.

Does anyone remember what kind of figures people were expecting in terms of performance boost between VB and C++?

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7713
    • View Profile
Re: Quick Question on C++ DB Version
« Reply #1 on: April 25, 2013, 02:09:39 AM »
I'm not sure there was much of one.  Maybe 15%?  It was a pretty straight port and the code in the VB version isn't architected very well, and the C++ version inherited a lot of that (which is a lot of why I dropped it in favor of the current C# codebase).   It was maybe 80% complete, but I don't remember what was left to do.  I imagine I must have left comments for each commit.  Hopefully it can clue you in on what the state of the code was.

Offline rwill128

  • Bot Builder
  • **
  • Posts: 67
    • View Profile
Re: Quick Question on C++ DB Version
« Reply #2 on: April 25, 2013, 12:57:32 PM »
Okay. Kind of cool to hear about the history of DB but I don't think I'll even attempt to code the other 20% when we've got this beautiful C# code base to dig in to. I'm starting to like C# a lot more than C++ anyway.


A second question: I've been digging through the forums and trying to figure out which ideas for new ways of modeling environments, metabolism, growth, evolution, etc. are actually going to make an appearance in DB3. I'm also curious how far along those implementations are, as it would be a really cool area to work on and theorize about. (I'm sure almost everyone else agrees, and that's why there's a whole forum for it.)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7713
    • View Profile
Re: Quick Question on C++ DB Version
« Reply #3 on: April 25, 2013, 01:25:55 PM »
I'm aiming for an alpha release sometime in the next two years that will be a bare bones skeleton of a program, and on to that I'll start adding the more interesting elements.  The problem is that it's so fun papercrafting how various gameplay type things might work together it's easy to never actually program the more pedestrian things that are needed to have a working program.  So I've put a personal moratorium on those sorts of features, beyond just acknowledging that I'd like to look in to them at some point.

For an alpha release, my initial aim was to have bots that couldn't connect in to multibots, with only shots to feed and damage each other, and some basic splitting for reproduction, and leave out everything else for later.  I'm kind of cheating right now working on fluid, though. :/

Offline rwill128

  • Bot Builder
  • **
  • Posts: 67
    • View Profile
Re: Quick Question on C++ DB Version
« Reply #4 on: April 25, 2013, 05:20:15 PM »
Aw! We should work toward some kind of barebones .exe. Personally I think it would inspiring to see something working, and might also draw more activity into the community.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7713
    • View Profile
Re: Quick Question on C++ DB Version
« Reply #5 on: April 25, 2013, 06:21:21 PM »
It's nearly there.  The graphics engine is about 60% done, and at least serviceable for the sort of drawing an initial release would need.  The physics engine solver is basically done, and the collision detection is maybe half done.  Then the parts need to be put together in to an actual engine, which is a fair bit of work but not that bad.  Then a frontend GUI needs to be built, which is again a fair bit of work but not that bad.  Then some basic code to save and load sims and bots, and fleshing out a basic system for the core sim itself, and you've got a basically working EXE.

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
    • DJ Paul Kononov
Re: Quick Question on C++ DB Version
« Reply #6 on: April 26, 2013, 11:42:39 AM »
Cool, however I am concerned about the fact that I probably do not have the proper hardware to run this thing.

As far as the source code, I have the full version of c# 2010. I hope that will suffice.

Wow, this sucks, apparently now even XNA is not working on my tower. Stupid windows updates  :cussing:

Quote
---------------------------
WindowsGame1
---------------------------
No suitable graphics card found.

Could not find a Direct3D device that supports the XNA Framework HiDef profile.



Verify that a suitable graphics device is installed.



Make sure the desktop is not locked, and that no other application is running in full screen mode.



Avoid running under Remote Desktop or as a Windows service.



Check the display properties to make sure hardware acceleration is set to Full.
---------------------------
OK   
---------------------------
« Last Edit: April 26, 2013, 11:53:13 AM by Botsareus »

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
Re: Quick Question on C++ DB Version
« Reply #7 on: April 26, 2013, 01:00:16 PM »
The cpp version needs XNA.  :huh:

...wait, what?
Oh my god, who the hell cares.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7713
    • View Profile
Re: Quick Question on C++ DB Version
« Reply #8 on: April 26, 2013, 01:12:50 PM »
...no.  The C# version required XNA for a while, but now it uses SharpDX, and you should only need DirectX on your machine.

The C++ version used OpenGL.

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
    • DJ Paul Kononov
Re: Quick Question on C++ DB Version
« Reply #9 on: April 26, 2013, 03:01:50 PM »
  :unsure: I thought XNA was using an older version of DirectX. Based on that I thought: if XNA is not working then DX11 will definitely not work. Few, that makes me breath a little easier.