Friday, 4 November 2016

Sprint Update - 4.11.16 - Mozzy Mozzy Mozzy, Oi, Oi, Oi.

We have been uber busy and have loads to tell you about, so lets get started!

Most of our work since we last spoke has been towards a build for Mozfest. In fact, this is actually a double sprint update: we ran a sprint for getting the build together and then another for final tweaks and all the promo and prep work that goes in to demoing and running a session at a festival, especially one like Mozfest!

This was our third time at Mozfest and to be frank we love the bits out of it. Mozfest is an incredible place - 9 floors of the most incredible people working on mind blowing open web tech and advocacy and learning from each other over three days, but this year we got to take part in the youth zone and see it from a slightly different perspective. Hands down the best sessions we went to were in the youth zone and led by youth facilitators teaching adults. There was a 12 year old teaching how he wrote a Scratch to Python converter for kids to transition from visual programming into the syntax of a language, and a lad whose opening gambit was “I started hacking and I was excluded from school” teaching a packed room infosec principles and wifi cracking!

We put together a session that intro’ed the attendees to Off Grid and the principles behind it as an interactive exercise, getting the room to talk through the connected devices in their lives, what kind of personal data they might store, and how they might be vulnerable. Harry took the room through a live example of how the hackable devices can be modded and new one created with a brief intro to LUA, and we then let some people play the game while a couple of others came and created mods for new devices to go in the game. There were some pretty exiting ideas!

Next year Mozilla aims to have 10% of the entire festival session being youth led - that is a heck of an impressive goal for an open tech festival run by one of the biggest open source foundations in the world!

So what did we throw in for Mozfest?

Well we knew we would be demoing to a tech savvy crowd and so wanted to impress and make sure what we showed would spark interesting conversations and ideas from our players on the show room floor, and boy did we meet some interesting people with mind blowing ideas! :P We had everybody from some security journos from the Columbia school of Journalism and the NY Times to a scientist working with the UN on tracking military hardware movement with data forensics!

There was a pretty intense period getting everything we wanted in to the game ahead of the festival, but it did sharpen our focus and mean we managed to push in some pretty fun content:

More Hackable devices

New hacks we put in the game included a vending machine, fridges, a virtual pet / fitness water bottle (yes those really exist!), hackable handdryers, a thermostat, an air conditioning vent, printers, a safe, and more - so there is starting to be a bevvy of hackable objects in our test scene!

The sound of a box popping

Oh, and new sounds of course. Tons of new sounds!
We met up with our sound designer, Jonas, to go over some new sounds for the hacking interface and all of the things that you can now hacked and managed to push plenty into the build ahead of demoing.

Bug fixing and polishing

Every now and then in a game project it’s time to stop yourself from adding all the new features you are really excited about, and instead sit down, take a look at what’s in the game, what’s working, what isn’t, and where the game you have could use some polish to improve the player experience.

With MozFest in our radar, we decided that it’s time for us to do exactly that. So we’ve spent most of the past month cleaning up models in the newspaper level, checking their colliders, applying vertex colors, tweaking bit here and there and moving things around to solve all the little issues we’ve had in the level for a long time but which were always left alone as there were more important things to deal with.

We also played through the mission again and again, changed the story and hint messages, and added more help and instructions for the player where needed. Additionally, with the hackable devices we talked about in the previous dev blog post, we ended up changing quite a few main objectives in the level to make sure interactions are hacking based instead of physical. Quite a big improvement for a hacking game!

Some good examples of moving over to more hacking puzzles as opposed to physical ones would be hacking a sys admins laptop to get the key file for a door, instead of simply finding one left out on a table. Another fun puzzle we have in the game is hacking a printer to see a cached version of all the recent print jobs it’s done. Print jobs that might include files like “Safe_Password_DELETE_ME.txt” … you get the idea :)

We also added a modal message window as a quality of life-feature, mainly for asking user confirmation before quitting the game etc, but also for giving the player back story and guidance at different situations.

As always, there was a long list of bugs, most of them not really game breaking issues, but at the same time, were things we’d rather not have around - especially when displaying the game at MozFest. Finally, there was equally long list of things where we felt the user interface, controls, or something else could be just that bit better if something was done in slightly different way. For example, until this point, the data view was turned on and off from the Apps icons. However, with the data view timeout mechanic, which stops you from being tracked, switching the app off after a time, you were repeatedly forced to scroll back to the correct app and enable it again. We decided to try switching it automatically on when you press the left trigger (which is also used for controlling the data view range) and that seemed to work really well in improving the gameplay. At the moment you still need to use the Apps UI to switch the data view off, but we might experiment with that part a bit more at later time…

Another quick and surprisingly effective small tweak we did was change the text in data points to fade away as they get close to player. This solves the problem of the player disappearing in a cloud of data when you get to a location one of the guards often walks through, or when the player character receives lots of text messages.

When a lot of data points were created it could become cluttered:

Now the text fades out when near, much better!

Documentation, Documentation, Documentation

At the heart of any good moddable game is its documentation - what’s the point of opening up the game to players if they have no idea how to use the systems?

This sprint Harry has been working on developing our work flow for documenting our lua APIs in a clean way. It’s super important to us that players feel like they have the help and support they need to make great mods and stories in Off Grid.

The techy part :)

As we’ve mentioned on previous blog posts, we’re using a fantastic C# library called Moonsharp for all of our Lua binding code.

C# is a really wonderful language to script games in for many reasons, and one of them is it’s great reflection support built straight into the language.

Using this feature allows us to iterate through all the methods and variables of classes, lets say MissionLuaApi.cs.
Using another great C# feature called attributes, we’re able to attach lots of helpful meta data to the functions and variables, such as notes for people using them in lua, comments on return types, warnings and general notes.

Here’s an example of what that looks like in C#:

Now we can iterate through all these methods and their meta data, we’re able to spit out a markdown file. We’re currently experimenting with using slate and the results are really nice!

Here’s a sneak preview of the above method in slate:

Lab testing in the Privacy Lab

As if we weren’t busy enough, on the build up to Mozfest we took part in ‘Privacy Lab’ who were hosting a forum on the orwellian IP Bill and it’s effect on the UK. We were joined by a panel of the good and the great from organisations like Privacy International and Big Brother Watch, and we gave a talk on “Modding ‘serious’ content for advocacy” and how Off Grid could be an unconventional tool for campaign groups to reach new audiences with their issues.

This doubled up as a great opportunity to use as proof of speed for modding content, as we decided to throw the panelists on the more serious policy discussion in to the game as modded characters and get Renata Samson from Big Brother watch to message the player and send some campaigning materials from their website.


Lastly, we made a submission to CCC that should follow on nicely from our EMF talk in the summer, and so fingers crossed it will get accepted and we can spread the word about how to disclose your 0days through a video-game! Rich will be heading there anyway thanks to McFly and the Milliways crew, so if you are gonna be around, head to Milliways as McFly might be able to create some demo space for us over the course of Congress to get you into the game!

Well, there is loads of work to be done so we better get back to it.

See you soon!

Rich, Harry, and Pontus.

No comments: