Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - EricL

Pages: 1 [2] 3 4 ... 151
16
Darwinbots3 / P2P Internet Mode
« on: September 30, 2008, 07:49:46 PM »
A very fair summary.

Understand that my skepticism regarding DB3 is not a statement about Nums coding skills or tenacity or anything like that.  It's just that I've spent 25 years in the software industry and in that time I've formed some opinions about how to move code bases forward.  Total re-writes never work.  It  sounds great to start clean and do things right from scratch "this time around" but the details and difficulty are always underestimated.  We tend to underestimate how much is really invested in the older code base, all the little things w.r.t. usability or features or hard-won lessons about the way things should work that are embedded in the code and present barriers to people moving.  It's not the rocket science core stuff that kills projects.  It's the million little simple things that add up to a usable program.  This is why is was so difficult for people to move to 2.4 even long after the basics were in place.   Sure, you can get there if you throw enough hours at it for long enough (I did) but in my experience, that is always the most expensive route to take.  

Understand that I've probably doubled the number of lines of code since I took over.   There are a lot of details, a lot of features, a lot of nuances.  Even were DB3 working today, it would take a long time to get to critical mass such that people could move.  I prefer the incremental approach.  One rule I learned the hard way and have followed in the large software projects I've managed is that you never, ever change more than 30% of the code from major release to major release.  You can do re-writes, but you do it of individual modules.  You move forward, incrementally, maintaining stability while you do.  Not doing so is the fastest path to vaporware.

So, I'm skeptical not only of "DB3" but of any project that does not start from the current code base and move forward incrementally.

17
Off Topic / so... we meet again
« on: September 30, 2008, 03:28:08 PM »
Quote from: Gambit
anyway... whats new?
Some really cool new speciation features and graphs in recent version for evo-sim folks....

18
Darwinbots3 / P2P Internet Mode
« on: September 30, 2008, 03:24:51 PM »
Quote from: Cyberduke
Well the problem I have had with a random mix is that 1 or 2 bots can very quickly sweep though the whole sim, being introduced very early on to each and every instance of the sim, rather than leaving isolated pockets of specials to evolve and forcing the aggressive bots to actually expand and conquer rather than helpfully be seeded everywhere.
You must run relatively small sims.  I run really large ones with shapes and physics such that it takes many thousands of cycles generally for a bot to make it from one side to the other, making colonization of immature sims be new-comers harder .  Additionally, unlike Terrarium, IM participants whose goal is to achieve the highest population for their bots can choose to grow their sim to maturity prior to connecting to IM, thus making it more difficult for any potential colonizer to take over the sim since it is already fully populated.

The fact that teleported-in bots are placed randomly instead of where the teleporter happens to be is deliberate on my part so as to make swarming of newcomers more difficult.    That said, I would be happy to discuss this area further on a different thread.   I'm not necessary opposed to adding sim topology to IM - but there may be better ways to achieve the things you want.

Quote from: Cyberduke
Ah now that’s interesting you say that, Yes I made the assumption (again) that since the wiki points DB3 in the direction of Nums C# page and you said you where not going to be continuing the project in the long term that Nums C# version was going to eventually become the next generation of Darwinbots
I'm not planning on going anywhere but neither can I spend large numbers of hours on DB.  I would welcome help on the current code base or related projects (like a server) but failing that, the community has to settle for me and my limited time commitment.

19
Darwinbots3 / P2P Internet Mode
« on: September 30, 2008, 03:02:08 PM »
Quote from: Numsgil
I'll believe it when I see it


My feelings exactly regarding DB3...  


It compiles.  I had to stub out a lot of graphics stuff, which is where most of the differences are.  Now that it's raining in Seattle again, I'll probably get back to it in a week or two...

