Friday, 16 March 2018

Marching on to the US of A!

Hello!  We’ve got a whole lot of fun stuff coming up and it’s been a busy few weeks moving the game forward and prepping for all of these exciting things to come.


We’re headed to the US very soon - we’ll be attending GDC in San Francisco all of next week.  It’s the first time any of us from Semaeopus have made the trip over for GDC and we’re looking forward to it.  There’s going to be a few opportunities to get your hands on the latest build during GDC week:

  • If you’ve got tickets to the SOLD OUT(!) GDC Experience Mixer on Wednesday 21st you’re in luck!   We’ll be there ready and waiting for you to play.
  • We’ve got a few ‘pitch up and play’ events in our schedule, too - follow @OffGridTheGame + @RichMetson on twitter for updates on when and where.
After GDC, we’re headed to PAX East
in Boston from April 5-8th
and Off Grid will be showcased as part of Figs & Co


We can’t wait!  If you’re attending, stop by, say hi, and play the game! Rich, Pontus and Steve will all be there ALL FOUR DAYS with our lastest demo at the ready. 
Now, on to all the juicy details on what we’ve been up to and what you might just see while playing the new demo…

Wednesday, 21 February 2018

Dev Blog - 21.02.18 - Upping our Profilers

It’s devblog time! 

Much of February has passed since the last sprint, and in that time, hearts and precious metals were shared across hipchat, though none were valentines from one dev to another, nor sadly, were they photos of our hard-earned Winter Olympic golds.  They were all lowpoly art, handcrafted by our stellar intern Josh, as he helped us prep marketing materials and create props for the game.  He’s been hard at work and done an awesome job for us. Thanks to our multi-cultural dev team, however, we did learn that Valentine’s Day in Finland is celebrated as ‘Friends Day’ - this is a notion we like.  And if you’re wondering, there’s fans of Team GB, Finland, and USA cheering across our virtual office spaces!  :)

Here’s what we’ve been up to:

Tuesday, 23 January 2018

Dev Blog Post 23.01.2017 - Drones and pwns

S’been a while, eh!

We decided to extend this sprint in the way we often do over christmas so that the team has a bit of time to experiment and perhaps take on a few tasks that require a good bit of thinking time. It’s paid off as usual, and so we have some great developments in the game to share with you with this blogpost. Read on for all the juicy details!

We are all directors now



We were very secretive some time ago (nearly 2 years back actually!) about how we were in a small set of selected developers given access to an alpha version if some new tools in Unity. Well…

Originally the tools were called ‘Director’, and with a lot of experimentation and some fairly comprehensive bug reporting they eventually became Unity Timeline, which Unity devs have now been enjoying since last summer!  We are now at the point where what we learnt from experimenting with the original Director tools can be put to good use. If you have played the Off Grid demo anywhere, then you will have seen the still frame animatic for the intro level which sets up the story of the game. We had a mocap session to get all this action captured and now that the Timeline tools have matured (and, more importantly, are stable) we are busy pulling this all together. The opening sequence of the game is going to change dramatically over the next couple of builds - how exciting!

To Octree or not to Octree

Steve had one pretty chunky task to do over the past month or so, and it’s been getting the drones to be substantially more drone-y.

So far we have worked on the basis that drones are just characters that happen to be hovering, but this means we lose the opportunity to move vertically and get to places that characters can’t, or via routes that they are unable to take. So the task at hand was to remedy this. Navigation meshes are two-dimensional, so we needed to take a new path - navigation volumes!


Using the magic of octrees, we subdivided each level down to the smallest size that contains no collidables, or down to a single unit cube, whichever is bigger. Then, each cube is tested to see which cubes it is adjacent to, to create a graph representing all the nodes. After that it’s simple - run A-Star on the network, and it’ll find a route through.


This will be available to LevelKit, so drones are accessible to all! There’s a few tweaks and kinks to work out, but overall it was a really satisfying feature to work on and should really change the way the game plays. You can run, but you can’t hide! Well you can hide. It’s a stealth game, after all.

Next will be to get them to move in a more dronelike manner, and perhaps optimise the navigation a little. But that may have to wait until after Steve’s put his cameraman hat back on for the upcoming sprint!

So much modding going on!

Josh has been hard at work testing the modding tools and refining his mods. In particular he expanded the museum of hacking he has been making.


The museum mod, which he initially designed to be just an interior, has expanded to allow for any future hackable devices to be added to it, no matter their size!

Josh then turned his attention to improving and developing the transport station map. The map has changed quite a bit since whiteboxing and still has a way to go. For a first attempt at a full level mod it is fairly ambitious due to it being a fairly large map with multiple ways to complete the same task.


