Advertisement Jump to content
Sign in to follow this  

Inhabitation | Development Thread

This topic is 2413 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts


Development Blog
^Clicking this and following makes me happy^

Little bit about me and the Project

This is a one man project, being coded from scratch in C# XNA. Everything is done by me, so production can get a little slow at times.

What's this all about then?

Inhabitation is a sandbox mine/crafting game (ahem) with RPG elements, and town management features. The game focuses not just on your own survival, but on helping a village grow from being a tiny settlement to a bustling town. The game is a 2D sidescroller which brings in elements of crafting, building, mining and generally exploring a world and doing what you want. My aim here is to take what I love out of sandbox games, and roll it all up with RPG questing and the sort of exploration where you really don’t know what’s under the next block.

Early Game Breakdown

Firstly, the player generates their world. This world is created using a series of defined parameters, depending on how the player wants to play. World size, biomes, rarity of certain resources, starting NPCs. All under the control of the player. Of course, entirely random is in there too.

Now the player will spawn in this world, at the heart of a tiny settlement. This settlement offers a few NPCs, each with a job or quest for the player. Your choice, help the villagers out and they will reward you. Or wander off and build a castle on a cliff.

Villagers will offer you rewards for your actions depending on what they need you to do. Collecting resources, crafting something important, or hunting a certain mob will all get you something in return for your ‘gracious nature’.

Of course, in a terrain that’s as varied and dangerous as this, you’ll need tools and weapons. Pickaxes and swords are on offer, as you will be venturing deep underground into sprawling caverns filled with the kind of things that have a tendency to go bump in the night. Oh, and treasure. Which the NPC’s probably want as much as you.

So as well as developing your own little house, you have a kingdom at your disposal. The more you do for your village, the more it grows, and the more it can offer you in return. We’re talking factories that craft things way above the level you can achieve with a couple of sticks and some coal (a cookie goes to who can guess what that makes).

And this world you’re in will evolve around you, day and night, season to season, with different events occurring all the time. Different NPCs, different mobs, different ‘rewards’.

The world outside is a very interesting place… don’t get lost out there. And for God’s sake, pack torches.

Some Features

  • Randomly generated side scrolling terrain with multiple different biomes and cave systems.
  • A Real time lighting engine which takes into account your own light source and other light sources around the world.
  • A retro look and feel both through custom pixel art and sound effects
  • Crafting and item collection – easy to manage drag and drop crafting combinations from right inside your inventory.
  • Weapon and tool system – your character has two hands, which means he can hold more than one item at once. Left and right click correspond to your two equipped items, but careful of your choices. You don’t want to be trying to mine your way out of flooded tunnel trying to beat mobs with a torch any more than you want to be left able to fight but to drown in the dark.
  • NPC questing and trading – NPCs offer jobs for the player which reward them with new materials, items, and XP.
  • Levelling system – the more you do, the more you level. You’ll receive XP for mining new materials, killing mobs, and questing. The higher your level, the deeper you can venture and the better stuff you can use. Don’t dig too greedily or too deeply.
  • Building – this is self-explanatory. All blocks you collect can be placed back down wherever you want them. Just don’t expect your village to be pleased if you build their houses out of grass.
  • Multiplayer? – this is a big ‘what if’. I’d love to do multiplayer, but this would be a way into development. I’d have to look more into this, but it’s something I’d love to do.

    Early Screenshots





    And I leave you with duel wielding pickaxes

    Edited by Luthur

Share this post

Link to post
Share on other sites
although this game seems to be me as a clone to another (i can't remember the name now), i can't deny that it has awesome retro looking style. good job, Luthur, and keep up the good work!

Share this post

Link to post
Share on other sites
The game you're thinking of is Terraria. It's a game that I loved but the developers stopped updating, so I decided to put all of the stuff I'd have loved to see in Terraria into my own game, and build my ow project around that. So as a rough concept it may appear to be a clone, but I'll hopefully expand features above that. Nonetheless, thanks.

Share this post

Link to post
Share on other sites
Over the last few days I've been working on the terrain generation, focusing on biomes, cave systems, and all that, and generally trying to make the world interesting to play in. I'm fairly happy with the first biome now, which I've imaginatively dubbed 'slightly mountainous'. The game basically generates from left to right, choosing it's biomes randomly in chunks until it reaches to end of the map. The maps themselves are generated based on parameters entered by the player when creating a new world. Here's a zoomed out example of one chunk in the landscape (dark brown is caves):


As the whole world is made up of loads of different blocks each with unique parameters, I’ve built a system that makes it easy to both add new blocks, and to make the amount of time spent defining block behaviour as minimal as possible. Basically, I have an array of a ‘Block’ structure which is defined by a unique ID for each block. Then the world is built up as a 2d array of numbers, which each correspond to a block ID. When drawing the world or updating a block, a check is called back to the block’s ID from it’s Global structure. That way a load of lag is reduced as the world is just an array of numbers and not an array of structures. Everyone’s happy.

For a load more info on this, and some more screenshots, check the blog: Inhabitation Development Blog

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!