I was recently reminded of an old conversation I had some twenty odd years ago, a fresh faced and innocent programmer (yours truly) was discussing with his fellow engineers the future of CPU technology. At the time we were programming on 8-bit processors (6502 and Z80 CPU’s) the 16-bit processor (68000) was in our sights and we joked about the day when we would enjoy… 128-bit registers!
While we knocked around ideas of what we could do with the ocean of unlimited memory our attention did for a time focus on what we could do with Game Entities. We thought there would be so many processors that we could run each individual game entity on a single CPU, we would no longer need to give up processing cycles to rendering and audio, we could dedicate all CPU time to game A.I. and game mechanics. This was in a time when getting 5-10% of the CPU for game A.I. was the most you could hope for. We figured a few things would be built in hardware, path generation (i.e. A*), state machines, physics simulation, random number generation, etc.
Coming to the present day, 128-bit registers are here (Yay!) but we rarely program in assembly anymore (Doh!). We have our ocean of memory but no matter how much you have it is never enough (He says looking at a 1024 * 1024 32-bit eyeball texture). Advancements in rendering and audio hardware have shifted a lot of work off the CPU meaning more time to actually process A.I. and game mechanics, unfortunately the thousands of CPU’s we hoped for really hasn’t materialized. Some attempts have been made at physics hardware but it has never truly gained enough critical mass to be worth supporting and it certainly isn’t being built into the console or mobile market.
This retrospect got me thinking about our most fundamental game system, “The Game Entity” and its supporting architecture. In the past twenty years we have seen some major jumps forward in almost all areas of game technology, but I’m wondering has the game entity kept up? The last major evolutionary step forward that comes to mind was when components came along a little over ten years ago, what major improvements have happened since then? Have components really solved all the problems it set out to tackle? Is it possible that the game entity is perfect and there are no more major evolutions waiting to be made? Would A.I. hardware with even several hundred low spec CPU’s really give us the ability to make better Game A.I.?
Inquiring minds want to know!
So what is the current state of “The Game Entity” in the industry today, how does it live, how are we using and abusing it? And very importantly, what can’t it do? This is essentially what my next few blog entries are going to be about, me having a “brain dump” of everything I know about “Game Entities”, Components and the supporting architecture. Maybe by the end we might have a clearer idea of where we are, what’s missing and maybe a glimpse at what might be on the horizon.
Sorry to leave you on a bit of cliff hanger, but converting my scribbles into something intelligible take’s time.
The Game Entity – Part II, The Life Cycle and Processing Architecture
The Game Entity – Part III, Components