class Fluid {
constructor(context) {
this.context = context;
this.speed = 4;
this.forceInitMaterial = this.createShaderMaterial(forceInitFrag);
this.divergenceMaterial = this.createShaderMaterial(divergenceFrag);
...
this.divergence = this.createRenderTarget();
this.advection = this.createRenderTarget();
...
The gist, that the same principles that make a video game where you save a princess fun to learn (e.g. super mario bros) can be applied to building products, seems so obviously true - yet difficult to put into practice.
The most influential part of this presentation is this quote:
When you build applications that let users be smart, they love you for it. The secret to good game design is simple. Set up situations where there is a problem that must be solved and let the user solve it. Give them subtle clue, but don’t take away that ‘aha’ moment.
Scary part: you have to believe the user is smart.