Monday, 18 June 2018

Sprint Round Up - 18.06.18 - Cheat to complete!

This sprint included a major milestone… playing the game from start to finish! :D

That may be stretching the truth a bit, and included a bit of cheat… but here’s the detail on that, along with the rest of our work this sprint:

Wednesday, 13 June 2018

Sorting out motivational issues

Hello! It’s Pontus here this time.

You’ve already read about us recently making a trip to USA for GDC and PAX, and about the push for new content and polish we did before that. As things go, that kind of quick development tends to mean lots of new stuff is added at the last minute, and sometimes maybe not tested in every possible situation. Or there’s a good chance there are some odd bugs and things that only appear after a while, or in very specific conditions. Things that in the long term would get noticed, added to our bug list, and eventually fixed… but in a 4-week rush, things sometimes go less than perfectly and some features might end up being a bit buggy.

In multiple ways, sometimes.

Most of my sprint was spent on fixing biggest issues we found in our PAX build, and most of that didn’t end being much to talk about. But one of the bugs ended being a bit more interesting to figure out, and while I’d usually prefer talking about design, I though some insight on this side of game development could still have some value. So, this is going to be more or less accurate story of our guards not behaving as intended, as I saw the issue through bug reports on our Jira board, and watching people play the game & testing things myself afterwards trying to figure out what exactly was going wrong. And also a nice example of how the most obvious explanation often isn’t quite true!

Friday, 25 May 2018

Saving (and Loading!)

Hi all - Steve here.  I’m a programmer working on Off Grid - and I’ve had the pleasure of working on save systems recently.  :)

Ha!  This is really one of the short straws of game development.  When I was at Sony, it was almost a rite of passage; these were the days that not only did you have to save and load, but you were responsible for ensuring things didn’t die when the memory card (remember those?) was pulled out mid-operation.

Prior to this month, we had the beginnings of a save system in place, but were aware that certain things didn’t seem to be working quite as they should - so I took a look.

What I discovered was that we kept a save in memory as well as writing it to disk.  This is a good thing - loading a checkpoint is faster.  But a side effect was that there were two code paths to reinstating a save - to load it from disk, or to just reference the save data as game data.  The danger with this is that the in-memory data can reference ‘live’ game data, which means the save on disk diverges with this during gameplay.  Lots of copying data later, the bits that weren’t working quite correctly now seem much happier.

The other work I’ve done was on a system level.  Saving and loading requires making a list of all the files available. Previously, we loaded all of these into memory - but as we cannot know how big they’re going to be, this will eventually cause us all sorts of problems. I’ve instead created a header at the top of each save file, containing the information we need to present to the player. Load the first 1000 bytes or so of each file, grab the header, close the file.

Saving and loading done then? Certainly not!  We will still have new data that needs to be added to our save structure, and I bet there are still some bugs in there.  But I’m confident that we are on firmer ground than we were a month ago.

Til next time!


Thursday, 17 May 2018

Sprint Round Up - 17.05.18 - A different approach

Hello loyal devlog readers!

We’be been blogging about for awhile now, and think it’s time we change up the the way we’re approaching it.  There’s SO much going into each development sprint that we want to make it easier to understand what we’ve been doing.

From here on out, at the end of each sprint, we’ll be putting together a roundup of the development achievements each sprint, and then breaking the detail out into individual posts every week or two.  It means you’ll get more regular updates from us, and they should be a bit more bitesized and cover a specific theme or area across the last month of development.

Keep an eye out for Steve’s next post on save systems - coming soon!

Now for the sprint round up:

Monday, 30 April 2018

Devblog 30.04.18 - STEAMing Ahead!

As you can probably tell from our other posts on PAX East and GDC, there has been a fair amount of jet setting done for conferences and shows that broke up our regular development rhythm, but that doesn’t mean there hasn’t been a lot of dev work in the interim!

Now you NPC me, now you don’t

We’ve been working up new characters, ready to populate new levels and keep on with the content push. Below is another harbour worker that Josh has been working on the rig for.

And of course, thanks to our new character colour setup making use of the colour look up tables we have setup for creating easy variations, means that this character isn’t just a harbour worker, he can have many jobs!