Stonehearth

From Stonehearth Wiki
Jump to: navigation, search
NOTE: The text on this page was initially taken from stonehearth.net/stonehearth/ but readers should bear in mind that the current version has been edited and updated by members of the community, not the developers themselves.
Stonehearth.jpg

Stonehearth is a game about building and conquest in an epic, fantasy setting. The game is equal parts sandbox, RTS, and RPG.

It is made and published by Radiant Entertainment.

In Stonehearth you lead a band of settlers who must carve out their place in the world by gathering resources and building fortifications, while under constant threat from intruders. As your settlement grows, you will eventually train up a standing army then venture forth into the world, where greater challenges await.

Stonehearth’s simulation and city-building aspects are inspired by the great Dwarf Fortress and Minecraft. We are also inspired by the games we loved as kids: the Warcraft RTS games, Final Fantasy Tactics, and pen and paper RPGs.

Put it all together and you end up with something like this:

  • Randomly generated, destructible worlds built with voxels
  • Creative building on both large and small scales, from cities to teacups
  • Scripted RPG-style content to discover and adventure through
  • Robust class trees for both combat and civilian units
  • RTS-style combat with an emphasis on tactics over micro management

Our Take on this Genre[edit | edit source]

So, why are we making this game?

With Stonehearth, we want to capture the magical feeling we had as kids playing Dungeons and Dragons adventuring through store-bought game modules, but also writing our own modules and playing them out on graph paper. We want to empower players to be creative not only when playing the game, but when determining the nature and content of the game itself. We aim to deliver:

  • A living world that responds to your play-style
  • Deep gameplay systems that reward tinkering
  • A super mod-friendly game

A Living World that Responds to Your Play-style[edit | edit source]

We know that there are lots of different play-styles for this kind of game. Some players want to focus on building an incredibly awesome city with happy, well-fed citizens. Others focus on building a strong army and exploring/conquering the realm. Many just want to tinker with the simulations in the game world. We want you to play the game the way you want to, so as you play the world will respond to your choices.

Each initial game world is randomly generated, but an AI “dungeon master” observes your behavior and tweaks the content based on your actions. This is always done in a way that is natural and makes sense from a story perspective. For instance, a player who is more aggressive when dealing with local, small-time goblin raiders may find his actions have triggered a long-term war against the goblin nation. Violence begets violence.

So two players with different play-styles, beginning with the exact same starting world, will have very different experiences as the game progresses. We like this for a couple of reasons.

  • Actions have consequences! Are you sure you want to rob that friendly caravan that just visited your town? There may be repercussions down the road.
  • Play the game how you like! The game adapts to feed you the kind of content that you like. There are limits here, of course. Don’t expect to neglect basic defenses just because combat isn’t your favorite thing in the world, nor should blood-hungry players neglect a basic economy and shelter for their citizens.

Deep Gameplay that Rewards Tinkering[edit | edit source]

We’re engineers at heart, so we geek out at complex systems. We design our major gameplay systems like farming, building, and combat according to the “easy to learn, difficult to master” principle.

Take farming as an example. The yield of a particular farm is determined by factors including the quality of the soil, the amount of water nearby, the crop planted, and exposure to varmints looking to devour the crops. If you are really into this kind of stuff, congratulations! There is ample opportunity to greatly optimize the output of your farms through irrigation, fertilization, and varmint-countermeasures like traps and fences.

But if you’re not into this stuff, you can just drag out a farm and accept the base, minimal yield that all farms produce, regardless of how they are managed. Of course this will constrain your food supply and you will have to make up the difference somehow, either by producing food through another means (trapping, trading, or plundering), or just settling for a smaller number of citizens in your town.

Technology[edit | edit source]

Stonehearth is written in C++ and Lua. C++ is used to make the game run better. Lua is used for scripts to edit game properties.

Mod-Friendly. Sharing is Caring[edit | edit source]

We think mods are awesome, especially for sandbox-type games. So we’re building everything: UI, unit AI, scripted scenarios (everything!) with modding in mind. Here are just some of the things you should be able to do in a mod:

  • Reskin the UI or add new UI screens
  • Add new units, monsters, weapons, armor, and other objects
  • Add new scripted adventures, big and small
  • Tweak or totally rewrite the AI for monsters or units
  • Add new textures and graphics to the game
  • Make the sun rise in the west and set in the east (seriously!)

Of course most of the fun in mods is sharing them. Our goal is to have a vibrant community of modders who are continually expanding the things to do and experience in the game.

Mod APIs[edit | edit source]

As a modder, you will have access to the same APIs we’re using to write the game. We are literally writing the game as a collection of first-party mods. So, with very few exceptions, if the game does it, you can mod it!



Game Play[edit | edit source]

Controls[edit | edit source]

The main user interface as of Alpha 21. Also pictured: Debug Tools, top right-hand corner

These keyboard shortcuts are for Stonehearth Alpha 21 and may change in future updates.

With the Latest Update to Alpha 21, users can now rebind their hotkeys! Instructions and example are located at the bottom of this page. NOTE: Currently there is NO User Interface to do this. The UI is coming soon.

Menu Controls[edit | edit source]

