Showing posts with label gamedev. Show all posts
Showing posts with label gamedev. Show all posts

Thursday, 3 April 2025

Get involved in playtesting OGRT!

As we announced in our last update back in October, we are developing an experimental subgame, Off Grid: Red Team (OGRT), and playtesting is now currently in progress.  Do you want to join in?



Here's some feedback from some of our early playtesters:



Just finished the game, and it really is amazing, as I said before the interactions with the browser were amazing, the only thing I have to note about the interactions aside from some specific issues that i will report in the forum channel was the lack of forum posts, and i hope that changes



“The gameplay is pretty good, I enjoyed it. I also like the element with real websites—I got tripped up a few times, but that was down to my lack of attention to detail. I was a bit gutted when it came to an end.”


"OGRT isn’t just engaging—it’s successfully challenging players to think like an attacker!"


Why We’re Building This  


OGRT is more than just a game—it’s a new approach to cybersecurity education. Our goal is to demonstrate how immersive gameplay can teach real-world security skills and help players develop an attacker mindset.  


Through interactive challenges and real-world-inspired mechanics, players are introduced to core cybersecurity principles in a hands-on way. Looking ahead, we see OGRT as a stepping stone into vocational training, mentorship programs, and even career pathways for those who develop problem-solving skills in this space, but also first an foremost, a fun and engaging experience. Games are systems we enjoy learning, we think we cna do something interesting here by layering in some real learnings that you take away as you enjoy exploring the OFF GRID world.  




Playtest OffGrid Red Team, sign up here!


We’ll be sharing more updates as we continue developing OGRT, and we appreciate your ongoing support—your backing has made this possible.  


Who’s Supporting Us  


This work wouldn’t be possible without the support of Ufi VocTech Trust a leading organization committed to transforming vocational learning through technology.  


Ufi’s mission is to improve access to lifelong learning, particularly in digital and technical skills. Their backing has helped us take OGRT from an experimental concept to a fully functional prototype, allowing us to explore how games can act as a bridge to practical cybersecurity education.  


To learn more about Ufi’s work, visit https://www.ufi.co.uk  


Off Grid Ongoing Development


Since October, significant progress has been made in refining the OffGrid world. One of the biggest milestones is the complete overhaul of the intro level, setting the stage for a more immersive experience.



The exterior environments of the first two levels have undergone a full rework, bringing them closer to the final vision.

The LevelKit has also been expanded with more modular assets, making it easier for both developers and modders to craft new environments.



Additionally, new environments—such as underground parking, maintenance hallways, laboratories, and garages—have been created using fresh assets.

The first iterations of improved lighting in the workplace level are underway, enhancing the game’s atmosphere. On the next update those of you who are part of our "Pentesters First Access" program can **expect a major upgrade** on that front, we are looking forward to seeing what you think!



Before we go we also want to let you know that we deepened the environmental storytelling you’ll experience in OffGrid, increasing the connection between players and narrative through the world itself. Overall, these updates mark a huge step forward in shaping a richer, more immersive game.


We'll keep cracking on, content is coming along, and we'll have a game for you as soon as we can. As always thanks for your persisting patience and support folks, it means a lot to us.


Best,

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, 1 November 2018

ONE WEEK TO GO!

SEVEN DAYS.

The one week countdown begins….

OFF GRID is 82.73% funded today (£16,546) and there is just one week left in the campaign!

That means there is £3454 left to raise within the next seven days - that’s under £500/day! 

We can do it.  Help us smash it!

All or nothing.


Kickstarter campaigns are all-or-nothing:
  either we hit our goal, get the funding, and everyone gets their rewards, OR we fall short, and backers get their money back without the rewards.  <-- We do not want that to happen. 

You want your rewards.  We need the funding to get them to you.  Help us make it happen!

If you have been thinking:

“There’s a group I should really post this in... “  Do it.
 
“I have a mate that would really like this.”   Tell them. 

“I don’t have a big following, my tweet won’t matter.”   It totally matters! 

