Showing posts with label off grid. Show all posts
Showing posts with label off grid. Show all posts

Tuesday, 8 October 2024

OFF GRID DEV BLOG - "Hacking IRL"

Hello folks! We’ve been so busy pushing forward with OFF GRID that it’s been hard to find the right moment for an update—but here we are, and a lot has happened in the last four months! We teased a bit in the interim, but now we’re ready to dive into the details.

First up, we had an amazing time at EMF Camp, the UK’s largest outdoor hacker gathering, where we ran workshops, caught up with friends who cameo in the game (mc.fly, pathfinder, Lauri Love, Darren, et al.), and connected with the wider community. We’ll have a full retrospective post coming soon, but in the meantime, there’s even bigger news…

We're extremely proud to announce we’ve secured funding from Ufi to develop a companion experience to OFF GRID that takes players deeper into the world of infosec (in parallel to how OFF GRID takes players deeper into the world of hacker culture). Interested? Then read on!

Team Updates

We have some team updates, our three lovely volunteers, Elias, Mellissa, and Diogo, had their work experience with us come to a close, they made some fantastic contributions to OFF GRID and the studio and its other projects at large. We have also had our producer Raquel move on to new adventures at Brazilian outsourcing giant Kokku. While we’ll miss them, part of being a small, independent studio is helping talented people grow and take the next step in their careers. We’re incredibly proud of all they’ve accomplished!

As is the way with chi and the movement of energy (yeah man!), we have been incredibly lucky to have new energy come in and fill this void. We’ve welcomed Edvin as a junior environment artist, and long time friend Jay Springett has also joined the team. Bringing with him some deep expertise in worldbuilding and cross-media storytelling. Jay is probably best known for his involvement in Solarpunk’s early origins, he’s also been a contributor to reports for BBC R&D and the Canada Media Fund. He’s been able to jump in and inject his operations expertise into production management and beyond for OFF GRID: Red Team, this new extension of the core OFF GRID game.

Without further ado, here is what we have been up to on the core game in recent months

Core Systems

App System overhaul, part 2

Some of you might remember that we did a redesign and rebuild of large parts of the game's app system last year (if you missed that, then read more from the blog post: OFF GRID: Off Grid Dev Blog - "Still Alive and Hacking"). After that there were plenty of more pressing issues that needed dealing with first, but we finally got to doing the second part of that overhaul, dealing with how apps work in first-person mode.

As nice as the radial UI we had for selecting apps in the first person mode looked like, it didn't really fit well with how the apps now work. First of all, it required the player to first select a target, as it would then automatically show apps appropriate to that target type. However we've moved the control over which targets the player can see at a given time to the currently selected app, so that created a bit of a chicken-and-egg problem here. Next, having to manage two separate lists of apps, assigning them to the radial UI and the normal app dock separately, was unnecessarily complicated. Even more so on the Lua scripting side.

So it was time to clean up the design, and with the way the apps now work, we realised there was actually no reason to have that separate UI any more. We could just as well enable the one and the same app dock in first person mode as well. That means no longer having two different ways how apps work, and how they are used by the player. No need to assign them to two places separately. No more need to define if they can be assigned to dock or the radial UI and setting default states for both, resulting in simpler and cleaner Lua code for modders to deal with as well. Sounds like a win.

Well, as with everything else in game dev, every solution creates some new problems of its own...

