Creating a developer-friendly, robust, full-featured 3D render engine can be a large and difficult task but not without its rewards. Balancing the need for automation and direct control can be particularly difficult. Even for a well-defined domain such as 3D games, design and implementation may be at odds, and for wide domains, may not be resolvable. Fortunately, there is plenty of help in the form of Java and JOGL and well-developed structures and techniques for specific capabilities can be assembled into a usable, working render engine that can satisfy the most demanding game design.