Opinion

  • Video Conference Part 4: Making RANS the Ryg way

    Last post, we got our networking stack up and running, figured out how to work around firewalls, and saw how our codec performs over a real network link. This motivated us to revisit our compression schemes, which is what we’ll do in today’s post. We’ll start with some algorithmic improvements to reduce the amount of…

  • Video Conference Part 3: Getting Online

    Last time we got up close and intimate with the core compression techniques used in the JPEG format, and applied them to our own situation for better compression. We got our data rates low enough that we have a shot at realtime video under ideal network conditions. Now it’s time to actually send data over…

    Video Conference Part 3: Getting Online
  • Video Conference Part 2: Joint Photographic Hell (For Beginners)

    Last time, I got angry at Skype and metaphorically flipped the table by starting to write my own video conference application. We got a skeleton of a chat app and a video codec up, only to find it had a ludicrous 221 megabit bandwidth requirement. We added some simple compression but didn’t get much return from our…

  • Video Conference Part 1: These Things Suck

    What I cannot create, I do not understand. – Richard Feynman I do a lot of video chat for work. If it’s not a one on one, it’s pair programming. If it’s not pair programming, it’s a client meeting. I use a lot of Skype and Hangouts. Sometimes they don’t work for unclear reasons. Sometimes…

    Video Conference Part 1: These Things Suck
  • Huffman Serialization Techniques

    Networking expert Glenn Fielder’s article on network serialization techniques is a great read. It discusses a number of scenarios including serializing a sparse set of items from an array. This blog post discusses Glenn’s implementation of sparse array serialization and my thoughts on it. To be sure, Glenn’s code has the virtue of simplicity, and the concepts I’m going to discuss are more…

  • Fundamentally F$#ed Up Projects

    The nature of most game dev projects I have been involved in is that they are fundamentally f#$ed up in at least a few key ways… — bengarney (@bengarney) October 28, 2015 The trick as a technical contributor is not obsessing over badness and locking in technical wins that let the project fix itself later…

    Fundamentally F$#ed Up Projects
  • Putting Money on the Screen

    Jeff Tunnell is an awesome producer (among his other talents), and I’ve learned a lot from working with him. One of his frequent words of guidance while wearing his producer hat? “Put the money on the screen.” There are a lot of ways to prioritize building software. What feature/change do you tackle first? Depending on…

    Putting Money on the Screen
  • Some Notes on Mac Configuration

    I was recently advising a fellow TEC-er on setting up their Mac, and they suggested I write it up. These are the tools I use daily for development! Here we go… Alfred is an awesome tool. Like the Windows key on Win8, you can hit a keyboard shortcut (cmd-space by default) and type an app name or…

  • Deep Breath & Measure

    “Your app is slow!” What are you going to do about it? Is it that new code the intern landed? Is it the operating system’s fault? Misconfigured hardware? Or even, god forbid, a bad algorithm? Your thoughts run to that bloated subsystem. You know the one. It’s complicated. You’ve had your eye on it for…

  • The Draw-Render-Update Conspiracy

    I love clear terminology. It’s the engineer in me. This post is about some self-perpetuating terminology that confused me as a new developer. The confusion centers around functions named draw() or renderFoo(). As a new developer, you get excited – “Ah hah!” you think to yourself, “I am about to see something cool go down here.” So you pop…