Author Topic: Replace up, dn, sx, dx with fwd, bkwd, left, right  (Read 6963 times)

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Replace up, dn, sx, dx with fwd, bkwd, left, right
« on: January 05, 2017, 05:59:06 PM »
Up --> Swimfwd
Dn --> Swimbkwd
Dx --> Swimright
Sx --> Swimleft

And such.

This is a long overdue change and something I will add to my port anyway. I am changing the way ".thisgene .delgene" (I would prefer people disable healthy non-viral genes, also this prevents a nasty virus from deleting its hosts genes) will work so I will create a system to reorganize DNA no matter what.
I want to add this stuff to version 2.49. It will basically except the text file and generate a binary file with the correct DNA that is editable with my 'user friendly' internal DNA editor. I like Numsgils idea of having a DNA editor.

I also want to standardize the sysvar names as the LoadSysVars code is turning into a mess. And yes, I am guilty for some of that mess too. I think it is time to clean it up.
« Last Edit: January 05, 2017, 08:20:10 PM by Botsareus »

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Re: Replace up, dn, sx, dx with fwd, bkwd, left, right
« Reply #1 on: January 05, 2017, 08:01:27 PM »
Further thoughts on this topic:

I want to get rid of Darwin2.49 and call it something else like DarwinGreenLight.

There will be a need for a disclaimer on top of the sysvar page to "make sure to paste any DNA into DBGL found in tutorials as DB2 DNA." There will be an option to paste DB2 DNA.

That as best as I can invent for the direction I want to take DB. Any further ideas will be appreciated.

I can also minimalistically just get IM and vegys working the way I want in DB2.49 and minor bug fixes in the tie code. So definitely need to figure out what my exact next move is.
« Last Edit: January 05, 2017, 08:05:00 PM by Botsareus »

Offline spike43884

  • Bot Overlord
  • ****
  • Posts: 656
    • View Profile
Re: Replace up, dn, sx, dx with fwd, bkwd, left, right
« Reply #2 on: January 06, 2017, 11:11:50 AM »
Well, I don't think the "swim" part is necessary, but it would be a good change. (and regarding movement, bouyancy seems to be arguable to weirdest mechanic to me. I've never been able to control it properly, perhaps the actual mechanics of that need a tad bit of work).
Anyway, it would break the code of all the past robots, and considering we don't have the most active community, it might result in taking a while to build up a big collection of functioning bots.
Autism can allow so much joy, and at the same time sadness to be seen. Our world is weird, and full of contradiction everywhere, yet somehow at moments seems to come together, and make near perfect sense.

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Re: Replace up, dn, sx, dx with fwd, bkwd, left, right
« Reply #3 on: January 06, 2017, 11:35:38 AM »
The reason I want "swim" in there is if we go 3D I do not want people confusing ".up" with ".swimup"

Interpreting the code from DB2 to DBGL will not be a problem. As long as people load ".txt" file robots. Or, paste in the code editor the DB2 DNA. It will covert everything automatically. That is, it will not be forwards compatible but it will be backwards compatible. No old robots DNA will be broken as long as people remember this little enough rule.

I do need administrative approval on stuff like this though. It is a reasonably huge change.

off topic:
Buoyancy is a simple enough concept to understand. To figure out your current buoyancy you use ".boy" It is a value between 0 and 32000. 32000 means under vertical gravity enabled the robot will float to the top of the screen. Vertical gravity must be enabled. Putting a positive value into ".setboy" will increase the value in ".boy" putting a negative value should decrease the value in ".boy" Now keep in mind I have not played with this system for a while. If it does not work as explained here than it is a bug. In such case please start a new bug fix topic.
« Last Edit: January 06, 2017, 11:39:09 AM by Botsareus »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Re: Replace up, dn, sx, dx with fwd, bkwd, left, right
« Reply #4 on: January 06, 2017, 12:36:39 PM »
It's not either/or; you can have more than one sysvar point to the same location.  Check out DNATokenizing.bas, where the sysvars are set up, there's one for aimleft and aimright to augment aimsx, aimdx.