The problem we now had was that most of the gameplay is designed around the 3rd-person perspective, giving the player a lot more view around their surroundings, and especially on any guards that might be approaching them from behind. Our goal for the 1st person view was always to allow the player more time to think, to search for useful data, and to take a more tactical approach compared to the direct and fast interactions the apps have (especially after this redesign) in 3rd-person mode. To help with that, after the player had selected a target in 1st person mode we paused the game time to let the player consider their next move safely. Now that we no longer select the target first we had to choose between two options. We could pause the game the moment you enter 1st person mode (but that could be way too powerful of a tool, being able to freely search and hack anything in game with all the NPCs paused. Or we could not pause the game, and lose that bit of safe time for the player to think we wanted to have in 1st person. Neither option sounded great.

Got time?

If we can't stop the time, and we can't keep the game running normally, then that only leaves one option; doing something in between. Which is exactly what we did. We slow the time.

Now entering the 1st person mode changes the game to slow time mode, giving you more time to look around, select targets, and interact with them. But still not unlimited time, all the AI characters in the game are still moving around and going on about their business, so you can't just switch to 1st person mode in the middle of an open area and hack away. If there are guards around, eventually they will spot you and catch you.

This solved all the problems, at least on the game design side. Changing a game that was built to either be running, or paused, to handle an extra slow time state took a bit of work and refactoring various systems.

The hidden tech behind it all

The last part of the app system changes was less to do with gameplay, and more to do with Lua scripting and other things going on in the background. Removing the radial UI already cleaned things up a bit, but we still wanted to simplify the code needed to define what apps the player should have in each mission. And we also had some unsolved situations regarding apps in modded levels, or in special cases like tutorials where one might want to override what apps the player would normally have and instead set them to specific ones.

So we also ended moving defining app's starting states in the app Lua script into the mission scripts, and then added some helpful Lua API calls for setting the apps for the mission more easily, rather than having to call a state change per each app (which wouldn't even have worked when dealing with modded apps/levels, as nobody could possibly know which apps the player has in their game.

As part of implementing that we needed to figure out the logic for how the player's apps are saved between missions. We needed to make sure apps given to player in one mission and the way the player has assigned them to their dock carry over to the next mission correctly, but also handling cases where the player ends up playing a mission that defines different apps/configuration, and then returning back to player's configuration again on the following mission. And of course making sure it doesn't all break if some previously used app isn't available any more (either because it was a custom app defined in one mission only, or because it was from a mod the player has uninstalled).

This is all working now (apart from a bit of more work needed on our save system side), and while it all got a bit complicated on our end, the good thing is it all pretty much "just works" from the player's and even from the modder's perspective.

Layout and Props and Art?

We’ve been hard at work on scripting and interactive objects, which, as you can imagine, brings its own set of challenges—like figuring out how to deal with the ‘haunted’ office drawers in IntSecur’s poltergeist-infested office.

We’ve been fleshing out our production wiki to document everything, ensuring smooth sailing as we continue building out the game. On top of that, we’ve started refactoring the character customization system, making it more intuitive for building levels. We’ll dive into more details in an upcoming blog post, but for now, check out the new LUT layout in action on the Jen model.

We’ve also added sliders to adjust body shape for greater variety in character design!

 

Lastly, Stef has been working on our level building updates has this to share:


Studio Announcements

Ufi Supported sidequest

We’re pleased to announce that, with funding and support from Ufi, we’re taking OFF GRID in exciting new directions. We’re developing a vocational training companion experience that will sit alongside the core game. Think of it as an ARG (augmented reality game), where we use experiences and media outside the game to guide players deeper into the world of information security, pentesting, and hacker culture. Specifically, we’re focusing on the ‘attacker mindset’—the skills gap that often goes overlooked in conventional cybersecurity training.

Ufi has pioneered the use of technology to advance vocational skills, coining the term “VocTech” to catalyse the movement. We love how this project blurs the line between fiction and reality, helping players jump down the rabbit hole and explore infosec techniques in a hands-on, immersive way.

OG:RT

OFF GRID: Red Team (OG:RT) is an experimental subgame of OFF GRID, where we’re testing innovative mechanics with ARG elements. The goal is to mirror real-world cybersecurity challenges in a narrative-driven experience, helping players develop an ‘attacker mindset.’

Though OG:RT is currently a standalone project, it’s feeding directly into the development of the core game. Some features we’ve been planning are already in use, and the project has opened new funding avenues that are allowing us to accelerate Off Grid’s development. This initiative has also enabled us to bring new talent, like Jay and Edvin, into the team to help push things forward.

Get Involved

We’re looking for people interested in following the development of OFF GRID: Red Team and gaining early access to our alpha builds. Some participants may be selected to play the game and provide feedback via follow-up questionnaires, helping us shape the project as it evolves.

If you’d like to get involved, sign up here

Even if testing isn’t for you, you can still join our mailing list as part of the form, to stay up to date on all the latest developments.

We’ll be back soon with more details on our time at EMF Camp!

If you haven’t already - be sure to wishlist Off Grid on Steam - each wishlist makes a big difference to us, and we really appreciate your support!

Wednesday, 28 August 2019

Sprint Roundup - 28.08.19 - I AM Controlio

Welcome OFF GRID fans, we are back with your regular dev update. Lots to tell this time around. Plenty of nice new features in both the game and the modding tools, new content, and some pretty crucial fixes, as well as a special edition modding stream we collaborated on with our First Access modding community in the Discord!

Want to hear more? Read on...

Giving you "the feels"

Character controls, and what some people like to term "the toy", are incredibly important, especially in a third person game where you see the character all the time and the camera revolves around that entity.

Walking in a Unity wonderland

Thursday, 31 January 2019

Sprint Round Up - 30.01.19 - The FIRST Sprint of 2019


Hello hello, here is your regular sprint round up of development through January!  Read on to find out what we have been up to, and if you are one of our backers on the FIRST ACCESS level, what you can expect to see in the latest build update!

Content (Level Design and Art)

  • Work on workplace level design and early game tutorialisation, mission scripting and character conversations
  • Wrote some new AI states, goals and actions for a nuetral NPC character (using our new moddable, data driven AI behaviours) 
  • Worked on existing geometry in the Workplace level to get it closer to a completed level
  • Paper sketches of new level designs
  • Started grey-boxing on new levels 
Greyboxing a new level

Gameplay and Mechanics

  •  Design work for data view & app use cost changes

Controls and UX

  • Added a crouching first person camera:  the look from point is no longer parented to the rig, which improves camera targeting
  • Reworking of character controller and camera to give finer control
    • Now players have better control of jogging and sprinting both on controller and keyboard and mouse using Space/ B to jog, and repeatedy tap to get a sprint burst 
    • Crawling animations and controls have been fixed to work properly and feel nicer
    • There is a crawl sprint too!
  • Turn animations and transitions in blend trees have been sumplified for better control overall but smoothing and polish is needed still for smaller movements (some finer turning / control has been lost and is to be fixed in next update)
  • Started converting various UI elements to better font rendering and animation systems
  • Support for displaying controls as icons in middle of text in the UI
  • Rebuilt the AppWheel UI to better handle adding and removing apps
Converting the UI to Text Mesh Pro

AI

  • AI function to prefer or avoid particular devices.  Example:  the coffee offer message, sent to a guard, will reduce the cost of the UseCoffee Action, meaning that Guards prefer that Action and will go out of their way to use it rather than alternatives.
  • Added an optional personality requirement to have actions that are only runnable if an Agent has a particular interest (or not!)
  • Added stats to the Agent definition
  • Added generic actions to the Agent definition
  • Added responses (to other Agent's actions), adjusting Agent stats
  • Added reactions (stimuli in the world can thereby adjust Agent stats, based on personality)
  • Added an audio attribute to actions in agent definitions, to be played when they are performed

Modding tools and Lua API additions

  • Added support for loading apps from your current mission (as opposed to the global Apps folder, or app mod)
  • full screen modal window, 
  • Updated gizmo icons in LevelKit
  • Correct scale & rotation for bounding box when editing mission triggers etc.

Bugs fixed

  • Fixed a shader problem introduced after updating Unity

Other

AND:  WE MADE THE BRIT LIST!
http://www.kotaku.co.uk/2019/01/11/games-of-2019-british-games 


Thanks for reading, look forward to seeing you next time!


If you haven’t already - be sure to wishlist Off Grid on Steam - each wishlist makes a big difference to us, and we really appreciate your support!

Tuesday, 9 October 2018

OFF GRID DEMO AVAILABLE TODAY!

TODAY IS THE DAY!  The Off Grid Kickstarter campaign goes LIVE!

From 4pm BST onwards TODAY, you will have the opportunity to:

-PLAY A FREE DEMO of Off Grid
-Secure your copy from as little as £8 (SUPER EARLY BIRD - it's a steal!)
-Get your name or handle in the game
-Help shape the game via our FIRST ACCESS program!
-Snag some official OFF GRID merch

...and much more!



Back Off Grid

offgridthegame.com/kickstarter

Set your alarms!  That's:

4pm London / 5pm Berlin / 11am New York / 8am LA

Get in there quick to get the best deal on the game! Some reward tiers are limited... you don't want to miss out!

Help us spread the word! Share our posts, tell friends when you've backed, and let us know that you have by using #offgridthegame on social media!

THANKS FOR YOUR SUPPORT!

The Off Grid Team

If you haven’t already - be sure to wishlist Off Grid on Steam - each wishlist makes a big difference to us, and we really appreciate your support!

Tuesday, 25 September 2018

Off Grid is Kickstarting!


BIG NEWS! We'll be running a Kickstarter campaign in October!



 Get ready for:

  • a playable demo
  • the first ever opportunity to secure a copy of Off Grid
  • a chance to get behind the scenes and help shape the game

The Kickstarter will go live:

Tuesday, October 9th


Please consider backing us if you are able! If you're not able to, please share, share, share.  Every pledge, like, wishlist and follow means a lot!

We'll be asking for feedback on our campaign via Discord this week - hop on in there to get a preview of the campaign & tell us what you think: https://discordapp.com/invite/NDEVwBJ


Join the mailing list for news and updates at http://offgridthegame.com/newsletter

We can't wait to share the campaign with you.

Thanks everyone!

The Off Grid Team





If you haven’t already - be sure to wishlist Off Grid on Steam - each wishlist makes a big difference to us, and we really appreciate your support!

Thursday, 20 September 2018

Thursdays = Dev Stream Days!


Hello!

That's right, Thursdays are Dev Stream Days! We'll be chatting all things Off Grid, show you in-game play, hacking, modding, and more...

Here's what you need to know:

When:

Every Thursday

What time:

5pm BST / 12pm EDT / 9am PDT

Where:

https://www.twitch.tv/semaeopus

Ask questions via twitch, or in our Discord's #hack-the-planet channel! Join the discord here: https://discordapp.com/invite/NDEVwBJ

ICYMI: We've done a couple dev streams already! One featured hacker Darren Martyn, Pwnsauce of LulzSec fame, and in another, Rich intro'd the game and went through some basic lua device scripting.




Videos are also posted to our YouTube channel after the fact - hop on over there and have a gander:
https://www.youtube.com/offgridthegame

Hope you can tune in!

The Off Grid Team 


If you haven’t already - be sure to wishlist Off Grid on Steam - each wishlist makes a big difference to us, and we really appreciate your support!

Monday, 3 September 2018

Discord = OPEN! Dev chat TODAY 9pm BST / 4pm EDT

Good news!

We've been having fun today with a little soft launch of the Semaeopus discord server!

We invited our newsletter subscribers in for a little *exclusive* dev AMA session earlier - and now we're ready to welcome the rest of you out there in the big, wide world.

Join us in Discord!


https://discord.gg/NDEVwBJ

Get your questions ready...


The devs will be online again at 9pm BST / 4pm EDT / 1pm PDT today to welcome you and answer any qestions you have!


Look forward to chatting with you soon!


If you haven’t already - be sure to wishlist Off Grid on Steam - each wishlist makes a big difference to us, and we really appreciate your support!

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!

Steve

Monday, 30 April 2018

PAXEast 2018!

As part of our month of travels, Pontus, Rich, and Steve all made it out to PAXEast to show off the game.  It’s a really friendly and inviting show and we’d definitely recoomend it.  We were lucky enough to get to show the game as part of a little collective of friends all put together by Kinifi Games, called Figs & Co, run by husband and wife dev team Hollie and Chris Figueroa, those two are a total powerhouse, and we are so proud to call them friends!!

A nice thing about PAX is the airport is a 10 minute ride from the conference centre and the free airport shuttle drops you pretty much at the doorstep of the Boston Convention and Exhibition Centre (BCEC).

Hello Boston!
The setup!

Grownup Developers Conference?

We’ve had a busy month with travel to the US for events!

Rich and Sarah attended GDC for the first time, or atleast attempted to, and well, it was ok…

The event itself is huge, and there were a lot of friends and colleagues to catch up with, but to be honest, the fringe events were better than the core event itself based on this experience, specifically how non-inclusive it was for Sarah, a working mom, and core member of the Semaeopus team. But before we get to that…

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!

Friday, 20 October 2017

What do you call one of the top ten best games at EGX?! OFF GRID!

Yes, you read that right!  Off Grid snagged a pretty sweet accolade over the four days at EGX:  Eurogamer staff rated Off Grid as one of the top ten games on the show floor.  Read the article in full here.

Here’s the write up on Off Grid (complete with a pretty accurate description of Rich and his conversational skills!):


While that accolade was certainly the highlight of our EGX experience this year - plenty of other great things happened over the four days:

Off Grid’s Twitch Debut



Thursday kicked off with an interview and live play through of Off Grid on the Twitch Stage.  Rich talked to CaffCast and Spamfish in a livestream to over 2000 viewers - a first for both Rich and the game!  Watch it here.

We now have our own twitch channel - be sure to subscribe!  Rich took the opportunity to do some behind the scenes streaming while at EGX, so go have a gander at those if you’re interested.  In the future, we hope to use it to do playthroughs of Off Grid, talk in more depth about our development process, and perhaps about some of the inspiration and influences behind the the game itself.

The Geek Show

Pontus (not often seen on camera!) was interviewed by The Geek Show for their podcast and YouTube channel.  Get your glimpse of one of the powerhouses behind Off Grid here:



Friendly banter with the NCA

The National Crime Agency (NCA) had a stand at EGX and were handing out helpful information to all inquisitive passersby - including literature on the Computer Misuse Act and an NCA challenge.


Here’s a little closeup of their handout:


Big Red Barrel Duet with Yucatan Game

Fellow indie dev and Leftfield Collection exhibitor, Joe Bain, and Rich Metson were interviewed by the kind folks at Big Red Barrel.

They’ve put together a special EGX podcast, jam packed with all their favorite games.  Listen in at about 56 minutes for the very best bits! ;)

What else did we love about EGX?

You’re right, we already said the highlight was being picked as ONE OF THE TOP TEN GAMES OF THE SHOW!  :D  That’s totally true - it is awesome.

Off Grid was also highlighted in OuttaSite’s indie picks at EGX, and the VGChartz write up, Games to Watch Out for from EGX.

But what else did we love about EGX and our participation in Leftfield Collection?  Watching YOU play the game!


It’s always a treat to see how players make their way through the latest build - taking note what they find interesting and engaging, and what might be quickly passed over.

This year marked ten years of Leftfield at EGX - that’s ten years of showcasing great indie games alongside all the big hitters - thanks to David Hayward for all the effort supporting indie developers!

Wednesday, 3 May 2017

Off Grid Sprint Update 03.05.2017 - #Winning

Our favorite part of April?  Bagging the Game of Show Award at Bonus Stage!  It was pretty sweet to take part in the coolest new indie games showcase to start - but to take home a prize?!  Awesome. 
We even got a trophy!




That was a great start to the month, but so, so much more has happened since then.  We’ve worked hard on improving the stealth element of gameplay, added to our level kit architecture, worked hard on the save system, and have gotten busy making more levels.  Read on through for all the nitty gritty and make sure you get to the end - there’s even more good news!  :)

Thursday, 2 March 2017

Off Grid sprint update 02.03.2017 - A little *more* conversation

A little more conversation, a little more action, please!


Somebody must have been listening to a little Elvis Presley around here. Are you dancing in your seat a little bit? We are! :P

Annnnnnyway - a merry March to you!  We’ve had a good February, full of all kinds of progress, on systems, content, and biz dev, so without further ado, here’s our action:

Finishing the city map

There were few small details we wanted to do on this pass of the city map scene left for this sprint:


First, what would a map be without proper markers? We replaced the placeholder ones featured in last dev blog post with new ones, this time drawn on the UI side. Not only do they look cleaner, but also this means we can more easily switch markers for different missions; for example, to differentiate between side quests, or different story lines and content coming from different mods.




…and then, we added support for multiple missions taking place in the same location, or in same city district. Just because it seemed like a good idea. We’ll still need to add the UI stuff for selecting between the missions if they are available at the same time, but on the code side, things are already in place.

Saturday, 24 December 2016

Sprint Update - 24.12.16 - Ubuntu Xmas

Our gift to you this year is stable builds across all platforms! The big news is we have been making sure our Linux builds are up to scratch as Rich is off to 33C3 and some of the hardware he might be borrowing to demo on will undoubtedly be running various flavours of Linux for us to put the build through its paces on.

Linuxmas is here

Last Saturday we tweeted out a few screens from the latest Linux build running and we were lucky enough to get this write-up from Gaming On Linux.
 


We’ll be putting the build through testing on as many distros as we can ahead of release, for a game with the sorts of themes encountered in ‘Off Grid’, and as all three devs are Linux users, making sure we cater to those of you who like to play on Linux is extremely important to us.

Tuesday, 12 July 2016

Sprint Update - 12.07.16 - What has 6 legs and green shoots? Us!

Greenshoots

Hoorah! We have been selected by Creative England to join their Greenshoots program in partnership with Microsoft, which comes with a solid amount of funding and will help us ensure we get to our aim of getting the alpha in your hands sometime next year!

This means we can continue working full time, plan towards some kind of release date, and have enough funds to guarantee we’ll actually be able to get the game out in it’s alpha state and that people will be able to get it around next spring/summer (assuming you are brave enough to grab early access copy)!!

Wednesday, 3 February 2016

Off Grid Sprint Update 3.2.2016 - Beginning of a New Era

It’s been a while since our last development update, but there’s a good reason for that… (And it’s not just the holidays we spent recovering from last year and doing a bit of research and planning). Be warned, though, this is going to be a long post!

Christmas is a time for modding “research” (and sharing of course)


We have been aiming to open up Off Grid to modders in as many ways as is possible and manageable for a small team like ours, and so the sprint over the Christmas break seemed like a good time to do some “research” by messing about in some of our favourite moddable games made by small(ish) teams.


We had a gander at games like Kerbal Space Program, and Cities:Skylines, who develop using Unity and have opened up a huge amount of their C# API to modders, but also, more interestingly, KSP and other titles are using Unity itself as the level editor for players (due to it being free to download and use - why build your own?!). As far as data and code modding goes, we started small with a tool mod for Starbound (making the most powerful hammer in the known universe seemed like an important contribution to make ;P) and built up to looking at the quest, codec and dungeon modding structure to see what the good folks at Chucklefish have opened up with JSON and Lua for players to tell their own stories through missions and content.



Happily enough, it would seem the .xml data structures we are using already to store things like NPC personalities and the in game hackable DataPoints (text messages, emails etc.) will hopefully lend themselves quite nicely to a similar approach, and so next sprint we went into for January has been partially targeted at implementing a first pass at Lua scripting for character interactions with the aim of them being moddable… but I suppose we are getting ahead of ourselves…

UK Games Fund

We’d better start with the big news. We recently received a grant from the UK Games Fund to further develop our game prototype. This of course meant some of what we had planned for January needed to go on hold, and instead, we needed to sit down and think through the best ways to use that money. We decided we’ll use it to build some of the missing things that require the most help from outside of our small two-man company, setting things up for level editing & modding support, and dealing with our interactive story introduction and tutorial, which will require good amount of animation, motion capture, and of course sound…

Updating the tech

To get started with this plan we realised it’s time to get our tech up to the latest versions. We’ve been in limbo with the old Unity 4 this far, as we knew the upgrade would require roughly a week of rewriting and refactoring of code due to the way Unity does some things changing significantly. The upgrade also required us to update the sound engine we are using, Wwise. And to do that we needed to get our sound designer to come along and make sure everything is still working like it should.

So, now that’s done, we are running latest Wwise, compatible with Unity 5, and also with the support for building audio for Linux. On top of that we also got our sound banks changed to a better compressed format, shrinking the game builds from around 1.2GB down to less than 400MB. That’s going to make things a lot easier to send over the Internet…


With Wwise up to date we finally had a chance to look at Unity itself. Moving things from one major game engine version to next one isn’t the simplest of tasks, and there are limits to what Unity’s automatic migration tools can do. We ended creating a separate copy of the project and testing different approaches to figure out the exact route we’d need to take to get everything running. A few days fiddling, hours of carefully reading through Unity’s change lists and a couple of tries later, thousands of compile errors in our Unity console had narrowed down to few warnings and things were good to go on the main project.

The main hurdle was dealing with any plugins we had around, sadly Unity doesn’t have much for package management or version control for them yet, so lots of the upgrades were a question of searching for any plugin files, deleting it from the project and importing it back again, moving things around by hand, and generally just guessing and trying until they were all running again.

There were also plenty of new changes from Unity’s side, inverse kinematics needed to be handled in different way so our character controller scripts needed a bit of reorganising. There were a good few simple fixes, things like level loading, and how transparency is handled in shaders, had changed and just needed us tickling a few lines here and there. However what created a bit more difficulty was that the way fog is handled is quite different now, and the shader effect we used for our data view relied on reading Unity’s fog settings to fade the data view out over distance. With a bit more research we now have new version of that shader, this time just calculating the distance from camera to which ever vertex it’s drawing on screen. Seems to look even better than what we had before so that was definitely worth having to rethink the effect and shader mechanics.

…and of course the light and lightmaps changed, as did navigation and occlusion culling and everything else. So all of those systems had to be re-tweaked and baked again to get things moving and looking like they should.



So after all that, things are now more or less up and running with the new engine version, and we are finally able to benefit from all the new features and improvements in Unity 5. There are a few issues that still need ironing out, the small differences in physics require adjusting things here and there, and we’ll probably want to redo our lights and take a better look at our camera settings at some point. But we’ll get those sorted out over time, and new Unity features like multi-scene editing are already making our life easier. And of course things will only get better when we have time to update our rendering setup and other camera effects to get all the benefits of Unity 5’s new lights and visuals.

(And with the sound engine up to date we can now finally make the Linux builds *WITH SOUND* that we’ve been promising all this time. That alone makes the upgrade worth it…)

Lua everywhere

Our old mission system relied on a bunch of custom C# code all around various objects and components in the level - a quick and dirty prototype hack essentially. Not the best setup even from our point of view, but completely impossible for doing any level editing support. The plan was to restructure all that into a single script, but to make things even better we decided to build it with the future modders and level creators in mind.
We always had the plan of using Lua scripts in data to allow triggering custom behaviours and reactions when the files are sent to different characters and devices. So if there’s going to be Lua support in the project, why not build the level & mission scripts around it as well? After all it’s an easy-to-read way of defining any data and at the same time a very flexible language for scripting even complicated mission progressions.


We’ve used another Lua integration package before, but for Off Grid we ended up picking up the very nice MoonSharp. Setting things up was a breeze, and we now have the first version of Lua-based mission scripting working. The long-term plan is to also allow defining most of the character spawn locations, items and data used in levels etc. in the same file, so that’s what we’ll try to get running this next month.


Oh, and while doing that, we also got the Lua support for any network devices in the game done. So DataPoints now have the option of pointing to a Lua file as well, and when any NetDevice receives the file it can run the Lua script to trigger different things. That has already ended up being part of the new way missions are running, but we’ll definitely find more interesting ways of using the feature (TROJAN anyone?!). And obviously connecting that with the AI to trigger character behaviours is on the plans as well, although we’ll have to see if it gets done in the next sprint as part of the level editing/modding work or if we’ll have to work on it a bit later.

Setting up a story


Hopefully the test base for the Lua and modding features will be (at least partially) building the interactive intro with the modding tools. Those of you who have played the early incarnations of the demo will remember the little storyboard/animatic at the beginning. Well, here it is in the flesh, sitting in Unity and waiting to be brought to life!



We spent a some of this last sprint setting up the Apartment scene, cleaning up models and lighting it. there is still a long way to go, but it’s great to see this new scene starting to take shape, we can’t wait to throw some code on all the objects in here!

…and then some small stuff:


Encrypting data files will now automatically generate proper encrypted-looking content, with all the PGP version tags and such in place. This means we don’t have to type all that random stuff by hand any more, and of course it’s also required for any dynamically-created data, like the procedural text messages we are sending to our NPCs…

That’s it for this time, we’ll be back in a month’s time, hopefully with some more news about how our level editing & modding tools and intro/tutorial scene are coming along!

Friday, 11 December 2015

Off Grid Sprint Update 11.12.2015 - File transfers



Our last sprint was mainly about building the simulation of mobile and wireless networks, how devices connect to them, and converting all out existing data systems to send the data through these networks. But of course the goal wasn’t just for the existing things to work with the networks, there was a bigger reason why we needed to build that simulation…

Monday, 8 December 2014

not a bad day...



Today’s progress: Improved framerate by 10-15 FPS, reduced build size from 2.2GB to 1.1GB, fixed video playback problems we’ve been having and added keyboard controls to the game.  Didn’t get much work done on the data mechanics that were on today’s schedule but still not a bad day…

Friday, 18 July 2014

Who needs a shotgun?

Right after the Kill Screen article we got an e-mail from Andrew Webster asking some questions about our game’s backgrounds and some of the design choices we’ve made. And a few days later this article made it’s appearance on The Verge:

http://www.theverge.com/2014/7/18/5915621/off-grid-privacy-game