October & November 2019 Update


Hello! Sorry for the big delay on this month’s dev update. In fact it’s been so long that I’ve decided to bundle up both the late October update and the upcoming November recap into one bumper issue! Since the last update I’ve been exclusively working on adding natural resources to King under the Mountain chosen by Kickstarter backers as part of their rewards. At least, that’s what I’ve been doing in terms of gamedev, it’s been another super busy month otherwise!

Thankfully, this task is now complete so I’m going to spend this month’s dev update going through what has been added with some of my thinking or future planning for each one. Those eligible for the reward were asked to pick a real-world type of rock, ore, gemstone or tree to be added to the game, and I also ended up adding the option of a type of mushroom which didn’t have to be constrained to a “real world” choice for some more fantastical elements in the game. Here’s what people came up with!

Gemstones

Some of the resources that have been added (in more detail below) tend to necessitate other new additions, such as metallic ores that can be smelted (or not) into new metals. This is not the case for gems, particularly when jewellery and decoration has not been implemented yet. That makes the list of new gems uncontroversial and simple enough, so I’ll simply list them here with their in-game tooltip descriptions (anything in italics is an explanation for this dev update only):

  • Morganite – A rose-coloured variety of beryl. It was named after being popularised by a particularly wealthy merchant in the age of myth. The particularly wealthy merchant is a reference to the real-world naming of Morganite, which is named for the banker J P Morgan.
  • Ammolite – An opal-like gemstone which has a red to green iridescence. It is known as the “hunting stone” and amulets made from it are meant to bring good luck to a hunt. This description is in reference to the following from wikipedia: The Blackfeet tribe know ammolite as iniskim, meaning “buffalo stone”, and have long believed it to possess amuletic powers; specifically, the gem is believed to aid in the buffalo hunt, and to draw the buffalo within tracking distance.
  • Painite – A very rare gemstone which is often identified as an off-colour sapphire. The crystals are naturally hexagonal in shape and a favourite of tacticians. The “favourite of tacticians” was an addition of my own as a reference to hex-based strategy games.
  • Rhodochrosite – Found in varying shades of red to pink. It is not as hard as most gemstones making it a poor choice for rings and other high-impact jewellery.
  • Bixbite – Also known as red beryl, it is a very rare gemstone. It is often confused for a red-coloured emerald.
  • Opal – A form of silica infused with the magic of the oceans, which makes this a favourite of sailors and fishermen.
  • Lapis Lazuli – A rock with a brilliant deep blue hue which is used as a precious stone.
  • Amethyst – A violet-hued variety of quartz. Ancient humans believed it could magically protect them from becoming too drunk. For this reason it is not very popular in dwarven culture. The name “Amethyst” itself comes from the Koine Greek for  “intoxicate” as it was indeed believed to prevent people from becoming drunk.
  • Labradorite – A rock which shines with a typically light-blue iridescence. Rarer specimens can reflect a wide range of colours.
  • Sapphire – Often believed to protect the wearer from the attention of daemons, sapphires are much sought-after by mages for use in sky and air-based magic.
  • Quartz (Rock crystal) – The purest form of quartz. Rock crystals often feature in magical artefacts as they are a condensed form of the element of ice.

Trees

Adding new trees was a surprisingly popular choice, I’m assuming for backers to include some of their favourite (local?) species based on what was chosen. Currently, each woodland area on the map has 1 or 2 randomly chosen species. I’m hoping that later in development, tree placement will be based on the biome of the map, perhaps taking into account the latitude of the map location and local climate. At the moment there is no rarity to any type of tree which should be addressed when different types of wood are worth more or are otherwise superior to “standard” wood types.

NameTree & wood graphicsNotes
(Gabon) Ebony
This is Diospyros crassiflora (aka African ebony) which has extremely dark heartwood, and much like in real life, is extremely valuable due to its appearance and durability.
Bull-oak
Bull-oak (or buloke) is a species of ironwood tree from Australia. It was only upon implementing this that I realised/remembered that trees in King under the Mountain are currently only described as "(name of wood) tree", and the wood material harvested from this is listed as "Ironwood". This means that in-game this is currently labelled an "Ironwood tree" which is acceptable, although I realise now it would be better to have individual tree descriptions rather than relying on the wood material name. This would also allow trees to have their own tooltips, which is one major type of entity in the game that do not currently have tooltips.
Spruce
The request for this tree was for the Spruce tree. As you can see from the image, I've opted to lean into the blue spruce (AKA Colorado blue spruce) for the blue-green colouration to distinguish it from other evergreens.
Nuytsia
This is the Australian Christmas tree, also known locally as moodjar. Uniquely, it blooms into a bright yellow/orange colour over summer, unlike most deciduous tree types in-game which turn green to yellow to red during autumn.
Star Pine
This is much more commonly known as Norfolk Island pine, although I'm aiming to avoid names that use real-world locations so they can fit better into the lore of King under the Mountain, despite these backer rewards requiring the selection of a real-world species. As with most of the items in this list, ideally this would use more unique graphics than the existing pine sprites, and hopefully there comes a point where that can be added (or even modded) in!
Pecan
Ideally this tree would drop or at least have harvestable pecans (the nut), but in the interest of getting this much-delayed update out, extras for backer rewards such as this have been put on a future to-do list.
Rosewood
Rosewood can refer to several types of tree, but simply "Rosewood" was requested and as the tree description uses the name of the wood material, "Rosewood" it is!
Eastern Juniper
A tree from eastern North America, "Eastern Juniper" is what was requested however this is currently listed in-game as "Red cedar" due to the material of the wood harvested as described above.
Baobab
Out of all the trees listed here, this is probably the one most in need of unique graphics to convey the iconic African baobab - particular the giant baobab. I've based this on the Suarez baobab. The baobab also really highlights the issues that come from just randomly mixing different trees together on a map, this should probably only show up on maps that have a biome similar to the real world locations it is found.
Sycamore
Again, the name here can refer to several types of trees but it's simplified to just sycamore for the moment.
Aspen
And again, aspen covers several tree species, usually defined by the area of the world they are found in, so this continues the interest of removing real-world locations from names.
Red Emperor
The request here was for the Japanese maple, which is also known as the Red Emperor maple which feels ambiguous enough to me that it can fit into the world of King under the Mountain.

