Wednesday, August 12, 2009

Languages and game development

I'm reading through an interesting ppt on a game developer's view of language problems with C++.

I found this interesting:

§ Usage of integer variables in Unreal:

90% of integer variables in Unreal exist to index into arrays

80% could be dependently-typed explicitly,
guaranteeing safe array access without casting.

10% would require casts upon array access.

The other 10% are used for:

Computing summary statistics

Encoding bit flags

Various forms of low-level hackery

§ “For” loops in Unreal:

40% are functional comprehensions

50% are functional folds

The Natural Numbers

Factoid: C# exposes more than 10 integer-like data types, none of which are those defined by (Pythagoras, 500BC).

In the future, can we get integers right?

And this:

Concurency in Numeric Computation

· These are essentially pure functional algorithms, but they operate locally on mutable state

· Haskell ST, STRef solution enables encapsulating local heaps and mutability within referentially-transparent code

· These are the building blocks for implicitly parallel programs

· Estimate ~80% of CPU effort in Unreal can be parallelized this way