“Having a name in the game would be a super cool gift.”  YES IT IS! 

“I’d really like the goods in the next tier..”  Up your pledge!

“Could this be a good use for my bitcoin riches?”  Definitely. 100%.
 
“I wonder what being a character in a video game would feel like?”  This is your chance to find out!  Go on!

Now is the time.  Together we can do this! 

To everyone that has backed OFF GRID so far:  THANK YOU!  Your support means *everything* to us!  

LET'S DO THIS!

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, 9 October 2018

OFF GRID IS LIVE ON KICKSTARTER!

The moment we've all been waiting for:  Off Grid is now LIVE ON KICKSTARTER!

That means you now have the opportunity to:

-PLAY A FREE DEMO OF OFF GRID
-Secure your copy from as little as £8 (the SUPER EARLY BIRD deal is a steal!)
-Get your name or handle in the game
-Help shape the game via our FIRST ACCESS program (back at the PENTESTER level)
-Snag some official OFF GRID merch!



We are SO excited to bring you Off Grid!   To play the demo, visit the kickstarter campaign page and follow the link to the demo!

Help us make noise! 

Here's all the links you need: 


Website: http://offgridthegame.com/

DevBlog:  https://offgridthegame.blogspot.com/

Steam:  https://store.steampowered.com/app/526720/Off_Grid/

Kickstarter:  http://offgridthegame.com/kickstarter


Tweet suggestions: 


Support OFF GRID:  A game about data privacy and mass surveillance.

Launching on #kickstarter today with playable demo!
http://offgridthegame.com/kickstarter
#offgridthegame

OFF GRID: A stealth hacking adventure where data is your most powerful weapon.
LIVE ON KICKSTARTER TODAY!
http://offgridthegame.com/kickstarter
#offgridthegame

Hack like you have to.  Game the system.  Don't get caught - your daughter needs you.
Support @OffGridTheGame on Kickstarter TODAY!  LIVE AT 4PM BST!
http://offgridthegame.com/kickstarter
#offgridthegame



Thank you!

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!

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!

Monday, 8 October 2018


That's right, in just over 24 hours, Off Grid will be live on Kickstarter!

Launching on Tuesday, October 9th, you will have the opportunity to:

-PLAY A FREE DEMO of Off Grid
-Secure your copy from as little as £8 (SUPER EARLY BIRD!)
-Get your name or handle in the game
-Help shape the game via our FIRST ACCESS program!

...and much more!



The campaign goes live at 4pm BST. 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!

THANK YOU 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!

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

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, 5 July 2017

Off Grid Sprint Update 05.07.2017 - Modder-dod-a-ding-dong

We have spent the month hard at working putting together new changes to the game’s interface and the modding tools. We have also brought our wiki documentation forward so that it is usable because we have had our first modder working with us this month!

Our First Modder

We were lucky enough to be contacted out of the blue by Dominic who goes to college not far away from the studio and was looking for a place he could do work experience at a games studio. We jumped at the chance as many of us got our first breaks in life through being bold and asking
for work on a whim and we were glad to be able to offer the opportunity.

Dominic has been testing our modding tools and helping write up documentation on our wiki on how to use them this last week, but we’ll let him tell you what he has been up to…

Wednesday, 29 March 2017

Off Grid sprint update 29.03.2017 A(door)able Conversation

Hello and Welcome!

Dear future players, fans, diehard readers, friends, and fellow indie game lovers, please open your ears, blink your eyes, wiggle your fingers, and get ready to mark your calendars:
Behold, BOnUS STaGe!!!




Bonus Stage is a showcase of independently made video games happening in Loading Bar, Dalston, all day on the 2nd April 2017 (this Sunday!!!).
We’re chuffed to have been invited to take part and are super excited to get our game into even more hands!  Come along - it’s totally free and is a sweet opportunity to get your hands on these great games, meet the developers behind them, and score yourself some swag.
The event is part of the wider London Games Festival, and is one of many fringe events taking place throughout the capital at the moment.

