More levels/smaller map files

Posted by Scott_AW on June 10, 2008, 10:06 p.m.

More levels for Black Shadow have been made, currently 15 with secret or alternate route ones included. On top of that a brand new jump sprite which looks alot better then the one before.

And as for The Crawl, as I rework the editor I've made the map files much smaller, down from 48kb for a minimium sized room to 2kb. Its a huge improvement and allows one to manually edit if they know what they're doing. Although its not encourgaged. Any heres what the new map file's contents looks like. I'd post what the old one did but its just alot of empty lines inbetween tile and object info.

The ~ stand for a skip flag where the load process simply skips over the indicated amount of indexs thus reducing file size and load speeds. Load speeds have double in the editor, but for some reason my saving speed has suffered a little.

Loads take less then 2 seconds, down from 3, and saves now take 5 seconds, up from 4. I'm not sure what the speed changes for loading a map into the engine yet as I'm not completely done with the new file system.


Final Save

~10240

010000000000009

010000000000009

010000000000009

~26

010000000000009

010000000000009

010000000000009

010000000000009

~30

010000000000009

010000000000009

~30

010000000000009

~832

010000000000009

~30

010000000000009

010000000000009

~30

010000000000009

010000000000009

010000000000009

010000000000009

~26

010000000000009

010000000000009

010000000000009

~9216

010000000000000000000

010000000000000000000

010000000000000000000

~2

010000000000000000000

010000000000000000000

~2

010000000000000000000

010000000000000000000

~1

010000000000000000000

~87

0100000000000000000000000000000000000

0100000000000000000000000000000000000

0100000000000000000000000000000000000

0100000000000000000000000000000000000

0100000000000000000000000000000000000

~6

0100000000000000000000000000000000000

~1

0100000000000000000000000000000000000

~1

0100000000000000000000000000000000000

0100000000000000000000000000000000000

0100000000000000000000000000000000000

0100000000000000000000000000000000000

~2

0100000000000000000000000000000000000

0100000000000000000000000000000000000

~1

0100000000000000000000000000000000000

~1

0100000000000000000000000000000000000

~1

0100000000000000000000000000000000000

~2

0100000000000000000000000000000000000

0100000000000000000000000000000000000

0100000000000000000000000000000000000

0100000000000000000000000000000000000

~2

0100000000000000000000000000000000000

~1

0100000000000000000000000000000000000

~60

11111111111111111110


20480 Tiles, 100 Lights and 100 Objects are the current totals.

The first sets of digits represent tile info, the middle sized ones are for light sources and the largest one is for objects. The final set of digits represents which layers are flagged as being empty, this improves the engines loading and was present in previous versions. Its actually doesn't work correctly unless you have used more then one layer, something I need to check in on.

Once I'm finished up with my changes to the editor and engine, I'll be working on the alternate shade and contour mapping effects and hopefully will have some rather nice screenshots demonstrating the planned effects.

Comments

PY 16 years, 5 months ago

Nice work.

VigilantPsyche 16 years, 5 months ago

That's pretty cool. It's always satisfying when you manage to reduce GMs big chunky information into something like that, huh? ^_^

noshenim 16 years, 5 months ago

Quote:
100 Lights and 100 Lights
=P

Scott_AW 16 years, 5 months ago

Yeah, its been changed to 100 lights, 100 objects.

Juju 16 years, 5 months ago

Good stuff Scott. If I use a similar system for Engine 13, I'll credit you for the concept.

Scott_AW 16 years, 5 months ago

Feel free to, it seems to work fine.

To get the actual skip count you use the variable command that just gets digits. I think its like string_digits or something like that. Having the loading system looking out for the ~

Juju 16 years, 5 months ago

if (string_length(str) <> string_length(string(string_digits(str)))) {

//Check for tilde

}

Something like that, or just check the first character.