The station has grown quite a bit to allow for more room for the guards and the player to navigate. This will also hopefully allow for a more interesting interior and gameplay possibilities.

Originally the apartments around the level were going to be just blocks that looked like apartments, but now some of them interiors to allow the player to find hidden data files or to find some higher ground to plan how they will tackle the mission.


The trainyard is still very much in progress, but has also changed quite considerably. The main additions to the train yard include a new walkway that allows the player to navigate to all 3 platforms. A warehouse has also been added which will include some puzzle elements for the player to complete. This is replacing the old puzzle element which involved moving the train carriages up and down the tracks as it was a bit clunky and confusing.

Meta-gamedesign

In the last sprint, Pontus redesigned the character profiles and our data files & SMS generation to handle metadata about the character personalities embedded in data files. That’s working pretty well, and we already built a quick app for testing this. So it’s time to take things a step further, which is why Pontus has spent this sprint working on the game design for how we’ll actually handle metadata collection and character profiling as a player experience. And how that will then tie in with adding a password cracking feature when the player connects to a remote (or local…) device using our SSH app.

The basic idea is that as the player collects different data files, the included metadata is automatically used to build a catalogue of character profiles, over time adding knowledge about new characters, and their personal information, their likes and dislikes, and pretty much whatever background info we (or modders) choose to add.


All the collected information will be available for the player to view at any time as a new tab in the pause menu, so it’s directly useful, for example, to try and guess what kind of approach might work best for distracting a specific guard away from your path. In addition to that, the amount of knowledge you have collected about a character is also then used to determine if you’ll be able to access devices belonging to that character. After considering calculating the access as a proportion of known metadata VS all existing data about a character, and realising that this would cause a few odd situations, we settled for a fixed limit for access, and allowing this to be set in each device’s Lua script so if the same character owns multiple devices, some can have easier, and some more difficult, passwords. We’ll likely also add an option for a device to require some specific piece of information instead of some count of any knowledge, but this should be used as a special case option in missions as it requires the mission creator to make sure that exact data is available to the player at the right time.

A fairly interesting side effect of this design is that it is kind of realistic, in the sense that it’s going to be easier to collect enough information about characters who have more metadata defined in their profiles. So, the more you share about yourself online and in social media, the easier it is for someone to learn enough about you to start guessing your passwords and to use the knowledge for identity theft and so on. And at the same time characters who have shared less about themselves (or, the mission creator has been more lazy ;)) will be more difficult to learn about, as you are more likely to just run into the same few bits of knowledge rather than learning something new.

Another interesting feature here is that your library of character knowledge will be persistent, so anything you learn about a character in one mission will be carried over to future ones. While this requires us to do a bit of a better job on the UI side to keep things manageable for the player, it also serves to create a longer game play loop, where social engineering can happen over a longer time span than just within a single mission.

Finally, we’re probably going to add few different apps for gaining access to devices, in the sense that the one based on knowledge about characters (so, basically just guessing badly chosen passwords through social engineering) is just going to be one of the tools available for the player. We’d also like to include other tools that target specific vulnerabilities on devices, and perhaps a late-game one that just uses a direct access to government-collected data.

Big News

With all that dev news it’s worth pointing out that we have some other big, juicy news coming soon. We are sooooooo close to being able to announce it that the anticipation almost hurts!

You can find the newsletter signup page here!

If you aren’t already on our newsletter, please sign up!  If you are and you have any friends who you think might be interested, then please share and help us reach even more people anticipating the game!

Ta ta for now,

Rich, Pontus, Steve, Sarah and Josh.

Tuesday, 5 December 2017

Dev Blog Post 5.12.2017 - Social Engineering and Distracting Noises

We’ve been working with a bit smaller team for this sprint, so this is going to be slightly shorter blog post than usually. And we’ll switch the format slightly as well, so you’ll get a section from both of us telling about what we’ve been up to…

Steve:

My first month has flown by! It’s been great to get started and become acquainted with Unity, which has impressed me. I started off on Off Grid by poking around the existing code, and playing the demo level, which gives an good overview of where the project is. After that I was forced to do some real work; first of all, I exposed the ‘Noise’ system to Lua, meaning modders will be able to play sounds that the AI will investigate. I’ve also fiddled with the camera, with the Lua setup, the wiki, and a fair few under the hood changes that hopefully will help us create new content more quickly. Exciting times ahead!

Pontus:


Character profiling

We had already previously converted the text files we use to describe each character’s personalities and background information from old XML files into Lua. But as we'de designed some of our data mechanics, and especially the social engineering aspect of hacking and privacy bit further, we realised the profile format we had would not do the job.