Behind the scenes

Working in the shadows
We have had an extra stealthy member of the team working hard in the background for the last few months.  Her name is Sarah and she’s a bit of a low key operator, but she has recently resurfaced on Twitter herself, and so it seems like the opportune time to shout about how awesome she is and welcome her into the fold.  She’s been helping to fine tune the Semaeopus machine and is taking charge of our social media.   You’ll be hearing a lot more from her as development progresses!  

Under the surface
The team has been shaving away at a whole slew of different tasks, but sometimes it’s easy to forget all the foundational work that goes on under the surface. This time in a project, where you are breaking through from systems and mechanics​ to content and full production comes with an array of different challenges for small teams. Obviously there is the transition of roles and responsibilities as the day-to-day for everyone starts to change shape, and there are considerations of resources, not least scaling up the staff themselves to handle the increased workload that full scale content production inevitably​ brings.
There is also discipline, and finding who is going to own the responsibility for ensuring each team member stays rigidly on task; the amount of jobs to do increases and therefore so does the surface rates for distractions, rabbit holes and scope creep. We do a fairly good job of managing this with our agile approach where everyone has to take responsibility for the next sprints work.
Among the accounts, production and secret biz dev we can’t really talk about, there’s been some great progress and good fun happening over the last month.  Lots of level design going on:



And we finally received our Perception Neuron to do our own mo cap and get some more animations in our bank!  The team couldn’t wait to open it up and start trying it out.  Here’s a couple different interpretations of the ‘T pose’ during calibration :)


The New Door System

This sprint Harry’s been refactoring the door system.
Doors in games can be a never ending source of complexity and problems.
We’d highly recommend Liz England’s hilarous article on Gamasutra
Our new door system had the following requirements:
1.  Doors must have the ability to be hacked (therefore require a network connection)
2.  Door scanners must use NFC connections for key validation
3.  Doors must be easy to set up in LevelKit with only a few variables to tweak
Our old system relied on the idea of “Access Levels” - depending on the player or NPC’s access level, they’d be allowed through the door.
Our new system uses the idea of “Zones.”  Multiple doors can belong to a zone and multiple keys can unlock a zone.
When placing a door prefab down in LevelKit, there’s a zone variable to fill in on the ‘Door’ component.




As you can see in the above example, the door is part of the “Delivery” Zone, the Zone component is the only value you’ll need to change in the Level.
Now lets take a look at the mission script changes!
Here’s the door section in one of our in development missions:




So let’s break it down a little.
Section 1: This sets up the network that the door system will use. It’s required for us to send data when keys are used to validate a door scanner.

Section 2: This code is setting up the Zones and which keys unlock them, for example. Anyone with the “Admin” key will have access to all the doors in the last 4 Zones.

Section 3: So this part is a little bit more complicated, but stay with us! :)
It’s all very well and good setting up these zones and their keys.  But how does the player ever get them?

This is what section 3 is doing. IDcard01 is an interactable mission object.



Once “SetKeyOnDevice” is called, the key data file will be transferred over when the player interacts with (In this case scans) the card.
We also have “Doors.AssignKeyToCharacter()“ to directly send the key data file to a character.
This isn’t all that’s in our new door system, you’ll have to pick up a copy of the LevelKit to find out more details! :D

Conversations

If you’ve had a chance to play Off Grid this far, you might remember there being some points in the game where you are faced with an endless stream of long text messages, either telling you what you should be doing, or providing background information about why you are doing it. And you might also remember us mentioning that we were aware that this wasn’t really working as well we’d like…

From game design perspective, that had a few big problems. First of all, the player is often busy trying to do something else, and message notifications popping up in the corner of the screen are probably the least important thing you feel you should be paying attention to (well, might be the
same thing in real life as well…). To make it even worse, even the players who were kind of interested in the story seemed to just doze off after few long messages! Switching to the Pause menu and reading though the old messages one by one was also a bit cumbersome way for following what really is a longer piece of info, but had to be split to small enough separate pieces in order to work as text messages.