Also, bamboo was requested as a new type of tree to be added. While most others can get away with some re-use of the existing assets, bamboo is definitely too distinctive to do the same so this will be added at a later point.

Ores

Adding new ores to the game was interesting, because it usually ends up implying that there’s a new metal that can be smelted from it. Here I’ll go through the ores that have been added and any extra resources that they have led to, or any plans for the future.

OreGraphicIn-game tooltipProcesses toOther notes
WolframiteA metallic ore which complicates the smelting of tin. It has too high a melting point to be smelted with normal processes.Tungsten/Wolfram - not yet implementedTungsten has a melting point of 3422 °C (the highest of all discovered elements!) so it is not feasible to smelt ingots from it. Perhaps it may be of use when alloys are added (as it is often produced in reality by forming an alloy with nickel), or perhaps dragonfire or magic can be used to produce tungsten. For now though, Wolframite is effectively useless so it is also marked as being very rare so you won't be left with many useless ores on your map.
MagnesiteA mineral which can be polished into beads for use in jewellery. These beads can by dyed into many different colours.GemstonesMagnesite can be burned to produce magnesium oxide which is used as a lining in blast furnaces, and this may be an in-game use in the future. Magnesite was requested (quite correctly) as an ore, but as it is also used for jewellery, right now it's been added as a new type of gemstone as that is how it will be used (when jewellery is added).
ThoriumA silvery metallic ore which turns black when exposed to air. It is strangely warm to the touch.NoneThe "strangely warm to the touch" is a reference to the fact thorium is weakly radioactive. I've not yet planned any uses for thorium, and in the real world it is very rare. Let me know if you can think of any uses which would be appropriate to King under the Mountain!
ChrysocollaOften confused with turquoise, it is actually an ore of copper.CopperThis is a simple one, being an ore of copper, it is much the same as malachite, but in a more pleasing colour!
Native platinumNaturally-occuring platinum which must be smelted before use.PlatinumJoining native copper, silver and gold, expect this to be particularly valuable once trading is implemented!
Fool's gold (pyrite)Also known as Pyrite, its pale-yellow appearance causes some to mistake it for gold. It has several uses when crushed, but care must be taken as it sparks when struck.Green vitriol (iron sulphate)Look out when fire is added as this may be an explosion risk! Green vitriol (an archaic name for iron sulphate) has several real world uses, which should be reflected in game as a soil supplement, and perhaps an addition to leatherworking and medicine.
PollucitePollucite is an ore of Caesium, which is currently too dangerous to produce. Particularly crazy dwarven metalsmiths are currently trying to find a reliable method of production.Caesium - not yet implementedCaesium ignites spontaneously in air and explosively when in contact with water, so if and when that applies, it will be a very dangerous material to produce! I would like to introduce some method of producing caesium from pollucite, it feels like it would have some fun uses in traps and mechanisms.
CinnabarAn ore of mercury which is often used in jewellery due to its deep-red hue. It is also used to produce the dye known as vermillion.Mercury - not yet implemented / gemstonesAs the tooltip states, this is an ore of mercury. As mercury probably won't be implemented (unless we find a good use for it?), it'll stay as a gemstone for use in jewellery.
IlmeniteIlmenite is the primary ore of titanium. Unfortunately, a means of titanium production is yet to be discovered.Titanium - not yet implementedAn ore of titanium, which requires slightly more advanced processes than the dwarves currently have available to them to produce. Surely something can be figure out though, perhaps with the aid of magic?
BauxiteBauxite is the primary ore of aluminium. Unfortunately, a means of aluminium production is yet to be discovered.Aluminium - not yet implementedAs with ilmenite, this is an ore of a metal which requires more advanced processes to produce. There will be a way of doing this in the future though!

It should be pointed out that the less useful of these new ores will be very rare in-game until they have a use, at which point they’ll be a little more common. Dwarves in titanium plate armour would be quite something!

Mushrooms

Unlike the other resources added by backers which were constrained to real-world examples, I also added the option for backers to invent their own fantasy mushrooms leading to some interesting additions.

