Showing posts with label save system. Show all posts
Showing posts with label save system. Show all posts

Friday, 9 October 2020

Sprint Roundup: Meta work

Welcome friends, time for another sprint update!

 
In the last couple of sprints we did a fair amount of checking existing game systems, making sure everything works as intended, and adding some long-planned polish here and there to make those existing features look and feel better. Most visible changes from player's perspective would be improvements to how meaning and use of metadata is communicated to the player, with better messaging about what data has new metadata, making sure player knows when they gain new metadata, and making the effect of collecting data about someone more visible in the UI.




One of the improvements we did was the addition of the save slots, we believe that this change will make the save system cleaner and quicker to use. Each slot (the current number of available slots is 3, but that value can be increased before launch) can have one manual save and one auto save, also the difficulty option will be associated with a specific slot, to give the option to have different game states with different difficulties at the same time, every other game option will be general and not associated with a save slot.


Improving the AI system is another important feature that we worked on in recent weeks, it's still a feature in development so we will talk more in-depth in the next sprint roundup, but essentially we felt the necessity to change the NPCs behaviour in the middle of a mission in a more flexible way, using the specific agent Lua script, doing that in an easier and transparent way. This will be a powerful tool to us and modders, to change the AI in a more dynamic way, but also it will help us to debug and improve the NPC behaviours in a faster way. For example, with this we can give a NPC a taser in the middle of a mission to attack the player. We'll have a full update on this topic on the coming weeks.



On the art front we have been importing a load of art assets into the project and reorganising our source files. We've been reworking all Existing LUTs, essentially cleaning up any old redundant character textures. 


Whilst we made these changes, we updated the wiki to reflect which LUTs are working and a preview of their appearance, this should help to visualise the vast variety of LUTs we have in the game for modders to choose from.

On top of all this we've been looking forward with some funding applications for some interesting post release collaborations we have in the pipeline. We've also done a lot of back end organization work, we moved cloud provider for our documentation for the studio, and it takes a surprising amount of time to make sure everything makes it's way over to a new system properly, and when you move stuff you realise you have a bunch or organization to do at the same time!

In the latest game and Levelkit build : 

So, what can you expect to see in the next build of the game and modding tools?
 
Content (Level Design and Art) 
  • Dynamic light cone mesh for flashlights (no more flashlights clipping through walls!)
  • New gates, fences, light models, concrete barriers, road/sidewalk parts etc added to LevelKit 
  • New character LUTs have been made based on the older designs that work with the new LUT template

Gameplay and Mechanics
  • All game systems will now only display a character's name if the player has actually learned the name from metadata or not.
  • Targeting system will show if a data point has new metadata the player hasn't found yet. (also cleaned up the target info window a bit)
  • Data download notification shows the amount of new metadata gained from the data.

Controls and UX
  • Save slots added

AI 
  • Improving and fixing various issues on the AI system such as NPCs being able to move form neutral to adversarial mid mission
  • Setting and changing NPCs actions and goals were improved
  • Cleaner NPC animation state machine setup
 
Modding and Lua API additions 
  • Changes made on agent Lua script to allow for more flexible modding of AI
  • Lua track for Timelines (run any Lua command from a timeline - DANGER!!)


Bugs fixed 
  • Character LUTs were not assigned correctly if only color or only smoothness/metallic was defined in mission Lua script.
  • SocialInventory was not assigned correctly so all collected metadata was just sent to void
  • Lua API was not handling null/nil values consistently, some API calls returning a nil value from Lua side as a nil, and others as null.

Other 
  • Funding applications for post release DLC
  • Cloud and documentation migration
That's it for this update, we'll be back again soon with more, in the mean time stay safe folks!

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, 30 September 2019

Coworking and Cracking On - Sprint Roundup 30.09.19

Hello faithful OFF GRID fans!

We had a fairly unique sprint this time around, with loads of doing stuff IRL!  And with that we have got plenty to update you on with this sprint:

Facetime

This sprint we had a great co-working session with the team in Essex.  It was the first face-to-face gathering with all of the current team in one place, and so we made sure to start it off well!  Sarah welcomed the team with fresh, homemade doughnuts and Rich had several racks of ribs ready for the smoker.

It was an extremely useful co-working session with lots of planning and organisation - with discussion carefully curated by Filipe.  The team also got together with other Essex devs for a bowling session one evening... and we've learned there are no standout bowlers on the team!


Essex Dev Bowling

Friday, 25 May 2018

Saving (and Loading!)

Hi all - Steve here.  I’m a programmer working on Off Grid - and I’ve had the pleasure of working on save systems recently.  :)

Ha!  This is really one of the short straws of game development.  When I was at Sony, it was almost a rite of passage; these were the days that not only did you have to save and load, but you were responsible for ensuring things didn’t die when the memory card (remember those?) was pulled out mid-operation.

Prior to this month, we had the beginnings of a save system in place, but were aware that certain things didn’t seem to be working quite as they should - so I took a look.


What I discovered was that we kept a save in memory as well as writing it to disk.  This is a good thing - loading a checkpoint is faster.  But a side effect was that there were two code paths to reinstating a save - to load it from disk, or to just reference the save data as game data.  The danger with this is that the in-memory data can reference ‘live’ game data, which means the save on disk diverges with this during gameplay.  Lots of copying data later, the bits that weren’t working quite correctly now seem much happier.

The other work I’ve done was on a system level.  Saving and loading requires making a list of all the files available. Previously, we loaded all of these into memory - but as we cannot know how big they’re going to be, this will eventually cause us all sorts of problems. I’ve instead created a header at the top of each save file, containing the information we need to present to the player. Load the first 1000 bytes or so of each file, grab the header, close the file.

Saving and loading done then? Certainly not!  We will still have new data that needs to be added to our save structure, and I bet there are still some bugs in there.  But I’m confident that we are on firmer ground than we were a month ago.

Til next time!

Steve

Tuesday, 6 June 2017

Off Grid Sprint Update 06.06.2017 - Radial Velocity

The month of May is done and dusted - and Off Grid is all the better for it! We’ve overhauled the app system, reorganised our LevelKit, and continued adding all the right save features. If you’re a wannabe Off Grid player and modder, the time to start getting familiar with the tools at hand is right here, right now!


New ways of using your apps

In this sprint we ended with fairly big difference in how apps, and selecting targets for interactions are handled. While the old AppWheel is convenient for certain types of interactions, like grabbing all the data around you as you run through the level, it’s less ideal when you want to do more planned and complicated interactions with various devices, without having to switch different apps on & off and sometimes opening your pause menu and inventory to select files and send them.

So we decided adding a radial menu you can use to select the apps to use, files to send etc while you are currently looking at a target device would be a nice option.


Simple enough as a concept, but as things go, actually building this ended up requiring quite a lot of other things to change as well…