Hypothetical Q: Could you make a game with a 10,000 level (RPG) and 1,000,000 HP?

This is just hypothetical, as I doubt the system even has enough memory for this. But can you make a game RPG with 1,000,000 HP? (Any system)


I just edited my The Pixie's zombie game and entered 1,000,000 hp. I thought it would show up an error or something. But it worked. lol.


Playing DnD... I would hate to come across a creature with 1,000,000 HP!!!
Unless it is one of those pseudo-DnD one, where the player with a big sword could deal 50,000 hp damage...
( LOL)
Quest uses Int32... That comes out to a REALLY!!!! big number
10,000 levels??? (10,000 rooms!) That would take a while to explore just a small percent...
But I bet you were just wondering about the upper limit on some variables...


Yeah, a number is a number. You can just as easily have a billion hitpoints -- or two billion -- with any modern, 32-bit authoring system. But is it really more fun than having just 10 hitpoints and adjusting damage rates accordingly? People who play a lot of D&D claim the game is only interesting up to level 6, and indeed there is a variant that stops there, because past that point you largely stop getting cool new powers and tactical options, and the only thing left is numeric increases.

As for the size of the game itself, say how many rooms you could have in a dungeon, I dunno about Quest but other modern authoring systems have no hard limit. But do you really want to subject your players to a 10000-room dungeon? What are you going to put in it to keep it fun over the dozens of hours it will take to clear?

For what it's worth, in my latest roguelike the protagonist usually grows from 24 to 40 hitpoints over a playthrough, with other creatures ranging from 12 to 48, and there are maybe 100 rooms total -- 10 per dungeon level, on average. Admittedly it's a short game, intended to be won in 40 minutes. But you can always give players more things to do per room, instead of lots and lots of empty rooms.


it depends on the data types (and thus their sizes) used by quest and/or used from your computer system, as to their size, so if you're curious... you can start testing sizes, lol

(just google search: data type sizes)

https://en.wikipedia.org/wiki/Data_type
https://www.tutorialspoint.com/cprogramming/c_data_types.htm
https://msdn.microsoft.com/en-us/library/s3f49ktz.aspx
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html (this is a good link on data types)
https://chortle.ccsu.edu/java5/Notes/chap11/ch11_2.html


Thanks. I was only thinking of the system, not making a game like that. lol

I was thinking of Final Fantasy. Although the earlier games are much more simpler/more general, the games 7 & up get into levels in the 4 digits. It's quite possible to get to level 9999 by the end of the game. Of course Final Fantasy just has the player level up faster. lol


Well, yeah, but Final Fantasy is a JRPG. Those are a different breed of game, made for people who don't realize shouts of "it's over nine thousaaand!" aren't supposed to be taken seriously. :P


data types are based upon teh size of their memory, and computer memory works on base 2 as that works directly with the digital ('0' and '1' bit) circuitry of the memory parts:

Number Systems: binary (base 2), octal (base 8), decimal (base 10, what we know: 0-9 digits: 0-9, 10-99, 100-999, etc), hexadecimal (base 16)

1 byte (8 bits):

these are the digit placeholder columns, such as with decimal (0 to 9) of 'ones' column (10^0 x N), 'tens' column (10^1 x N), 'hundreds' column (10^2 x N), except this is binary (base 2, not base 10 of decimal):
2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128