Finally, the worst of all, reading long pieces of text means that the player is not actually actively doing anything, you are not really *playing* the game at that point. While some people enjoy taking their time to read through game lore, many don’t. And when people started ignoring the messages because of this, we lost our means for communicating to the player what their objectives in the level are, what they should be trying to do, and where they should be trying to head.

Well, for a long time now, we’ve also had a plan for how to solve these problems. How about turning all that into something the player can actually actively be part of? Changing the monologue of text coming from other characters into a conversation where the player is taking part, and can make actual choices as well. Not exactly a new idea, we admit, but we are making a game where all the data sent around you is tracked, and is simulated on the level of devices sending it though networks and so on, which made things a bit more complex and also meant we couldn’t just grab some existing dialogue system and instead had to design our own. Last month we were talking a bit more about the design side of things, and now we’ve turned those designs into something that actually works!
Lua Conversations
Our new conversation system is completely scripted in lua, it hooks into our existing apis and allows for some really fun state tracking.
Here’s an example of a simple conversation between Joe and Jen discussing what they’ll have for dinner.




Conversation scripts hook into your mission script seamlessly, all you need to do is list the short names for the characters from your mission and we’ll get the full name for displaying in the UI.
As you can see above, the begin function is called automatically. From then on, it’s up to you to fill in the message queue as you see fit.

Normal messages simply use the Send function. The first argument is the character the message is from, the second argument is the content of the message.
We also have support for dynamic messages, as you can see on line 21. If user provides a function that returns a string as the content, then we’ll call if when Send is called. This allows you to make some messages procedural.

To set up selectable responses from the player, the user can call the SendResponse function, listing up to 4 responses.
The first part of each response is the text that appears in the conversation log, the second part is a reference to the function to call once that option is selected, this allows the conversation to branch.
Here’s some examples of what that conversation looks like in game :)





We’ll keep hold of your on-line conversations…
One extra benefit from conversations over individual messages is that we were also able to  change how our Message history page (in the game’s Pause menu) looks and behaves. Instead of displaying individual messages for the player to read one at a time, we can now easily group all the messages from a conversation together. And this makes it much, much easier for the player to follow what was said and to find the important pieces of information. It also means that there are less entries in that menu, one per each conversation instead of one per each message, so finding the right chat to read should be a lot easier as well.

On the technical side there’s nothing too complicated here, at least for now the log really is just a log of the conversation text itself, and who said what, so we are not logging the actual data sent around or anything like that. Maybe in the future, if we find a good reason to do so. The only reason why we couldn’t just grab the data directly from the conversation Lua script and instead needed to log it as the conversation went on was making sure we save the replies the player actually selected during the conversation.



Missions between missions
So, that’s the old SMS system replaced. And we could have stopped there… But there are times where it just feels odd that the player would just show up on some location, completely without having any information or reasoning beforehands, and everything is just explained when you get there. Surely the people sending you on a mission would at least tell you *something* first to prepare you for what you need to deal with.

So, we made you able to run the conversations in our map screen as well. And it’s not just a chat, the conversations there are actually ran as missions, with all the same rules and effects on the overall game progression as the “normal” missions have. The only difference is we just run the mission & the conversation right there while you are looking at the map instead of loading actual level.




This is even more useful when you think about having some user-made levels, or even complete new stories. You can use the map screen conversations to introduce your own story, to prepare the player for a new mission, to debrief after completing one, and also as a midpoint in your story, something that can serve as a choice between branching story lines and different available missions. And because they use the same mission system, the choices made in the map screen missions can carry on in your save games, and work for long-term progression, affecting things in later conversations and missions. Or, really, whatever the level creators can come up with, it will all be available in the Lua API so if you want your smart water bottle to know what you said to someone few levels earlier, now you can. (What? Smart devices around you logging your behaviour? That would never happen in real life!).

Artist on the run

