More About Mike Acton...
Mike Acton
March 18, 2006
March 18, 2006
What Am I About?
I am a programmer who cares about performance.I understand that all the software we write must eventually sit on top of a real hardware platform and push real content and real experiences out to real people.
I am a programmer who appreciates the needs of the content creators.
I understand that what I write is only a conduit between the artists, designers and the users.
I am a programmer who wants to give back to the community.
I understand that I could not have done my job well without relying on the work of others and I have a duty to try my best to return the favor.
Strengths
Low-level optimizationVery comfortable programming close to the hardware. Specialize in building technologies best suited for the hardware and software being used. Very familiar both with developing algorithmic optimizations, and assembly-level code. Experienced and familiar with a variety of processors and architectures (e.g. Processors/Assembly: RISC, ARM, x86, PS2 VU, SuperH, Z80 – Architectures: PS2, PSX, GameBoy, Palm, and custom embedded systems.)
Engine development
Have been the lead developer for graphics display/visibility engines (3D and 2D), animation engines (3D and 2D), collision engines, sound engines, front-end engines, AI engines, streaming engines, scripting engines, etc. for multiple console platforms.
Tools development
Have developed toolsets for all areas of development (Programming (e.g. Resource converters, Polygon stripping, Scripting languages, pre-processors, code-optimizers, Network communication etc.), Art (e.g. Editors, Viewers, etc.), Game Design (e.g. Scripting, In-game resource editors, etc.), Sound (e.g. Sequencers, In-game editors, etc.). For off-line tools, I am familiar with unix and unix-like development environments, as well as MS Windows development. For tool graphics I am most familiar with OpenGL. For tool languages, I am most familiar with C, C++, Perl, although I don't consider language a significant barrier.
High-level design
Have been the lead programmer on multiple game projects, as well as having consulted on System Architecture on several non-game projects. I am comfortable making the necessary trade-offs regarding available resources (e.g. Time) and quality development.
Contribute to the development community
Have a personal commitment to contribute as much as possible (within reasonable limitations) in code, documentation, etc. back to both the game development community and the programming industry as a whole.
Still love games
I still play games regularly and enjoy them! Although my favorite game of all time is still the 1981 Midway classic, Ms. PacMan.
Video Game Industry History
High Moon Studios / Vivendi Universal Games, Carlsbad, CADarkwatch PS2 (May '05 – Present)
Sr. Architect (PS3 Research)
In the process of discovering the secrets of the Cell BE processor and the Playstation 3.
Sammy Studios / High Moon Studios, Carlsbad, CA
Darkwatch PS2 (Apr '04 – Mar '05)
Lead FX Programmer
Worked closely with the FX art staff to create custom tools, realtime editing and previewing on the target platform and some very cool special effects.
FINE, Osaka, Japan
LIME PS2 (Jun '03 – Jan '04)
Lead Programmer
Was the sole programmer on this PS2 title. Although technically a PC port, due to contract restrictions, no source code was available from the original PC project. Developed all tools including art converters and a unique scripting language. Developed all console code including graphics engine, scripting engine, streaming engine and game code. Completed the title from start to gold master in approximately six (6) months.
Yukes co, ltd., Yokohama, Japan
PS2 Research and Development (Jan '02 – Jun '03)
Engine Programmer
Developed samples, libraries, tools and documentation for distribution to various internal and external PS2 developers. Conducted development, lectures and training on all aspects of PS2 code and data design.
VBlank, inc., San Diego, CA, USA
PS2 Engine Development (Mar '00 – Jan '02)
Technical Director / Engine Programmer
Successfully developed and licensed MG5, VBlank's PS2 graphics engine. Mostly engine programming, plus designed the toolset and formats and co-developed the tools. Accomplishments of note: Optimizations – in real game situations, complete with animations, lighting, etc., rendering was typically limited by the hardware pixel throughputand the artists' abilities in building very high resolution models in the allowed schedule. Windowing system – coupled with the texture manager, the windowing system allowed programmers to implement a variety of new features easily (e.g. Point-and-click user interface for debugging, off-screen rendering for special effects (e.g. Crowds), split-screen, full-screen redraw effects, etc.) Internationalization support – Built in support for a variety of font formats (e.g. TrueType) and text formats (e.g. UTF-8, Shift-JIS)
VBlank, inc., San Diego, CA, USA
PS2 Research and Development (Mar '00 – Jan '02)
Technical Director / Engine Programmer
Developed samples, libraries and documentation for distribution to various external PS2 developers as part of VBlank's and my commitment to returning value to the community. Lectured on multiple occasions at SCEA PS2 Developers' Conferences on various subjects, such optimizing and utilizing the multimedia instruction set (in assembly) on the EE-Core, optimizing the data pipeline, and general low-level tips specific to the PS2.
BlueSky / Titus, San Diego, CA, USA
PS2 Research and Development (Sep '99 – Mar '00)
Senior Programmer
At this time, I had released the only samples on the SCEA developer website which were not developed by SCE (the only 3rd party samples). The various samples served as an introduction to programming the GS, optimizing using the EE-Core multimedia instructions, and transferring and optimizing data on the DMA channels available on the Sky simulator (VIF,GIF), as well as other graphics pipeline issues. Various other samples, including an introduction to VIF and VU programming, were released by SCEA, however much of this was superseded after the release of the hardware.
BlueSky / Titus, San Diego, CA, USA
PSX Engine Development (Jan '99 - Jun '99)
Continued support, additions, etc. (Jun 99 – Mar '00)
Lead Programmer / Engine Programmer
I wrote and completed the PSX engine (arbitrary portals, no convexity design restrictions, using arbitrary geometry and all the pipeline tools (lightwave for geometry, image converters, etc.). feature of engine: completely GPU bound - on average GPU is twice CPU (i.e., geometry throughput exceeded GPU drawing abilities, excluding heavy use of translucent polys) and polygon overdraw was probably less than 10% on average. This engine was used in the completed, but not released (due to contract issues), Superman PSX.
Sony Interactive Studios America (SISA), San Diego, CA, USA
PSX Development (Nov '97 – Jun '98)
Lead Programmer / Engine Programmer
Contributed to various projects at various levels of completion. Produced PSX technology demos, contributed to game designs, and evaluated feasibility of projects.
Sony Interactive Studios America (SISA), San Diego, CA, USA
PSX Research and Development (Jul '97 - Aug '97)
Lead Programmer
Developed technology used in several PSX titles. Including -- Reverse engineering the PSX hardware interface to the memory card and replacing the Sony memcard libraries with fully asynchronous system which didn't use the file API. Results were much more reliable and approximately ten times faster than libraries available at that time. Also allowed for flat access to the memory card for debugging, etc. -- Wrote tutorials for GTE/GPU optimization for the PSX which were distributed on the SCEA PSX Programmers' Tools disk. -- Replaced the SN libraries with PC file i/o libraries which used the 3050 cable between a non-development pc and a standard playstation for development (This was unusual at the time). -- Wrote various PC tools (art converters, etc.)
Sony Interactive Studios America (SISA), San Diego, CA, USA
Spawn PSX (Jan 96 - Jul 97)
Lead programmer / Programmer
Involved in every aspect of the development. Including character animation engine, camera logic, AI and virtual control systems, tools, etc.
ABOUT THE AUTHOR
Mike Acton is the director and adminstrator of CellPerformance,
is dedicated to helping the Cell community as much as possible
and plies his trade developing technology for PS3 games. Mike has made regular appearances as a speaker at SCEA develpment conferences and other events. Mike Acton is not a framework-happy C++ programmer. He actually likes C. And assembly. In his spare time he develops hardware on FPGAs in VHDL.
He prefers vi.
Also check out the CellPerformance main site, which has additional articles written by Mike Acton.