So, in this sprint I’ve worked on re-designing the character profiles to use a tag-based system that allows us, and the modders, to easily add pretty much any amount of background information about the characters, and tag that data in a way that lets us then attach those tags to different data points, files and whatever inside the game, and hook it into the AI’s behaviours easily.

(and same as with our mission progression system and many other things, the design goals and explanation how it works ended being much more complicated than the actual implementation, so no need to worry, this is really simple system for modders to use and should be very extensible and flexible for all the crazy weird hacking stories and tools modders might come up with which we never even thought about…)

While doing the required changes for this, I also added few quality-of-life improvements, so the levels can now automatically load character profile files, and the image files used for character colour customization, both from the level’s own folders and from the Common folder used for sharing things that might be used in multiple levels. This means that we don’t need to duplicate character files to each separate level where the same character might appear, and also modders will have easy access to some pre-made characters they can use in their own levels without having to even bother with the actual character profile files until they want to create some new characters of their own.

Sending SMS, with Lua

We are then using those character profiles to generate text messages (and eventually e-mails, and other files as well) that get sent to all the characters, and that the player than intercept, read though, and use to learn about the characters (maybe to figure out how to distract a specific guard, or to help guessing someone’s password, and so on).

This is nothing new, the SMS system has been in place for long time already. But the source file we used for the SMS templates was the last remaining XML file in the game, so of course that had to be converted to Lua as well… If nothing else, it’s more consistent and easier for everyone to deal with the same language throughout the project, but it’s much more human-readable syntax as well.

To take things a bit further than that, we thought that maybe the actual code used to generate the messages could also be moved into Lua. This certainly isn’t something you’d want to mess around for every mod you make, as it’s a bit more complicated than the rest of our mission and character files, and the actual content you see in-game can be changed easily by just creating different character profiles anyway. But exposing that code to the modders might open some interesting opportunities, maybe for localizing the message generation to some language with different grammar than what English has, or to build something more complicated than what the base game needs to go with some awesome mod you are making. We’ll see what happens!

Oh, and of course I made sure both the template file and the actual message generator code can be loaded from both the Common folders as well as from the level-specific folders, just like with the character profiles.

Outro

That’s everything for now! We’re not quite sure yet if we’ll have a short sprint (and one more blog post this year) or if we should just make it a long one and return back to you in 2018! Either way, we’ll make sure to let you now when the next blog post is out!

Saturday, 11 November 2017

Off Grid Development blog 8.11.2017 - Changing Times!

The times-they-are-a-changin.’  New horizons, a shake up, big things happening - this has been a heck of a sprint!

Blocktober

Completely unaware of our social media surroundings, Rich managed to spend a good portion of this sprint during October whiteboxing and completely miss the whiteboxing trend on Twitter that was #Blocktober! Nothing nearly as fancy as the timelapsed art passes from the Naughtly Dog team on how they constructed key hero sequences in the latest Uncharted, but we do have a new building for the intro scene in the player’s apartment. If you haven’t seen this yet at a demo I won’t give away any spoilers, but this level is where your hacking journey begins!

Indies Unplayed

We were extremely fortunate to be asked along to Indies Unplayed at Secret Weapon Loading Bar in Stratford. It’s always great to show the game and get player feedback. Many thanks to Lauren Francis

for having us along, it was a very cool little event and we had some really inspiring titles along side us. Below you can see a player learning the setup to our hero’s story in the intro cutscene we are currently making playable.


We got to play some fun new indie games and catch up with some old friends too, including old chum Tim Constant, who we last saw at Nottingham Gamecity in 2013!!!
Tim is working on a very cool dystopian job sim.  It’s a
#PapersPlease-like game, where you play an immigrant bouncer in a post-Brexit apocalypse:

‘Settings’ it up

It’s been quite short and quick sprint, so there are no new amazing game features to talk about from Pontus. But as promised, our settings system has now evolved from a bunch of background systems and code into an actual menu. With some actual settings you can adjust!


The graphics will definitely need more work, but the plan is to fill in more options and then do a second pass on the artwork and layout to make sure everything works well with the content. For now, everything is functional at least.

Web work

Apart from that, things were polished up in the web side, with some imrpovements and additions to our wiki and to automate our newsletter. That’s going to make our life easier, and hopefully also help any players/modders to find the right Lua API and instructions for how to set things up in LevelKit in the future. I would say “go and check it out” but there’s not really much interesting things in the wiki yet, at least unless you are one of the lucky ones who have access to our builds and the LevelKit already. In which case, you of course should go and check it out to get you started testing how to create your own content for the game!


No funny bugs fixed by Pontus this sprint, and no interesting game design work either. But there definitely will be next time, he’s already spent the past few days with XMind open for plotting some pretty big changes for the game…

