- name-based object registry
- graphics
- scene hierarchy
- skinning
- shadow / lighting model
- HDR
- decals
- particle systems
- shader model / material system / associated tools
- vertex animation
- alpha sorting
- terrain
- culling/occlusion
- frame buffer post-processing effects
- split-screen support
- view modes (AVP2 thermal vision, etc.)
- mirrors/reflection
- procedural geometry
- text rendering/font issues
- level of detail
- resource management
- asynchronous loading
- resource lifetimes
- streaming resource scheduling
- recording/playback
- file access
- pack files
- fastload linear file image support
- input
- remapping
- force feedback (okay, it's not input...)
- game timer - frame timer, high resolution profile timer, multiple timer support
- saving dynamic state
- exporting constant state
- cross-platform compatibility - don't forget I/O byte-order issues
- message passing
- internal game object structure - how to separate components?
- external game object structure - hierarchy, dependency graph?
- in-game UI
- in-game cinematics
- tools
- classes to support easy tool UI creation
- level editor
- terrain editor
- particle system editor
- model/animation viewers
- trigger system tool
- cinematics tool
- MAX plug-ins - exporter(s?), material
- profiling
- console
- data pipeline
- conversion - optimization for multiple platforms
- sound - 3D, 2D, looping, looping subrange, effects
- music
- scripting - Python? Lua? Java? Roll your own?
- script debugging
- exposing code objects to script
- deciding who writes the scripts
- network
- security/hacking issues
- latency
- bandwidth usage
- error handling
- physics - how to structure main loop? frame time or independent? interpolation between physics ticks?
- stable integration
- collision detection - what shapes? continuous or discrete?
- collision response - approximation? impulse-based? penalty methods?
- inverse kinematics
- line of sight/ray queries
- AI
- fuzzy logic
- state machines
- path-finding
- tools
- animation and controllers/dynamics - for transforms, colors, floats
- lip-sync/sound synchronization
- interaction of animation and physics
- memory management
- RTTI - use C++? Roll your own? Do unsafe casts?
- exception safety ala Herb Sutter
- levelization ala John Lakos
- localization
- enhancing concurrency/multi-threading