Code center > Darwinbots3

Darwinbots 3 Progress

<< < (11/18) > >>

Moonfisher:
Ehm, my bad, it's spelled FogBugz :
http://www.fogcreek.com/FogBUGZ/

It's for managing tasks and documentation in a project. It works sort of like a wiki, you form a case for something that needs to be done then assign it as a task to one or more people. Then you'd usualy assign the task of code review to someone else. Point is links are formed to create a wiki like network in between related areas, some are made automaticaly but you'll also want to add your own, both for resources used during development and documentation and such. Kinda hard to explain, but I think theres a good introduction video on the site to get an idea of how it works.

Haven't tried a code profiler before, but I'm pretty sure it can't replace code reviews, it's better than nothing ofcourse, but if poeple are willing to spend the extra time then code reviews are probably a lot safer.
And if we have strict tests it'll be easier to review the code fast and there will probably be far less that needs to be corrected. And when doing a code review and you find yourself having to fix a lot, then don't think of it as extra work, think of it as saving a lot of time by fixing this before it becomes a problem. Its also a great way to learn, even for those who find themselves teaching everyone else (Since teaching is the best way to learn). And who knows it could help draw more developers if people feel they're making real progress as a programmer.

And I think I should have the time to look at the project, I can start by going through the wiki to see how far you guy's are along. That and actualy get the DB3 source and Visual studio
But got some things I have to see to first...

And I'm not sure it's a great idea to allow a bot to just override all the memmory of another bot, that would be a realy powerfull weapon. Maybe if the tie has to stiffen first it wouldn't be a big issue...

Numsgil:

--- Quote from: Moonfisher ---To make a long story short the current source is a spagetti monster and it took me a lot longer than expected to do the things I wanted, had to make changes in all sorts of places.
--- End quote ---

That's flying spaghetti monster


--- Quote ---And as DB3 grows it would also be very nice if there where some guidelines for development, atleast a bare minimum code standard and some good tips on making propper OO code. And code reviews would be great if it's actualy possible to uphold, since theres a lot of less experienced programmers who may be checking in code that will cause a lot of trouble in the long run.
--- End quote ---

We have a coding standard (meaning mostly a naming standard) that we've adopted from here.

I don't have any formal code reviews or proper OO guidelines.  Mostly I'm hoping we all just keep an eye on each other and red flag when things look fishy.


--- Quote ---On a not so unrelated note, does anyone know if theres a free version of FogBugs or maybe another similar program we could use for free ? Would make some of the things I'm suggesting a lot easier to manage.
--- End quote ---

There's a Trac that comes with my SVN account we can use.  I just have to figure out the permissions so that it's publicly visible.

Prsn828:

--- Quote from: Moonfisher ---And I think I should have the time to look at the project, I can start by going through the wiki to see how far you guy's are along. That and actualy get the DB3 source and Visual studio
But got some things I have to see to first...
--- End quote ---
Let me be blunt.  We are very close to something that can actually run.

Let me be blunt again.  The wiki is nowhere near up to date.  In fact, the only updates (for the progress of the DB3 project) have been to the guidelines for the M1 version, and that was only out of necessity when having to rethink the bot design.

Like I said, we could always use a hand.  Just because it is almost usable doesn't mean it is almost complete.  Actually, this will probably be worked on for many years to come (hopefully it will be workable for much longer than DB2).


--- Quote from: Moonfisher ---And I'm not sure it's a great idea to allow a bot to just override all the memmory of another bot, that would be a realy powerfull weapon. Maybe if the tie has to stiffen first it wouldn't be a big issue...
--- End quote ---

Of course, only bots in the same organism would be allowed this ability (and maybe virus?), as it is definitely powerful.  I was also thinking it could be invoked by the bot that will be masked by targeting in some way the bot whose mask will be used.



Also, as far as a profiler goes, what it would do is tell us how many times each line of code was executed, and how long the execution took.  This would be used mainly as a way to find possible speed-bumps in the DB3 program highway (well, metaphorically).  We use unit testing to find most of the errors, and when errors are found, we figure out the solution on our own.  No program currently in existence can do much in terms of fixing another programs source code .

As for the FogBugz program, we could easily build that into the internet mode of the DB3 program.  All it is is a glorified, automated message delivery and sorting system.  I could write the whole thing over in Java in about a week if I wanted to (but trust me, I don't want to).

bacillus:
I had a look at the repository, and I'm pleased to see so much progress has been done. If there's anything that you want implemented in particular, I'll be keen to get back into DB3.

Numsgil:
Sure, that would be great.  Most of what's left is really technical, though, so it might be a hard nut to crack.  I'll try my best to help you figure out any of these tasks.  Here's some thoughts:

1.  Set up the graphics code to draw ovoids (distorted circles).  I'd like to do it through a shader so the edges are smooth and it doesn't use any more vertices than a square.  A shader is basically a special computer language to program the graphics card with.  You could copy the shader code I have for drawing quads (it's pretty simple), and modify it to use the texture coordinates to draw a circle in texture space.  Or even combine squares and circles in the same shader.

2.  There's a demo app that draws shapes so I can test the graphics capabilities.  There's a menu on the side of the window which isn't really set up, but the idea was that it would let you add shapes to be drawn at run time.  The work would be playing with the code to allow "picking" (detecting that the user clicked on an object), picking and then dragging an existing object, adding new objects at the mouse cursor, resizing objects by dragging vertices, and setting up the interface to let you add a shape into the draw field.

3.  Set up the actual .exe.  here's a crude UML of how the modules might fit together (I think the arrows are backwards maybe).  Basically all the modules get packaged together into a single core.dll file, with version numbers attached to the modules.  Like Core1.0.dll might be the code for Darwinbots3 1.0.  The .exe is designed to do absolutely nothing except search for core.dll files, and dynamically load them and pass command line arguments into them.  The idea being that a new version of Darwinbots just has to add a new core.dll file and not overwrite any existing files.  The Darwinbots3.exe will determine which core.dll is the latest version and load it.  And with any luck we should be able to use the same core dlls with the XBox and just not call the unsupported features.

4.  Implement a GDI graphics module.  Right now the graphics system is set up so it can dynamically choose the graphics API to use.  You'd just need to write an implementation for GDI (the graphics API used to paint windows and stuff in C#), and maybe modify some of the Graphics.Core code as needed.

5.  We still need to figure out code coverage.  I've been putting it off.  Basically all the options either suck or are expensive, and one of my goals for Darwinbots is to make sure all the needed tools are free.  You'd probably have to find one of the sucky free ones (there was a free, early version of NCover on sourceforge), and hack on it until it worked right.

6.  You could work on the physics.  But it's really quite math intensive.  The good news is that there's a free book online that explains most of the math I'm using (I could at least point you to the right chapters).  The bad news is that the book assumes a certain level of math that most people don't have (need to be comfortable with calculus and linear algebra (ie: matrices)).

7.  You could try setting up an XBox exe if you have an XBox.  You'll also need a creators club membership, which can be expensive (like $50 for a few months, or $100 for a year).  Though microsoft also tends to give out free membership for various competitions and the like (check out Dreamspark).  Mostly just setting up the project.

8.  Or you can look at milestone 1 and see if anything there looks interesting.  Quite a bit of it is actually done already, though.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version