Mod testing

This sprint Josh, our modding and level design intern, challenged himself to build a level using the modding tools. The aim was to learn how to build a typical level with a focus on the Lua scripting side of things rather than art, and then take those learnings and see where he could fill in the gaps on the wiki that he found wanting.


We’ll let him tell you a bit more himself though:

“So I started out by blocking out the map that I wanted to create. Once I had the basic level that I was happy with I got stuck in with the Lua scripting with which I managed to learn a great deal upon completion of the level.

One of my favourite parts of creating the mod was the conversations, as it was super simple to create but also great fun generating branching dialogue between characters.
          
Following this, I began work on a guide to building a level mod which has been added to the wiki.This is something that I felt would be important for potential modders to have to help make the modding experience more accessible.


This also resulted in a few new pages being created to explain some sections not covered on the wiki yet, such as the ability to add characters to your level. This is a very exciting and interesting feature which will allow you to create many gameplay elements, from conversations to patrolling guards.


I also had the pleasure of testing the new ability to upload mods to the steam workshop using the Level-kit tools.

Shortly after that it was decided that we should create a mod level that people can download that would demonstrate some of the pre-made devices that any modder can essentially drag and drop into their own mod. It will also be playable which I will turn into an interactive tutorial of how these devices were made to help new modders create their own from scratch.”

Farewell Harry!

Harry had his last sprint with us this month as he is moving to join the development team at Unity, but we made sure he had time to part with a gift for any of our followers who are devs interested in making their games moddable too.

In his time on the team, Harry’s done great work pushing modding in Unity 3d,
and so we’ve open sourced his work on the Lua framework that makes Off Grid moddable, enjoy!

https://github.com/Semaeopus/Unity-Lua

Out with the New in with the Old ;)

And with our youngest team member Harry heading to Unity we have gained the wonderful Steve Allen in his place. Steve comes with a bundle of  AAA and Indie experience, so much so that he qualifies for ‘industry veteran’ status, and we are pumped to have him aboard the good ship Semaeopus. I’ll stop rambling and let him introduce himself though:

Hello! I’m new here. I’ve joined the Off Grid team as a programmer, though will no doubt stick my nose in elsewhere. I’ve been programming games for, well, rather a long time, and am really excited to be part of the project. There’s lots of interesting stuff that still needs to be done and it’s already been a welcome change from the larger, corporate games I’ve been working on over the last few years. And who knows, next time I write one of these updates I might have done some work! - Steve

You’ll hear a lot more from Steve in the coming sprints, he’s already made good strides into impletmenting and extending new features in the Lua API for modders to play with, so watch this space!

Fixes and additions:

Harry’s last couple of weeks were also a great opportunity for us to dig into some of the bugs in our backlog that haven’t been top priority, but would be welcome fixes with a little effort. We had a fantastic flurry of small fixes from the team, with Harry leading the charge.

Main game:

Messaging with CryptoChat

We setup a small notification to say that a character is typeing while you are waiting for them to respond to you in a conversation. It’s essentially a ‘Smedley is typing’ animation much like you’d see when using a messaging app like whatsapp or imessage.

We also and fixed the pause time between messages, which just needed a little finessing to feel more real
.
And most importantly, we set up ‘B’ to skip single messages instead of all of the incoming messages from another character.

Include Mods in use, in save games

We now have save games recording what mods you have subsribed to so you can progress with your mods intact!

Saving NFC

NFC data is now being saved correctly.

Trailer video

We fixed a strange long wait at the end of our trailer that had been bugging us.

Player Phone

We fixed a bug to do with interactions when the player phone didn’t appear when doing swipe interaction or scanning things.

Stuck Running

We had a somewhat funny but awkward bug in our animation state machine where the player can get stuck if you were crawling and spammed the run button while getting up - the player would get stuck running in circles!  That is now fixed ;)

Look around you

The player character’s look-at IK needed more restriction on target height so that you didnt look at interesting objects on the floors above or below you.

Invisible walls and soft bathroom sinks

Lots of missing colliders were fixed.

LevelKit:


UV Warning

We updated asset importer post processing script to warn about missing normals and UVs on new models. This means as you are modding and making new geometry, the LevelKit tool will tell you if it is missing anything that could cause a later error.

Mod Content structure

We re-structured level directories so that the content a modder makes is in a neater structure.

Non Steam works / DRM free mod exports

Added Export as Zip option to build tab so that you can upload your mod anywhere for anyone (with a copy of the game) to try it out.

That’s all folks

Lots of big things happening so we’ll look forward to catching you next time.

Pontus, Rich, Sarah, Steve & Josh