Electronic Arts’ STL Implementation

If you’re into hard-core C++ programming for games, you might be interested in reading about Electronic Arts’ STL Implementation. They wrote their own implementation of one of the most intricate C++ libaries known to man.

Back when I was into hard-core C++, STL was not well supported by Microsoft’s C++ compiler (Visual C++ 4.2, at the time), so I rolled some container and string libaries of my own while dreaming of one day being able to use the much more advanced STL. That day never came somehow as I moved away from C++ and programming.

My gut reaction to anyone announcing they are going to rewrite the STL would be to create as much distance as possible between me and the unfortunate fool (preferrably by ejecting said fool from the building). But this paper by EA makes a good case for why they felt it was necessary (and what makes game programming, specifically on consoles, different from other kinds of programming). The programmers at EA seem to know what they’re doing.

Nevertheless, I am glad that these days I can use programming languages that come with all of this stuff built in. Programming C++ is like making bricks from clay and melting steel for beams when you want to build a house. Sometimes having this extreme amount of control over your building materials is great and allows you to do things you couldn’t otherwise do. But more often this is how it’s done because that’s how it’s done.

(Via Tobi.)