Next up: integrating this into the game proper, slotting in the town generator, making said town generator better, and adding different types of world. Think Minecraft.
Tag: tumblr echo
Guess that to do.
Finally stopped procrastinating and reworked the savegame format. It’s a bit more like Minecraft now.
Instead of a single world.bin containing every board and their respective entities, there’s now a world.bin that only contains some meta information on the region and the player data, and a series of Board###.brd files with each board and their entities.
Instead of loading the entire region in memory, only recently active boards are loaded, and flushed to disk after a period of not having Update() called. So in the corner of the world, only four boards are in memory plus the recently seen, at the sides only six, and anywhere else nine. And in dungeons, only the recently seen are in memory.
If an NPC moves from one board to another, they’ll physically move from one file to another – but only when both boards are flushed.
Not only is this somewhat more memory efficient, and does it cut down on loading and saving times, but it also opens the door to region switching ala Minecraft, letting the player travel to an entire new region in the same game world, to be generated when the player actually gets to that point, all by adding another level of folders! Noxico\Save name\Region name. BAM.
And dungeons. Can’t forget the dungeons. I can just scatter entrances all over the region now and just mark them as “ungenerated” or something. At the current world size (which is 8) I have 64 board files. This number would increase as I try to enter more dungeons.
(There was no text on this post, only an image. It was tagged #levenshtein distances.)
IIIIIIIIIIIIIIIIIIIIIMPS!
I tried to dispatch these pests, but there’s too many and the damage determination is too simplistic.
The darker shades are the remains of their slain compatriots. My character is a reasonably dark shade as well, at this moment, but the message box covers it up.
Dialogue?
That’s correct, I’ve started on having conversations with characters. It’s sorta-kinda inspired by how Skyrim does it, and it’s not quite done yet. Mostly because you can’t pick any responses yet.
Wish you were here
Welcome to lovely Summercrest, where the sun’s nice and hot, and naga can marry man. Randomization being what it is right now, the only people not spoken for are Mai Kobayashi the Foxgirl and Kiku Okamoto the Catgirl. Notice also the switch from PNG tilesets to TTF, allowing almost the entire Basic Multilingual Plane to be used and generally making tile size very dynamic indeed, since they are now based on the point size of the chosen font.
No DTD for the body plans and stuff?
Went from this:
<bodyplan> <culture> <human /> </culture> <terms> <generic text="yes">human</generic> <male text="yes">man</male> <female text="yes">woman</female> </terms> <playable /> <tallness> <roll>1d50+150</roll> </tallness> <hair> <length>6</length> <color> <oneof>blond,brown,black,red,gray,white,auburn</oneof> </color> </hair> </bodyplan>
…to this:
bodyplan culture human terms generic: "human" male: "man" female: "woman" playable tallness: roll 1d50+150 hair length: 6 color oneof blond,brown,black,red,gray,white,auburn -- Can also do color: oneof blond... to make it a text value for the color -- token instead of a new child token to color.
This solves the problem of not being able to make a DTD for XML files that include tokens. Not only that, but no end tags to mismatch and no more brackets.
Introducing CaveGenerator()
This and StoneDungeonGenerator() have a thing where, by the power of Dijkstra mapping, the walls fade out by distance.
Much better, no?
One down, two to go.
The City of Townsville…
…is much more impressive than this.
It really needs more color, and a lot more clutter, to steal a TES technical term. Also, pathways between the buildings, and more clutter outside where there’s room.
But hey, houses!