20
Off Topic / so... we meet again
« on: September 30, 2008, 02:58:41 PM »
Quote from: Numsgil
It is said: "What Andy giveth, Bill taketh away."
There is more truth to this than you know and it is more deliberate and coordinated than you might expect.  I have attended meetings between MS and Intel execs where the strategic discussion was what "features" to add in future versions so as to use more cycles/memory/graphics so as to keep the upgrade cycle going.  MS doesn't intentionally write slow code to my knowledge, but the squeaky wheel gets the oil and for new OS releases, they target the "common" machine of only so many years back.   So if the perf or working set of something is good enough on the test machine mix, it gets no attention, and lacking attention, code gets bigger and slower over time even without new features..

Welcome back Gambit...

21
Darwinbots3 / P2P Internet Mode
« on: September 30, 2008, 02:44:36 PM »
Quote from: Cyberduke
Ok better start by saying my comfort zone would actually lay in (just as I believe you have suggested) creating a lightweight TCP/IP(socket) based client/server system where the clients would connect and register themselves with the server and then they would then offer up bots for transfer under a particular conditions (a bot wondering off the screen, or a roaming teleporter, whatever) these are removed from the simulation, uploaded to the server...
Yup, this is how I would do it.  It's basically how it works today, just using files over FTP.  It's more than just bots - you have sim data to aggregate - but a lightweight server wold be pretty easy to build and slot in in place of the current FTP plumbing.

Quote from: Cyberduke
and the server decides who amongst the other connected clients gets to receive this new bot(the instance not just the DNA) and pushes it down to them. (the advantage here being the centralized distribution logic)
Push is the wrong word.  I want no code on clients listening on open ports, otherwise you have NAT, firewall, proxy and security issues.  The client should poll, which achieves the same thing, just with a little latency.  I assume this is what you meant.  

On the subject of connected sim topology and the server making routing decisions, I'm not sure I agree.  We could do connection topologies today without changing the plumbing, but I would want to explore why we should.  Random mixing has certain advantages.

Quote from: Cyberduke
But I was trying to avoid someone needing to maintain a server with uptime demands upon it. Which the decentralized unstructured P2P route rather nicely solved “in theory” along with scalability, processor load and any bandwidth issues.
I host the bulk of IM today.  I would be happy to host a server or two tomorrow.

Quote from: Cyberduke
I just want to create an ‘Internet Mode’ that is less random and doesn’t mix everything up in one big pot.
Make a suggestion in the suggestions forum and I'll consider putting it on the list.

Quote from: Cyberduke
I am less concerned about speed as I am fairly confident that with the new modular and multithreaded approach there will be negligible impact on the simulation whatever we do, and I would expect transfer times via TCP/IP to be under a few seconds even for large multibot.
You are assuming the thing Nums is calling DB3 is a project that will someday supplant the current code base  That is a big assumption, one that is not shared by everyone.  It is much easier (and more likely to happen) that I simply port the current code to VB2008 to get threads and move the code base forward from there.  I have a version limping in VB2008 as we speak.


22
Darwinbots3 / P2P Internet Mode
« on: September 30, 2008, 11:50:22 AM »
Just FYI, I'm opposed to P2P on practical grounds.  Although I loved the way Terrarium worked (P2P bot movement with a coordinating rendevuez and statistics server) the security and network tunneling issues were and are a pain in the butt.  Besides, we don't need it.

The client-server semantics of DB internet mode are neither complex nor intensive.   They are similar to (actually simpler than) email systems I.e. small files (or packets of data if we design and build our own protocol/server) representing teleported bots or sim data get uploaded to a server periodically and then shortly downloaded again by another client.   This is neither network bandwidth intensive nor network server cpu intensive.   I claim we could easily achieve scalability of 1000+ connected sims per moderately sized server machine without heroic efforts.  For comparison, corporate emails servers such as Microsoft Exchange exceed this by perhaps an order of magnitude.  And because unlike email systems, the occasional loss of a bot is not serious problem, were we to write our own server, we could avoid server-side persistence of bots (they would flow through memory only with the risk of bot loss in the case the server crashes) and thus we would not be bottlenecked by the I/O capacity of the server machine (a common problem in client-server systems).

