May 27th – Glowing Staff Fun

May 27, 2014 in Dev Blog, News

Hi everyone, hope you had a wonderful weekend.

Today, I worked on a bunch of little things. First, is I fixed a few issues brought up by you guys in the code I posted yesterday. Special thanks to Forum user Andrey_P_P.

Next, I fixed a crash bug regression dealing with us removing the unused twitch code. I also fixed a long standing bug dealing with bow animations being invisible to everyone else.

Finally, I got the animation for staff charging working. There’s a webm video below, because the gif version is unaccountably around 4.8MB.

May 23: Progress Report

May 23, 2014 in Dev Blog, News

Today I took a little break from ground monsters to work on everyone’s favorite part of the game: birds! First, I replaced the current “swoop” attack with “dive bomb,” which is more effective in hitting players and also brings the monster within range of melee attacks. I tweaked the state behavior such that they tend to switch between dive bombing and ranged attacks so that even with the current, limited selection of attacks, combat feels much more dynamic and interesting. Next, I dug into their out-of-combat behavior. I re-enabled and improved several of their unused behavior states so that they will fly up, glide down, wander in different directions and even land on the ground to rest. There’s plenty of work left to do on these monsters, but they feel more lively now, and fighting them is actually fun!

Other than that, I’ve been continuing to improve ground monster behavior, fixing bugs, learning the game’s inner workings, and planning new additions to the Lua API. I’ll post more about my progress with ground monsters next week, so stay tuned and have a great weekend!

May 22 – Omni update

May 22, 2014 in Dev Blog, News

Today I mostly cleaned up some bugs and fixed some technical debt ahead of my next short project.  Kyren and I have been cleaning up the Item interfaces and streamlining and defining a better, smaller internal API to deal with Items.  Today, I removed explicit functions for fuel and removed the critical item flag (which was kind of a hack and we’ve solved the problem of losing your pickaxe).  I moved direct access to all parameters into protected.  And then I move instanceValue (which checks parameter and then config for a key) to public from protected.  I also exposed instanceValue to Lua and unexposed parameter.

There’s still some mess in Item, like a list of augments and such which should be parameter values.  But I think I’ll leave that to my next rampage through this area.

The second half of my day was mainly spent on a negative money bug that metadept brought to my attention regarding money underflow.  After examining the code I realized that the money could easily overflow as well.  So I spent most of the rest of the day creating a completely bullet proof no overflow signed/unsigned integer multiplication method, which surprisingly wasn’t something that was already in the language or documented somewhere.  I’ve copied it here for posterity.

