Monday, 15 December 2014

Sprint Update 15.12.2014

Hello there!

Another sprint complete and a nice mix of new features and a bunch of things that have been bugging us for a while have been straightened out.

More data mechanics

The guards now leave a regular trail of GPS ping data-points from their phones. The content is populated as ‘locational data’ at the moment by the vector3 position when the data is created, which means that data could be used to interesting effect in later puzzles for following, tracking, and diverting things.

We also had a good start at the systems we’ll need for the players to be able to select specific data from the environment for interacting and storing in their file library. It doesn’t really do much yet, apart from selecting and highlighting the closest data point in front of the player, but once our data redesign/rewrite is done it can be used by any and all apps that need to interact with data in the 3D environment.

Keyboard controls

Some of the controls are pretty hacky for now, that’s just the nature of making a game about data and how we interface with this ethereal thing, and so as we develop the mechanics the controls are constantly evolving. A symptom of this is that sometimes things fall behind on one of the two control systems (Keyboard and Mouse vs. Gamepad), and when you are writing code and spinning around in a 3D editor all day, it’s nice to give your hands a break and test things on the gamepad. More often than not that means the keyboard binding is delayed while you mess around and prototype what does and doesn’t work in the interface. This last week we have been getting a build together for the sound guys to play around with some more data-view audio and so getting the keyboard keys for using the apps, especially data-view, updated in the InputManager script has been a priority. Nice to have the game updated for keyboard again, until the controls get reiterated that is!

New video player & loading screens

We’ve been having some troubles with the video player setup we used in the game, and decided to get rid of it and move video playback to the user interface side of our codebase. No more glitchy audio during video playback, and it should work nicely on all platforms.

That also meant removing the separate scenes we had for videos, and instead running them as part of our main menu scene. The result is smoother transitions between menu and video playback, and the changes also gave us a nice opportunity to set up a loading screen when starting the game. Also, the game is now loaded in the background while playing the intro movie. Funny enough, while the added transitions and loading screens stuff actually increases loading time a bit, it definitely feels a lot quicker than it used to. That’s user interface design for you…

Changes in the video playback also brought some other benefits with them, we can now add additional UI elements on top of the video, which right now means a message telling the player which button to press to skip the video and return to menu or load the level. That of course allowed us to actually set it to happen on a specific button, rather than any key/button, so less chance of accidentally skipping the video from this point on…

And finally, as a extra benefit, changing the videos to WebM format and removing the old video playback plugin shaved off a decent amount from the file size of the game. Always a nice thing!

Icons! Lots of icons!

There’s definitely some kind of user interface theme going on here with this sprint…

During the sprint we added icons for different file types (text files, encryption keys, audio files etc), for notification popups, and also for all the gamepad buttons. So, all hint messages in the game now have proper button images when giving the player instructions about game controls.

While editing the user interface, we also changed popup & SMS notifications to float on the top right screen corner, so they will always align to the right edge by default, but if there’s already an SMS displayed, then popup messages will move further to the left. It looks a lot better this way. The popup messages also got some extra tweaks to font sizes and spacing, and of course they also benefit from the newly added icons for different types of messages.

There were also a few issues we had to fix, mainly the size of notifications for 'next calendar event’, which was changed to fixed width, and overflow issues in the file menu when file description contained extremely long words. (“long words” in this case meaning the long alphanumeric strings without any spaces we have for the encryption keys…).

Cleaning & Optimising the build

Clean-up wasn’t really in the sprint’s goals, however while doing all the above changes we ended up removing some unused stuff from the project, and with more optimised content, couldn’t help but end up with a much more lightweight build. To add to that we also did some further optimising in the prototype level we have, removing some real-time lights and shadows from objects where they really make no difference, gaining us around 10-15 FPS improvement.

It turns out our game build includes sound banks for all platforms by default, even though you of course only need the ones for the platform the build is actually made for. This was an easy opportunity to squeeze the build size even smaller.

Together with the new video format and other old things purged from the project, the Windows build is now 1.1GB in size, compared to 2.2GB we used to have!

Apart from all the time spent on the production side of things and planning for our upcoming crowdfunding campaign, that’s all for this sprint. Time to get working on the next one…

No comments: