Dev Blog 06/30/16

First post, third game update: really almost a completely new game in many ways. This release has brought the game closer to what we both (@keithkamikawa and I) had in our minds, both visually and in terms of atmosphere. Originally we had planned on releasing 1.3 following 1.2 and it was going to be limited to the new deep sea trench, but as we built the tools for it we opened up things that we hadn't been able to do before and our development took on a life of it's own and it really turned into 2.0. Anyone involved in big software development projects (as we both are our in our professional careers) would be quick to shout "SCOPE CREEP" but I think in the creative process following things that are shiny and new fuels the process and you end up with things that you might not have pursued otherwise. There was a lot of groundwork laid for future versions and it feels good to be able to have questions like multiplayer and gameplay answered now, where before it was a bit unclear if either of those were an option for us and it was more than a little stifling on design.

To see everything that's new, scroll to the bottom of this entry to the changelog, it's a LOT. I'm probably the most excited about the giant pirate ship that floats at the top of the waves... it frames the whole experience in an era and we have a lot of great plans around that driving both story and gameplay. The ocean surface itself was a huge undertaking and had me wishing I had paid more attention in math class (you really do need that stuff someday). I love low-poly art and would jealously gaze upon icebergs floating in water, or forest scenes with a faceted lake reflecting a mountain range... being able to code something like that and control the waves and weather has me more feeling like a wizard than an artist but I'll still take it.

A huge boost to our development has been diving into (pardon the pun) shaders and really taking them as far we could. For example, for our caustic pattern (the shapes the light makes shining on the ocean floor) we had originally animated a texture with frames, but on mobile we just couldn't get the resolution high enough for it to look right. We ended up using a caustic spritesheet and wrote a tiled emission shader that would overlay it on our texture atlases; the performance gain from the memory freed up and not having to swap textures out at runtime was huge. Having it tileable also let us scroll the texture across the terrain to match the speed and direction of the waves above which appeals to me as a details-enthusiast. After this, it was a bit of a chain reaction on what we could do with those extra resources so Keith beefed up the ground cover and we have corals and anemones and 6 different types of aquatic plants to give some cover to our crabs, shrimp and fish. Binge-watching Blue Ocean on netflix we really noticed that in the ocean you have these densely-packed intensely alive ecosystems or it's barren rocks and sand, there really isn't a lot between and we wanted to capture that.

What's next? One of the most common requests we get is of course, to add a shark; we will be doing that in the next update as well as to allow the player to break the surface and get a better look at what is going on above the waves. We'll also be adding more interaction between the player and the various underwater life... an example in this past update is now when you swim through a swarm of jellyfish you get a bit of a shock, and if you swim into the mackerel school they will scatter and reform around you. We'll be making the turtles friendlier and see how everything interacts now that there will be a shark on the loose. After that, our primary focus will be on gameplay... we have a very simple story to tell on how the player got where they we're really excited about!

     -@thejoebaldwin

2.0 Changelog

DEEP SEA TRENCH

  • Canyon depth increased for Deep Sea Trench
  • Two new types of glowing seaweed
  • New Angler Fish
  • Move Angler Fish emission control from update to coroutine
  • Angler Fish will attack other fish that get too close
  • Added Water Current colliders to thermal vents that move the player away along current
  • Added Deep Sea Trench camera location for Aquarium Mode
  • Added separate particle fog systems to both halves of Deep Sea Trench
  • Created batchable glowing starfish
  • Added glowing shrimp with sub particle emitters
  • Updated Angler Fish animation speed on attack and emission timing
  • New Underwater volcanoes with lava and fumarole particle systems
  • Added ambient sound to underwater volcanoes
  • New Angler fish sound
  • Replaced particle fog with fog planes to trench on Low Quality

OCEAN SURFACE

  • New pirate ship with animated sails, cannons and flags
  • Added Collision to surface ship
  • Wave shader for Low Quality with no pixel-based lighting
  • Wave shader for Medium and High Quality with pixel-based lighting
  • Removed old surface boat from terrain
  • Added Cannon sound with randomized pitch
  • Added ambient sound for surface waves
  • Created dynamic ocean wave mesh, script and shaders for hard poly water
  • Added wave-height sampling objects for ship vs. water collision particle effects
  • New sunbeam system matches direction and speed of surface waves
  • Buoyancy and anchored behavior to surface ship
  • Created Cannon Prefab and swapped out ship cannons
  • Created two-sided cutout shader for surface ship ropes
  • Turning off surface wave animations below certain depth
  • Added lens flare to sun directional light