NameGraphicIn-game tooltipNotes
Fly agaricA mushroom with a pink-red cap bearing white spots. It has hallucinogenic properties which warriors sometimes use in preparation for battle.This is the iconic "toadstool" species of mushroom. It is technically poisonous and a hallucinogen. It is thought that viking berserkers would ingest these mushrooms to send them into the classic trance-like fury depicted of barbarians in fantasy. As dwarves are from Norse mythology, I wanted to keep this link, so as well as the descriptive text, these are labelled as "Berserker mushrooms" in-game.
SunglowA bright yellow mushroom which glows with the appearance of sunlight. It loses this glow the moment it is harvested.As the tooltip suggests, this mushroom glows and literally acts as a yellowish light source in the game world, illuminating the deep, dark caves it is found within.
Syrup powderA round orange/yellow mushroom with a white underside. It is said to have been used by mages long ago, but for what purpose, nobody knows.Requested as "Syrup's powder" in reference to the magic powder produced by the witch Syrup in The Legend of Zelda in exchange for a magic mushroom, which usually has a bright yellow/orange appearance that this mushroom is an homage to.
GlowA magic-infused mushroom that gives off light and changes colour with the seasons.The backer that requested this actually let his kids choose what would be added to the game. Specifically that it has "changing colors of the rainbow (Red Orange Yellow Green Blue Purple Pink, according to my daughter)". This inspired me to extend the way certain items can act as a light source, and I'm happy to announce that this mushroom does indeed cycle through all the colours of the rainbow (across a year) and gives off light in-game according to that colour. You can see this in action in the video below.
RociomycotaA white and black spotted mushroom. It has been known to affect the appearance of those who ingest it.I don't know where the name of this comes from so there's not much I can say on this one! The backer requested that it could have a harmless cosmetic effect which hasn't been implemented yet, but has been added to the to-do list and is something I'd like to get around to eventually.
MiltoniaOnce thought to exist only in the Hudds region, it is now found throughout the world.I believe this is a reference to Huddersfield, at least the colour scheme being based on the football kit, although I don't know what the significance of the name is.
FistA black-blue mushroom with a metallic taste. It is named for a group of bards from the age of darkness.This is a reference to a heavy metal band, with the description tied a bit more to the lore of the game world.

The glow mushroom is a bit special in that it cycles through many colours, each of which it also applies as a light source. Here’s a video of it in action (with days and seasons shortened so everything is very sped up, normally the transition would be much more gradual):

Rock types

Only one backer decided to nominate a new type of rock to be added to the game – Icelandite! I’ve been trying to avoid direct references to real-world locations and names from things in the world of King under the Mountain (although if you’re very picky about it this is impossible as names of things are deeply rooted in their real world history). Icelandite is named for Iceland and there’s not much information on it, not many other names that I could swap out instead, so I had a look at alternative names for Iceland itself.

Dwarves, at least the dwarves in King under the Mountain and most fantasy settings, owe a huge amount to Norse mythology and history. “Frón” is apparently the old Norse word for land or Iceland, and so Icelandite has been named “Frónite”, which I suppose means “mineral of land” which is appropriate if a little vague.

It’s quite rare compared to the other rock types (so it will be a bit more valuable too), keep an eye out for its pleasing blue appearance in your maps!

New alpha released!

There’s a new alpha build with these resources out… now! As always it’s available from rocketjumptechnology.itch.io/king-under-the-mountain which all Kickstarter backers and pre-orders should have access to. Please get in touch if you’re a Kickstarter backer but think you don’t have your game key yet.

This update actually removes a small number of the existing resources which unfortunately means it is not backwards-compatible with saves from the current version (Alpha 2.7), except on the off-chance your save’s map does not have any of those resources.

Onto the next update

Finally, with all these in place, it’s finally time to move on to opening up mod support. Now that these new resources, their tooltips, and the many hundreds of words in other tooltips that were added in the last update are in place, I also think the time has come where the main body of text is ready for translation. I didn’t want to get people involved with translating the game while I knew I had quite a large number of words to be added in the short term. Now this is done, I think it makes sense to allow for translations to be the first types of mods to support before going on to more general content-type mods that should be possible. I might even be creating a few tools to help with translation support. A number of wonderful people have already contacted me offering their help with translation to their native language, but if there’s more of you out there in the community it would be great to have you on board! The best place to start is to join up to the King under the Mountain Discord server and either drop me a message directly or say hello in the #translations channel.

Until then, see you next month for the December update!

September 2019 Update


Welcome to the September update! A bit of a short one this month because A) August was late so it’s not been quite as long since the last update, and B) it’s been one of those months where there isn’t any particularly visual or even interesting progress! So what has been happening? The main body of work has been adding new resources to the game – those chosen by Kickstarter backers as part of their rewards. Although there was an email survey sent out several months ago, only around 50% of backers eligible for this reward have responded, so if you’re in the other half who have not got back to me yet, search your email inbox for “Claim your pick a resource reward for King under the Mountain” and get that response in soon to avoid missing out!

Past that, I’m still laying the (huge piles of) groundwork for mod support. It’s the kind of task that requires lot of fairly dull legwork until the big bang at the end when everything comes together.

In other news, this month saw the release of Overland (at least on consoles) which is a game I’ve enjoyed following the progress of although I’ve not yet found the time to play the thing. I mention this because there were several news stories around the fact that it includes the OpenDyslexic font as an option to replace the game’s default font, and coming off the back of last month’s update all about fonts it really stood out to me.

