Tuesday, 11 December 2018

Improving AI Performance

Hi all, Steve here!  Here's a look into what I've been working on recently: 

There's been some monstrous performance spikes in our AI, and I've spent time over the last month working to mitigate this issue.  Two significant changes have been made to improve this:

1 - the addition of a pool of Dictionaries to store states, and
2 - making each state item immutable

This vastly reduces object creation, which is slow, and reduces the number of objects in existence, which helps reduce memory fragmentation (another Bad Thing) - which, being C#, is harder to control than in C++.


Dictionary Pool

So what's a Dictionary Pool, you may ask! Well, at its simplest (which this is), it's a big list of pre-made Dictionaries, each with a flag on to indicate if it's being used.

When we want a Dictionary, we grab one from the pool, put it in a list of 'in-use' Dictionaries, and mark it as being used. When the object using it is destroyed, we mark it as free, and put it back in the pool for someone else to use. The key here is to be very strict on who is using your object! It's critical that nobody is using it when it's marked as free, or the whole concept breaks down.

Immutability

And immutable states?  Immutability is another weird software-engineer-y word. In english, it means something that never changes. But that's perhaps misleading when it comes to thinking about objects in Unity - what use is an object you cannot alter?

The answer is that while you can't change the object, you can create a new one to reflect this change. This means you have precisely one instance of any particular combination of object.  For us, this means that instead of creating hundreds of thousands (no exaggeration) of states, all duplicates of one another, we create... about seventy. The overhead of querying a Dictionary for the instance of the state we want is much, much less than creating a tiny object, then destroying it, repeatedly.



These two changes weren't trivial, as such, but were fairly self contained, and only produced a handful of super frustrating bugs that I had to then work against for a week or two.

Back within 60fps, but still a lot of garbage to deal with!

But the good news is that performance improved drastically!  We are now back to 60fps within the editor on my machine, mostly. Which was a relief because I feared for a moment or two that I'd accidentally extended the AI system in such a way that it would never be useful in a finished game, which would have been embarrassing.

-Steve

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

Monday, 19 November 2018

Sprint Update 19.11.18: The Longest Sprint


Hello!  This Sprint Update is a long time coming - there's been a lot going on, including a successful Kickstarter!   Successful Kickstarter has a nice ring to it, eh!?

If you followed along with the Kickstarter (and hopefully you did!) you will have had a lot of updates to read in the meantime.  Nevertheless, here is the detail of what we have been busy with throughout this epic sprint as we prepared for and ran our first ever crowdfunding campaign:

AI

- Pooled dictionaries in AI state
- Immutable AI state
- Inevitable fixes for above
- Extra cost for guards using stairs
- Fixes to AI planning
- Fixes for OffMeshLinks / AI using doors
- Tracked down a bug relating to door GUIDs / saving and loading
- Noise documentation
- Updated AI used in the Harbour scene
- Fixed a drone navigation crash
- Added mechanisms for AI to prefer particular devices based on their personality
- Added mechanisms to allow AI Actions based on their personality + Documentation for this

Controls

- Added UI to remap controls in main menu
- Checked/updated all control settings & defaults
- Limited repeat rate on analog gamepad sticks when moving around UI
- Added dataview range control on mouse & keyboard


Apps being configured: choose if you want them available in the app wheel or radial menu.

App system

