If You Have Ever Wondered About MCOC's Damage Cap:

DawsManDawsMan Member Posts: 2,169 ★★★★★
This post is for you.



I saw this post yesterday and was like, wait a second, I've seen that number before. Today Beroman posted a video about the universal MCOC damage cap.



Same number. That prompted me to do a bit of research, and as the screenshot suggests, 2 147 483 647 is the largest 32 bit (4 byte) integer in a lot of different coding programs. It is the highest number that can be displayed. There are exceptions if someone is hacking or if using a newer, different program that can display ridiculous numbers. This is also why when I played Harry Potter years 5-7 on my Nintendo 3DS XL I turned on all the multipliers but was never able to get more than 2.147 billion studs.

So, turns out this number is just a product of an internal 'cap' or limit in the program that MCOC was coded in.
I used these sites as references: https://en.wikipedia.org/wiki/2,147,483,647
https://www.networkworld.com/article/3010974/whats-so-special-about-2147483648.html

Nervously twiddling my thumbs, waiting to see if DNA3000 has something, or a lot of things, to add...

Comments

  • World EaterWorld Eater Member Posts: 3,777 ★★★★★
  • BitterSteelBitterSteel Member Posts: 9,264 ★★★★★
    Additionally, with regards to the discord screenshot in the OP. I believe that the number would actually jump to 4,294,967,295, as the whole premise is that negative numbers cannot be handled by the system meaning it’s unsigned. And that is the largest unsigned integer.
  • DawsManDawsMan Member Posts: 2,169 ★★★★★

    This is for signed 32-bit integers btw which is used by default. Unsigned, the maximum cap is double of this I believe.

    I read that as well.
  • DawsManDawsMan Member Posts: 2,169 ★★★★★

    Additionally, with regards to the discord screenshot in the OP. I believe that the number would actually jump to 4,294,967,295, as the whole premise is that negative numbers cannot be handled by the system meaning it’s unsigned. And that is the largest unsigned integer.

    That makes sense in regards to the second article.
  • DawsManDawsMan Member Posts: 2,169 ★★★★★
    Qacob said:

    DawsMan said:

    This is also why when I played Harry Potter years 5-7 on my Nintendo 3DS XL I turned on all the multipliers but was never able to get more than 2.147 billion studs.

    Getting a purple brick with 10x multiplier was the best. Actually no, second best. First best is unlocking big heads.
    Bruh I thought they were blue. And yes, big head was sick. Funny jump was dissapointing imo.
  • QacobQacob Member Posts: 2,253 ★★★★★
    DawsMan said:

    Qacob said:

    DawsMan said:

    This is also why when I played Harry Potter years 5-7 on my Nintendo 3DS XL I turned on all the multipliers but was never able to get more than 2.147 billion studs.

    Getting a purple brick with 10x multiplier was the best. Actually no, second best. First best is unlocking big heads.
    Bruh I thought they were blue. And yes, big head was sick. Funny jump was dissapointing imo.
    Blue were 1k. Purple are 10k. Although saying that I'm not sure if purple bricks existed back then. They do now, as my little brother gets very excited when he finds one.

    But back in the days of OG Lego batman on the DS they might not have been a thing I can't remember.
  • TyEdgeTyEdge Member Posts: 3,130 ★★★★★
    This is also why Tecmo Super Bowl stopped recording my stats after Jerry Roce reached 4095 yards rushing and receiving in the season.
  • Malreck04Malreck04 Member Posts: 3,332 ★★★★★
    DawsMan said:

    Qacob said:

    DawsMan said:

    This is also why when I played Harry Potter years 5-7 on my Nintendo 3DS XL I turned on all the multipliers but was never able to get more than 2.147 billion studs.

    Getting a purple brick with 10x multiplier was the best. Actually no, second best. First best is unlocking big heads.
    Bruh I thought they were blue. And yes, big head was sick. Funny jump was dissapointing imo.
    No, I also remember purple was the highest denomination. Silver-10, Gold-100, Blue-1000, Purple-10000. They would often be hidden out of sight, so It was really cool to stumble upon one
  • DawsManDawsMan Member Posts: 2,169 ★★★★★
    Qacob said:

    DawsMan said:

    Qacob said:

    DawsMan said:

    This is also why when I played Harry Potter years 5-7 on my Nintendo 3DS XL I turned on all the multipliers but was never able to get more than 2.147 billion studs.

    Getting a purple brick with 10x multiplier was the best. Actually no, second best. First best is unlocking big heads.
    Bruh I thought they were blue. And yes, big head was sick. Funny jump was dissapointing imo.
    Blue were 1k. Purple are 10k. Although saying that I'm not sure if purple bricks existed back then. They do now, as my little brother gets very excited when he finds one.

    But back in the days of OG Lego batman on the DS they might not have been a thing I can't remember.
    Malreck04 said:

    DawsMan said:

    Qacob said:

    DawsMan said:

    This is also why when I played Harry Potter years 5-7 on my Nintendo 3DS XL I turned on all the multipliers but was never able to get more than 2.147 billion studs.

    Getting a purple brick with 10x multiplier was the best. Actually no, second best. First best is unlocking big heads.
    Bruh I thought they were blue. And yes, big head was sick. Funny jump was dissapointing imo.
    No, I also remember purple was the highest denomination. Silver-10, Gold-100, Blue-1000, Purple-10000. They would often be hidden out of sight, so It was really cool to stumble upon one
    Ok you guys are right. The most recent one I played was Star Wars the Clone Wars III and in that 1 blue was the highest. Or I'm just trash at the game idk.
  • edited June 2021
    This content has been removed.
  • Will3808Will3808 Member Posts: 3,805 ★★★★★
    Let me just say your post intrigues and confuses me at the same time. Good to know there’s a damage cap and why but I also don’t really understand the depth of why.
  • BitterSteelBitterSteel Member Posts: 9,264 ★★★★★
    Will3808 said:

    Let me just say your post intrigues and confuses me at the same time. Good to know there’s a damage cap and why but I also don’t really understand the depth of why.

    The TLDR of it is a computer reads 32 1s as 4,294,967,295. That’s the highest number it can show. If you wanted to show higher, you’d need a 33rd digit.

    But if you want to show negative numbers (which is usually the default). You’d need to use 1 of those 32 digits as a marker for whether it’s positive or negative. So you can only use 31 of the remaining spaces to tell the computer how high the value is. Meaning 2,147,483,647
  • This content has been removed.
  • SummonerNRSummonerNR Member, Guardian Posts: 13,200 Guardian
    edited June 2021
    Was gonna write up a reference to SHORT, INT, and LONG (and their “unsigned” counterparts) definitions for variable storage in programming languages earlier (as well as Floating Points), but DNA did a good job too.

    Just second guessed myself whether now with compiling code for 64-bit processors, whether or not some of those defined variable types are actually dependent on what processor (32-bit vs 64-bit) you are compiling for. Or whether an INT is say always xx # of bits no matter the Target processor (with LONG being double that amount).

    Or when compiling for 64-bit processors, does that SAME CODE (specifying INT and LONG types) get treated as twice as much storage variables instead of their previous meanings. In which case, a LONG on a 64-bit compiled program would have some very huge wicked number available.

    (edited, forgot that BYTE is lowest being 8-bit, and SHORT is actually the next up being 16 bit, etc)
  • DNA3000DNA3000 Member, Guardian Posts: 19,845 Guardian

    maximum number of digits you can store=2^32 since a normal integer is 32 bits.
    since we have negative numbers too divide it by two: 2^32/2=2^31
    but now we also include zero so its actually 2^31-1 for positive numbers
    that comes out to be 2,147,483,647

    That's not exactly right. Let's do it for base 10 instead of base 2, which will make everything more obvious.

    Six digit number. The maximum value is 999999. That's 10^6 -1. Why minus one? Because 10^6 is a seven digit number (1,000,000). 10^6 is the first number that doesn't fit. 10^6-1 is the biggest number that still fits.

    What if you need space for a minus sign? Then you only have five spaces for actual digits, and one space reserved for the minus sign. So now the biggest number you can store is 10^5-1. That's 99999.

    If the largest number we can fit in there is 10^6-1, how many total numbers are possible? Well, there's 10^6-1 numbers from one to 10^6-1 (in other words, there are exactly 999,999 numbers from 1 to 999,999 - of course). You can also store zero as 000000. So the total number of possible numbers you can display is (10^6-1) + 1 = 10^6.

    There are thus one million different numbers (10^6) you can display in a six digit display. 999,999 different numbers from one to 999,999, and zero.

    Change all the tens to twos and the nines to ones, and this basically describes the situation in binary.
  • SummonerNRSummonerNR Member, Guardian Posts: 13,200 Guardian
    edited June 2021

    maximum number of digits you can store=2^32 since a normal integer is 32 bits.
    since we have negative numbers too divide it by two: 2^32/2=2^31
    but now we also include zero so its actually 2^31-1 for positive numbers
    that comes out to be 2,147,483,647

    Maximum number of numbers is always gonna be that 2^32. Including any that are represented as negative, and also Zero itself. A little different from “maximum (highest) number” that can be specified.

    Another side bit of trivia is that why can the “Negative” numbers go 1 numerical spot higher that what their “Positive” numbers can ?
    Answer, because ZERO is treated as basically a Positive number (and is basically the first position on the positive side of the scale). While the Negative side of the scale begins at -1, so can top out at a number one higher than what you can reach on the Positive side.

    ie (in simplistic 2-bit signed notation), you can have -2, -1, 0, 1.
  • UnidentifiedCreatureUnidentifiedCreature Member Posts: 589 ★★★
    Posts like this is what the 'insightful' reaction was made for
  • MauledMauled Member, Guardian Posts: 3,957 Guardian
    That’s the system a lot of older online games are built on - in RuneScape for example you can only have a stack of 2.147b of any item, so for items more valuable than that there’s a bit of a black market
  • GhostboytjieGhostboytjie Member Posts: 2,427 ★★★★★
    I knew this but its still something not everyone knows, its a good thing you posted it for the others but this thread tho..

    Dawsman : This is the damage cap cause of a 32 bit integer
    The first few posts : *Lego games*
    :)
Sign In or Register to comment.