I've been watching a lot of talks from various conferences lately. The biggest problem is that I tend to forget what the talks were about. So I started making notes and reflecting on new knowledge I was getting.

I needed a place to dump these notes, and I chose my blog for this purpose. I usually get links to decent talks from the community or friends, that's why I thought links from me might be useful for the readers.

These are the videos I watched lately:

rand() Considered Harmful

By Stephan T. Lavavej, Microsoft.

I'm not a C++ developer. Got a link to this video from a Reddit discussion. Watched it for the sake of self-improvement. The speaker is very good.


Rating: 5/5.
Some takeaways:

  • rand() is nonuniform — its "random" values form hyperplanes which you can see if plotted in 3d,
  • rand % 100 is non-uniform if MAX_VALUE % 100 != 0,
  • (src * 1.0) / RAND_MAX * 99 — non-uniform, because only 32767 gives 99,
  • new API: random device -> distribution,
  • mt19937 algoritm is fast, not crypto-secure,
  • use shuffle for arrays,
  • can skip int distribution if mapping (0, 2^32) to (0, 2^N).

GLyphy: high-quality glyph rendering using OpenGL ES2 shaders

By Behdad Esfahbod, Google.

The talk is about GLyphy. Got here while googling the usage of Signed Distance Fields in font and vector rendering on GPU.


Rating: 4/5.
Some takeaways:

  • Font rendering using SDF,
  • Computing distance to bezier curves is hard,
  • GLyphs are converted to connected circular arcs,
  • arcs are sent to GPU in binary blocks,
  • I still don't get how it works...,
  • Looks great.

I still wonder how they do it. Looks like I'll have to check the code, because I couldn't find any explanation on the Web.

Know your architecture: performance programming for gamedev students

By Keith O'Connor, Ubisoft.

This is not a video but PDF slides of what seems to be a great talk about performance optimization.


Rating: 5/5.
Some takeaways:

  • data in memory vs. data in cache,
  • small restructuring of code can utilize cache better,
  • array of structure vs. structure of arrays,
  • you should be able to read ASM,
  • GPU: bottleneck in one stage limits the speed of entire pipeline,
  • reduce pixel shader instructions – no change in frame time means the bottleneck is elsewhere,
  • profile before & after – don’t assume that your optimization is a good one.

And of course, this slide; which should have been the first slide of the presentation.

FIFA From the inside: through a console generation

By Sebastian Enrique, Electronic Arts.

I've been doing some stuff for FIFA for a while, so I was curious about how FIFA the game evolved through the years. But the talk turned out quite boring. Not much (if at all) technical details, only 5 minutes devoted to studio dev process.


Rating: 2/5.
Some takeaways:

  • shown the progress from 2006 to 2014,
  • the studio has to launch a version every year, tight time constraints (unlike other gamedev companies),
  • there were versions where experience for PC and consoles was different because of bugs on PC; consoles used a newer engine,
  • otherwise there's not much interesting stuff.

Making Mobile Apps: From Concept to App Store

By Trina Gregory, ITP.

I don't know why I started watching it, but the talk turned out to be very interesting. Especially if you are a beginner game developer, this session will be very useful for you. Of course, as all such talks this one has many obvious ideas; but it also contains much real-world data and practical tips.


Rating: 5/5.
Some takeaways:

  • mobile refers to a USER - the use is mobile not a device,
  • app idea: find a need and fill it,
  • wearables is a popular topic lately,
  • think about who your user is,
  • what defines your app? - my app does ... -> minimum viable product, focus on the core, competitors -> write on one page,
  • concentrate on design; mobile users are picky (i.e. no programmer art),
  • there are many decent wireframing / mockup tools,
  • checkout the photoshop template with mobile gui layers,
  • interactive prototyping tool / download to phone / show to client,
  • there's apple university program where teachers can apply for students to be able to publish their apps for free,
  • back-end as a service to store data,
  • android: more devices, ios: more money,
  • different ad models: pay per click, pay per display, pay per action,
  • freemium apps rule,
  • people spend more and more time consuming content from mobile devices,
  • analytics.

Simple Made Easy

By Rich Hickey.

This talk was a follow-up in the Reddit discussion of my last blog post. Rich Hickey is very smart person and a great spokesperson, so I finally had time to watch his talks. So I started with this one. It does have several interesting points.

In this talk Rich Hickey emphasizes simplicity’s virtues over easiness, showing that while many choose easiness they may end up with complexity, and the better way is to choose easiness along the simplicity path. In the talk he uses the old verb "to complect".


Rating: 5/5.
Some takeaways:

  • simple = one role, one concept,
  • easy = near to our understanding / skill set, near our capabilities / relative,
  • complexity undermines understanding,
  • need to be able to reason about our program, tests won't guide us,
  • complexity will kill you,
  • when we make things simpler we get more space for decisions,
  • parens are hard (lisp) because of IDE, complex because they are overloaded for different functions,
  • simplicity is not implied by modularity,
  • state is not simple, it complects everything it touches; poisonous effects of complecting,
  • we can create the same sophisticated systems with much simpler tools,
  • abstraction for simplicity vs. abstraction as complexity hiding,
  • use queus to connect components,
  • data is simple, don't complect it introducing new data types,
  • you should learn to see what complects your system.

The Trouble With Types

By Martin Odersky, Typesafe.

I respect Martin and I like Scala, so I decided to check out what he had to say. But the talk turned out to be not that useful or insightful. He has some decent points though.


Rating: 3/5.
Some takeaways:

  • good design is opposite of random,
  • good designs are discovered not invented,
  • if you dont' have constraints you fall back into randomness,
  • types == constraints,
  • powerful patterns made safe by types,
  • [coarse .. detailed, weak .. strong] type system graph,
  • most of complexity in Scala comes from the types,
  • error logs in scala can be huge,
  • types are worth it, because they can lead to great designs.

Ed Catmull: Creativity, Inc.

By Ed Catmull, Walt Disney Animation Studios.

This is essentially and interview about Creativity, Inc.: Overcoming the Unseen Forces That Stand in the Way of True Inspiration book. I've heard a lot of good reviews of this book, so I decided to watch this talk. I think the video really made we want to read this book. I've read a book about Steve Jobs a year ago; it had a chapter about Pixar and the whole story was great. So, if you read Creativity Inc you might want to watch the video, because the interviewer asks questions about the book which makes Ed talk further about what he wanted to say.


Some takeaways:

  • Ed wanted to be an animator but went to study computer science,
  • Ed was actively for publishing all results, like open source works today.