We have some more good news - we have officially been joined by artist Rob Ramsay!  Maybe you spotted him earlier?  He was the T-pose tea drinker in the mo cap photo above - we like his sense of humor! :)  Here’s a little update from him on what he’s been working on:

Processing 3d models from reference for Off Grid
This is my first blogpost for Semaeopus, and for Off Grid. As an artist with a keen eye for attention to detail and working as methodically as possible I am tasked with making the environment art and props, an specifically making it all fit into the LevelKit setup that the team has for making it easy fro modders to produce new levels.

The process involves looking at reference material and making props that snap to a 20cm grid with extendable parts and components, which in turn allow for the making of custom prefabs and larger props that can be placed into the game.
For example, this sprint we have been producing the model parts of the hangars for the Harbour, which was a case of checking out the reference material and deciding how the parts break down, into walls, roof parts, edges, guttering and internal frame supports.



Above, you can see the parts to make walls and doorways for the hangar have been made with various smaller peices that can be used to extend to almost any multiple of 20cm. In respect of this, the pattern of the walls also had to comply with 20cm.

Each part has a material assigned along with vertex colouring that are predefined from the art document; for example, aluminuim as a metallic-vertex material and plastic as a specular-vertex material. This is currently internal documetation, but there is a future plan for a community wiki with more detail on how anyone can structure making assets for Off Grid.

Another thing that has to be considered when making parts is where the pivots or origins are for each prop. Ideally, they would be at a bottom corner landing on the 20cm grid, this way parts can be rotated and placed together, snapping into place.

A good example of this is how the railings and platforms for internal industrial style walkways containing all kinds of parts that can be assembled to make prefabs.



Here are these parts constructed into a usable prefab that can be placed around any industrial setting:




Each part that is imported is given some kind of collision mesh, and collections are made that will be later used to present to modders who want to know what parts connect together.
Here are 3 examples of some of the collections made so far:




Eventually all of these collections are placed into a collections scene that we can use internally, and will prove useful for future modders to browse, understand and implement.
As you can see, there is a lot of flexibility and we are looking forward to what you all come up with!  ;)

That’s all for now

But don’t forget - come to BONUS STAGE on Sunday and play Off Grid!

Saturday, 28 January 2017

Sprint Update - 27.01.17 - Voron-Oi-Oi-Oi

Hello folks!  We hope you have had a good start to 2017 and are fully recovered from the post holiday slump! It has been a pretty busy start to the year for us. We have built a whole new system for mission selection, added new characters and missions, and all the while been busing doing release planning and following up on biz dev.

Rigi.py



We rigged up a new character and have been working up some new content.
There is a fantastic python script available to take the standard Rigify add-on in blender. It gives you the ability to to switch between the tools needed for animating in Blender and alternatively stripping the export down to just what is needed for importing into Mecanim for setting up with Unity’s humanoid system. We won’t say any more but if you use Rigify and Unity this will make your life sooo much easier!

You can grab the script from here:
https://github.com/trynyty/Rigify_DeformBones/blob/master/Rigify4Mecanim.py

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!

Tuesday, 23 June 2015

Sprint Update 23.6.2015 - A.I. Guards have needs too!

Once again we’ve had a longer sprint, with plenty of new things and changes added to the game.



Motivational breaks

This sprint we’ve been working on adding a bit more depth to our artificial intelligence. The idea is that based on character personalities, they have different needs and default values, keeping track of their motivation, alertness, amount of coffee needed for them to stay awake and so on.
So, to start building complexity, our AI guards will now keep track of their current motivation level, decreasing it slowly as they do their normal, boring patrol duty. And once the motivation level reaches zero, they really don’t feel like patrolling any more and instead decide that it’s time for a short break.

Monday, 9 February 2015

Sprint Update 09.02.2015 - XML Heaven

Some nice progress on editor tools and paving the way for player modding of NPCs and data content in the game…and we managed to get out of the proverbial ‘indie-office’ (our sofas, indie co-working, London Gamespace etc.) and into the real world for a bit too!

The Future of the Darknet