ANIMAL ENHANCEMENTS

  • Finalized mackerel pattern
  • Tighter Sea Bass schooling behavior
  • Moved Red Sea Bass school higher
  • Animated caustic emission shader to simulate underwater lighting on surfaces
  • Added floor to Anglerfish emission level
  • Proofed out Level-of-detail on Blue Whale, using longer cull distance instead
  • Added Particle Fish schools with 6 different fish
  • Seabass pathing on coroutine and rotation/physics on update
  • Adjusted Quahog Clams cull distance
  • New Quahog Clam and Sea Bass sound effects
  • Mackerel schooling behavior reworked to be faster and smoother
  • Mackerels will scatter on collision with player
  • Added Turtle ride-a-long camera location for Aquarium Mode
  • Consolidated Red Shrimp particle generators
  • Jellyfish swarm will shock you if you swim too close
  • Added movement attractors to Sea Bass schooling behavior
  • Fixed issue with Turtle swimming into Deep Sea Trench
  • Replaced billboard particles with plane mesh for particle fish orientation
  • Created two-sided shader for particle fish to boost mip-map level to prevent image distorion

OVERALL IMPROVEMENTS

  • Upgraded from Unity 5.2.1 to 5.2.5
  • Fixed lighting mask and light map build for scene
  • Motion on player camera to simulate underwater movement
  • Removed movement icon indicators and replaced with particle effects
  • Refactored main scripts to singleton application controller class to centralize logic
  • Created base controller class for all UI screens
  • Motion on player camera to simulate underwater movement
  • New anenomes,brain coral and reed bushes
  • Added animated VR logo to title screen
  • Updated camera duration on each view in Aquarium View
  • Variable caustic emission speed on Mobile vs PC
  • Separate swim speed on Mobile v PC
  • Calling extern on load to prevent google Cardboard render texture bug on VR start up
  • Quality Settings to allow for improved performance across devices (Low, Medium and High)
  • Standardized base cull distance according to Quality Settings
  • Adjusted wall rocks and seaweed cull distance
  • Created runtime audio component to add/remove sounds according to settings to reduce memory usage
  • Added collider to shipwreck
  • Separated UI for Google Cardboard upgrades and Oculus Rift
  • Simplified audio mixer channels
  • Disabled render texture cameras when not in use
  • Fixed terrain mesh collider locations
  • Editor scripts to swap tagged model objects with prefabs
  • Editor scripts to match seaweed hieght to terrain
  • Editor script to fix object import offset
  • Editor and runtime script to dynamically generate Reed Bushes according to Quality Settings
  • Reduce seaweed count according to Quality Settings
  • Version control on UI Assets
  • Removed View Distance options from settings screen
  • Removed Fog option from settings screen
  • Removed Lens Distortion option from settngs screen
  • Standardized view distance for main scene
  • Added occlusion zones for Deep Sea Trench and Ocean Surface
  • Proofed out shader to replace transparent fog texture for performance, went with fog planes instead that fade as view distance decreases
  • Added social media "Team PolyAquatic" buttons to settings screen
  • Refactored scene into two separate scenes to isolate UI on runtime scene loads
  • Added Xbox One controller support for PC
  • Added bloom lighting image effect
  • Ocean lighting varies with time
  • Simplified layers and physics collision interaction, more animals are collidable
  • Refactored Google Cardboard customizations into partial class
  • Shipwreck has completely new interior and items with light mapping
  • Replaced standard particle shader with square pixels for krill and depth effects
  • Updated animation controllers for more efficient animation looping
  • Removed shut sound on Treasure Chest
  • Updated all model import settings to read-only
  • Created jewel shader for treasure chest
  • Wrote to secondary UV channel to set per-object properties while keeping a shared material for z-testing on jewel shader
  • Adjusted bubble particle cull distances
  • Proofed out using second UV Channel for caustic emission mapping
  • Added Level-of-Detail components to seaweed to reduce pop-in
  • Added dithering shader for Level-of-detail fade-in
  • Reduced physics timestep for Google Cardboard performance
  • Set all static lower-vertex count objects to use Static Batching
  • Fixed Aquarium Mode camera offset bug
  • Added anti-aliasing to Medium and High Quality settings
  • Terrain walls height increased substantially
  • Lighting will vary from total black to bright as depth changes from Deep Sea Trench to Ocean Surface
  • Added underwater ambient sound
  • Added framework for multiplayer in future builds
  • Added framework for zone travel in future builds

We'll be posting here on updates and future enhancements, so please check again soon and follow us on twitter @polyaquatic