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!

No comments: