adam's blog

How to Use Google Closure's Advanced Mode Without Breaking Everything

For adamia3d I wanted to use Google Closure for minification, and I particularly wanted the maximum setting for dead code removal and function inlining. If I could make anonymous functions that I knew would get inlined, I could organize the code much better in the innermost parts of the engine (where functions are off-limits due to the performance hit of a function call in javascript). However, the maximum setting of Closure, ADVANCED_OPTIMIZATIONS, completely destroys the source for a library. Adamia3d is an open-source library, and I want every class and every property to be considered public and hackable by its users. Unfortunately Closure renames every single class and member unless you modify your source to accomodate (using class['member'] instead of class.member everywhere). Modifying my source like this is unreasonable, so I came up with a nifty hack around it.

High Performance Javascript Port of Actionscript's ByteArray

I have a new project where I need to parse binary files in Javascript, and it would be very convenient to have the Actionscript ByteArray class.

Adamia 3D Demo Update, November 2009

This post is a holding page where updated adamia3d demos will go.

Visualizing CSS3 Matrix Transforms (Including IE DxImageTransform)

It can be pretty difficult to wrap your head around the concept of matrix transformations. To debug matrix differences across web browsers, I made a nifty matrix sandbox page to play around with the numbers and see the effects in realtime. Just drag the sliders around and see what happens to the square in the middle.

Visualizing Flash WMODE Options

A while back I needed to demonstrate how Flash's WMODE settings behave across all platforms and browsers. Instead of trying to explain it in words, I made a standalone test page that illustrates several key concepts.

Announcing Adamia 3D: User Friendly 3D in Javascript

I am officially announcing adamia-3d, a user-friendly and fast (for Javascript) 3D engine written entirely in Javascript (no Flash whatsoever).

Magic Classes - Bringing OOP to Javascript

Are you a fan of object-oriented programming, and you wish you could make elegant, readable javascript classes? Magic Classes could be what you're looking for. There are a number of javascript files out there that provide similar functionality, and I'm not claiming that this is revolutionary. The goal of Magic Classes is simply to provide a very simple interface for classes, namespaces, and inheritance in Javascript.

Random Game Reviews, Part 2

It's time for round 2 of my random game reviews! I've played a number of games in the last several months, and I hope my impressions are useful to somebody. This round is all Xbox 360, including reviews of Gears of War, Eternal Sonata, Soul Calibur IV, and Braid. The format will match that of the first batch.