Claudia Doppioslash

About

How I got here

When I was 2.5 years old I was fascinated by the black and green screen of our Commodore PC-10. I learned to type in commands at the DOS prompt before I learned to read.

I offered a fair bit of resistance to becoming a programmer (I wanted to be an artist) but in the end, programming is the easiest thing I can do at a professional level.

Haven't given up on becoming a good artist though. Game Development, especially Graphics Programming, allows me to unite art and programming, and is, naturally enough, my favourite.

But at the moment I'm chasing the Functional Programming siren call for a better coding experience. So far it's working.

What I do

Professionally I'm a programmer, but my interests both in programming and outside vary quite a bit.

The life of a fulltime employed programmer to one company isn't conducive to the rate of improvement and learning that I enjoy.

So, I contract, I write and speak about my findings, and whatever subject interests me at the moment.

I end up doing a fair bit of independent research (totally self-funded), in Game AI, better ways to debug (time-travelling), live coding and better paradigms to use (FP, Rust), which, I hope, will at some point lead to something useful.

I also gingerly but stubbornly proceed in training myself to be both a concept artist and a 3d artist. Coding is definitely easier for me :P

Writing

ShaderCat

Physically Based Shader development in Unity and WebGL, and Graphics Programming in Rust.
Latest post
How to Explore Unity 5's Shader System Code - IV - Global Illumination code overview
01 August 2016

This time we'll chase down how the Global Illumination contribution is calculated. It takes some work, because the code which does the key calculations is behind layers of quality choices, which are encoded as defines.

LambdaCat

Gathering any interesting/useful/cool Functional Programming tidbits I find. Mostly about many different programming languages.
Latest post
Getting to know Purescript (from Elm)
10 July 2016

If you know Elm and want to add to your toolset a language, which actually has those higher abstractions that you've heard about, Purescript is the obvious choice.

Purescript compiles to Javascript too, it can interoperate with any Javascript library, has no runtime, and has most of those Haskell abstractions, plus a few more.

NarrativeCat

Gathering toughts and examples on how Game AI comes short of its potential, and what can be done to fix that.

ETA: TBD

Research

Better Debugging & Live Programming

Following the example of "Inventing on Principle" and the little-known GOAL language and system by Naughty Dog, I seek to find ways to reduce the iteration times in gamedev drastically.

References:

NarrativeAI

An open source project for reimplementing comparable functionality to the amazing Interactive Fiction game Versu.

We're using Haskell, Planners, Automated Theorem Proving, and trying out different Modal Logics.

We are on:

Rust for Rendering & Gamedev

C++ is the lingua franca of the game industry, but my experience with Functional Programming taught me that Type Systems can be much more useful than you'd expect.

Rust is a proper attempt at using PL research to achieve a practical goal, namely a memory safe, low level and high performance language.

I think Rust will prove itself very useful in making gamedev much less painful.

In order to help people use Rust for gamedev, I built and maintain Arewegameyet.rs, an overview of the state of the ecosystem, and an index of useful libraries.

Games

Tainted

An Interactive Fiction game about a lonely boy who is hit by some forceful hope in the aftermath of a catastrophe of local proportions.

CyberCook

A realistic 3d cooking simulation for iOS and GearVR. I made the physically based shaders, amongst other things.

vTime

A VR sociable network. I worked on the Avatar functionality.

Talks

Functional Programming

I also speak at conferences. Since I started in order to help popularise Functional Programming, most of my talks are about that.

Here I'm only going to list talks that were recorded.

GameDev

Mainly about custom lighting systems, and interactive development.

Art

Photos

With my trusty rugged Lumix I take mainly photos of great architecture and landscapes.

Painting

Thanks to Schoolism and CGMA I've been progressing.

3D

The ideal complement of a Graphics Programmer is 3d modelling and animation.

I'm currently learning, and it's already helping me see exactly why some bad artifact in shading happen.