template <typename Int>
typename std::enable_if<std::is_integral<Int>::value, Int>::type noOverflowMult(Int a, Int b) {
  if (!a || !b)
    return 0;

  if (b == std::numeric_limits<Int>::min()) {
    if (a > 0) {
      return b;
    } else {
      return std::numeric_limits<Int>::max();

  if (a == std::numeric_limits<Int>::min()) {
    if (b > 0) {
      return a;
    } else {
      return std::numeric_limits<Int>::max();

  Int maxInt;
  if ((a < 0) != (b < 0)) {
    maxInt = std::numeric_limits<Int>::min();
  } else {
    maxInt = std::numeric_limits<Int>::max();

  if (abs(maxInt / a) < abs(b))
    return maxInt;

  return a*b;

Which has been tested as working against every possible pair of uint16_t and int16_t.

I also put in a “normal” maxMoney limit, and set it to 9,999,999 pixels, this is super subject to change of course, considering I just pressed 9 for a while.

I also removed our custom range function that actually had broken behavior (on every number of the form -n + .5 it rounded the wrong direction).  It was there because MSVC didn’t have it at the time, but again, we’re probably not going to target that platform.

I also created the beginnings of a math test suite to make sure our custom math functions work properly.

May 21, things happened

May 21, 2014 in Dev Blog, News

Today for me was mostly finalizing the new monster spawning logic, which is a huge departure from the previous way monsters were spawned.  Now, monsters are spawned as part of “spawning profiles” which describe what monsters should be spawned in what conditions, and also in what density.  The spawning profiles are then connected to biomes, and each biome can actively have a different spawning profile.  This enables more interesting divergence of biome environments, because specific biomes (and detached sub-biomes, layers, etc) can have not only different monster types but also different numbers of monster types and densities and parameters, which was very difficult to achieve with the old system.

This is part of the effort to make biomes more unique, and to make it easier to have, as an example, a field full of bunnies appear in the middle of a forest.  There will also be added weighting and just generally more configurable monster spawning to increase variety and make exploring more interesting.  The previous system simply spawned X number of “things” around each player, regardless, and then what thing was being spawned was based on where the “thing” happened to fall, which is not too flexible.

The algorithm to spawn monsters around each player in a specific density per spawning profile is somewhat tricky, so it’s taken me a bit to work out how exactly it should work.

Other things today included helping omni with some item issues that needed sorting out and untangling a couple of messy bits of code, and also spending about 2 hours talking with the people setting up fiber in our office, getting information from them, and configuring our new internal network.

GeorgeV Super News: 21st of May!

May 21, 2014 in Dev Blog, News

Hello. It’s GeorgeV again.

Today I fleshed out and got the new A.I. UI ready for testing. As always it’s tentative and temporary in every way. We even took some suggestions from the forums on what we might call it.  :)


Keeping it short. See you again soon!

GeorgeV News: 20th of May! London Office!

May 20, 2014 in Dev Blog, News

Hello again! So soon?!

Today I did stuff.  Among this stuff was the mockup for the “Ship Computer A.I.” user interface. The blank space to the left is where a portrait of the A.I. would be and like all mocks everything in it is temporary.


May 20th: Making the ships work.

May 20, 2014 in Dev Blog, News

It’s been a turbulent period, but I’m settled into the office and its good to be getting back into the swing of things. Since progression is the big focus right now, I’m helping to get the last of our ships into the game and actually functioning, specifically the Florans. It’s a relatively simple task, but it involves a lot of testing and back and forth to ensure things are all lined up correctly. While in game you’ll just see this:


Behind the scenes, the structure is defined liked this:

Floran Ship Block Map

It operates in a fashion similar to our dungeon system. It can be pretty tricky, trying to line up the graphic perfectly with numeral increments. It’s also important to make sure there’s no stray collisions out of place. There’s still a few more to go, but we’re almost there.

See you next time!

May 19th 2014: What we did today.

May 19, 2014 in Dev Blog, News

Hello! GeorgeV here posting from the new office.  All the movers are moved and we’re pretty settled.

One of the things we discussed today was adding an AI “character” in each ship which would act as a new way to receive certain items, upgrade your ship, give you quests and help you out in general.  There was also talk about giving it a bit of personality, potentially making it based on race and having it upgrade along with the ship.

Obviously this idea is in the early stages.  I’ve only just started planning out the UI.  In fact, here’s a really quick sketch we made on our wall in order to make sure everyone was on the same page:

Yes it is very rough but that’s how everything starts out ;) .

All of this is tentative and is being shared to give you an idea of what we’ve done today. We’ll try to keep you up to speed!


My progress for May 19th

May 19, 2014 in Dev Blog, News

Hi there,

Tiy asked me to write up a short thing about the stuff I worked on today.  Hope you find it a bit interesting.

Today was a bit unusual.  I mostly spent the day removing libraries.  I removed all dependencies on PostGreSQL and OpenSSL.  We no longer link against or call this code.  (Yay!)

Next, I needed to reimplement some stuff to make the code work afterwards.  As a side effect we now have a new class for reading entropy from the OS, which we previously had not done.  We’re using /dev/urandom for OSX and Unix and CryptGenRandom for Windows.

Finally, as part of internal tests, I forced walking while facing the wrong direction.  We might change the penalty into a -.2 movement modifier instead, we’re kinda playing it by ear right now.  But as part of the combat changes we think it might make sense.

Witchmarsh + Progress Report!

May 16, 2014 in Dev Blog, Featured, News

Hey guys!

We’ve finally got Kyren, Armagon, George and myself moved over to the London office. :D OmnipotentEntity is visiting, too! We keep trying to convince him to stay.

I know there’s been lots of concern over progress lately, but now that most of us are in the same space and settling into a steady 9-5 work week, we’re really excited and motivated to focus on more frequent and substantial updates. Kind of amazing how much more can be accomplished by shouting at each other across a room than just pinging someone in IRC. :P

More on that next week, though!



We’re excited to announce that we’re publishing Witchmarsh– a 2D co-op platformer set in 1920s Massachusetts!

Currently in development by Inglenook, Witchmarsh is a gorgeous game that we’ve personally been looking forward to for awhile now. In Witchmarsh, you join a team of detectives in rural 1920s America as they embark on a mission to find and return the missing ‘Witchmarsh twelve’, who vanished under mysterious circumstances. Featuring 2-4 player online co-op as well as a single player mode, Witchmarsh also has an extensive character creation system that allows players to mix and match a large set of attributes, perks, items and weapons.

And tonight they’re launching their Kickstarter campaign!


Witchmarsh is tentatively set to be released in December 2015. We think it’ll appeal to lots of you, so check it out!

@InglenookGames on Twitter

Witchmarsh on Tumblr