3/20/2024 0 Comments Zuma deluxe levels![]() right scale, apparently the image i got is in very wrong scale.Again, the first couple bytes are strange so I skipped them:įantastic! This proves my theory! Now all i need is to figure out two things: To verify that, i did the following plotting. Then suddenly, i got the point! It can be an array of “delta_x, delta_y” for the points on the track! I was scratching my head for more than an hour while my son kept bugging me with all sorts of weird things. Then, how does the second section define the curve? These findings make me really thinking that the first section is not used at all. It’s like i’m using this level’s background picture, but with the other level’s track. Replacing the second section with that of other level file makes the game changes completely.I even tried replace the entire section to a zero sized stub, the game still runs very well. As long as being consistent with the header, changing the 1st section doesn’t make any visual differences.Yes! This is definitely something! But how can a circle of dots relate to a curved track? Anyway, i started messing around with those data, and found: I don’t know what i was thinking, but i somehow, plotted the first two bytes of each 4-byte group, as “x,y” pairs, and it looks like this: First i tried to plot them as (x, y) pairs, but that didn’t come up very well. After a couple strange numbers, the rest all the way to the end of file is something like a list of integers, with a slowly changing values. Following the logic of the first section, the first 4 bytes look like another “size” field, but doesn’t quite match.Īnyway, let’s continue. So what’s going on? I realized that I only had first section of the level file decoded, not entire file. But nothing! The game ran as usual if it were not changed. So, mystery solved! Well, not completely, as there is a unknown “short” field.Īnyway, i was eager to try this out, so I altered a couple points, and tried to load the level in game, expecting something strange will happen. Later I tried to explain to myself with the first element, and found it makes sense, as the curve starts out side of the screen. I’m using python notebook for this task:īingo! It matches what I was guessing! When i was doing this, the first element was confusing me for quite a while as it as a negative “y” coordinate. I don’t know if i’m guessing it correctly, so let’s try plotting the data out. Let’s say it’s a structure of the following: Looking into the binaries, and i realized, the data begins with a “count”, and then a group of element of length of 10 bytes. The “size” field is the one i’m particularly interested in, as it outlines the first section of the level data. dat file describing a curve matching the picture. Opening the file with a hex editor presents me with the following content:īy simply eye balling on the hex digits, i can tell it has a header of 16 bytes (first row), which seems to be the following structure: The background picture of this level is this: So let’s start with this “triangle” level. A quick dive into the game installation folder shows there are data files under “levels” directory, for example, /levels/triangle/triangle.dat. ![]() So is that how the game developers actually do? Let’s take a look. Connecting all the points up with lines, you get the curve! So you end up with a list of (x,y) pairs, each one is a point on the curve. So I thought about this: If i were told to design the game, a simple way is to store the track using multiple segments of straight lines. People seems to be discussing the level description file (which is an xml file) and other image files, but the most important “Curve” file is not addressed and remains secret. ![]() Searching keywords “Zuma level file format” guided me to this one. So that question eventually led to this blog.įirst thing I tried is google. One thing would be how to store the level design data in the file. While playing, as an software developer, I was thinking how would i do the design if i were asked to make such game. It’s probably a very old game, but still quite fun to play with. To kill the time, I ended up playing a small game called “Zuma Deluxe” with him. It was really hot last weekend, and both my son and I ended up staying home.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |