<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Assembly Dev Notes</title>
    <link>http://assemblyltd.com/devnotes/</link>
    <description>Recent content on Assembly Dev Notes</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 28 May 2018 12:00:00 +1200</lastBuildDate>
    
	<atom:link href="http://assemblyltd.com/devnotes/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Oat the Goat #6: A Lot of Audio</title>
      <link>http://assemblyltd.com/devnotes/2018/05/otg6-audio/</link>
      <pubDate>Mon, 28 May 2018 12:00:00 +1200</pubDate>
      
      <guid>http://assemblyltd.com/devnotes/2018/05/otg6-audio/</guid>
      <description>We worked to limit audio layers, but with full narration, a sound effects layer, and an orchestral score performed by the NZSO, we still ended up with a lot of audio. The sound designers really worked hard to meet us on our constraints, working up a nice system of fading feature segments in and out of loopable &amp;lsquo;vamps&amp;rsquo; that filled the gaps.
We ended up with a pretty declarative API that let us write, in our scene sequencing modules, things like this:</description>
    </item>
    
    <item>
      <title>Oat the Goat #5: Character Animation</title>
      <link>http://assemblyltd.com/devnotes/2018/05/otg5-character-animation/</link>
      <pubDate>Sun, 27 May 2018 12:00:00 +1200</pubDate>
      
      <guid>http://assemblyltd.com/devnotes/2018/05/otg5-character-animation/</guid>
      <description>Before we could say whether Oat the Goat was even a feasible project, we had to figure out how to get skinned character animation into the browser.
  We&amp;rsquo;d previously explored a few approaches for doing this &amp;ndash; .fbx via a Python conversion script to a three.js .json format, Collada/.dae files &amp;ndash; but not found anything we were particularly happy with for serious use.
glTF Shows Up Happily there&amp;rsquo;s a new kid on the block, glTF, with a public spec, designed pretty well for real-time use.</description>
    </item>
    
    <item>
      <title>Oat the Goat #4: 3D Scenes</title>
      <link>http://assemblyltd.com/devnotes/2018/05/otg4-3d-scenes/</link>
      <pubDate>Sat, 26 May 2018 12:00:00 +1200</pubDate>
      
      <guid>http://assemblyltd.com/devnotes/2018/05/otg4-3d-scenes/</guid>
      <description>With the brief for this project being for a very illustrative style (as you&amp;rsquo;d expect of a children&amp;rsquo;s storybook), we didn&amp;rsquo;t have to worry too much about 3D realism, or lighting and shadows.
We&amp;rsquo;re using mostly unlit materials with nothing but a color texture applied to them; sometimes those textures are tinted down slightly dark, and in a couple of places we&amp;rsquo;re using Lambert materials (simple diffuse lighting evaluated per-vertex) to give us some subtle lighting.</description>
    </item>
    
    <item>
      <title>Oat the Goat #3: System Design</title>
      <link>http://assemblyltd.com/devnotes/2018/05/otg3-division-of-labour/</link>
      <pubDate>Fri, 25 May 2018 12:00:00 +1200</pubDate>
      
      <guid>http://assemblyltd.com/devnotes/2018/05/otg3-division-of-labour/</guid>
      <description>System architecture is always a risk factor when you haven&amp;rsquo;t worked on a certain kind of project, or at a certain scale before. We knew we needed scenes to be pretty well separated, loadable and unloadable, and we knew we&amp;rsquo;d need some kind of separation within scenes between the nitty-gritty of shader setup, animation declarations, update-render loops, and the higher-level logic of a scene &amp;ndash; triggering animations in response to user interaction, fading between music tracks for different parts of the scene.</description>
    </item>
    
    <item>
      <title>Oat the Goat #2: Two Languages</title>
      <link>http://assemblyltd.com/devnotes/2018/05/otg2-bilingual/</link>
      <pubDate>Thu, 24 May 2018 12:00:00 +1200</pubDate>
      
      <guid>http://assemblyltd.com/devnotes/2018/05/otg2-bilingual/</guid>
      <description>Oat the Goat is fully bi-lingual, with a counterpart Te Reo Māori version Oti te Nanekoti. Both languages have unique voice-over, captions, UI, copy, and a few 3D assets (image textures). Handling this was largely straightforward &amp;ndash; there&amp;rsquo;s a few hacks in some asset loaders to decide based on URL which assets are translated and which are universal, and there&amp;rsquo;s a big ol&amp;rsquo; table of alternative voice-over timings to keep captioning in sync, but mostly it was just a case of making sure our layouts were flexible enough to handle both cases gracefully.</description>
    </item>
    
    <item>
      <title>Oat the Goat #1: Introduction</title>
      <link>http://assemblyltd.com/devnotes/2018/05/otg1-beginnings/</link>
      <pubDate>Wed, 23 May 2018 12:00:00 +1200</pubDate>
      
      <guid>http://assemblyltd.com/devnotes/2018/05/otg1-beginnings/</guid>
      <description>Assembly&amp;rsquo;s latest project, Oat the Goat, has just gone live. It&amp;rsquo;s an animated kids&amp;rsquo; story about dealing with bullying, built for New Zealand&amp;rsquo;s Ministry of Education, and it&amp;rsquo;s a pretty large-scale use of WebGL.
It&amp;rsquo;s one of the largest web projects I&amp;rsquo;ve ever worked on, clocking in at around 12 minutes of narrative animation, spread through 11 scenes, with a voice-over narration track (in two different languages, synced to captions), a sound effects layer, and an orchestral score performed by the New Zealand Symphony Orchestra.</description>
    </item>
    
  </channel>
</rss>