For scalability beyond this, multi-tier architectures would serve well.  This is how Hotmail, Google, etc. work.  Note that any topologies we wanted to build (e.g. connect to a specific IM mode such as F1 or Zerobot) could be easily built on top of this.

Anyway, my $0.02.



23
Bug reports / New Error!
« on: September 27, 2008, 03:03:14 PM »
what message?

24
Evolution and Internet Sharing Sims / internet sharing problem
« on: September 27, 2008, 02:28:52 PM »
Quote from: jknilinux
In the internet log window, I keep getting

"Error disconnecting Unable to connect to remote host"

Does anyone know a solution?
Ignore it for an hour and see if you get intermittent connectivity I.e. bot flow.  I se you on-line, so it's working to some extent.

25
DB Art / Zerobot art
« on: September 27, 2008, 02:27:16 PM »
Yup, their poffs.  The bots may be triggering indirectly off of low nrg reproduction for propulsion.

26
Suggestions / Mutations delete button.
« on: September 27, 2008, 02:22:10 PM »
Good suggestion.   I'll put this on the list.  The way mutation history is saved currently leaves a lot to be desired.  If I spend some time on this, I can probably get rid of any perf penalty associated with mutation history, but running without it would still improve working set.  I'll take a look at this.  I plan to do some profiling and other perf work over the next few weeks anyway.

27
Newbie / too fast animation!help!
« on: September 27, 2008, 02:12:20 PM »
Quote from: Peter
I don't believe settings work right in 2.44 anyway. Just load a saved sim and you can take the settings from that.
Settings work fine but not everything is saved into settings files (or sim files for that matter).  I have followed a philosophy that makes a distinction between those settings which are specific to a particular simulation and those settings which are not.  The former includes physics, costs, sim-options like field size, toroidal, no ties, fixed radii, species lists and so on.  The latter includes things like window positions and sizes, which graphs are open, whether the display is on or off and viewing options such as shot impact dots, resource gauges and movement vectors.   The state associated with these latter things IMHO should not be placed into either sim or settings files since they are really solely for the viewing pleasure of the human.  They have no impact on the sim itself and they should in fact should persist across multiple sim invocations.  You would not want all your graphs to close or your window positions and sizes to change every time you load a sim.   Instead these things  should be persisted in a sim-independent manner into their own INI file or the registry so that they persist across program invocations.  Unfortunately, today they are not persisted at all.  Doing this is on my list of work items but it is not high priority.  I think that most people would agree that it is not an undue hardship to re-open a graph, resize a window or turn-off a viewing option once each time they start the simulator.     I'll get to it someday, but not near term.

28
Bugs and fixes / connection IM?
« on: September 26, 2008, 04:04:53 PM »
This is due to the single threadedness of the simulator.   The graphs go blank while waiting for the simulator to calculate the data points.  The genetic and generational distance graphs are particularly cpu intensive, particularly when you have a large number of bots of the same species.

29
Bot Tavern / The F1 League lives again!
« on: September 26, 2008, 10:32:28 AM »
Quote from: Moonfisher
Also while I'm typing anyway... does anyone else have problems with DB 2.44 ? Was going to sugest we run all the leagues in 2.44 from now on, but I can't actualy run a league in DB 2.44 so...
I also get strange bugs, when adding a bot to the list of bots, sometimes it's like I'm not sure which bots are which, I add a bot and the other bots switch around colors and setting , if I run a league it ends after one fight claiming there are no more bots... I don't have a specific bug report or anything, just getting some wierdness....
Yeah, the species list is sorted now but this breaks the league code.  I'm working on it.

30
Newbie / too fast animation!help!
« on: September 25, 2008, 06:54:00 PM »
Quote from: Numsgil
Why is the 15 cyc/sec button disabled?
I wasn't aware that it was.  I've enabled it for the next release.

Pages: 1 [2] 3 4 ... 151