Texture Packer

When it comes to optimizing graphic assets you want to use texture atlasses (aka sprite-sheets). Since you can have multiple images in one and therefore have less seperated files to open and load one by one and creating expensive textures into your graphic memory. For instance 95 seperate images or one sprite sheet makes a huge difference:

When you want to create sprite-sheets there’s one really awesome tool called Texture Packer.

Which basically creates them by dragging and dropping them into a scene optionally re-orderes, compresses and creates a file with all the offsets for it with like 3 clicks.

At work we’re using it for some time already and I can highly recommend it.

By the way there is one similar cool tool for css sprite sheets called Sprite Cow. :)

Thinking out of the box

Today I’ve stumbled upon two highly inspiring talks. The first one I want to recommend is Media for Thinking the Unthinkable by Bret Victor.

He talks about re-thinking the way we think about systems. The take away for me was in order to understand systems better and easier in general is to visualize its behaviour under multiple perspectives. Also I like the following inspiring quote:

“Just as there are odors that dogs can smell and we cannot, as well as sounds that dogs can hear and we cannot, so too there are wavelengths of light we cannot see and flavors we cannot taste. Why then, given our brains wired the way they are, does the remark, “Perhaps there are thoughts we cannot think,” surprise you?” by Richard Hamming

The second talk is Designing Journey by Jenova Chen (video). Where Jenova introduces a new kind of way to interact with people online at the GDC 2013. His approach is to reduce every noise that would ultimately lead to toxically hating, exploiting and mistrusting your fellow players which is sort of a counterproductive and an unhealthy gameplay overall.

GDC overview: “It took thatgamecompany three years to develop a two-hour long video game. Many high-level experimental ideas were tested and failed, and many lessons were learned during the design and production of the game. 12 months have passed since the game was launched, and we would like to share what we learned with you. This talk will give you the insight into the process thatgamecompany took to come up the original concept for Journey, how we polished and executed the design to realize an emotional arc, and most importantly, the difficult lessons we learned throughout the process.”

Here is gameplay video where a player wanders around and meeting up with a stranger in order to interactivly play walk together.

The takeaway for me is that playing together with other people can actually leave you behind with a very welcoming and healthy feeling if a game is actually designed for social interaction.

Doodle Drawer – Brushes

At my Doodle Drawer app, I’ve played with a couple of “brushes”. The idea is to treat the connection lines differently.


Basically the difference is that the line connections are drawn closer or further away from each line based on the formula of Harmony.

The ‘shaded brush’ looks like this:

The sketched brush looks like this:

And the ‘fur brush’ looks like this:

Parametric Curves and deCasteljau Bezier Curves

Cubic Bezier Curves – Under the Hood from Peter Nowell on Vimeo.

You can drag the markers and open this example in new tab.

The core part of this practise clearly is the bezier curve. To get all points on the curve for 4 control points this would suffice.

However in order to use an arbitary amount of control points I use the following function. It’s recursively, so potentially it’ll explode the max available stack depth (no clue how much that is in js). But for now it’ll do the job.

To use the function simply wrap a loop around with your favorite segments amount.

Now simply draw the points.

Et voilà! The animation idea is inspired by

This is my solution to cg2 exercersise a01.2-1.3.

See Also Practical Guide to Bezier Curves

WebGL Course – Canvas API: Draggable Lines and Circles

Well there is not much to say about this excerise, really. You can create lines and circles, drag them, and change their attributes.

This is my solution to cg2 exercersise a01.1.

WebGL: warmup

What are the pros/cons of WebGL?
Read Quote of Henrik Bennetsen’s answer to What are the pros/cons of WebGL? on Quora

This is my “solution” to cg2 exercersise a00-warmup.