• Generating Noises with Pure Data

    Procedural Audio in Unity with Pure Data

    Why? (aside from being cool)

    In Two Dots, each time we release a new theme (every two or three app updates), we not only pick a new set of board and background colors, we also make a new set of sound effects. That means with each new theme, we need to generate, organise, and pack at least 40 new SFX (20 dot connects and 20 square connects of different lengths). Though our initial concern was file size, it turned out that rendering these was a huge overhead for our in house composers. Although each sound is essentially a different note (or chord) on the synth instrument, they need to be generated multiple times to get a clean and level render for Unity to import. They probably haven’t forgiven us for the time we needed them to re-render all the worlds at a higher volume yet… Generating these procedurally seemed like a good solution. If each new theme meant a new ‘instrument’ to define what the connects should sound like, the game at run time just needs to load that up, then play whatever note or chord is needed. Now we just needed a way to make these instruments, and teach Unity to play them.

    Read More…
  • Project Cassandra (Machine Learning at Dots)

    Cassandra was a character from Greek mythology known for her gift of prophecy. Certain versions of her story report snakes that licked her ears, whispering predictions to her as she slept. In others the Greek God Apollo bestows her with the gift of prophesy in an attempt to woo her. At Dots, instead of using serpents or divine inspiration, we use the power of machine learning to make different predictions about our users.

    Read More…
  • Value Types and Generics

    “Don’t use value types with generics unless you HAVE to!”

    I found that warning scrawled across a white board my second or third week at Dots. “Have” was quadruple-underlined for good measure.

    In C#, a value type is any basic type like an int or a float, or any type definition declared using the struct keyword. A generic class is a class like List<T> that can hold fields of one or more parameterized types. Supposedly, mixing the two increases the size of your application’s executable by a significant degree.

    Is this true?

    Read More…
  • Designing a Games Studio

    Slush is one of world’s “must-attend” conferences for investors and startup entrepreneurs. Paul Murphy, our CEO, and Patrick Moberg, our CCO, were at Slush this year to talk about Dots. Their talks covers the whole Dots story—where we came from, where we are today, and where we’re going in the not-too-distant future.

    Read More…