Opinion

  • 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…

  • Flatten Your Conditionals!

    Deep nesting is a pet peeve of mine. I’m going to show you what deeply nested code is and discuss some strategies for keeping things tidy. It’s my opinion that deep nesting is a sign of sloppy code. You know, code like this (with my condolences to the author): This code is hard to understand.…

    , ,
  • Ludum Dare 26 & Loom

    Are you a fan of Ludum Dare? I’ve loved watching it for a long time. The huge community of excited developers is fantastic to watch, and some great games come out every time. More than that, LD is a great opportunity. In fact, such a good opportunity that we’re giving LD participants a huge deal…

  • Loom is Launched!

    Howdy! You may have wondered what I’ve been up to since PushButton Labs and PushButton Engine. Nate Beck, Josh Engebretson, and I are proud to share our latest creation, the Loom Game Engine, with the world. It’s a native mobile game engine with live reloading of code and assets, a great command line workflow, and…

  • TCP is the worst abstraction.

    TCP is the worst abstraction. You are hopefully familiar with Leaky Abstractions as described by Joel Spolsky. The idea is that when you add layers to hide messy details, you can mostly avoid having to know what exactly is going on – until something breaks. Think of it as putting a smooth plastic coating on your car.…

  • Some Thoughts on Build Servers

    Continuing from last week’s thoughts about build systems, let’s talk about build servers. Say you’ve gotten a build system, like CMake, up and running in your project. Now the developers on your project are doing consistent builds across all your different platforms, and people are hopefully not missing important build steps anymore. However, there can…

  • Some Thoughts on Build Systems

    Note: You might also want to read Some Thoughts on Build Servers, which discusses software packages for running automated builds on a shared server. The hardest part of software development is often the road from code in a repo to an artifact in the user’s hands. There are a million ways you can ruin yourself…

    ,
  • Fast Bitmap Fonts in Flash

    I got fed up one day, and wrote a simple bitmap font renderer, BMFontRenderer. It parses bitmap font data from a generator like BMFont or Hiero (link on middle right of sidebar) and renders text of your choosing to a BitmapData. BMFontRenderer is under the MIT license, so you can use it as you like.…

  • Flash Player: A Declining Asset?

    4 YEARS AGO – “A DECLINING ASSET” I’m working at a technology startup and today I am talking to one of the founders. He looks at me and says, “Our main product is a declining asset.” This is the product that generates 90% of our revenue and pays both of our paychecks. It’s the one…

    , ,
  • Molehill and the Display List

    One of my posts on the Flash display list was quoted recently in a post by Amos Laber on his excellent blog. He said: So developers like Ben Garney are opting to write their own renderers in order to gain better performance, but that is not an ideal long term solution. A much better one…