- Completed new app system
    - added App system Lua API
    - unavailable apps are now hidden from Apps menu
    - If app can't be added to either appwheel or radial, it's now hidden in the App Menu (for exaple the password cracking is currently an app, but shouldn't be controlled by the player directly)
    - Apps are added to AppMenu, AppWheel and Radial menus when the app becomes available
    - Only execute currently selected app (instead of all active ones) when selecting a target+app in radial menu
    - Update loop for apps (so apps can run in background and do things continuously/over longer time)
    - Apply app action cost (both per-action, and for app cost over time for a continuously running app)
- Status windows for apps
    - Support for displaying an icon and/or a piece of text
    - Support for changing icon & color
- Rewrote Light Monitor app using new API
- Created "Send Data" app (lets you send a file to currenlty targeted chaarcter or device)

Lua API additions

- Lua API for audio RTPC
- Added normal (scaled) time support for scheduler API
- Added notification messages to UI Lua API
- Player API additions to get social profile data for currently targeted character

Bugs fixed

- Player character walking/crawling sounds get swapped after crawling first time
- Removed hack that re-assigns all materials in scenes (original Unity issue that required this has been fixed so the hack isn't needed any more)
- 1st person targeting should maintain the direction player is currently looking at
- Character profile data displays color codes in UI rather than colored rich text
- Fixed notification message UI animation setup
- Fixed file viewer not displaying images
- Fixed card scanners missing UI markers whe usign the Help app

Apostle level

- Checked all atmos colliders, added new ones where needed
- Blocked staircase from lobby to 1st floor
- Blocked door in 1st floor that would otherwise allow player to skip half of the floor
- Checked navigation layers
- Checked colliders, changed some to simpler ones, added some that were missing
- Fixed colliders with negative sizes
- Fixed typos in some device scripts
- Checked all doors and assigned correct door groups and access levels
- Removed drone from rooftop
- Replaced a few hunded cardboard box models in level with prefab versions
- Fixed missing/wrong static tags around the level
- Removed some leftover invisible collliders blocking player and the AI movement
- Fixed props not correctly aligned to walls/floor
- Redesigned first floor of Apostle HQ
- Implementated new hackable device

Art

- Creation of activist and hacker characters
- Prop and asset creation for new levels
- Set dressing and environment art for the Apostle level

Models of the real life hackers featuring in OFF GRID.

Other

- Enabled ultrawide display reoslutions
- Added headers support in popup menus (menu item with no function becomes a header automatically)
- Added splash screens when starting the game
- Data colors now ignore alpha value set in scripts and instead use pre-defined opacity to make sure things look correct in data view and in UI
- Opened studio Discord!
- Built a new website for the game
- Quick update of studio website with new Semaeopus logo

Kickstarter

Updated build for Itch.io demo

- Removed options menu from build
- Removed other levels from the build
- Forced loading straight to Apostle level in demo build
- Added Kickstarter campaign ad in main menu
- Disabled save game loading (makes no sense for a single-level demo and would cause issues when loading a save where the demo level is already completed)

Campaign Prep

- Campaign page drafting, review, and finalising
- Reward drafting, review, and finalising
- Contact push
- Press push
- Newsletters
- Update planning: every 3-4 days to all channels
- News release drafting
- Daily social media scheduling
- Streaming planning

Events and promotion

- Game Dev Camp, Lisbon - Rich and Steve spoke
- IndieCade, LA - Rich spoke
- Sweden Games Conference - Rich spoke, Off Grid demoed within Indicator and Off Grid won the Indicator award!
- Inside Intel, London - an art exhibition on privacy & surveillance
- PlayUK, a videogame curation put on by the British Council in Macedonia
- Dev Space Winter Mixer, London
- Closing party and livestream to countdown to the Kickstarter campaign's end!



The final moments of the Kickstarter campaign!

Whew!  A long list to match a long, bountiful Sprint! 

To top all of this off, the team travelled to Dundee, Scotland last week to attend the UK Games Fund Awards.  Semaeopus was nominated for the 'Smart Studio' Award, and we were looking forward to a fun celebration together after the month of hard graft.  When the category for 'Smart Studio' was up, we were absolutely stunned to hear 'Semaeopus' announced as the winners!


Award winners!  Sarah, Steve & Pontus pictured with the award presenter.

A successful Kickstarter, two new awards, and loooooads of new supporters - we are so grateful to each and every one of you that has helped make the last couple of months so successful!  

There's been SO much going on - expect to hear more from individual members of the team as we each wrap up from the last couple of months. 

What's next?


It's onwards and upwards now.  We're working on getting our FIRST ACCESS programme off the ground.  Anyone that backed at the PENTESTER level or above can expect to hear from us soon about what is to come. 

One of the two main goals of the crowdfunding campaign was to provide a bit of additional resource to support more open production of Off Grid.  We're busy getting our ducks back in a row after the Kickstarter, and can't wait to move forward with you all behind us.

THANKS EVERYONE!

The Off Grid Team


If you haven’t already - be sure to wishlist Off Grid on Steam - *EVEN IF YOU ALREADY BACKED THE KCKSTARTER! Each wishlist makes a big difference to us, and we really appreciate your support!

Friday, 9 November 2018

126% Funded on Kickstarter!

 We did it!

OFF GRID was 126% funded on Kickstarter in the end - that's a whopping £5,252 over our goal.   THANK YOU!





We hit the first stretch goal late yesterday afternoon, then kept building to our final tally of £25,252.

That means OFF GRID has the extra funds dearly needed for art and sound, AND we'll be sharing even more with you as we shift into a more open mode of development!

PLUS, by hitting that stretch goal, OFF GRID will benefit from the addition of an in-game social media app, and those of you that took advantage of that extra tier (and all those who backed above it!) will get the satisfaction of seeing a message of yours in the game.

Thank you to everyone that followed along with the countdown - whether in person or via the livestream.  It was great fun to share the success with you all!

We will be back in touch soon with updates on the game, development progress, and importantly, details and questionnaires about your rewards.

THANK YOU!

The Off Grid Team

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

Thursday, 8 November 2018

12 HOURS + MORE New Characters!

It's the LAST DAY off the OFF GRID Kickstarter campaign!

If you are following the project but have not yet backed, we need you to do it now, even if just $1, a quid, a yen, a euro!

We are SO close to unlocking that first stretch goal - can you help us do it?!




There’s officially less than 12 hours to go now, but that doesn’t mean the fun is over…

Character Reveals

We have two new characters joining the OFF GRID lineup to share with you:

Naomi Colvin


Naomi is a writer, digital rights campaigner and activist who has been involved in casework around some of the highest profile hacker court hearings in the UK, specifically that of Lauri Love’s extradition. She writes extensively on the subjects of human rights and digital policy and is a well known figure in the world of privacy and digital rights advocacy.

Her involvement in OFF GRID is important as she has an incredible knowledge of digital policy and law, and knows about how the most seemingly innocuous of miswritten laws can have massive effect and cost on the liberties of society.



Barrett Brown


Barrett Brown is a US journalist, essayist and satirist, and founder of the Pursuance Project an activist and journalist collaboration toolset.

He is best known for having founded Project PM, a research collaboration and wiki, to facilitate analysis of the troves of hacked emails and other leaked information concerning the inner workings of the cyber-military-industrial complex, and was imprisoned for charges relating to the 2011 Stratfor hack.

He’s previously been described as an unofficial spokesperson for Anonymous, has written two books, and multiple articles about politics and journalism in the digital age. In 2012, the FBI raided his house, and later that year Barrett was indicted on 12 federal charges.

While in prison, Barrett continued to write a column from jail for The Intercept, for which he has won a National Magazine Award and a New York Press Club journalism award.

MORE TO COME!

Expect more as OFF GRID’s development continues!

Remember, characters in OFF GRID can be virtual instead of physical: you just need to find their public key and then you will be able to speak to them via the CryptoChat app. There will be an array of hackers and activists you can eventually meet in OFF GRID: we’ll continue to announce some of them, and others might just stay secret for you to find!

Here’s a clue towards one of them!




We have our Kickstarter Countdown Party tonight in London at the fantastic Loading Bar in Dalston, and we'd love for you to join us!

There will be:
  • OFF GRID cookies
  • A prize for the best hacker fancy dress 
  • A LIVE livestream with interviews and Q&A with the dev team and hackers like Lauri Love, “March” O’Neill, and Hacker Fantastic
  • A demo of the game to play and chat about
Get your free ticket here.  Hope to see you there in physical form, or joining us with your wonderful digital presence on the stream!

And once again, THANK YOU!

The Off Grid Team

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

Wednesday, 7 November 2018

36 Hours To Go + New Characters!

It’s been a busy week with smashing through 100%!  We are now sailing along - nearly half way towards our first stretch goal, we had a big news piece released, and we've announced a couple fun new characters!

36 HOURS (just under!)



WOW.  It’s absolutely awesome to be nearly 110% funded at this point!  We’ve said it before, and we’ll say it again - we are SO GRATEFUL to each and every one of you backers! THANK YOU!

A lot can happen in 36 hours - so let’s see what we can do! Will we reach that first STRETCH GOAL?! We hope so! The in-game social media app would really add to the gameplay experience.

New Characters

If you have kept an eye on our twitter feed, then you will be aware of these fun additions. We had a great livestreamed interview with Biella Coleman, an anthropologist who studies hacker cultures on Monday. Yesterday, we announced security researcher Hacker Fantastic.





Biella Coleman

Gabriella (Biella) Coleman holds the Wolfe Chair in Scientific and Technological Literacy at McGill University. Trained as an anthropologist, her scholarship covers the cultures and ethics of hacking. She is currently working on Hack_Curio: a curated ensemble of hacker-related videos that will be accompanied by short reflections on the featured clip written by researchers, writers, and journalists working on these topics. The site will launch in the late fall of 2018.

She has authored two books, Coding Freedom: The Ethics and Aesthetics of Hacking (Princeton University Press, 2012) and Hacker, Hoaxer, Whistleblower, Spy: The Many Faces of Anonymous (Verso, 2014). Her work has been featured in numerous scholarly journals and edited volumes. Committed to public ethnography, she routinely presents her work to diverse audiences, teaches undergraduate and graduate courses, and has written for popular media outlets. She sits on the board of The Tor Project.

She is a fairly significant chronicler of hacker culture and perfect addition as a character to the OFF GRID universe.






Hacker Fantastic

Hacker Fantastic is a professional hacker with over 15 years experience providing security services to a global client base. He is widely known for his research on vulnerabilities in North Korea, exploiting the late Prime Minister of Singapore's code and his hacking of Microsoft's “ransomware-proof" computer during 2017.

HF’s research on exploits powering the WannaCry ransomware, NSA leaks, and Shadow Brokers in 2017 were published to an audience of over 500 million. He is an expert in his field and is highly sought after, to lead long-term engagements that accurately reflect real-world security challenges, simulating attacks on global and high-risk environments.

Fantastic’s work is known globally and he has been at the forefront of discovery and dissection of state level hacking tools.  His background in the professional research side of hacker culture creates interesting balance within the world of OFF GRID.

Countdown with us!

If you're in/near London, join us for a little celebration as we countdown to the campaign's end tomorrow night!   There will be a livestream countdown, too - sign up for a reminder and watch it via the OFF GRID Kickstarter page!

Please keep sharing the campaign - it’s not long to go now!

THANK YOU!

The Off Grid Team



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