Until these news articles appeared I had no idea that there was such a thing as a font that can be more legible to people who suffer with dyslexia and it quite rightly garnered some praise. Having just swapped out the font in King under the Mountain, it occurred to me that this will make a perfect test case for an example mod that could come supplied with the base game.

The OpenDyslexic font on the King under the Mountain main menu

 

So when mod support does finally drop, you can look forward to this as an example of a simple mod coming bundled with the game, with the bonus of including the OpenDyslexic font for those who prefer it!

Finally there’s some very good news on the horizon – I’m in a position where I’m going to be able to change from trying to fit game development around a full-time 5-days-a-week day job, and instead I’m going to move to a 4-day working week, simply cutting down on the contract work that keeps the lights on to be able to dedicate a full day a week to development of King under the Mountain. Progress has been pretty slow for the last few months, which I’m deeply sorry for and is a source of much personal frustration. Fortunately, you can expect to see things kick up a notch in the near future and bring us closer to release!

See you next month!

August 2019 Update


Welcome to the (late) August update for King under the Mountain! Apologies for the lateness of this, August was a crazily busy month personally, but I thought it still worth putting out a delayed dev update rather than nothing at all until the end of September.

The good news is that tooltips for nearly everything in the game have now all been implemented (thousands of words in total!) and there’s a new alpha build (Alpha 2.6) available on the Itch.io page for all current and future owners to get hold of with these tooltips in. As well as providing some super useful information to the player (especially to explain what a pillar actually does), this is also the start of background lore in the world of King under the Mountain with references to the magic system and the world at large.
Read more

July 2019 Update


Welcome to the monthly update! With Alpha 2 effectively out of the way (though as always there’s some small bugs still to look into), the focus now is on Alpha 3, which means mod support! As a precursor to this though, I’ve been working on a tooltip system. I think this is going to really improve the new player experience by explaining how things work which is a bit of a sticking point without a tutorial (I’d rather add a tutorial later in development when more of the base gameplay is in place). It’s also the first time we’re getting some background fluff added to the game! You can see it in action here:

A tutorial is often requested as the game is not as easy to understand as it could be. I’m hoping tooltips on practically everything will work as a bit of a sticking plaster until there actually is a tutorial. I decided to get the tooltip system done now as it is massively increasing the amount of text in the game which leads into… multi-language support (AKA internationalisation).

The first big feature I want to enable through modding is to add translations to the game. While King under the Mountain is in development, it doesn’t make sense to get a translation company to translate all the text in the game as it is constantly being added to – as soon as a set of translations was finished it would be incomplete in the next update and not usable by any players who don’t read English. I think the best approach, for now at least, is to support and encourage translation mods while the game is in development, and potentially pull these and/or “professional” translations into the base game (not as a mod) once it hits version 1.0 (i.e. after beta).  The game can even warn you if a translation is incomplete for the version you are playing – it’s a problem that needs addressing if not solving while development is active.

To this end, I’m going to be creating tools to help the community with translation mods – probably a small command line executable which initialises or updates a spreadsheet to be filled in with translated text, even including computer-generated translation text as a start pointing. Translations provided by a computer are often poor because they’re missing enough context to know exactly how something should be translated, but having them as a base to work on top of should make things easier.

I’m also looking at swapping out the font currently used in the game (Google’s Roboto), or perhaps even the entire UI skin, as the kerning (the spacing between letters) is terrible with the current font sprites that have been generated. As with everything else, this will be open to modders to change and improve, so I’m hoping that one day someone comes up with a usable font and set of UI widgets that blows everything else out of the water! Part of the problem is that fonts often have restrictive licensing considerations so it’s not quite as simple as deciding “that font looks good, lets use that one”, as well as generating a spritesheet for the font which is what LibGDX uses rather than rendering text directly from font files.

If you’d like to help out the early community with translation support into practically any language (I’m aiming to support languages with a large number of characters like Japanese, Chinese and Korean, but I will probably not be able to support right-to-left languages like Arabic) then please head on over to the discord server and the newly created #translations channel where I’ll be organising things in the not too distant future!

June 2019 Update – Alpha 2.2 Released


An ever-so-slightly late update this month (oh no it’s July already!), and we’re celebrating that Alpha 2.2 has been released. The main feature in this version is that you can now discover giant mushrooms (they’re rare, they prefer to hang out in the larger caverns that you can discover in the middle of the mountainous regions) and harvest them as an alternative to lumber/logs from trees.

For now this is mostly just an unusual colour alternative to the kinds of wood you’re used to, but in the future as the economy is added, giant mushrooms are very rare and much-prized by the dwarven community, so this will be a particularly valuable resource to export or craft with. Also, different materials will have different properties – perhaps giant mushrooms are softer/springier than normal wood and you might be able to find a use for this (a better material for a bow, perhaps?).