You can probably just do fw and bw for forwards/backwards, and left/right for left and right.  There are nautical and anatomical terms we could coopt, but I don't think they'd be clearer, even if they're cool (anterior/posterior and forward/aft respectively).

In terms of naming, if you deviate from the 2.XX(.XX) format you're kind of declaring your desire to fork the codebase and do your own thing, for good or ill.  It's fine to do that, just make sure you want to do that.  If you don't want to do that, there's nothing wrong with 2.49.XX.  The numbers don't mean anything except that larger numbers are later revisions, so we can do 2.49.XX.XX.XX etc. all day long.  If you really want to take the 2.50 designation that's probably okay; the C++ version I did 10 years ago isn't exactly in wide distribution :)  But just be careful you're not going to run out of numbers again.  2.99 is just as much an issue as 2.49, except I'm not giving up the 3.0 designation without a fight :)

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Re: Replace up, dn, sx, dx with fwd, bkwd, left, right
« Reply #5 on: January 06, 2017, 02:20:00 PM »
Quote
You can probably just do fw and bw for forwards/backwards

The main reason for the change is to eventually have ".up" ".dn" point to vertical up/dn in three dimensional space. I want to one day try this but I want to do it in the least intrusive way possible. Edit: Numsgil, to the point, What should I name stuff if I expend everything to 3D?

Quote
I'm not giving up the 3.0 designation without a fight :)

No problem. I am actually afraid to touch even your 2.5 designation. Thank you for your support though even if I make the decision to branch the code. For now I think I may actually go with 2.49.

Off topic: Spike, it is actually called "rdboy" not "boy" after a quick review.
« Last Edit: January 06, 2017, 02:27:59 PM by Botsareus »

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
Re: Replace up, dn, sx, dx with fwd, bkwd, left, right
« Reply #6 on: January 06, 2017, 04:37:47 PM »
You could make up/fwd down/bkwd synonyms for now. When 3D arrives you can make up/dn acount for the Z axis, and fwd/bkwd for the x axis.
It doesn't matter if 2D bots are clueless in the x axis or z axis, they'll be quite broken in 3D, but the DNA keeps compatible in the current version, avoids to make DB2 do  conversions to keep current bots compatible.
Oh my god, who the hell cares.

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Re: Replace up, dn, sx, dx with fwd, bkwd, left, right
« Reply #7 on: January 06, 2017, 07:09:38 PM »
Quote
they'll be quite broken in 3D

I was thinking of adding a special gene at the end that adds vertical motion normal or inverted to the .fw .bw the robot is doing based on where the robot is looking. The robot will also have to be aligned across the XZ axes. That means at times it will be traveling up and forward and at other times down and forward etc. I would need to also add some SS logic in the same gene to correct for .tieloc, .memloc etc. as the DNA will be "expended."

Anyway, the plan is to get rid of fixpos to 'nothing' Instead the robots will be able to fix to a shape.

Funny you should mention this Peter but I am trying to save your own bot. Your idea is to rotate the screen on startup so it is looking up across the z-axes. And rotate the eyes to point to the top of the head.

What I think will be cool is to have your Caterpillar robot that moves with ties to live on top of a shape "without water." That is, areas of the simulation where voluntary movement is restricted by the water level. This will tie into the new more realistic tide simulator. It will be the only known robot that lives on land.

Now last time I checked gravity is "Y" gravity, not "Z" gravity. Things tend to fall to the bottom. Or in the case of rotating the camera as you propose - to the front of the screen. Your very own robot will not work right if its eyes point to the top of the head. For eyes btw I am thinking cone shapes.

I did promise to keep DNA from DB2 working but I have seen other crawl simulators online and I think it will be cool to do in DB.
« Last Edit: January 06, 2017, 07:23:09 PM by Botsareus »

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Re: Replace up, dn, sx, dx with fwd, bkwd, left, right
« Reply #8 on: January 07, 2017, 12:57:30 PM »
I think I will just make an alternate sysvar page from scratch when my port is ready to be released.