2^7----2^0
0000-0000 = 0 = (2^7 x 0) + (2^6 x 0) + (2^5 x 0) + (2^4 x 0) + (2^3 x 0) + (2^2 x 0) + (2^1 x 0) + (2^0 x 0)
0000-0001 = 1 = (2^7 x 0) + (2^6 x 0) + (2^5 x 0) + (2^4 x 0) + (2^3 x 0) + (2^2 x 0) + (2^1 x 0) + (2^0 x 1)
0000-0010 = 2 = (2^7 x 0) + (2^6 x 0) + (2^5 x 0) + (2^4 x 0) + (2^3 x 0) + (2^2 x 0) + (2^1 x 1) + (2^0 x 0)
0000-0011 = 3 = (2^7 x 0) + (2^6 x 0) + (2^5 x 0) + (2^4 x 0) + (2^3 x 0) + (2^2 x 0) + (2^1 x 1) + (2^0 x 1)
0000-0100 = 4 = (2^7 x 0) + (2^6 x 0) + (2^5 x 0) + (2^4 x 0) + (2^3 x 0) + (2^2 x 1) + (2^1 x 0) + (2^0 x 0)
....
1111-1111 = 255 = (2^7 x 1) + (2^6 x 1) + (2^5 x 1) + (2^4 x 1) + (2^3 x 1) + (2^2 x 1) + (2^1 x 1) + (2^0 x 1

2^8 = 256 = 0 to 255
2^9 = 512
2^10 = 1024
2^11 = 2028
2^12 = 4056
etc etc etc

the early games were only able use 'words' (16 bits: 0000-0000-0000-0000, the first/leftmost 8 bits are for the address: the location in memory that holds the data: the last/rightmost 8 bits) as they didn't have much memory.

memory is physically like a long chain of boxes, which can store values in them (called registers):

box1 -> box2 -> box3 -> box4 -> etc

so, for example, here's our memory (the 'b' is for binary digit):

bbbb-bbbb-bbbb-bbbb-bbbb-bbbb-bbbb-bbbb-bbbb.....

bbbb-bbbb: this is our 'box1', the left 4 'bs' is the box, and the right 4 'bs' is the data that the 'box1' holds

xxxx-xxxx-bbbb-bbbb: this (2nd set of 8 'bs', I used the 'xs' to mask the first set of 8 'bs') is our 'box2', the left 4 'bs' is the box, and the right 4 'bs' is the data that the 'box2' holds

xxxx-xxxx-xxxx-xxxx-bbbb-bbbb: this (23rd set of 8 'bs', I used the 'xs' to mask the first and second sets of 8 'bs') is our 'box3', the left 4 'bs' is the box, and the right 4 'bs' is the data that the 'box3' holds

so, for example:

0000-0000---0001-0000---0010-0000---bbbb-bbbb

0000 (of 0000-0000): is our box1, and it holds the value of: 0 (0000)
0001 (of 0001-0000): is our box2, and it holds the value of: 0 (0000)
0002 (of 0001-0000): is our box3, and it holds the value of: 0 (0000)
bbbb (of bbbb-bbbb): would be our box4, but I'm not going further, as if I was, I'd use the '0' or '1', as that's how computers work (there's no 'b', digital/memory is just a long series of a pattern of: '0s' and '1s')

so, you specify the box (addressing):

0001 (box2)

then you specify the value that it stores/holds: 1111 = 15 = (2^3 x 1) + (2^2 x 1) + (2^1 x 1) + (2^0 x 1) = (8) + (4) + (2) + (1) = 15

0001-1111 ---> 'box2' has the value of '15' stored/held in it


0001-0100 ---> 'box2' has the value of '4' stored/held in it

0000-1000 ---> 'box1' has the value of '8' stored/held in it

0010-0010 ---> 'box3' has the value of '2' stored/held in it

and thus, now our memory would be this in machine language:

000010000001010000100010.....
(0000-1000---0001-0100---0010-0010......)
(box1: 8 --- box2: 4 --- box3: 2 --- ....)

anyways, that's why lots of old games only use 255 as their max stat, and if the programming doesn't handle it, going over 255, causes it to return and start from 0 again. maybe you've played some games where this has happened...

just a brief conceptual 'toe-dipping' into Assembly language (which is what the "hexadecimal game hacking editors" are doing/using)

so, if you're interested in Assembly (do NOT try/mess-with this stuff unless you know what you're doing as you're messing around with the memory of your computer, and can ruin your computer):

http://www.plantation-productions.com/Webster/www.artofasm.com/DOS/index.html
http://www.c-jump.com/CIS77/CIS77syllabus.htm
(and many other links, there's different types of Assembly Languages too, we learned the original intel one: MASM32: M:microsoft ASM:assembly 32:bits)


here's a quick 'rosetta stone' for number systems:

value vs decimal vs binary vs octal vs hexadecimal
0 vs 00 vs 0000-0000 vs 000 vs 00
1 vs 01 vs 0000-0001 vs 001 vs 01
2 vs 02 vs 0000-0010 vs 002 vs 02
3 vs 03 vs 0000-0011 vs 003 vs 03
4 vs 04 vs 0000-0100 vs 004 vs 04
5 vs 05 vs 0000-0101 vs 005 vs 05
6 vs 06 vs 0000-0110 vs 006 vs 06
7 vs 07 vs 0000-0111 vs 007 vs 07
8 vs 08 vs 0000-1000 vs 010 vs 08
9 vs 09 vs 0000-1001 vs 011 vs 09
10 vs 10 vs 0000-1010 vs 012 vs 0A
11 vs 11 vs 0000-1011 vs 013 vs 0B
12 vs 12 vs 0000-1100 vs 014 vs 0C
13 vs 13 vs 0000-1101 vs 015 vs 0D
14 vs 14 vs 0000-1110 vs 016 vs 0E
15 vs 15 vs 0000-1111 vs 017 vs 0F
16 vs 16 vs 0001-0000 vs 020 vs 10
17 vs 17 vs 0001-0001 vs 021 vs 11
...
100 vs 100 vs 0110-0100 vs 144 vs 64

or just use an online converter, such as: http://coderstoolbox.net/number/

using programming to do the number system conversions for us, hehe :D


It's a memory consideration. How many bits are you reserving for the level or the hit points? Do you really NEED to reserve that much space? Is anything really accomplished in a game that lets you have 9999 hp that isn't accomplished in a game that lets you have 999 hp?


This topic is now closed. Topics are closed after 60 days of inactivity.

Support

Forums