Alpha 2.2 also includes quite a number of small bug fixes and quality of life improvements. Bugs in systems-driven games like this tend to be darkly amusing and one that I quite liked is that previously, dwarves would jump up out of bed the moment they’re starving or critically dehydrated. A change in Alpha 2.1 allows dwarves to sleep at least for a while with a life-threatening unmet need like this. The unintended consequence of this was that dwarves could now die while asleep in bed which they wouldn’t do before. As this wasn’t noticed during development, it’s been possible for dwarves to die while in bed and quite literally stay in that bed forever, decaying away to a skeleton as each dwarf is responsible for getting itself out of bed (i.e. there’s no job to go and pull a dead body out of a bed). Instead of the grisly task of removing bodies from beds like that, dwarves now fall out of bed when they die as shown in this dev mode video:

The main changes in Alpha 2.2 are those behind the scenes – I’ve implemented the artifact-based mod loading and parsing as described in last month’s dev update. This massively speeds up the time to add and process new assets that make up the base mod, as well as being a future improvement for modders to make use of.

The other main improvement is that until now, when adding sprites to the game I would manually trim the PNG images down to eliminate unneccessary padding/whitespace from the edges and calculate how this would affect the offset of the sprite being rendered in-game. That was an extremely laborious, time-consuming process which I’m sorry to say I spent quite so long on sometimes. Now that I have a good understanding of that process, I’ve been able to write a simple automated tool which performs the same job, but taking milliseconds rather than minutes of manual effort! This will also form part of a suite of tools modders will be able to use to make it easier to add assets to the game.

The next milestone, Alpha 3, is the modding release. First I’ll be tidying up the existing data structures and mod files so there’s better (or at least some) consistency in the data files for modders to expect, as well as a general cleanup of unused or incomplete asset files and data. Part of this includes adding the Kickstarter-backer-specified natural resources to the game! I’ve only received about half of the possible responses to the email for that reward so please do get in touch if you haven’t already and you were a Kickstarter or Backerkit backer who had “Add a natural resource” as one of your rewards.

Otherwise, see you next month and thanks for reading this update!

May 2019 Update – How Modding Works


Welcome to the update! I had been hoping to show you giant mushrooms (which can be used as an alternate source of lumber) in this update, but it’s still not quite ready, though I don’t think it can be far away now.

A giant mushroom in the current mod tools – but how big is it?

Most of the work accomplished this month has been preparing the way for mod support, which is due to make up almost the entirety of Alpha 3. For this monthly dev update, I’m going to go into some detail on what mods in King under the Mountain actually are and how I expect them to work.

The Basics

One of the design goals of King under the Mountain is that it is data-driven, which is that most of the stuff in the game (i.e. items, terrain, jobs, professions, even some AI decision-making) are not “hard-coded” into the game engine but instead loaded in from data files. That could mean binary data like .wav sound effects, .png sprites for characters, items and furniture or, in most cases, a machine-readable text file which provides data to the game but is also easily understoo-editable by humans. In our case we use JSON as it’s a bit shorter and more readable then XML, although you lose the safety net of having a strict structure that you get with XML.

If you want to take a look in the /assets directory wherever King under the Mountain is installed, this is where all the game’s data files (except player-specific data like saved games) are stored and loaded when the game is launched. You’ll find a large selection of .json files containing all sorts of data for the game, music and sound effects, and perhaps most importantly, spritesheets in the “tilesets” directory. The largest and most important is diffuse-entities.png and here’s how it looks as of today:

There’s a few points of interest in this image. “Diffuse” refers to the fact there’s a matching normal-entities.png with the normal-mapped versions of the same set of sprites. You can think of the diffuse images as the colour version, and the normal is alternatively called bump-mapping to make the lighting system work. “Entities” is the term I’m using for things in the game, currently categorised into items, furniture, humanoids and plants (with animals likely to also be part of this list). You can see that some (mostly the different outfits currently in the game) are coloured, while the rest are in greyscale. This is because a lot of the entities are coloured in “on the fly” by the game engine, usually depending on which material they’re made out of – the different materials and which colours they are drawn as is specified in the JSON files.

2D games use spritesheets like this, which are all the images in a single image/texture, so that it can be loaded into the memory of the graphics card once and then accessed many, many times to draw different regions to different parts of the screen. Separately loading each sprite as a new texture, drawing it, unloading it from the graphics card and repeating the whole process would just be too slow in most cases.

The above hopefully explains what the assets used by King under the Mountain are. Most computer games ship with assets exactly like this, and a lot of the time they’re compressed and/or obfuscated, meaning they’re difficult to modify by the player. Usually this is to prevent cheating (particularly for multiplayer games where the integrity of the game’s files will be checked by an anti-cheat tool) or just to help protect the developer’s artwork and media from those who would copy and distribute it illegally. Still, that usually doesn’t deter some fans, who modified (or “modded”) game files to change how a game looks or plays, and its out of this that the modding scene was born.

Processing Assets

Most games now embrace modding and provide guides, tools and engine support for mods, and King under the Mountain will be no exception!

Armed with the above knowledge, you could go into the /assets directory and change things to modify the game, and this would indeed work. Modifying the spritesheets would be awkward  but possible, while the JSON files are relatively easy to manipulate. One or two members of the community have already done this in fact. To share their mods with others though, they need to keep and distribute the changes in the assets directory with others.

