Author Topic: 2.5 Dimension mode?  (Read 8855 times)

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
2.5 Dimension mode?
« Reply #15 on: December 12, 2009, 11:10:50 PM »
Quote from: Numsgil
Sort of torn, actually.  Assuming we do integers, which would people prefer?

Personally, I'd prefer whatever is better for mutations, since DB's main goal is making mutation sims. That's just me though.

Offline ikke

  • Bot Destroyer
  • ***
  • Posts: 300
    • View Profile
2.5 Dimension mode?
« Reply #16 on: December 13, 2009, 07:17:31 AM »
Quote from: Numsgil
The numbers get big really, really fast, which is sort of unfortunate.  27720 is a bit larger than I want.  It doesn't quite fit in a 16 bit signed integer and that would be a lot of sysvars
8 (2^3) is included so you can halve the number without taking a larger hit than losing divisibility by 8 and fit it in 16 bit
Quote from: Numsgil
Sort of torn, actually.  Assuming we do integers, which would people prefer?
I am unclear as to the scope of what we are discussing. Is everything going to be limited to this number (body, speed etc)?
Two comments:
1) an element not included in the discussion is resolution. Do 3600 or 2520 have adequate resolution? Or do we want to be able to have finer increments and or more distinct categories? In that case just multiply by a subset of underlying primes. Smaller and more primes are better I guess, so prefer 4 (2^2) or 6 (2*3 ) over 5.
2) As fas as the 3600 vs 2520 discussion it is important to note that divisibility by al large number of integers is nice, but not all integers are equally relevant. With nine eyes divisiblility by 9 is more relevant than 8, 10 or 11. I can imagine other relevant integers. Aside from that, 360 (or 3600) is as arbitrary as 2520. The advantage of the 360 base is that is is better known and therefore more easily recognised. 2520 would require clear documentation to make people aware.
Quote from: Numsgil
That's the prime example of what I want to avoid for DB3.  .shoot involved "magic" numbers.  And even if you try to level the playing field by modding the value so it takes -6, -16, -26, etc. it's still a real pain.  For DB3 I'll break each shot type into its own sysvar and the values the sysvars hold will represent .shootval instead.

Sounds good.
Going of in (yet) another direction: one of the other avenues is making db3 more biological. Is this abandoned, and if it is not, do the different shoot still have their relevance? I can imagine .eat being relevant for an amoeba scale bot, more than body shots.

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
2.5 Dimension mode?
« Reply #17 on: December 13, 2009, 01:11:35 PM »
If we make the cap one less than a prime number, the variable range with the rollover becomes a finite field
In case that matters.
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
2.5 Dimension mode?
« Reply #18 on: December 13, 2009, 04:08:33 PM »
Quote from: ikke
Quote from: Numsgil
The numbers get big really, really fast, which is sort of unfortunate.  27720 is a bit larger than I want.  It doesn't quite fit in a 16 bit signed integer and that would be a lot of sysvars
8 (2^3) is included so you can halve the number without taking a larger hit than losing divisibility by 8 and fit it in 16 bit

Except that divisibility by 8 is important for angles.  Without it, you cant express something like 45 degrees exactly.

Quote
Quote from: Numsgil
Sort of torn, actually.  Assuming we do integers, which would people prefer?
I am unclear as to the scope of what we are discussing. Is everything going to be limited to this number (body, speed etc)?

It'll be the range of sysvars, and probably also the number of sysvars.  Numbers on the stack, though, will have a higher precision.

Quote
Two comments:
1) an element not included in the discussion is resolution. Do 3600 or 2520 have adequate resolution? Or do we want to be able to have finer increments and or more distinct categories? In that case just multiply by a subset of underlying primes. Smaller and more primes are better I guess, so prefer 4 (2^2) or 6 (2*3 ) over 5.

I think once you get to about a 1000 you have sufficient resolution.  I can't think of a reason you'd want more just for resolution's sake.

Quote
2) As fas as the 3600 vs 2520 discussion it is important to note that divisibility by al large number of integers is nice, but not all integers are equally relevant. With nine eyes divisiblility by 9 is more relevant than 8, 10 or 11. I can imagine other relevant integers. Aside from that, 360 (or 3600) is as arbitrary as 2520. The advantage of the 360 base is that is is better known and therefore more easily recognised. 2520 would require clear documentation to make people aware.

Eyes probably won't work like in DB2, btw (it'll work more like a camera obscura, with angular ranges that a bot can set to be either rods or cones).  But it's a good point.  For 3600, I'd choose probably 60 when it was an issue.  60 ins, 60 outs, 60 racial memory slots, etc.  For 2520 it's less clear.

Quote
Going of in (yet) another direction: one of the other avenues is making db3 more biological. Is this abandoned, and if it is not, do the different shoot still have their relevance? I can imagine .eat being relevant for an amoeba scale bot, more than body shots.

There's just going to be one offensive shot type, and it works to kill the opponent more than eat him.  Then you swallow the enemy whole.  There's a thread somewhere in the DB3 subforum where I explain what I'm thinking.

Quote from: abyaly
If we make the cap one less than a prime number, the variable range with the rollover becomes a finite field  
In case that matters.

Well, 2520 is one less than 2521, which is a prime.  Does that count the domain [0, 2520] or [-2520, 2520]?

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
2.5 Dimension mode?
« Reply #19 on: December 14, 2009, 12:25:32 PM »
Quote from: Numsgil
Quote from: abyaly
If we make the cap one less than a prime number, the variable range with the rollover becomes a finite field  
In case that matters.

Well, 2520 is one less than 2521, which is a prime.  Does that count the domain [0, 2520] or [-2520, 2520]?
[0, 2520]
I can't think of a good reason we should care whether it makes a field or not, though.
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
2.5 Dimension mode?
« Reply #20 on: December 14, 2009, 12:47:25 PM »
Yeah, me neither, but it is interesting it would work with 2520 and not 3600.