Nintendo's highly successful game release for the Nintendo 64, Super Mario 64, was built using the N-World development toolsuite from Nichimen Graphics Inc. Nichimen chose Allegro CL from Franz Inc. to develop its powerful N-World products.
Bob Coyne, Director of Software Development at Nichimen, explains why Allegro CL's Common Lisp/CLOS was the best choice for this kind of product. "We benefit from the usual advantages of Lisp. Programming in Allegro CL allows concepts and designs to be fluidly expressed in code, and the language and environment don't get in the way. We can develop code faster and debug and maintain it more easily."
The reasons for this are many, according to Coyne. These include Allegro CL's support for dynamic linking, incremental compiling, macros, and automatic memory management. In addition, Allegro CL's debugging capabilities have been helpful.
"For example," says Coyne, "When our QA department encounters a bug, our developer can easily examine the state of their environment, see a backtrace, whatever. This makes it much easier to find and fix bugs on-the-fly."
The Allegro CL system keeps meta-data even at deployment time (without source code). This meta-data can be used at deployment to examine objects, get meaningful backtraces, get function arguments and generally explore the context of an error. Meta-data is data that describes the system's state. It can be used for debugging, but in N-World, Nichimen also uses it to update the application.
"Our system is VERY large," Coyne continues, "and having source locators, apropos, arglist information, who-calls info and an interpreter makes it feasible for developers to examine and work on code they are unfamiliar with. Along the same lines, incremental compilation makes it easy to experiment with code to learn how it works. And obviously, incremental compilation greatly speeds up development and debugging on a large system like ours."
Another important aspect of Allegro CL leveraged by Nichimen for the N-World project is its support for the meta-object protocol (MOP). The MOP permits developers to customize the object-oriented protocols to automatically include application-specific semantics. Coyne explains, "We use MOP to automatically create menus by creating generic function like objects which dispatch on specific predicates and contexts. This capability has been very important to us."
Other features of the system have facilitated code optimization. In particular, Coyne mentions the time and space profilers which come with the Allegro Composer add-on to Allegro CL for Unix.
But perhaps the most important feature of Allegro CL for Nichimen's product development is its support for domain-specific macros. Nichimen extends the Common Lisp language by adding an application-specific syntax and semantics. These take paradigms common to the game application area and directly express them as extensions to the language. The extensions hide complexity, so that code becomes much easier to understand and much more compact.
"We use many definer and wrapping macros to hide complexity," Coyne comments.
With an extensive history in the computer graphics industry, Nichimen Graphics focuses its efforts exclusively on supporting the game market, providing developers with the industry's most open system, leading-edge technology, and unparalleled support. The company's suite of tools is truly integrated, dramatically simplifying game content generation. NGI is owned by Nichimen Corp. of Japan, a $62.54 billion trading company.
This article is also available in PDF.
|Copyright © 2023 Franz Inc., All Rights Reserved | Privacy Statement|