This works relatively well for when a single person has modded the game, but what if you wanted to add several mods to the game from different sources? You’d have to keep track of which files each mod changes, and attempt to put them all together without causing any conflicts – mods might want to change the same file, say one of the spritesheets, and at that point you’d have to pick one or the other to apply and lose some of the changes from the other, which might have poor or even disastrous results.

This is where mod support comes in. Alongside the /assets directory, there’s also a /mods directory in the game location. Currently this will only contain a single directory, “base”, which is effectively the source files for what gets processed into /assets. Looking in the “entities” directory, you’ll see JSON files defining what types of entities there are, several .png sprites for each of them, and asset descriptors (more JSON files) which describe how the entity sprites should be used.

The sprites for metal plates alongside their JSON descriptor

The different item types and other entity types are processed, and the image files are combined into the relevant spritesheet – coloured sprites into the diffuse spritesheet and the _NORMALS versions into the normals spritesheet. Similar processing happens for everything else in this base mod directory to produce the contents of the assets directory.

Example of the different file structures

The important point here is that the game’s data files, everything under /mods/base is treated as a mod itself. The upcoming work is to then allow for other mods to live alongside this which can be layered “on top” of the base mod to add new assets and behaviour, change existing assets or adjust settings and constant variables used by the game. This also solves the problem that would come from directly modifying the assets directory – multiple mods can be used at once and the mod system defines how they interact with each other – either additively providing more content or replacing the settings of previous mods.

Mod “Artifacts”

Until recently, every time a change was made to the game’s base mod – that is, whenever I’ve been adding more assets to the game – the entire /assets directory was deleted and re-created. It was a quick and dirty solution that was perfectly “good enough” throughout the early stages of development. Now that the entities spritesheet is getting quite large (see above) and complex, this has been taking more and more time, eventually becoming a bit of a drain on gamedev time, just waiting for the assets to be processed between minor changes.

