Afternoon, all! It’s been a little while since we did a good general news round-up. Let’s fix that!

starbound_banner1

Our blog is chock full of the latest in Starbound developments– we post there nearly every week day, but here’s a quick run-down in case you haven’t been keeping up! We launched some pretty big stable updates in late January and April, with several stability patches in between. There have been far too many changes and additions to go into much detail in this little space, so check the patch notes!

w_adventures_banner

Wanderlust Adventures launched their Steam page in late March, and more recently they’ve entered closed betaLeth regularly streams the game’s development as well, and there are a number of streamers that have been playing the game as well!

taw_banner

Robit Studios is now Robit Games, LLC and has a very snazzy new logo to boot! They’ve also released an updated demo of Treasure Adventure World to the public which should better reflect the current state of the game. TAW is shaping up to be super fun and absolutely gorgeous, so go check out the new demo pronto!

stardew_banner

ConcernedApe has been systematically going through absolutely everything to ensure that it’s release-ready– exciting news! He’s also implemented new wood-panel dialogue boxes that fit in quite well with the rural charm of the game and have the added bonus of fixing a bunch of issues he’d been having with the old dialogue boxes. ConcernedApe is a busy guy, but he posts development updates on the Stardew Valley blog every month or so. Definitely check it out if you’re interested in keeping up with the game’s development!

ror_banner

The guys over at Hopoo Games released a patch that includes Steam Cloud saving and lots of bug fixes! A lot of the connectivity issues that players were experiencing should be fixed, so if that’s something you’d had trouble with you’re in luck!

witchmarsh_banner

Inglenook opened up pre-orders for Witchmarsh in April and released some super cool UI screenshots since then, including one of an inventory full of intriguing items. We’re particularly interested in the flaming kazoo. That’s a sentence you don’t get to write very often.

lennas_banner_new

Huge update on the Lenna’s Inception front– the art has been completely overhauled, courtesy of our very own SamuriFerret! Developer Tom Coxon has also released a few new screenshots via Twitter, including a title screen sequence, a redesign of the game’s menu screens, and new tiles for the autumn biome.

interstellaria_banner

Coldrice has had to delay the launch of Interstellaria until after the Steam Summer Sale, but the good news is that the game is close to finished! The small delay has allowed him time to rework some game mechanics he wasn’t quite happy with, and somehow the game now looks like even more fun than it did before.

Game development is not some black art; there are tools, tutorials and libraries freely available for anyone to get started. So why have we decided to move away from that and write Wayward Tide in Haskell? Just how are we developing this game?

WARNING: this is about development, not about the game. Please adjust your expectations accordingly!

A Bit Of Detail

We’ve split the development of Wayward Tide into two streams; asset and game content is independent from engine development. This split is really helping to keep the game data-driven, a decision we made to make it easier to mod the game or procedurally generate content for it. Today we’re only talking about the engine (known internally as Cove).

We’re building it on top of SDL2, which is a highly portable and stable library. It’s this portability that let’s us say we will definitely be supporting Windows and Mac. There’s a good chance we’ll support Linux too, but we can’t promise that yet.

Palf's desk

Think I can get a third on there?

The application code is written in Haskell, using the low-level bindings to SDL. The code itself is heavily influenced by Helm – we realised that Helm’s focus on 2D rendering wasn’t going to work for us long term, so we started from scratch using a similar design philosophy.

We’re using Elerea to provide an FRP interface to the SDL event stream. This allows us to composite logic as a series of transformations of a stream, removing a lot of the boilerplate code usually required to handle input and output. A mature example of using FRP for games is Elm, which inspires both Helm and Cove.

It’s difficult switching to a language that doesn’t have as rich a history in the gaming domain, but it’s less of a risk, more of a trade-off. Haskell allows you to express program flow declaratively, which is an accelerant to development; I’ve already been surprised when code has just clicked together. If there’s a killer feature in some other language that we need, there’s always the foreign function interface to drop back on.

Working Practices

The development process is quite flexible. I’m an old-school evangelist of behaviour-driven development, so all specified game behaviour is covered by some level of automated testing. I do cut corners and will skip automating tests if I think the code in question is trivial, which will undoubtedly come back to bite me in a few months time.

We’re using Trello as our task management system. A task goes through the usual planning stage, but we don’t bother with estimation – there’s no pressure to deliver features by a deadline; instead we’ve adopted a “when it’s ready” approach (thanks, Blizzard!). It’s also likely that estimates made now would quickly become worthless – the team roster is not finalised, the developers (well, me) are still learning the ropes – but this is something we may revisit.

To keep us honest, we also do internal weekly demos to the entire company. It doesn’t matter if we’ve managed to take three steps back (this has happened) and the the game won’t even run – we demo anyway. Sometimes you have to own your failure! We plan to film these demos and release them as part of our monthly update, and if interest is high enough we’ll go to a weekly schedule.

These demos are not marketing material – they provide insight to the development process and solicit feedback that goes into the next week’s iteration. This is why we think it’s important to open these demos to a wider audience – after all, it’s your input we’re interested in. We’re going to take a few trial runs at filming; as soon as the video looks good we’ll start sharing them.

Open Source

When you buy Wayward Tide, you’re buying into the content, modding tooling and ecosystem. Much of what makes the game unique will be in the game package, not the engine. Our puzzle design, for example, is considered to be ‘content’. The ability to have puzzles in-game is a result of engine features (like collision and criterion satisfaction detection), so aspiring game devs can make their own puzzle games with it.

Being open source, the Cove engine will hopefully support Haskell game development, which in turn will cause a greater investment in Haskell from the gamedev community. If you’re looking to contribute, keep an eye on the blog – we’ll announce when Cove is available on here and Twitter. You can also find me on GitHub pretty easily.

Any further questions? Leave a comment or follow up on Twitter (@waywardtide)!