Command Function Description
C Shortcut Menu > Manage Citizen
I Shortcut Menu > Town Info
H Shortcut Menu > Harvest > Gather
M Shortcut Menu > Harvest > Mine Tunnel
N Shortcut Menu > Harvest > Mine Block
Z Shortcut Menu > Designate Zones
O Shortcut Menu > Designate Zones > Stockpile
F Shortcut Menu > Designate Zones > Farm
T Shortcut Menu > Designate Zones > Trapping Ground
shift+P Shortcut Menu > Designate Zones > Animal Pasture
B Shortcut Menu > Build & Design > Place Building
shift+B Shortcut Menu > Build & Design > Design Custom Building
P Shortcut Menu > Build & Design > Place Item
L Shortcut Menu > Build & Design > Construct Ladder
R Shortcut Menu > Fight & Defend > Town Defense Mode
7 Shortcut Menu > Fight & Defend > Combat Party 1
8 Shortcut Menu > Fight & Defend > Combat Party 2
9 Shortcut Menu > Fight & Defend > Combat Party 3
0 Shortcut Menu > Fight & Defend > Combat Party 4
shift+L Shortcut Menu > Harvest > Loot
\ Shortcut Toggle Slice Mode
[ Shortcut Move Slice Mode down
] Shortcut Move Slice Mode up
V Shortcut Toggle Building Vision Mode
X Shortcut Toggle X-Ray Mode
ESC Shortcut Game Menu
Shift+1 Shortcut Bulletin Manager
Alt+z Shortcut Toggles UI on/off

Info Dock Controls[edit | edit source]

These are contextual hotkeys. They activate a button on the Info Dock only if that button exists at the time. The number pressed is the same as the ordering of the buttons from left to right.

Command Function Description
shift+1 Shortcut First Button
shift+2 Shortcut Second Button
shift+3 Shortcut Third Button

Speed Controls[edit | edit source]

Command Function Description
1 Shortcut Speed: Pause
2 Shortcut Speed: Play
3 Shortcut Speed: Fast Forward
4 Shortcut Speed: Super Fast Forward

WARNING: Before you can use Super Speed, you must enable it in your settings, under the gameplay tab. This may or may not majorly impact your game's performance.

Camera Controls[edit | edit source]

Command Function Description
W/A/S/D or Arrow Keys Shortcut Camera Move UP/LEFT/DOWN/RIGHT
Space + Mouse Drag Shortcut Camera Drag
- or Mouse Scroll DOWN Shortcut Camera Zoom OUT
= or Mouse Scroll UP Shortcut Camera Zoom IN
Mouse Right-Click + Mouse Drag Shortcut Camera Rotate
Q or Shift+Left Shortcut Camera Rotate LEFT
E or Shift+Right Shortcut Camera Rotate RIGHT
Shift+S Shortcut Camera Rotate Down
Shift+W Shortcut Camera Rotate Up
J Shortcut Follow Hearthling

Item Controls[edit | edit source]

Command Function Description
, Shortcut Item Rotate LEFT
. Shortcut Item Rotate RIGHT

Debug Controls[edit | edit source]

Command Function Description
Left CTRL Debug Overlays Graphics Statistics
Right CTRL Debug Show Wireframe View
F1 Debug Shows Terrain Chunks
F5 Debug Reload the UI
shift + F5 Debug Quick Save followed by Quick Load (resets the AI)
F6 Debug Quick Save
F7 Debug Quick Load
F9 Debug Shows Path Finding Engine
F10 Debug Rendering memory usage
F11 Debug Shows Interference/Collision

To enable Debug controls, edit the file user_settings.json in the main stonehearth program folder to include the following:

  • "enable_debug_keys" : true
  • ensure you put a comma after each entry except for last one

Rebinding Keys[edit | edit source]

Step 1: Navigate to C:\Program Files (x86)\Steam\steamapps\common\Stonehearth, (Or wherever StoneHearth is located on your computer) and open up "User_settings.json", and "stonehearth.json". Using what is in stonehearth.json as a reference, add a section to user-settings called "user_bindings", and add what shortcuts you wish to change. Then, simply change "combo1". Viola! You've re-binded your keys.

Example code in stonehearth.json

"bindings": {
      "citizen:manager": {
         "combo1": "c", 
         "combo2": ""
      }, 
      "vision:xray:toggle": {
         "combo1": "x", 
         "combo2": ""
      }, 
      "vision:slice:toggle": {
         "combo1": "\\", 
         "combo2": ""
      }, 
      "town:overview": {
         "combo1": "i", 
         "combo2": ""
      },
(more keybindings)
...

Example code in User_settings.json

{
	"user_id" : "cfb2e056-0a85-11e7-a3a9-f8cab8643ca9",
	"user_bindings" : {
      		"citizen:manager": {
        		 "combo1": "c", 
        		 "combo2": ""
      		}, 
      		"vision:xray:toggle": {
        		 "combo1": "x", 
        		 "combo2": ""
      		}, 
      		"vision:slice:toggle": {
         		"combo1": "\\", 
         		"combo2": ""
      		}, 
      		"town:overview": {
         		"combo1": "i", 
         		"combo2": ""
      		}
	},
	"enable_auto_save" : false,
(more user settings)
...