The main progress this month has been designing and implementing a much better solution – mod “artifacts”. Simply put, an artifact is a single file or group of related files in the assets directory. Each set of entity type descriptors is one artifact, the entity spritesheets are another artifact, the terrain spritesheets yet another artifact and so on. Now, instead of deleting and recreating the entire assets directory, the mod processor checks for any changes in the “source” files (the files in the mods directory which feed in to each particular artifact) and only recreates the artifact if any changes are detected (by running a quick checksum on the contents of all the input files and checking them against what was last processed.

Diagram of single artifact processing

This also extends perfectly into layering mods on top of each other. As new mods are added to an installation of the game, a mod may only be made up of certain artifacts rather than all of them. The mod processor then knows it only needs to process these artifacts, massively speeding up the process of swapping mods in and out of the game. Here’s an example of how a mod which only changes the entity and terrain sprites would be applied:

Example of mod layering

 

And that’s how mods work in King under the Mountain! As I continue development of mod support, I’ll go into detail on how the mods will be packaged and distributed from modders to the larger playerbase. Of course there will also be much more in-depth guides and documentation covering how to add and change game assets. Most likely a wiki site will be launched soon. I’ll also be covering the current plans for code mods, in addition to data files as described above, which will allow for all-new in-game functionality.

If modding isn’t your thing, then don’t worry! There’s still a fairly big update coming as part of Alpha 2, wrapping up a lot of player-requested features and some new content additions. I’d hoped to have this released in May but as always, it’s been a very busy month! Finally, if you’re interested in modding the game or just want to get involved with the community, the best thing to do would be to join the Discord server. See you next month!

 

April 2019 Update


Alpha 2 is upon us! The main feature is that the placeholder production of metal (which was simply and easily turning raw ore into metal ingots) has been replaced by a more in-depth production chain. Raw, mined metallic ore needs crushing down to remove the useless stone and get to the usable ore. This is then smelted at a bloomery furnace into a “bloom”, following how iron was historically produced before modern mass-production. The bloom is then hammered by a smith into usable metal, which can be worked into its final form. This update also introduces fuel in the form of coke (refined from coal) and charcoal (produced at a charcoal clamp using wooden logs).

Alpha 2 also includes the most-requested feature by players – a screen to view and manage all of your dwarves! This was teased in last month’s update but it has now been released, head on over to rocketjumptechnology.itch.io/king-under-the-mountain to download Alpha 2 if you already have a copy of the game, or purchase it if not! It’s still early days for the user interface (I’m treating the whole thing as a placeholder) but this work solved some of the problems of dealing with the UI (most importantly a way to draw entities like the settlers as interface components) so expect more to follow – perhaps most importantly a screen to manually organise crafting and production so that the player has direct control of what is being created!

Following the “add a natural resource” reward emails which were sent out previously (please do get back to me if you’ve received one and not responded yet, or if you think you should receive one and don’t remember seeing anything), more recently emails have been sent out for the “Add an animal species” and “Design a farmable crop” rewards. In the end there were only 8 of the former and 4 of the latter, with two super-backers covering both! Unlike the “add a natural resource” these will all require custom artwork to be created so I look forward to sharing these in the future.

As it had been so long since the Alpha 1 release, Alpha 2 was actually released early while there was still more content intended for part of this release milestone. First of all, metal plates are to be added as a new intermediate product so that constructing furniture out of metal is a bit more sensible – rather than hammering a few metal ingots together to form an elaborate construction, instead plates will be forged by a blacksmith which are then put together along with other mechanisms to produce some of the machines used by the dwarves (such as the ore crushing station). Expect this to feature more heavily when brewing is added due to the number of metal tanks needed as part of the brewing production chain.

Also on the topic of working with metal – dwarves in King under the Mountain are the only race to know the secrets of producing steel, superior in strength and quality to iron which will be important when different materials have different in-game effects, particularly in combat! Central to this is the crucible furnace, which will be the largest piece of furniture in the game so far, used to convert iron to steel in sizeable quantities.

Long-rumoured to the world of King under the Mountain are giant mushrooms – mushrooms so large, tall and tough that they can be used as an equivalent to trees! A later update will see a visual rework of the game’s funghi, but I wanted to have using-giant-mushrooms-as-trees in one of the earlier updates.

With those features added the next major milestone (Alpha 3) will be all about mod support. Modding is an absolutely central pillar to the design of the game and I can’t want to see what people are able to come up with once the ability to mod the game is thrown wide open. It’s these early days of modding which will shape exactly how mods work and what they look like, so if this is something you’re interested in, please get involved (ideally via the Discord server) and help me to add what it is you want to be able to support mods.

March 2019 Update – (Not) Reading from a script


It’s not released quite yet, but here’s a sneak peek at the much-requested Settler Management screen/feature coming in Alpha 2 of King under the Mountain:

Alpha 2 is on the horizon now, potentially including a resource management screen as well as this settler management one. It’s taken a lot longer than I’d have liked to be able to go from Alpha 1 to 2 but there’s some good news there – I’ve secured several days in April for development of King under the Mountain and I’m sure we’ll see a big jump in progress, and with a pinch of luck, some form of Alpha 2 being released in April.

I forgot to mention that last month saw the start of gathering information for Kickstarter rewards (other than copies of the game), specifically emailing those backers who had one or more natural resources to add to the game. If you think you should have a “pick a natural resource” Kickstarter (or BackerKit pre-order) reward, you should have received an email asking you for the details of this. Try searching for the subject “Claim your pick a resource reward for King under the Mountain” in your inbox or spam folder. It’s now over a month since these were sent out but only 47 resources out of a total 169 have been received so far, so please get in touch with me at ross@kingunderthemounta.in if you think you should have this and can’t find it.

After Alpha 2 is released, the big focus for Alpha 3 will be to enable modding in King under the Mountain. Since the early days of the project, making as much of the game data-driven has been a key goal. This means that things like items, plants, resources and so on are all defined in (JSON format) data files that are loaded and used by the game. The majority of these reference .PNG image files which are also loaded and used to make up what you see when you play the game, or .wav or .ogg audio files for sound effects. Most games combine these “assets” into compressed or obfuscated packages to make the download size of the game smaller but also so they can’t be easily modified by users. Instead, King under the Mountain plainly exposes its assets (take a look in /mods/base in the game directory if you’re curious) so modders can see how things work to add their own.

This works for adding new things to the game with different values and assets, but doesn’t cover adding new functionality to the game, which require the game code to be modified in some way. This month I spent some time investigating this. Initially I was planning to add some kind of scripting engine using a language like Python or Javascript, which would open up the game to small scripts of code to be run. I was worried about the performance of this (although there’s quite good options for running snippets of these languages in Java) but also how it would expose the classes and functions used in the core engine for these scripts to make use of. In the end I settled on a different approach, very similar to the one used by Rimworld, where small libraries of additional Java code (the language the game is written in) can be loaded and used by the main game. The main benefit of this is that modders will be able to write code mods that make use of the entire codebase of King under the Mountain, albeit in a controlled manner where certain new classes can be added, rather than just letting a mod change any code within the game.

The way the AI works is heavily inspired by this post by the Starmancer devs, where I have a system of Goals made up of Actions. The Goals are JSON files (look in /mods/base/ai/goals) which are made up of a set of selectors to determine when a settler chooses to select the goal to complete, and a set of Actions which are Java classes used to fulfil a certain, well, action, with a success or failure state. Until now it would only have been possible to add mods implementing new Goals using only the existing Actions. As a test case I had the game load in a new Action from a mod and use this instead, which proved modders will be able to add their own AI steps to the game as well as overall goals. The same can be implemented for basically anything that has a range of different implementations rather than just data values, such as different job types and their effect on the world, and hopefully going as far as new UI screens and views possible in mods. I’m really excited to see what people will be able to come up with in mods and I’ll have a lot more to say on this (and guides!) in the near future. I’m sure it’ll be an evolving process as some things that I’ve not really considered might not be possible to mod yet, but I’d be able to open it up as the modding community makes requests.

So it’s another relatively short update for the month. Again, I’m very sorry at the lack of tangible progress since Alpha 1 was released but I’m fully committed to breaking through that wall and getting the next major build to you guys soon. If you’re already playing the game and haven’t joined already, we have a friendly discord server at discord.gg/M57GrFp and if you’re just discovering this game for the first time now, you should head on over to rocketjumptechnology.itch.io/king-under-the-mountain and grab a copy of the game while its still in earliest access! Itch purchases will include a Steam key when the game is ready to move on to Steam.

February 2019 Update – The road goes ever onwards


February was a quieter month after the hectic buildup (and aftermath) of the Alpha 1 launch. The main part of development was fixing bugs that became apparent with the much bigger playerbase (nearly all fixed now) and re-organising the roadmap based on player feedback. By far the most common piece of feedback is that players are desperately missing a way to keep track of all their dwarves through some kind of management screen so that has been bumped up the priority list to the top!

Until yesterday, the amount of exposure generated by the alpha launch was very disappointing. Very few gaming new sites picked up the story (thanks GamingOnLinux!) and most (but not all) youtubers who covered the game previously haven’t picked it up again with the alpha release – I assume because there isn’t a huge amount of extra content compared to the pre-alpha builds. The revenue brought in by the launch is very little (averaging around 1 sale per day) which should be expected really, especially without any major sites mentioning the game yet. Oh and many more of those sales than I would have expected include a tip, so thank you very much! Things are looking up a little with an article yesterday on Rock, Paper, Shotgun which I think it a tough but fair preview based on how early in development the game still is.

All in all, it’s not the boost to development finances I had hoped for. Still, the way I’m developing the game is prepared for that. The Kickstarter funding allowed me to fully focus on development as well as commission new artwork and sound effects for a few months to get the game to Alpha 1, but that has all been used up now. This month I’ve had to go back to software development contracting full time which does not leave anywhere near as much time for gamedev unfortunately. This is not a permanent situation though, I’ll need to continue this way for a short while as I stretched the budget beyond breaking and need to build up more funds. After that I’m planning to split my time into a healthy balance between gamedev and contract work, which should give some good results.

This does not in any way mean development is stopping, I’m fully committed to bringing this game through to completion. I thought I’d explain why things have been a bit slower this month and how I’m tackling it, as I’ve always been open and honest about the development process. Making indie games is a super tough business, and only the top 1% of titles break out into being a profitable success. I plan to get there eventually, I think where the game is now is still a bit early to find that breakthrough to a bigger audience, so I’ll just keep striving forwards until it gets there!

January 2019 Update – Alpha One launch!


Potentially even bigger news that the Kickstarter launch – King under the Mountain has just launched Alpha 1 as early access on Itch.io!

The game is still extremely early in development (be sure to check out the roadmap), so the game is only going to be on Itch.io at this stage. Later on it will transition to Steam, so don’t worry, any Itch purchases will also include a Steam key when this happens. The same also applies to any Kickstarter pledges or BackerKit preorders.

If you backed the Kickstarter or otherwise pre-ordered the game through BackerKit, you should have received an email directing you to BackerKit to claim your Itch.io game key. If you’ve not received that, head to kingunderthemountain.backerkit.com and you can retrieve your BackerKit pledge manager which should now include this key. If you’re having any issues with this, please email me at ross@kingunderthemounta.in from your Kickstarter/BackerKit email address, and I’ll sort it out.

There will probably be a lot of updates to the game, mostly bug fixes to begin with and new features later. If you use the Itch.io launcher it will automatically keep the game up to date, but I realise having yet another launcher is a big ask these days, so the game will also notify you on the main menu if a new build is available. It’s always worth updating to the latest version as there will probably be a large number of bugs fixed now that a lot of people are playing the game and finding them! If you do find any bugs (or are not sure), jump into the Discord server where I’ll be available most days to talk through any problems.

The last month saw a flurry of activity to finish off the remaining features for Alpha 1. One important feature is that caves within the mountain will now often include harvestable mushrooms, which can kick off an underground mushroom farm to replace your above-ground crops.

Also finally, finally, you can now build bridges to be able to cross the river. No longer will it be an impassable obstacle to your expansion!

Perhaps most importantly for rounding off the gameplay experience to turn this from a pre-alpha prototype to the first real version of the game, is that your settlers will now die – or worse, go crazy – from not fulfilling their needs for food, drink and sleep. If you are unfortunate enough to lose some settlers, they’ll need burying quickly to avoid the rest of your settlement from getting very upset at being near a corpse! Right now the main challenge is surviving year to year – if you do survive to the next spring you’ll get a bunch of optimistically-happy immigrants to boost, or rather replace, your population.

There’s also a lot of small tweaks and improvements as well as bug fixes over just the last couple of days. The game now includes a changelog.txt if you want to browse through these, though it’s not particularly exciting yet. Look out for fun dwarf-y bug descriptions in the future!

So what’s next? In the short term I’ll be keeping a close watch on the automatic crash reporter to fix any crashes experienced. There’s still one or two outstanding bugs that I’m aware of and working on ironing out, but for the most part the game seems very stable right now. Looking ahead a little, this version does not include translations other than English, and I’ll be working on something to bring extra language support that can also be contributed by the community, rather than just translating to “the big 8” languages. A couple of features, namely producing and using fuel from coal and charcoal, the proper smelting workflow and producing beer has to be pushed out of Alpha 1 so they are at the top of the features roadmap. With all of those in place, there’ll be a big push to open up mod support to the community. If you’re an aspiring or experienced modder, I’d love to hear from you in the modding channel of the Discord.

As ever, thank you so much to all of you who have already joined me on this journey as I bring King under the Mountain from idea to execution. This is a really major milestone to have been hit, and now you should see a steady progression of updates and features, available to everyone from this point onward. See you next month!