Time for Another Update!
0.12 went live on Monday 8/19
Click here to play Revel Immortal
Aside from an engine improvement concerning Firefox (and soon Chrome) specific modulated blending (for colorized equipment etc.);
the big addition was Containers.
Containers as you might imagine contain items; specifically they contain potentials for items; both designed and random that will be dropped when opened.
Containers are one-time openable; and that poses some specific issues due to Revel Immortal being an expansion based game.
Here are a couple of considerations.
Revel is composed of many regions, and each region is composed of a number of maps; a map is a screen-sized tile grid, of 40x40 tiles, where each tile is 16x16 px.
Garranshall is composed of 80x80 maps, thats 6400 maps; so when Morning runs from map to map, maps are discarded and then loaded; so these runtime objects only have certain aspects of permanance.
First is the MapState, map states are keyed to maps and stored in the WorldState, by default they persist for only five in-game days; map states older than that are discarded to keep state sizes down, this means information stored in them is semi-permanant.
Certain maps can indicate that their map states don't expire, however, these are few and far between mostly limited to maps that the player might own; aside from data size issues, storing map states forever poses problems for making future changes;
remember Revel is expansionable, and the general rule is "the information you save is the information you can't change" at least not easily.
So containers, like other such future objects fall into a niche category;
Container objects are backed in state via ContainerState objects that are linked into the world state through a GUID
this guid is composed of:
This hash of sorts is adequately unique so that designers creating containers, or any other persistent things shouldn't have collisions;
within the map data itself is where the container is defined, using that id to signal creation of a physical container on map load, and then creates or links to an existing ContainerState from the WorldState.
What's in store for 0.13?
Currency for one; we toyed around with a system of multi-denomination currency; but aside from being complex it wasn't very fun. So instead we are moving to a single unit currency (as unlikely as it may be); much as before the currency is known as Bits.
Bits are stored as part of the player state and displayed in the equipment screen, they are not treated as items, they're intergal units and are limited to ~2 billion; currency will cap beyond this point; go buy a castle or something ;)
In order then to collect money from non shop-oriented services; we need to also implement 'dissolvable' items.
Disolvables are items, that when collected instantly are 'used', for currency disolvables their ItemTemplates would specify a positive currency effect.
I also hope to get one or two meaningful quests in, but we'll see what time allows.