Tumgik
offgridthegame · 6 years
Text
Sprint Round Up - 18.06.18 - Cheat to complete!
This sprint included a major milestone... playing the game from start to finish!  :D
Tumblr media
That may be stretching the truth a bit, and included a bit of cheat... but here’s the detail on that, along with the rest of our work this sprint:
Stub-out of all levels
Stubbed out the game's level sequence and the logic that ties it all together then threw in a completion hack to 'play' the game end-to-end
- Made stub grey box rooms for all remaining levels - Created completeable mission scripts for missing levels - Created level.json and preconditions to make all levels tie together and the game "completeable" - Added dev laptop to all levels and added setting in the device so you can ‘hack’ the laptop to complete the mission. - Made a couple fo test builds and made sure the game is fully ‘completeable’ end-to-end.
Save System
- Set up save files to save persistent data (to last throughout a play-through, rather than just during missions)
Devices
- Added functionality to mission and device scripts to enable state to be saved. - Refactored devices to work towards formalising their operations, and allow for more modding potential.
Updating to Unity 2018 (and everything else)
Unity update, and updated just about everything else to latest versions at the same time. - Updated Unity project to run on 2018.1 - Sound engine & Unity integration updated to Wwise 2017.2.4 - Updated ReWired to 1.1.14.4 - Updated PostProcessing stack to v2      - also updated our settings system and postprocessing profiles to work with the new system - Updated Cinemachine - Added ProBuilder and Text Mesh Pro to project (giving nicer tools for modders since you can build things inside Unity instead of being limited to our levelkit pieces or using external 3D software to build things with)
App System
Needed to undergo some refactoring to ensure full functionality, this has meant a bit of digging around
Bug fixing
- Fixed a Mac path problem that was preventing levelkit work being done on Mac - Fixed a shader used in harbour that was using a deprecated function - Added workaround for Unity not handling nested Canvas Groups correctly (to fix issues with invisible selectable buttons in main menu screen) - Fixed level loading from mods (built-in levels and ones added as mods have a different path for level.json which needed to be taken into account when looking for available levels) Sprint complete!  Thanks for following along with us. 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!
1 note · View note
offgridthegame · 6 years
Text
Sorting out motivational issues
Hello!  It’s Pontus here this time. You've already read about us recently making a trip to USA for GDC and PAX, and about the push for new content and polish we did before that.  As things go, that kind of quick development tends to mean lots of new stuff is added at the last minute, and sometimes maybe not tested in every possible situation.  Or there's a good chance there are some odd bugs and things that only appear after a while, or in very specific conditions.  Things that in the long term would get noticed, added to our bug list, and eventually fixed... but in a 4-week rush, things sometimes go less than perfectly and some features might end up being a bit buggy.
In multiple ways, sometimes.
Most of my sprint was spent on fixing biggest issues we found in our PAX build, and most of that didn't end being much to talk about.  But one of the bugs ended being a bit more interesting to figure out, and while I'd usually prefer talking about design, I though some insight on this side of game development could still have some value.  So, this is going to be more or less accurate story of our guards not behaving as intended, as I saw the issue through bug reports on our Jira board, and watching people play the game & testing things myself afterwards trying to figure out what exactly was going wrong.  And also a nice example of how the most obvious explanation often isn't quite true!
There's something wrong with our guards
So, the first thing I heard was one of the other team members saying our guards were sinking to the floor, in t-pose (which is basically a clean starting pose used for character animation, standing with your arms at 90 degree angle to your sides). Not what you'd want to see in the game, but my immediate guess was that there's just a missing animation file somewhere, which would be easy enough to open the animation tree, figure out what's missing, drop the file in, and it's fine.
Tumblr media
The second problem, which was noticed during PAX, was that sometimes the guards just seemed to stare straight at the player, but not actually react in any way. Of course there's a distance check for how far away they can see you, and also the lights and shadows affect the player visibility, so it's not so easy to say for sure. But it seemed like they should have spotted the player.
So we did what you do when demoing a game at events, not being able to open Unity and debugger... we watched people playing it and noticed some things.
The guards seemed to work fine, until they went for a coffee break. When they did, they sometimes seemed to continue drinking coffee, either just spending the rest of their working day hanging around the vending machines sipping coffee, or sometimes taking their coffee with them, going to patrol but constantly stopping to sip a bit more from their cups. (Actually, that sounds pretty realistic! :D  Sadly it didn't look great, and wasn't the behavior we wanted from them. And they didn't bother to chase the player any more, which is less than optimal for a stealth game).
Tumblr media
So, more info added to to Jira bug reports, and since we had just added the animations and related AI actions for the guards to do the coffee breaks (rather than just standing next to the vending machine for a bit to "take a break", something missing in the animation tree and probably in the AI action seemed a pretty likely explanation).  Now I just had to survive people running into same issues over and over again until the PAX weekend was over and I was back at my desk with Unity again.  Always great to see your work being broken again and again without being able to do anything about it!  :D
Debugging and fixing the bug
The first thing I did was open a scene with few guards and a vending machine in it, and just let the game run with error log open to see if I could observe the same issues, and if there were any useful errors.
After half a day, I hadn't seen the "t-pose through floor" issue, but I definitely did notice the guards gave up their work day around the first coffee break.  Sadly no useful errors appeared, and even with our AI tools open everything seemed fine, the guards took a break, and returned to patrol (based on what AI was doing), yet on-screen they stayed drinking coffee instead.
So, maybe we were right about animation issues. Time to open the Animator window.
Tumblr media
(not the exact Animator setup I was facing, this screenshot is from earlier in sprint so it's missing some gestures we added later)
The states seemed OK, we were triggering a "gesture" with a number code to tell which gesture to play. It would then play one of the states, check for when the animation has completed, and then tell our animation controller script it's done. There are some issues with that, which I'll get into a bit later, but at least that should work for the guards to complete the gesture and get back to patrol. So I needed some other explanation.
...Half a day more of staring at the guards walking around the level, with various logs and inspector windows open, trying to see what could be wrong.  And then I noticed it.  The AI takes breaks when it runs out of "motivation."  Motivation in this case is pretty much just a number we track, decreasing it a bit for every boring task they do, and then when it reaches 0, we tell the AI it wants to take a break, which will then restore the motivation.  But for some reason it wasn't being restored. The guards would go for the coffee break, but somehow the coffee wasn't refreshing them at all, so they kept drinking more, and more, and more!
It turns out the gesture system was telling the animation system that it was done playing the gesture, but nothing was informing the rest of the AI that it's fine, you've completed your gesture action. So, with a few more lines of code the guards were now returning to patrol after few sips of coffee to refresh themselves.
Kind of.  They were indeed returning to patrol, but would still sometimes keep staring at the player in front of them like you were invisible. Or happily drink their coffee as if they were thinking that the odd guy running around the office building in the middle of the night was someone else's problem during their coffee break. And that's where the aforementioned problem with the gesture animation setup comes to play. The characters would start the gesture, then go through the animations, and then tell the AI to complete the action and start doing something else.  But what if the player walk past the guard while he is in middle of the gesture?  We needed to add a way to break them away at any point if the AI tells there's something more important to do:
Tumblr media
Slight pain to set up, but basically, every single animation state needs to have two exit transitions, one for when the animation completes normally, and other that can be triggered by the AI and set up to immediately interrupt everything and exit the gestures tree.
This seemed to work:  I ran around the guards, interrupting them in different ways and at different times during their breaks, and they now reacted immediately, dropped their coffee cups, and started chasing me.  Bug fixed!
...or more debugging and fixing more bugs.
While doing some final testing to confirm the bug was now gone, I somehow got the guards even more confused.  Now they were correctly reacting to me and starting the chase, but then sometimes just ended up stopping in middle of everything, with their AI not able to figure out what to do.
Tumblr media
That was odd, as based on the logs, the guard was happily chasing the player, waiting for the chance to fire his taser (probably with a grin on his face even though our characters in general don't have mouths!).  He lost the sight of the player, so he made an estimate where the player might be, but couldn't find anything.  And then it all goes wrong.  At that point, the guards should go into search mode, where they select a bunch of search points from the level around them, then jog to each of those locations looking for the player, and after doing this for a while decide the player must have disappeared and return to normal patrol.  But sometimes the guards would just completely give up instead - the AI not being able to come up with any sensible plan left the character frozen in place.
So I spent another hour running around the level, trying to get the guard to see me, and then trying to escape him in different ways and in different places, looking for some kind of pattern at least.  Let's just say it's not easy - the guards are pretty good at catching you.  Eventually, I noticed that this only happened sometimes (but not always) when I was running up the stairs from our test scene lobby. To be fair, that's just about the only way I could actually escape from the guards in that level, so it took a while before I even started considering that the stairs might have something to do with it.  And of course, verifying that as the reason was even harder, since now it wasn't enough to get the guards to see me and then escape, but I also had to make that happen so I'd escape exactly at right time while running in the stairs, with enough distance between me and the guard.
Tumblr media
Indeed, that ended up being the very specific situation which was triggering the AI confusion.  I probably would have never even ran into it if I hadn't spent that much time testing for the animation/AI/coffee break issue in the same level.  After some nosing around in our code, I found an old hack we had put in place earlier to prevent the guards from using stairs (we had some issues with bit too steep incline on some stairs earlier, but the limitation should have been removed already).  I found a line of code that was pretty much saying “if your target is more than 2 meters above or below you, you can't go there.”  And, annoyingly, it was doing it bit too late to really work nicely to start with, so the AI had already set the target and planned for it, and then that line was just saying that the plan can't be done. Not that the AI would have any other plan to work with, so all it could do was throw its hands up in the air (metaphorically, although I'd really like to actually add an animation for that in the game!) and give up.
Done!
So, after few days, and staring through tons of code, and carefully observing the Animator trees, and our AI inspector, and tracking values in the code, what we thought was one bug somewhere messing up the guards and making them not see the player (and maybe play wrong animations) it actually ended being a bunch of separate issues that all just happened to surface at the same time, plus one more which I only found because of all the testing I had to do to figure out the others.
As for the "Sinking into floor in T-pose" bug I started with?  I was never able to replicate it.  Not a single time during all this, even though I even had a screenshot as evidence.  Maybe it was some even more odd glitch, or maybe it was fixed as a side-effect of something else I did, I have no idea.  But I haven't heard any complaints about that happening from the rest of the team either, so I decided to just mark that bug as "fixed" in Jira as well. :D
Also, after getting annoyed about trying to get spotted and escape a very specific situation again and again, while also trying to monitor logs and other stuff, I ended making good use of our Lua apps system, and made one that turns the player invisible. That took about 10 minutes to do, so at least our apps system is showing some great potential here.  I don't see this one being an actual feature in the game for obvious reasons, but it is great tool for testing the levels and debugging AI!
Tumblr media
That's it for now, maybe I'll get to talk about more design-y stuff next time!
Pontus
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!
1 note · View note
offgridthegame · 6 years
Text
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.
Tumblr media
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
1 note · View note
offgridthegame · 6 years
Text
Sprint Round Up - 17.05.18 - A different approach
Hello loyal devlog readers! 
We’be been blogging about for awhile now, and think it’s time we change up the the way we’re approaching it.  There’s SO much going into each development sprint that we want to make it easier to understand what we’ve been doing.  
From here on out, at the end of each sprint, we’ll be putting together a roundup of the development achievements each sprint, and then breaking the detail out into individual posts every week or two.  It means you'll get more regular updates from us, and they should be a bit more bitesized and cover a specific theme or area across the last month of development.
Keep an eye out for Steve’s next post on save systems - coming soon!
Tumblr media
Now for the sprint round up:
Upgrading the App System
Evaluated current app system and how to get it to fit our requirements & designs
We’ll need to change things a bit so the apps are fully controlled by the Lua scripts
Bug fixes and tweaks after PAX & GDC
Screen fade to black moved to UI, removed all old fade systems/code
…so fades now work reliably on player death, level restart/completion etc.
Pause menu scroll bar was misaligned to edge of screen instead of edge of menu
Fixed guards being stuck in wrong animation / AI states after taking breaks
Taking breaks restores motivation correctly (for NPC’s not just us developers)
 Added interrupts in animation system to break out of animation before it completes. (Now the NPC’s don'ät need to finish their coffee before they can start chasing the player)
Fixed guards sometimes not chasing player
…see above. They *tried* but it’s hard to run while also drinking coffee
The AI system for selecting target locations still had some old code that limited target locations within +/- 2 meters vertical from NPC position. When player disappeared out of sight in stairs etc. that stopped the AI from following.
Fixed our build script’s “build all” option only building Windows.
…also made it ask for all the options needed *before* making the builds, not in between each platform. Otherwise the person making the builds can’t go for a coffee while waiting the build to complete ;P
Data view textures and colours conforming (props sucha as paper sheet and some devices had wrong data colour)
Fixing the formating in the text for some devices (Extra tabs in hand dryer description strings)
Sped up first hacking interaction to make gameplay and feedback more immediate (bathroom thermostat start temp to 20C) apostle/basement conversation after server objective not set to secure
Fixing save issues
NFC data now doesnt disappear on load
Saving and loading is now handled correctly
Save data no longer diverges when play is continued.
Fixing Doors!
Set up scannable interaction prefabs properly,
Added frosted strip accross all glass door models for better visibility,
Scanner door prefab not tagged properly (doesn’t work for the Help overlay)
Prop work
Fixed missing files in levelkit source .blend
Updated the vending machine prop to give more detail
Character Rigging
Worked on bringing new characters into the game
Made a start on rigging and set up of some of the older characters with new Colour LUT setup and blend shapes for their body shape
Thanks for reading! 
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!
0 notes
offgridthegame · 6 years
Text
Devblog 30.04.18 - STEAMing Ahead!
As you can probably tell from our other posts on PAX East and GDC, there has been a fair amount of jet setting done for conferences and shows that broke up our regular development rhythm, but that doesn’t mean there hasn’t been a lot of dev work in the interim! 
Now you NPC me, now you don’t
We’ve been working up new characters, ready to populate new levels and keep on with the content push. Below is another harbour worker that Josh has been working on the rig for.
Tumblr media
And of course, thanks to our new character colour setup making use of the colour look up tables we have setup for creating easy variations, means that this character isn’t just a harbour worker, he can have many jobs!
Tumblr media
As you can see above, changing the colour of the character texture swabs is really simple, but highly effective!
Bug Fixes
The nice thing about showing at GDC in a low key way is it made it into a little dry run for PAXEast, where we could discover and fix smaller issues. We worked in and around the fringes most the time - there were a couple fo things to do with level loading, and there were some small tweaks to the lua mission scripts.
Tumblr media
Swag Factory
With the help of a family member who makes custom T-shirts, we setup a swag factory for the day. It’s incredible what you can do with a hot plate and some vinyl!  We used this to experiment with some designs and do some custom one-off prints.
Tumblr media
Here we are with a hoodie being finished on the press.
Tumblr media
We also got 100 of our ‘classic’ Off Grid T-shirt design printed by a larger print shop so that we would have plenty on hand at PAX East. Combined with our custom tees and hoodies this is what the final haul looked like (above). The whole lot came to around 70lbs and had to be packed in two seperate bags to get them on the plane and under the weight limit.
New Trailer
Tumblr media
It’s been a little while coming so hopefully you good folks have been excited to see the new trailer! (It’s been a relief for us to replace the old footage!) If you pay attention to the blog, then there are lots of features and such that this is your first opportunity to get a glimpse at unless you have been lucky enough to play the demo at a conference recently.
Check the trailer out here and give it a thumbsup on youtube!!!
:)
Launching the Steam ‘Coming Soon’ Page
Tumblr media
The other mad rush was to get the game reviewed and approved so we could launch the Steam ‘Coming Soon’ page for PAX.  It’s a fairly straight forward process but there’s a lot of little things you have to get right. Luckily we did in the nick of time and with a little help from some friends over at Valve, the Steam Page went live while we were at PAX.
Please do head on over to the Steam page and have a gander, and remember to:  Wishlist us on Steam now!!!
Wishlisting is important for getting Steam to feature you, and is an interesting marker for how you can predict the kind of range your sales will be in. Recently Jake Birkett wrote an interesting article on Gamasutra that goes into this.
Bonus Stage Returned
We saw the second inaugural Bonus Stage show return once again as part of the London Games Festival. This time we helped organise the event and we also got to return as the previous year’s winners. There were some great games on show including the very moody ‘Beyond Crimson Stars’ (below) by Ben Lunato.
Tumblr media
We had a prize for the audience voted ‘Game of the Show’ again and this time it went to “Black Friday: The Ultimate Shopping Simulator” by Chelsey Webster, congrats Chelsey!
Tumblr media
We’re looking forward to the next Bonus Stage - plans are already afoot!
That’s all for now, more news soon!
0 notes
offgridthegame · 6 years
Text
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).
Tumblr media
Hello Boston!
Tumblr media
^ The setup!
Build up was pretty fun, and Hollie who does all the heavy lifting for organising the stand had done some stellar work to get everything together, not least because UPS lost our shipping pallets with all the banners, computers and gear 24hrs before the show.  She is some kind of supernatural force because she managed to source everything we needed in that time and setup went ahead on schedule. 
Tumblr media
Last minute printing inside the conference centre was a major win.  Rich had worked pretty tirelessly in the build up to the show to get a new trailer ready, setup the ‘Coming Soon’ page on steam and create a fancy QR code poster to take you to it, but not had time to print out handouts for wishlisting. It was relief to add this cherry on top with such convenience!
Tumblr media
^ The team all land!
Off the plane (and after Rich and Steve made the mistake of trying to use the wheelchair-not-so-accessible subway system), we all settled into a much deserved team dinner.
Tumblr media
There were omens that PAXEast was going to be good even before the showfloor opened: our AirBnB had a foam recreation of the Master Sword from Zelda just hanging out in the corner (see above!).
Tumblr media
^The team at our stand (Rich, Pontus & Steve), all set up and ready to go!
Tumblr media
Demoing the game itself was great as always for meeting players and getting feedback. We had a lot of really enthusiastic visitors to our stand and a couple completed the demo too.
The biggest lesson we learned was that the game really does benefit from the creation of an introspective space, and in our case, a chair to sit at.  Our second day dragged and didn’t get as much footfall as our first, but the moment we got a chair in for people to sit and play on, was the moment the quality of the experience for our players visibly increased. Off Grid requires time to understand and enjoy due to its complexity, and something as small as a chair really does help with that.
Tumblr media
Lots of friends were there, Ana and her VR retro game ‘Pixel Ripped’ above.
Tumblr media
As well as our good friends and fellow London Indies, Mike and Angus, who are making the wonderful Pool Panic with Adult Swim games.
Tumblr media
We had some stonking Boston breakfasts and fot a fairly hefty dose of Americana in at the same time. This one was in a tiny old rail carriage.
Tumblr media
There was some of the funniest cosplay we’ve ever seen!  Not sure if this guy was demoing a game or just making a statement.
Tumblr media
We finished up PAX with a celebratory dinner at the Legal Seafood restaurant harbourside (in the Boston Harbour, where the historic Boston Tea Party took place no less).
Tumblr media
We also had a day to take in some sights, which basically involved walking the Freedom Trail (yes, inspired by Steve and Pontus having played Fallout 4 rather than a keen interest U.S. Revolutionary War historical sites). This is not least given away by the fact that we ended our historic tour with the two most important sites to us:
Tumblr media
The bar from the hit TV sitcom ‘Cheers.’
And the bench from Good Will Hunting where Robin Williams’ psychologist character finally makes some progress with Matt Damon’s troubled mathmatical genius.
Tumblr media
PAXEast, thank you so much, you were fun! 10/10, we would def come back!  :) p.s. If you read our previous post about GDC and no kids allowed - no worries here cause PAX East is totally kid friendly!  Hollie and Chris even had their little one, Sofia, working the booth with them over the two days! ;P
0 notes
offgridthegame · 6 years
Text
Marching on to the US of A!
Hello!  We’ve got a whole lot of fun stuff coming up and it’s been a busy few weeks moving the game forward and prepping for all of these exciting things to come.
We’re headed to the US very soon - we’ll be attending GDC in San Francisco all of next week.  It’s the first time any of us from Semaeopus have made the trip over for GDC and we’re looking forward to it.  There’s going to be a few opportunities to get your hands on the latest build during GDC week:
If you’ve got tickets to the SOLD OUT(!) GDC Experience Mixer on Wednesday 21st you’re in luck!   We’ll be there ready and waiting for you to play.
We’ve got a few ‘pitch up and play’ events in our schedule, too - follow @OffGridTheGame + @RichMetson on twitter for updates on when and where.
After GDC, we’re headed to PAX East in Boston from April 5-8th and Off Grid will be showcased as part of Figs & Co! 
Tumblr media
We can’t wait!  If you’re attending, stop by, say hi, and play the game! Rich, Pontus and Steve will all be there ALL FOUR DAYS with our lastest demo at the ready. 
Now, on to all the juicy details on what we’ve been up to and what you might just see while playing the new demo...
Cracking the passwords
Maybe you’ve read the last two dev blog posts, and remember that we’ve been working on collecting social profiles about in-game characters? Nice way of keeping track of the people you’ve met during the game… though of course it’s a bit more than that.  As in real life, such personal information can be used for all kinds of sinister purposes, like social engineering, and identity theft as well. Or, for guessing all kinds of badly chosen passwords and bypassing security questions for different services.
And that’s the last bit of the puzzle for our social profiling, at least for now. We’ve changed our Lua API a bit so now all the network-connected devices in the game can have specific owner, and configured to have passwords that can be guessed if you have collected enough personal information about the owner.
Tumblr media
To make things a bit more interesting, if you have almost but not quite enough metadata about the device’s owner, you still have a chance of guessing the password. And to make sure the player never needs to blindly try every device, we made the targeting UI display some helpful information when targeting a device, telling you straight away if it’s worth a try, or if you already know the password. Or have no idea about the owner and you’d better just leave the device alone and look for a some more information.
To make this work, we modified our remote connection app, and also added new UI that lets the different apps display their own window with some custom content (modder-friendly, of course) on the screen.  And then we used those to set up a password cracking app that uses the collected social profile data automatically.
(The devices still also have the old fully scriptable access check in place, so it’s also possible to configure them to give access based on any files in your inventory, a specific piece of information about a character, time of the day, or really just about what ever people can create with Lua and our modding API…)
Hunting bugs before GDC & PAX East
The rest of the sprint was filled with solving a long list of bugs and annoyances from the game, all the small things that we’ve noticed during the previous times we’ve had people playing the game.  Most of that isn’t too interesting, but there was one worth mentioning:
Early ‘unauthorised’ access
In The Apostle level, we’ve had a laptop with key files to access all the doors in the building hidden in the basement. During EGX 2017, we noticed that one player was actually able to target and hack the laptop through the walls and floors way earlier in the mission than we had planned. The obvious solution would of course have been just blocking it somehow, maybe only connecting the laptop to a network once the player has started the objective for it. But that wouldn’t have been fun, or realistic would it?! We wanted to ensure that players intuitive enough to notice devices that could be hacked early as a shortcut were rewarded...
Tumblr media
Instead we decided to just make sure the mission doesn’t break and still makes sense if someone happens to do this. So we added some new conversations that are triggered in this situation to explain what the player would have missed by skipping few objectives, and then we just let the player take it from there naturally. So now there’s a quite a different alternative progression through the level, which most will probably never find, but those who do can be proud :D
To do this, we realised we needed a few more ways for all the different Lua scripts to work together. They are sandboxed each into their own virtual machine, and can’t talk between reach other directly. So we added new features to our Mission API to allow people to store some custom data there, and access it from other scripts as needed. Simple thing, but allows endless amounts of interesting uses when creating missions and devices!
New assets and a makeover for the Apostle level
With some expos and demos coming up, we’ve been working on creating new props to flesh out our levels a little more, some of which have made their way into the latest build. Josh spent some time set dressing and doing some level tweaks, replacing some of the old whitebox geometry with the new assets he has been creating. The main focus was the delivery room at the beginning of the Apostle level, and the basement server room, both of which look much more lived in now. Here are some of the props that have gone in:
Tumblr media
Intro-ducing
A  major acheivement has been getting the Intro scene into the engine (anyone who has played the demo so far will know that there has been a placeholder animatic made of rendered stills for #QuiteSomeTime).
Rich and Steve worked tirelessley to iron out some fairly fundamental kinks in Unity’s Timeline tool, and with some not insignificant effort, managed to get a combination of mocap, custom events, Wwise audio engine calls combined with Unity audio, a video playing in the middle of it, and the whole thing to work within the frame work of our Lua defined missions. Phew! It’s exhausting just typing it out!
Tumblr media
We’ll look forward to you checking this out soon at a show near you!
AI’s need coffee too
We did a good amount of work making the guards react to and use a variety of devices recently, recorded some new mocap and plugged that in, too. Steve worked on the AI and setup some new gestures for guards so that they can use the device as it should be used (dispensing a nice hot cup of coffee), but also so that they can be caught off guard (no pun intended) by a hacked machine that has been setup to spew steam or chuck coke cans at them (or whatever other amok state a device might have).
Tumblr media
As with any new feature though, we have managed to create a bug or two... Above you can see a guard that’s more interested in finishing their coffee than chasing the player (which kind of fits the whole premise of the game really!).
BONUS STAGE IS BACK
Tumblr media
Remember this?  When we won the trophy at Bonus Stage last April?  We sure do! 
Well... Bonus Stage is back for year two alongside the London Games Fesitval and is now accepting entries!  Be sure to enter by 23rd March.  Rich was asked to help organise it this year, and of course he agreed - it is a great indie showcase that we’re proud to have been part of, and now support!
That’s a wrap for this sprint - look forward to seeing you at GDC or PAX East!
The Off Grid Team
0 notes
offgridthegame · 6 years
Text
Dev Blog - 21.02.18 - Upping our Profilers
It’s devblog time!  Much of February has passed since the last sprint, and in that time, hearts and precious metals were shared across hipchat, though none were valentines from one dev to another, nor sadly, were they photos of our hard-earned Winter Olympic golds.  They were all lowpoly art, handcrafted by our stellar intern Josh, as he helped us prep marketing materials and create props for the game.  He’s been hard at work and done an awesome job for us. Thanks to our multi-cultural dev team, however, we did learn that Valentine’s Day in Finland is celebrated as ‘Friends Day’ - this is a notion we like.  And if you’re wondering, there’s fans of Team GB, Finland, and USA cheering across our virtual office spaces!  :)
Here’s what we’ve been up to:
Drone Patrol
This month, Steve’s spent a lot of time trying to wrap his head around the AI in Off Grid, with some success!  After a significant battle with drones, we coerced them into patroling, alerting the guards to Joe's presence, and then a bit more patroling. Implementing these behaviours helped lead to fixing missed issues with last month's 'NavCloud' work, which was largely theoretical - so it was good to see it working (eventually)!  This was a bigger win than it may sound and lays a good foundation for future AI work, which we’re hoping to build on next month.
Machine of Cinema
We've also incorporated Unity's Cinemachine module into Off Grid. This caters for both cinematic/cut-scene cameras and gameplay cameras.  Our existing cameras have been rebuilt using it, and adding new ones is now trivial.  Worth looking at if you're a Unity developer!
MoCap + Unity Timeline + Cinemachine = <3
There’s been big ol’ heart eyes going on as we’ve been using Unity Timeline to integrate motion capture into an interactive cutscene and recreate our game intro in the engine.  
Tumblr media
Timeline is a fairly big feature and is impressive in how it is extendable.  There have been a few frustrations as we went, though, as there are few key features missing, that seem like they ought to follow on from other elements of the engine - such us the Event triggers in rest of the animation tool set. Not to fear though, nothing we haven’t been able to find a good workaround for!
We are expecting the intro will be in a good enough state to put in the next build of the game in a few weeks time.  It has been great to see the characters coming to life when their animations have been sat in a backup folder for well over 18 months!  Now we can see breakfast being cooked, doors being kicked down and hacktivists being kidnapped in all their lowpoly glory.
Personal Data Records
In the last sprint we did some design work for social engineering, and modifications to our character profiles to make sure we had the data needed in place, so now it was time to actually start building things.
Tumblr media
We've now added a "People" page to our pause menu, displaying all the characters you have found, and all of their background profile information you've learned about them.  As you grab files that contain any metadata about people, the metadata is automatically added to the profiles.  We also converted the character targeting app we did last sprint as a testing tool to display the collected information rather than everything, so you can easily just target any character you see to check what you know about them.  Depending on how big our profiles grow through the game, we might end up limiting that a bit and instead just take you to the pause menu's People-page instead.
Tumblr media
And talking about character changes, we've expanded a bit on our character customization options for level creation purposes (and the profiles at the same time). We've added some blend shapes to character models, ranging from thin to fat, and a "Gluttony" value in character profile files that will change the character model, but can also be used in mission scripting to change how the characters behave. Combined with the colour look-up textures we've added previously, and some clever design choices when building the models, it's possible to get quite a selection of different looking characters from the same base models!
Supporting the cause
As you well know by now, we aren’t just making a game about hacking and data privacy - we want to accurately portray hackers and hacker culture in a way that is too often overlooked in popular media.
Rich talked about this the end of last month when he demoed Off Grid at the CyberSalon Meetup: What is to be done? Games for Social Impact. Joined by Ben Greenaway, Simon Sarginson, and chaired by Rosa Carbo-Mascarell, it was a really in-depth event to get your teeth sunk into. The discussions and presentations roamed from how games address the emotions of surveillance to why simulating a riot in Riot:Civil Unrest can be seen and explored as a simulation and modelling tool in its own right - and how that uniquely quantifies the dynamics and strategies of something so intangible.
With all that said, Monday the 5th of February was a huge victory for justice and an opprtunity for one of the UK’s most eloquent hackers to stand up and cheer! We were incredibly pleased to watch Lauri Love’s extradition case finally be wrapped up this month.  He’s been through a heck of a lot and withstood it with remarkable composure. 
BIG NEWS
^^^ Is on the way!  It is way too hard to keep secrets for so long, but sometimes in life you’ve just got to sit still and keep your lips sealed.  What to say?!  Just keep your eyes peeled - we should have soem big announcements very soon!
Next Month:  See you in San Francisco!
It’s GDC time... and if you’re headed to San Francisco, you will be able to get your hands on our latest demo!!  We’ll let you know when and where - just keep an eye on our social media!
Catch you soon! Rich, Pontus, Steve, Sarah & Josh
0 notes
offgridthegame · 6 years
Text
Dev Blog Post 23.01.2017 - Drones and pwns
S’been a while, eh!
We decided to extend this sprint in the way we often do over christmas so that the team has a bit of time to experiment and perhaps take on a few tasks that require a good bit of thinking time. It’s paid off as usual, and so we have some great developments in the game to share with you with this blogpost. Read on for all the juicy details!
We are all directors now
Tumblr media
We were very secretive some time ago (nearly 2 years back actually!) about how we were in a small set of selected developers given access to an alpha version if some new tools in Unity. Well...
Originally the tools were called ‘Director’, and with a lot of experimentation and some fairly comprehensive bug reporting they eventually became Unity Timeline, which Unity devs have now been enjoying since last summer!  We are now at the point where what we learnt from experimenting with the original Director tools can be put to good use. If you have played the Off Grid demo anywhere, then you will have seen the still frame animatic for the intro level which sets up the story of the game. We had a mocap session to get all this action captured and now that the Timeline tools have matured (and, more importantly, are stable) we are busy pulling this all together. The opening sequence of the game is going to change dramatically over the next couple of builds - how exciting!
To Octree or not to Octree
Steve had one pretty chunky task to do over the past month or so, and it's been getting the drones to be substantially more drone-y.
So far we have worked on the basis that drones are just characters that happen to be hovering, but this means we lose the opportunity to move vertically and get to places that characters can’t, or via routes that they are unable to take. So the task at hand was to remedy this. Navigation meshes are two-dimensional, so we needed to take a new path - navigation volumes!
Tumblr media
Using the magic of octrees, we subdivided each level down to the smallest size that contains no collidables, or down to a single unit cube, whichever is bigger. Then, each cube is tested to see which cubes it is adjacent to, to create a graph representing all the nodes. After that it's simple - run A-Star on the network, and it'll find a route through.
Tumblr media
This will be available to LevelKit, so drones are accessible to all! There's a few tweaks and kinks to work out, but overall it was a really satisfying feature to work on and should really change the way the game plays. You can run, but you can't hide! Well you can hide. It's a stealth game, after all.
Next will be to get them to move in a more dronelike manner, and perhaps optimise the navigation a little. But that may have to wait until after Steve’s put his cameraman hat back on for the upcoming sprint!
So much modding going on!
Josh has been hard at work testing the modding tools and refining his mods. In particular he expanded the museum of hacking he has been making.
Tumblr media
The museum mod, which he initially designed to be just an interior, has expanded to allow for any future hackable devices to be added to it, no matter their size! 
Josh then turned his attention to improving and developing the transport station map. The map has changed quite a bit since whiteboxing and still has a way to go. For a first attempt at a full level mod it is fairly ambitious due to it being a fairly large map with multiple ways to complete the same task.
Tumblr media
The station has grown quite a bit to allow for more room for the guards and the player to navigate. This will also hopefully allow for a more interesting interior and gameplay possibilities.
Originally the apartments around the level were going to be just blocks that looked like apartments, but now some of them interiors to allow the player to find hidden data files or to find some higher ground to plan how they will tackle the mission.
Tumblr media
The trainyard is still very much in progress, but has also changed quite considerably. The main additions to the train yard include a new walkway that allows the player to navigate to all 3 platforms. A warehouse has also been added which will include some puzzle elements for the player to complete. This is replacing the old puzzle element which involved moving the train carriages up and down the tracks as it was a bit clunky and confusing.
Meta-gamedesign
In the last sprint, Pontus redesigned the character profiles and our data files & SMS generation to handle metadata about the character personalities embedded in data files. That's working pretty well, and we already built a quick app for testing this. So it's time to take things a step further, which is why Pontus has spent this sprint working on the game design for how we'll actually handle metadata collection and character profiling as a player experience. And how that will then tie in with adding a password cracking feature when the player connects to a remote (or local...) device using our SSH app.
The basic idea is that as the player collects different data files, the included metadata is automatically used to build a catalogue of character profiles, over time adding knowledge about new characters, and their personal information, their likes and dislikes, and pretty much whatever background info we (or modders) choose to add.
Tumblr media
All the collected information will be available for the player to view at any time as a new tab in the pause menu, so it's directly useful, for example, to try and guess what kind of approach might work best for distracting a specific guard away from your path. In addition to that, the amount of knowledge you have collected about a character is also then used to determine if you'll be able to access devices belonging to that character. After considering calculating the access as a proportion of known metadata VS all existing data about a character, and realising that this would cause a few odd situations, we settled for a fixed limit for access, and allowing this to be set in each device's Lua script so if the same character owns multiple devices, some can have easier, and some more difficult, passwords. We'll likely also add an option for a device to require some specific piece of information instead of some count of any knowledge, but this should be used as a special case option in missions as it requires the mission creator to make sure that exact data is available to the player at the right time.
A fairly interesting side effect of this design is that it is kind of realistic, in the sense that it's going to be easier to collect enough information about characters who have more metadata defined in their profiles. So, the more you share about yourself online and in social media, the easier it is for someone to learn enough about you to start guessing your passwords and to use the knowledge for identity theft and so on. And at the same time characters who have shared less about themselves (or, the mission creator has been more lazy ;)) will be more difficult to learn about, as you are more likely to just run into the same few bits of knowledge rather than learning something new.
Another interesting feature here is that your library of character knowledge will be persistent, so anything you learn about a character in one mission will be carried over to future ones. While this requires us to do a bit of a better job on the UI side to keep things manageable for the player, it also serves to create a longer game play loop, where social engineering can happen over a longer time span than just within a single mission.
Finally, we're probably going to add few different apps for gaining access to devices, in the sense that the one based on knowledge about characters (so, basically just guessing badly chosen passwords through social engineering) is just going to be one of the tools available for the player. We'd also like to include other tools that target specific vulnerabilities on devices, and perhaps a late-game one that just uses a direct access to government-collected data.
Big News
With all that dev news it’s worth pointing out that we have some other big, juicy news coming soon. We are sooooooo close to being able to announce it that the anticipation almost hurts!
You can find the newsletter signup page here!
If you aren’t already on our newsletter, please sign up!  If you are and you have any friends who you think might be interested, then please share and help us reach even more people anticipating the game!
Ta ta for now,
Rich, Pontus, Steve, Sarah and Josh.
0 notes
offgridthegame · 6 years
Text
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...
Tumblr media
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!
0 notes
offgridthegame · 6 years
Text
Off Grid Development blog 8.11.2017 - Changing Times!
The times-they-are-a-changin.’  New horizons, a shake up, big things happening - this has been a heck of a sprint!
Blocktober
Completely unaware of our social media surroundings, Rich managed to spend a good portion of this sprint during October whiteboxing and completely miss the whiteboxing trend on Twitter that was #Blocktober! Nothing nearly as fancy as the timelapsed art passes from the Naughtly Dog team on how they constructed key hero sequences in the latest Uncharted, but we do have a new building for the intro scene in the player’s apartment. If you haven’t seen this yet at a demo I won’t give away any spoilers, but this level is where your hacking journey begins!
Tumblr media
Indies Unplayed
We were extremely fortunate to be asked along to Indies Unplayed at Secret Weapon Loading Bar in Stratford. It’s always great to show the game and get player feedback. Many thanks to Lauren Francis for having us along, it was a very cool little event and we had some really inspiring titles along side us. Below you can see a player learning the setup to our hero’s story in the intro cutscene we are currently making playable.
Tumblr media
We got to play some fun new indie games and catch up with some old friends too, including old chum Tim Constant, who we last saw at Nottingham Gamecity in 2013!!!
Tim is working on a very cool dystopian job sim.  It’s a #PapersPlease-like game, where you play an immigrant bouncer in a post-Brexit apocalypse:
Tumblr media
‘Settings’ it up
It’s been quite short and quick sprint, so there are no new amazing game features to talk about from Pontus. But as promised, our settings system has now evolved from a bunch of background systems and code into an actual menu. With some actual settings you can adjust!
Tumblr media
The graphics will definitely need more work, but the plan is to fill in more options and then do a second pass on the artwork and layout to make sure everything works well with the content. For now, everything is functional at least.
Tumblr media
Web work
Apart from that, things were polished up in the web side, with some imrpovements and additions to our wiki and to automate our newsletter. That’s going to make our life easier, and hopefully also help any players/modders to find the right Lua API and instructions for how to set things up in LevelKit in the future. I would say “go and check it out” but there’s not really much interesting things in the wiki yet, at least unless you are one of the lucky ones who have access to our builds and the LevelKit already. In which case, you of course should go and check it out to get you started testing how to create your own content for the game!
No funny bugs fixed by Pontus this sprint, and no interesting game design work either. But there definitely will be next time, he’s already spent the past few days with XMind open for plotting some pretty big changes for the game…
Mod testing
This sprint Josh, our modding and level design intern, challenged himself to build a level using the modding tools. The aim was to learn how to build a typical level with a focus on the Lua scripting side of things rather than art, and then take those learnings and see where he could fill in the gaps on the wiki that he found wanting.
Tumblr media
We’ll let him tell you a bit more himself though:
“So I started out by blocking out the map that I wanted to create. Once I had the basic level that I was happy with I got stuck in with the Lua scripting with which I managed to learn a great deal upon completion of the level.
One of my favourite parts of creating the mod was the conversations, as it was super simple to create but also great fun generating branching dialogue between characters.            Following this, I began work on a guide to building a level mod which has been added to the wiki.This is something that I felt would be important for potential modders to have to help make the modding experience more accessible.
This also resulted in a few new pages being created to explain some sections not covered on the wiki yet, such as the ability to add characters to your level. This is a very exciting and interesting feature which will allow you to create many gameplay elements, from conversations to patrolling guards.
Tumblr media
I also had the pleasure of testing the new ability to upload mods to the steam workshop using the Level-kit tools.
Shortly after that it was decided that we should create a mod level that people can download that would demonstrate some of the pre-made devices that any modder can essentially drag and drop into their own mod. It will also be playable which I will turn into an interactive tutorial of how these devices were made to help new modders create their own from scratch.”
Tumblr media
Farewell Harry
Harry had his last sprint with us this month as he is moving to join the development team at Unity, but we made sure he had time to part with a gift for any of our followers who are devs interested in making their games moddable too.
In his time on the team, Harry's done great work pushing modding in Unity 3d, and so we’ve open sourced his work on the Lua framework that makes Off Grid moddable, enjoy!
https://github.com/Semaeopus/Unity-Lua
Tumblr media
Out with the New in with the Old ;)
And with our youngest team member Harry heading to Unity we have gained the wonderful Steve Allen in his place. Steve comes with a bundle of  AAA and Indie experience, so much so that he qualifies for ‘industry veteran’ status, and we are pumped to have him aboard the good ship Semaeopus. I’ll stop rambling and let him introduce himself though:
Hello! I’m new here. I’ve joined the Off Grid team as a programmer, though will no doubt stick my nose in elsewhere. I’ve been programming games for, well, rather a long time, and am really excited to be part of the project. There’s lots of interesting stuff that still needs to be done and it’s already been a welcome change from the larger, corporate games I’ve been working on over the last few years. And who knows, next time I write one of these updates I might have done some work! - Steve
You’ll hear a lot more from Steve in the coming sprints, he’s already made good strides into impletmenting and extending new features in the Lua API for modders to play with, so watch this space!
Fixes and additions
Harry’s last couple of weeks were also a great opportunity for us to dig into some of the bugs in our backlog that haven’t been top priority, but would be welcome fixes with a little effort. We had a fantastic flurry of small fixes from the team, with Harry leading the charge.
Main game:
Messaging with CryptoChat
We setup a small notification to say that a character is typeing while you are waiting for them to respond to you in a conversation. It’s essentially a ‘Smedley is typing’ animation much like you’d see when using a messaging app like whatsapp or imessage.
We also and fixed the pause time between messages, which just needed a little finessing to feel more real.
And most importantly, we set up ‘B’ to skip single messages instead of all of the incoming messages from another character.
Include Mods in use, in save games
We now have save games recording what mods you have subsribed to so you can progress with your mods intact!
Saving NFC
NFC data is now being saved correctly.
Trailer video
We fixed a strange long wait at the end of our trailer that had been bugging us.
Player Phone
We fixed a bug to do with interactions when the player phone didn't appear when doing swipe interaction or scanning things.
Stuck Running
We had a somewhat funny but awkward bug in our animation state machine where the player can get stuck if you were crawling and spammed the run button while getting up - the player would get stuck runnning in circles!  That is now fixed ;)
Look around you
The player character’s look-at IK needed more restriction on target height so that you didnt look at interesting objects on the floors above or below you.
Invisible walls and soft bathroom sinks
Lots of missing colliders were fixed.
LevelKit:
UV Warning
We updated asset importer post processing script to warn about missing normals and UVs on new models. This means as you are modding and making new geometry, the LevelKit tool will tell you if it is missing anything that could cause a later error.
Mod Content structure
We re-structured level directories so that the content a modder makes is in a neater structure.
Non Steam works / DRM free mod exports
Added Export as Zip option to build tab so that you can upload your mod anywhere for anyone (with a copy of the game) to try it out.
That’s all folks
Lots of big things happening so we’ll look forward to catching you next time.
Pontus, Rich, Sarah, Steve & Josh
1 note · View note
offgridthegame · 7 years
Text
Sprint Update 24.10.17 - Back in the Trenches
The sprint since EGX has been an interesting one.  Loads to follow up on with the multitude of interesting folks that took an interest in the game - including a whole raft of journalists, podcasters, Youtubers and Twitchers.  Have you read our EGX round up?! 
But now it’s back to the trenches - that’s what you are here to read about anyway - where and how we have been getting our hands dirty!
Nuts and Bolts
There are some things that are just expected to be in a game, and one of them is a way to configure the game's settings. For a good reason as well. Not only will you need to be able to adjust the volumes to your liking, but some things like graphics options, control mapping, and save game & mod management are absolute requirements for the game to be usable by different people, and on different hardware.
While we don't really need those options while developing the game, some of them are still handy for testing purposes. But more importantly, we've been working on other related systems like game saves, and building the options menus at the same time just makes sense. 
In this sprint it's been just about the background systems:  building up the UI hierarchy and navigation, and setting things up so the actual settings system will have a way to create some menus for users and a way of saving and applying those settings.  Basically - design work with two very different end users in mind.  On one end, the person playing the game, with a mouse or a gamepad in their hand trying to find the relevant settings and understand what each one of them actually does. And on the other end, us as the developers writing our mod loading system, or setting up the sound and graphics systems, and needing a simple and quick way to turn all the relevant values in our code into settings menu items.
Hopefully we've solved both sides of that design question now, and can get some actual settings menus up and working in the game in the next sprint!
(No pretty pictures yet. We'll need to generate some menu content first, and when that's done and we have some menus to test things with, there's likely going to be a second pass on the UI design and a bit of polish on the layout and graphics. So the pics will have to wait until the next blog post...)
Mod Manager 2017
LevelKit has had a little bit of a redesign, here's some of the changes and new features:
Moddable apps can now be created and tested from within LevelKit, apps are created from a simple template and are then immediately accessible for testing when the game is connected via LevelKit Link.
Tumblr media Tumblr media
We've refined how we layout levels within LevelKit, it's always been our plan to allow modders to create story lines that span multiple levels and this is now achievable.
When creating a new mission mod, you’ll be asked to fill out information about the first level.
Tumblr media
Once you’re loaded into a level of a mission mod, our fancy new user interface will allow you to create more levels.
Tumblr media
The same drop down allows the modder to easily switch the current level they’re editing!
Tumblr media
Busy in our Workshop
One last surprise :)
We now support the uploading and updating of mods to Steam Workshop from directly within LevelKit! This is achieved with LevelKit link and will require the game to be running via the Steam client. We’re hoping that this pipeline will be easy for modders to use and give them more time in LevelKit!
Here’s a little preview of our Buzzer App being uploaded from LevelKit
Tumblr media
Keeping it strictly business
It’s been a while since we have been able to use this line, but once again there have been a few exciting happenings on the Biz Dev side of Off Grid’s development that we won’t be able to go into much detail in yet, but hopefully we’ll be able to let you in on soon!
Gimme a G gimme a D gimme a C, whaddya get?
We’ve also been working on getting some acclaim abroad ;)
We have submitted the game to the IGF for consideration at GDC’s Independent Games Festival summit. We may be a little early in terms of completion for prize winning, but like everything in games, it takes getting your game in front of important people a few times before you start to get recognition (in our experience anyway).  So we’ve decided to give it a punt and see what the IGF judges think to the Pre-Alpha version of the game. Rich also submitted a couple of proposals for talks to IGF summits in the Indie and Narrative categories. Rich and Sarah plan to be at (or possibly just around) GDC either way.  If you are a dev and are going, or have been before, and fancy offering some tips, then please give us a shout!
UKIE saves the day
We’ve been interviewing to bring on a new team member and the good folks at UKIE allowed us to use their comfy meeting rooms. While we were there, Roll7 were having one of their team meetups, and Pontus and Rich got to test their in-progress game ‘Laser League’ with them. Thanks so much to UKIE for their hospitality and and Roll7 for inviting us to hang out and play :)
Tumblr media
PR You Ready?
As always, the Loading Bar played host to all of us indies for not only our usual indie co-working, but also an little seminar of how indies can get help with and should approach PR. We had the eminently expert Stefano Petrullo come in and share his knowledge, and in the future we’ll look forward to hearing more from him!
Tumblr media
CryptoParty like it’s December 31st 1983
Rich was asked along by the organisers of Cryproparty London, Silkie Carlo and Fabio Natali, to give a lightening talk about making a game about crypto, surveillance, and hacking your way out of an Orwellian world.
Tumblr media
They also set it up so that while people were exchanging PGP keys and fortifying their security posture, Off Grid was available to play and Rich was there to chat about culture and its portrayal of surveillance, crypto and hacker culture. The event was fantastic - lots of good vibes and smart people to learn from, and included Mustafa Al-Bassam giving a talk on the case study of how the Tunisian government exploited social networks’ lack of use of encryption to snoop on its population.
Tumblr media
Indies Unplayed
Last but not least, what are you up to this Sunday (the 29th)? If you are in London then head on over to the Stratford Loading Bar ‘Secret Weapon’ from 2-7pm to get your fill of up and coming indie treats at Indies Unplayed.  We’ll be there too! You can swing by, play the demo if you missed us at EGX and just generally have a grand ol time. See you there?
Tumblr media
That’s it for now, we have a fairly short sprint this time though, so catch you soon!
Rich, Pontus, and the Off Grid team!
0 notes
offgridthegame · 7 years
Text
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 skils!):
Tumblr media
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
Tumblr media
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:
youtube
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.
Tumblr media
Here’s a little closeup of their handout:
Tumblr media
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!
Tumblr media
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. 
Tumblr media Tumblr media
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!
0 notes
offgridthegame · 7 years
Text
Sprint Update - 20.09.17 - Straight Outta Leftfield!
Phew!  We’re just about to pack up and head for Birmingham, as Off Grid has been selected as part of the Leftfield Collection at EGX!  We’re SO excited to be showing Off Grid at EGX and are looking forward to players responses to the game so far.  If you’re at the show, please come along and say hi! Also at EGX, we will be livestreaming a playthrough of Off Grid from the Twitch Stage on Thursday at 11:30am (BST).  Follow along online at:  twitch.tv/twitch. We’ve been toying with the idea of starting a twitch account for some time - and with the invitation to livestream from EGX, we finally have.  Very soon, we’ll be streaming live from twitch.tv/semaeopus!  Follow us as we chat through our monthly sprint updates, play through some of the games that inspire us, and bring in other indie devs to talk about game dev life. 
In case you haven’t heard (we hope you have!) we are still looking for a C# Unity Programmer to join the team.  We’ve extended the application deadline to Monday 25th September, so if you’re a UK-based games programmer looking for a change, we want to hear from you.  If you’re at EGX, stop by our stand in Leftfield to say hi, talk to us about the position, and play Off Grid for yourself before you get that application in! 
Now onto the sprint!
Rebuilding the harbour
Just a day after we began this sprint, we heard that we'd have a place at the Leftfield Collection at EGX.  So we sat down to re-plan our work for the sprint with that in mind.  One of the things we wanted to get working for EGX was the harbour level.
We've had some bare bones prototypes of what the harbour would be for a long time now, and a more complete, but still mostly unplayable whiteboxed version of the level for a while.  So it was time to start cleaning and refining that version into something with a bit more gameplay.
Tumblr media
First task was to deal with the player path though the level, so we could guide the player from one objective to the next and make sure we can also place a few obstacles on the way.  The draft level was pretty much just open space, with some late-level locations close to the start, and very little for the player to do around the rest of the level.  Cue moving a few buildings around and erecting more fences to gate the player's path to different locations!
Add a couple of passes of lighting (with a few issues of lightmaps not loading correctly from AssetBundles sorted out); a few hours of placing colliders on objects to block the player from falling off the map; and a few days of writing mission objectives, devices, setting up triggers and so on, it's starting to resemble an actual mission!
Tumblr media
There were a few additional problems we needed to sort out for this level as well.  Nothing too complicated, we just needed to create an ocean, and the sky...
It's a harbour, so we expect to see some water.  Which means we had to create some low-polygon style animated water in the level.  With a bit of modelling, a bit of C# and a custom shader to go with it, it's now working reasonably well.  We'll likely want to refine things later, especially if there's ever going to be a daytime level, and just to move more of the water animation to shader code.
When it comes to sky, we obviously couldn't use the same city skyline skybox we use for the newspaper office level, as half of the sky is supposed to be over ocean.  This was a fairly quick fix - we have a Blender project for rendering HDR panoramic skyboxes quickly - we just had to remove some buildings and add a lighthouse.  Lastly, we needed to change our fog setup a bit to fade out the ocean at the skyline nicely without making any far-away geometry stand out from the background too much.  That pretty much just meant having to use a black fog at far distance.  This works great for the city sky with black ground and buildings around, and looks still reasonable over the ocean as well (even if not completely realistic).
Tumblr media
Drones and navigation
A big part of our plans for the harbour level is using drones to patrol around the area.  The plan was to get our old drone prefabs, make sure everything is up-to-date and works with everything that has changed in the game since the last time we've used them, and drop a few in the harbour.  Well, of course things don't always go as planned!  The drone AI's patrol behaviour is still a bit unreliable, but we still got something out of it in the end.  The patrol issue doesn't seem too complicated either, so we'll surely figure the problem out after EGX.
Tumblr media
Apart from the drone itself and the AI, we needed to set things up so the drones could be restricted to certain parts of the level.  Basically, only in places where there's enough room for them to fly.  That called for some more navigation areas to separate "walkable" areas from "flyable", and of course the "walkable+flyable" which is fine for both humans and drones.  As the drone patrol routes are planned on the fly-based on data points in the level, and the player is able to add, remove and move those around, we needed to add few checks for the AI to figure out which patrol locations it can actually reach, and which ones should be ignored.
A nice extra from all this was, believe or not, it all helped improve our lighting in the levels as well!
We are using an automatic script that places LightProbes around the level to provide lighting for any moving characters etc, and also to provide the light level data around the level for our shadow/light stealth mechanic. And that script uses the navigation mesh as starting point. So now that we had some areas marked as flyable, and thus with more vertical space, we could easily use that information and place secondary set of LightProbes a bit higher in those places.
While doing that, we also managed to optimize the LightProbe placement code a fair bit as well, and that's a definite bonus since there are quite a few of them in each level.
Tumblr media
See all the yellow dots connected by the pink lines?  You don't want to place them by hand. Any speed up in the placement code is worth it!
Other changes and Bugs Fixed:
New UI sounds. Loads of them. We got our sound designer to do a pass of new sound events for each specific part of the user interface, and now are no longer recycling the same button click sound for everything.
Apps with a use cost could not be turned on if the SPECTRUM app was not turned on first. Now we assume that if data view is off, you can certainly afford to use the app. (We might need to revisit this later if we add apps that cost more to use than what you can afford by default.)
Data meshes of data points placed in levels at design time were offset from the actual data point position.  (We had changed some geometry layers around since the data point prefab was made, and the code that moves overlapping data points away from each other was checking for its own location and not just other points)
Whats ‘Appening
Harry’s first port of call for the Sprint was to update the app system.
Apps can now have multiple actions and options
These are presented as two sub menus. We’ll be getting into this in future posts when we show you some new incarnations of the apps you might already be familiar with if you have played the game with us at an expo or a modding workshop.
Apps can now also react differently depending on what kind of targets are passed into them
So apps can display different functionality for devices vs. data, and even different types of data,
Now app are much more flexible and extensible
This is a fairly in depth point, but it’s safe to say that this opens up a myriad of things modders can call and do with the rest of the API when modding their own hacking tools.
Tumblr media
New app for interacting with drones called FlySwatter
This used all of the above and was put in as a working example of how to use the new systems, a kind of test case. It might not stick around as a final tool in the game or it might evolve and merger with other tools, but that is what is great about the Off Grid modding system there is a lot of space for interesting tools to grow.
Continued work on the save system
We faced a few last minute headaches, but we have got autosaves and checkpointing working nicely ready for the EGX show floor.
New team member!
Josh has joined us as a design intern - he is testing modding tools, helping with documentation and helping to design hackable objects.  We’re really pleased to have him on board and hope you all join us in welcoming him to the team!
Here’s a little from him about what he’s been up to:
Hi there, my name is Josh and I have been working on the Off Grid mod tools producing some light-hearted hacks - primarily making Joe his very own disco room where he can party the night away with disco lights and lots of balloons!
Tumblr media
This involved me taking a look at the pipeline for adding custom 3D assets into the levelkit and getting acquainted with lua, both of which were a very enjoyable experience, and you can see the results for yourself!   While fairly new to the modding workflow, I have had a blast with it so far and I am definitely looking forward to making a full story-based level in future. 
Speaking of levels, I have also had the pleasure of checking out and testing the demo level of Off Grid!
Tumblr media
During testing, my aim was to identify bugs and explain to the team the steps to recreate specific bugs. For example:
missing text on main menu - this was a tricky one that only appeared at certain resolutions, but was easily fixed by the team once identified
menu navigation with a controller - as most people will be playing Off Grid at EGX, I thought it would be important to test the controller experience, which lead me to a few navigation issues when using UI menus
missing colliders:  I spent several hours walking around the demo level trying to identify anything that I could walk through
Tumblr media
When working my way through the Off Grid mod tools, I was able to give feedback on the wiki and add to a few pages myself. I was responsible for adding the Art Pipeline to the wiki in order to help modders to add their own works of art to Off Grid Levelkit.  I am absolutely loving putting some of my skills into practice and helping with the project - for me its a dream come true!
Characters Ahoy!
The team spent a chunk of this sprint getting together new ‘docker’ type NPCs for the harbour level, with a little help from our good friend Silvia Bartoli.  There was some wrangling to do as the NPCs are quite a complex array of components and AI behaviours and actions. They require ‘Ears’, viewcones, personalities, all the AI actions available to them, patrol routes, and related props like flashlights or tazers.
Tumblr media
We’ve also got a new character editing ‘tool’ for re-colouring the characters.  This guy above is making the most of the metallic values on the colour lookup tables. :)
Tumblr media
We specifically designed the geometry of the characters to make it easy for players to make distinct variations.  Above, you can see the same character with a different colour lookup table applied, giving him a different skin colour, hair-do, and even profession - all done with a couple of switched textures. 
We have also added blend shapes to the characters that players and modders in future builds will be able to control via lua - so when they spawn an NPC, they can define the model type, their weight via blend shape and their colour with colour lookup tables and textures.
The Experience
Tumblr media
As mentioned, we spent a lot of time on mission scripting and refining player experience ahead of EGX - this meant new mission content for both the new Harbour level and the older Apostle HQ.
You can see the newly re-implemented drone above. These are now spawn-able through level kit as a guard type.  We also put in a bunch of smaller and less noticeable gameplay script fixes to make the conversations read better and player experience smoother, including a conversation introducing the light meter tool for sneaking through shadows.
PR You Ready?!
Rich has organised the next London Indies meetup on Friday October 6th, featuring Stefano Petrullo from Rennaisance PR.  He’ll be joining us all the the Loading Bar in Dalston to talk about how to market your games, how to engage a PR firm and evaluate whether they can add value to what you are doing, and how and why, in his view, events are so important for indies! It’s a 4pm start on the Friday and a nice way to wind down a work week with your fellow game devs.  Check out all the details and RSVP here - look forward to seeing you!
And speaking of marketing - did you receive the very first Off Grid newsletter this month?!  If not, SIGN UP now!  What are you waiting for?!
0 notes
offgridthegame · 7 years
Text
Develop 2017!
Tumblr media
This past month Rich and I attended Develop conference, which is one of the UK's largest game developer conferences. I'd attended Develop once before about 5 years ago when I was a student, in fact I remember bumping into Rich there and having a catch up! The conference is a magical blend of socialising, knowledge sharing and unofficial indie dev football matches.
The Talk
I was lucky enough to give a talk called "Making a hacking game hackable: An approach to modding in Unity". My talk was aimed not at modders, but at other developers who might be interested in making their Unity games moddable.
Here's some of the things I talked about:
What is modding?
For some the idea can sounds a little scary. But the truth is a lot of devs will in some part be familiar with the process of making their game data driven. Essentially modding is the process of making your game incredibly data driven, as well as creating the tools that the public can use to create that data.
It also includes hooking into a distribution platform, for a large number of developers this will be a system such as Steam Workshop.
Why make your game moddable?
Tumblr media
Making your game moddable can increase community engagement hugely, as well as the lifetime of your game. If you look at examples such as Skyrim and Minecraft, these games wwere release 5+ years ago and yet are still heavily played today.
I believe this is in no small part to the amazing modding community surrounding those two games.
If you're a dev considering if you should make your game moddable, a couple of suggestions are: plan modding from the start and use the tools you'll give to modders for building the rest of the game.
Deep dive
Some of the lower level information about how we're approaching modding in Unity included:
Tumblr media
Technical information about how LevelKit works under the hood, using Unity editor scripts and the asset bundle system
Tumblr media
Information about how we're using the MoonSharp library to allow mission scripting via Lua
Tumblr media
Some awesome C# features that allow you to easily create documentation for your community
Live Demo
Lastly, I finished off the talk with a live demo of LevelKit, showing off some of the features like the ability to use Unity's native animation system and the networked communication between LevelKit and the game. The demo consisted of me making a little cactus on a table dance when a player pressed a button. While not particularly in tone with the game, I think it's nice to show how flexible the tools are, and how quickly a mod can be mocked up in Off Grid.
I got some great feedback about the talk and I'll certainly be applying to present more talks in the future!
Podcasts:
I also bumped into Keir Miron from the Darkest Dungeon team and we managed to record a podcast whilst crouched in a corner of the conference. Here's a link if you'd like to listen
Overall I had a fantastic time and I'd highly recommend any game developers attend if they can.
Until next time!
Harry
0 notes
offgridthegame · 7 years
Text
Off Grid Sprint Update 16.8.2017 - Imma chargin ma lazer
Tumblr media
Heyho! It’s been a long Sprint this one due to various galavanting and laser based activities, so apologies for the adjustment to our usual blogging schedule. The upside is - we have packed an incredible amount in to tell you about!!
Develop
Tumblr media
This sprint started with us heading down to Develop conference in Brighton as Harry was giving a talk on 'Making a hacking game hackable'. The talk went incredibly well and generated lots of indepth questions from the audience.
We had the opportunity to meet up with all kinds of incredible folk and show them the game, including the ever lovely Dan Marshall who was extremely excited by the game and had these lovely things to say about us :D
Tumblr media
That one is definitely going in olive wreathed award quotes!
Harry also found time to appear on Keir Miron (of Darkest Dungeon fame)’s podcast 'The Question Bus’ and was interviewed in a corridor at the conference! You can listen to it here.
SHA2017
Tumblr media
We have been pushing a bunch of features forward in the game, especially within the modding toolset, and getting it ready for SHA2017, a hacker camp in the Netherlands that we were invited to.  Rich and Harry spoke and ran workshops focusing on how hackers and modders can use our modding to tools to create interesting hacks that reflect real life vulnerabilities.
The talk and workshops went really well - we learned a heck of a lot and we got a fair few people in using the tools.  You can watch the talk here and we'll be putting up a full blog post on the whole experience in the coming weeks.
Steelcon
In the run up to this, Rich headed up to Steelcon again to gather inspiration (the SHA talk references how one of the first hacking mods we made in Off Grid was based on a Steelcon talk about hacking the Nissan Leaf electric car by Scott Helme last year). There was loads of interesting brain juice this year, including our friend Darren Martyn’s hilarious talk on Hacking ACS Servers for World Domination and this unnerving talk by Ken Munro from Pen Test Partners about the awful vulnerabilities they had found in IoT sex toys...
Mod hacking workshop with Spoonzy
Tumblr media
On top of having gotten a good start on testing the modding tools with Dominic during his work experience last month, we took this a step further and got our mate Spoonzy to come in and apply some hacking knowledge to crafting some hackable devices with the modding tools. Spoonzy spent the day with us and came up with some pretty epic ideas for hacks - we made a start on a couple of them and he prompted a few fixes that we got to work on ahead of our workshops at SHA.
New Networking
Tumblr media
This included Harry working on switching the networked tools that allow modders to build their own level changes directly into the game over to our own networking code (much faster iteration time!). This took a little wrangling, but as well as speeding up the workflow, it has put in a couple of checks that prevent potential loss of work. The old way used Unity's built in TCP/IP networking code and made use of the editor’s play button in the modding project - if you have ever done any Unity development you will know that if you leave that on by mistake when working on objects or values in the scene then you will lose your work when you stop play mode on the editor - the new networking code avoids this pitfall entirely. 
Tools!
We wrote an export tool that can now generate clean versions of LevelKit for us to submit to our steam tools section for the game. Meaning that any half-baked dev content is stripped out and our modders have a nice clean project they can work within.
Spawning
Tumblr media
We also found that folk wanted to know what direction characters would face when spawned and so now allow users to visualise players and guards spawn rotation with an arrow marker on the mission object.
Templates
Tumblr media
We wanted modders to be able to just jump straight into mission and hackable object scripting if they wanted to, rather than having to do any geometry or environment work and so made a template scene so modders can jump into a working mission with hackable devices already in it, ready to be edited, scripted and added to. It is just a basic couple of rooms with a few props and a basic laptop to hack into as an example but it is a good start. The laptop in it even had the SHA wiki on as the front page :P
All your data belong to us
All networked devices now have a data inventory - this is the first step in making characters dynamically populate the devices in the world with their personal data. This way, when you hack a device you are able to get specific information on the NPCs around you who have interacted with that device, building up a piture of their behaviours and routes, and what data or other devices you might be able to manipulate them with.
No Rest for the Wicked
And one for the books... we fixed guards giving up patrolling after roughly 5 patrol points. We found that they had not been given a place to rest and recoup their motivation so they were essentially lazy guards striking due to lack of coffee!
Progress and Affect
Modders can now update the game progress via lua, which means conversations, objectives, or other triggers and interections in your level can affect another mission. For example, finding a hidden space in a level or making specific conversational choices in a set of CryptoChat messages can be used to unlock new levels and side missions within the wider game. Essentially branching narratives and their effects can be set off by any lua triggers in a level.
We also added an Error checking pass on conversation system (making them now more robust). It’ll now be easier to avoid lua compile errors and get your conversation scripts in the game and conversing properly.
Wiki
Tumblr media
The other thing we have done is some fairly comprehensive work on getting the Off Grid Wiki to a stage where it is useful to players and modders. We now have a bunch of articles which describe how you can go about making mods for the game. We'll update you soon once the structure of those articles is coming together!
Character customization
We are aiming to make all characters more customizeable for modders, and want to set up the colors in a way that would require as little as possible special skills or programs to change them for an existing character, while still using a single mesh & single material on each character in game.
Tumblr media
Normal textures would do the job, but editing the colors on them afterwards isn't really for everyone. Vertex colors are easier, but editing has to be done with a 3D modelling tool and creating different color version of a character requires creating a different model (or messing with the vertex color data on the fly through code). Our solution was using a simple texture as color look-up table, so once the characters are set up correctly (by us) all one needs to do to change them is open the texture file in any image editor (even MS Paint would work great for this) and paint the tiles with new colors.
Since we don't need any detailed textures or anything, we can just assign the UV's of the models to those colored tiles. And in theory we only need one pixel per color so the textures can be really small. Although to make things easier to work with and avoid any issues with color bleeding when the images are compressed, we settled for a 64x64 texture (the resolution doesn't actually matter) with 8x8 grid of colored tiles. That's 64 colors per model (with 8x8 pixels each), which should be more than enough for our art style...
Tumblr media
In addition to the color table, we also added support for an additional texture that works the same way, but is used to set the glossiness of the material, and to switch between metallic & non-metallic material.
...and both these textures are of course fully optional, all the characters have default textures built-in to the game so if the modders leave one or both textures out, we'll just use the defaults instead.
2nd Floor of the Apostle level
If anyone reading this has had a chance to play Off Grid, and made it through our newspaper office level, you might remember the 2nd floor of the building being pretty barren, to put it nicely. Properly decorating that part of the level and adding some actual gameplay has always been our plan, but there's just always been more important things to do.
Well, this sprint we finally decided it's time to add some content there. No spoilers, but let's just say that you can't just run through that floor any more, and trying to sneak past the guards would be pretty difficult as well. Instead you need to figure out a way to get the guards out of your way. There's a few possible solutions, like you'd expect in a stealth game, and we thinks there's room for some more as well.
Tumblr media
Other changes & fixes
Added a bunch of new sound events for different parts of the UI
Text-only lines in the ncurses-like remote connection window are now correctly displayed using the foreground text color (as defined in the device's Lua script)
File viewer UI can now be closed with the "back" button (B button on gamepad, backspace on keyboard), and also closes automatically when the pause menu is closed.
Biz Rumblings
There has been a bunch of production and business development going on in parallel to all this, loads of interesting folk spoken to about opportunities for the game, but as always, you'll have to wait to hear more about that!
New *MOAR* blog posts
We have decided to shift the format here on the devblog slightly, we are planning on continuuing with these monthly sprint updates but maybe trying to make them a little more concise while also expanding on one or two of the items in each blog post in between each sprint update, so watch this space! We are going to start with Harry writing up a follow on from his Develop talk, the kinds of things he touched on, and his impressions of the conference as a whole, so look out for that!
Speak to you even sooner!
Rich, Pontus, Harry, and Sarah.
0 notes
offgridthegame · 7 years
Text
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…
Learning to mod Off Grid
Hi I’m Dominic and I’ve been working with the LevelKit for the past week and it’s been a great experience. Thanks to the really helpful team and the documentation on the Wiki, I was able to make a lot of progress – more than I expected to do!
Tumblr media
It was my first proper time using Unity so to start with I just created a simple level using the LevelKit assets: two rooms joined by a corridor. As the week went on I got faster and more confident with using the editor, so I kept expanding the level into more corridors and rooms and putting props to give areas some flavour.
Tumblr media
Whilst developing the level I was also learning how to do some Lua scripting to create the mission script which let me put more complex things into the level like guards, working doors, and objectives. There were some problems on the way, but thanks to Harry who was at hand to help, they didn’t stay problems for too long!
Tumblr media
Once I had a good understanding of the work process that went into using the LevelKit and making a level with most of the gameplay features, I started to work on the Wiki, adding to some existing pages which might have missed out some information that I had to keep asking about, as well as starting to create some pages which were tutorials for certain topics.  This is so that those future modders who won’t have immediate access to the Off Grid team’s help can manage by themselves.
Tumblr media
All in all it was a really fun, helpful, and invaluable week, and I can’t thank the team (and the pets) enough, they were super friendly and always willing to help me if I got stuck. Helping test out the modding tools for the game was very enjoyable and help was really accessible, not only from the team but also help on the Wiki too. So once again, I just want to thank everyone at the team for the week, and I hope that I can help again another time because I’ve had a really wonderful time and would love to do it again.
To round it up here is a video of the hidden room hack that Dominic made:
All this in just a week!
Harry's been using Dominic's invaluable feedback to improve the LevelKit. Here's some improvements we've made:
The build tool will now detect and warn if you've made changes since the last build, this makes it clear if it's required to do a full build before testing.
Tumblr media
We've added a bunch of items in Unity's create window for adding Off Grid specific objects.
Tumblr media Tumblr media
And the biggest change/update is that we've added networking support for LevelKit, this allows modders to test their missions on a running instance of the game. This means that modders won’t have to restart the game each time they want to make a change, and they’ll be able to test their script only changes in a matter of seconds.
AIn't that grand
As well as working on LevelKit, Harry has been dedicating a lot of his time this sprint to our AI systems. Specifically setting up systems to allow the distraction of NPCs by the players actions. One example we're using at the moment as a test bed is the distraction of a secretary by hacking into their printer. Once their printer is broken and spitting our paper onto the floor, they'll break their normal work schedule to fix it, this will perhaps give the player a chanced to sneak into areas of the building their not allowed into 😉
This system is only the beginning of what we have planned, we want the AI to be completely reactive to the players action in the world and react accordingly. More to come!
UI to make your life easier
In this sprint we decided to finally build a few simple features we've planned for a long time to help the players be more aware of what their goals are in a level, and how to get there. Nothing game changing here, these are pretty much just the features you'd commonly have in a game, and we'd just decided to build the important game mechanics first and deal with polish and quality-of-life features after that...
All the information you need is of course given to you in the mission briefing and in conversations, but maybe you missed the important part of the conversation for some reason, or just forgot about it? Or maybe there was too much detail and too many instructions and you were left uncertain about what's the very next step to do? No worries, we've got you covered now.
Tumblr media
ToDo or not ToDo
The first new feature is a Tasks list in your pause menu, listing your current & completed objectives, plus the main goals you are trying to achieve in the level. Not sure what to do next? Just open the pause menu and check the "Tasks"-tab! And we decided to also add in notifications to tell you when you complete an objective or start a new one.
...This all of course works perfectly with our Modding tools, in your mission scripts you can define if an objective should be displayed in this UI or not, if it's an important task (which are all displayed to the player right from the start) and so on. The rest is then just automatically handled by us.
Where's the keycard I need for this door?
"OK, now I know what I'm trying to do, but for some reason I can't figure out how to make that happen. I must be missing something..."
Maybe it's a keycard on a table you just didn't notice as you ran through the room, or some device you didn't realize might be network connected. Or maybe it's just some random interactive item in the level that you can use for your benefit, but it's not that obvious?
Tumblr media
The second new tool is our new "Help" app. All you need to do is turn it on when you feel like you'd want a bit more help, and it'll pinpoint any things you can interact with near you, with icons based on item type, and some extra information to tell you what you are looking at. Leave it on at all times if you like it, or if you'd prefer finding out things on your own just don't use it, or use the Apps menu we talked about in the last Dev Update to completely remove the app from your AppWheel so you never have to look at it. There are many kinds of players out there and this hopefully gives more help for those who want it, without making other feel like there's too much hand holding going on.
As a nice extra benefit, the system we built for this is pretty extensible, so we might find some other interesting uses for marking things on your screen... Some of the modern stealth games have started adding options for tagging characters so you always know where they are, and we just might give you an app for that some day.
Atmos and new sounds
We've been working on restructuring our audio setup to be more suitable for user-made content, with as simple as possible ways for modders to define the atmospheric sounds and the music events in their levels, and at the same time handling all the boring stuff automatically on our side so most of the things "just work" for you. The design for this is more or less complete, and we've now converted our existing levels to use the new setup.
Tumblr media
It is really straight forward now to define the type of atmospheric sound and which of the music type you want to play (or not play) in the bakckground on your modded levels, whether through audio trigger volumes, or in Lua in the mission setup.
Tumblr media
Going to Develop?
Don’t forget - if you’re headed to Develop next week and have an interest in modding, be sure to grab a seat during Harry’s talk!
Tumblr media
If you have any questions about things afterwards - we’ll all be there and more than happy to chat.  We’ll be sporting our Off Grid t-shirts, so don’t be afraid to come say hello!
0 notes