I hope you can do a talk too Paul. I would love to hear your thoughts on EASTL now. It is still critical part of all EA games.
Here is my abstract. I guess I have to submit this tomorrow so if you have time for feed back that would be great. I will submit it anyways and I will see how it goes.
My talk will be about the problems games have and how we currently solve things. I hope people can give me suggestions on how we can do things better.
I might talk about EASTL and STL however really most of my coding on large project uses EASTL so I don’t think I will go that deep. The ideas that I will talk about are universal problems.
I don’t know how much I can show our memory tools and things but so far I have good feed back from my managers on this.
Abstract
A veteran game software engineers perspective on the current memory and C++ debugging tools used at Electronic Arts.
PS4 and Xbox One have virtual memory and 64 bit address spaces, GPU and CPU are getting closer in the ability to work virtual memory. So our tools are getting better and better and closer to PCs.
Most of games memory use is art and level data like bitmap textures and polygon meshes. So artist and designer need to understand how much their art takes up. Giving them call stacks of memory allocations does not help. They want to know how big is a group of building is. Why is this group of building bigger than this one? Maybe this one has some animation data or one of the textures is too big. But there are 10,000s of objects.
Outline of content (that I will not be held to)
A veteran game software engineers perspective on the current memory and C++ debugging tools used at Electronic Arts.
PS4 and Xbox One have virtual memory and 64 bit address spaces, GPU and CPU are getting closer in the ability to work virtual memory. So our tools are getting better and better and closer to PCs. We have tools to find memory corruption that are fast enough for games.
Games have millions of allocations taking up GBs of ram. Games are written 100s of software engineers spread around the world. We have even more artist and designer then engineers on most game teams. Getting everyone to understand our budgets has been hard. With 100s of people all pointing fingers at one another you have to make it clear who owns what problem.
Most of games memory use is art and level data like bitmap textures and polygon meshes. So artist and designer need to understand how much their art takes up. Giving them call stacks of memory allocations does not help. They want to know how big is a group of building is. Why is this group of building bigger than this one? Maybe this one has some animation data or one of the textures is too big. But there are 10,000s of objects.
Games are on embed real time systems where if your code takes too long the code can run quite differently. Also getting to the point in your level that you want to test takes longer then build times. So our best debugger will often debug optimized code mostly in ASM.
C++ is the heart of our engine and is what makes this all possible.
Outline of content:
- A History game memory systems
- EASTL vs STL use at EA
- Debugging in games
- Hierarchical assets memory tracking
- Enforcing SEs allocators use in STL
- Working around limits in new and delete
- Memory corruption detection
- Memory leak detection