Programming Languages for Games

about | archive

[ 2006-February-02 19:37 ]

Tim Sweeney, one of the primary designers of the Unreal 3D game engine, made a presentation to the Symposium on Principles of Programming Languages entitled "The Next Mainstream Programming Language." This presentation outlines the requirements for writing computer games, which boil down to performance, reliability, and productivity. These are the same requirements for all low-level software projects, such as operating systems or high performance servers. Interestingly, he believes that memory safety, such as garbage collection, is a requirement for the next systems programming language. This is interesting because the game programming community has always been very vocal about the Java model being too slow. However, part of the reason for the change of opinion is that performance now depends on code executing concurrently, and automatic memory management makes that much easier. Another interesting opinion is that there needs to be more static compiler checks to avoid runtime errors. This is interesting, since people report being more productive in languages like Python and Ruby, which do much less static checking than languages like C++. Between presentations like this one, and research projects like Singularity, I think there is a concensus that we need a new systems programming language. This presentation is a good source of ideas about what problems need solving.