Technical Specifications
FreshEngine® is a set of technologies and tools specially designed for helping development of the highest quality games on PlayStation®2. Although highly optimized for PlayStation®2 architecture, the run time libraries also comes for the PC, providing an easy testing and debugging environment.
Fresh libraries
Fresh Core
Fresh Core is the core system library and includes:
- Platform dependent initializations for PC and PS2
- An optimized math library (using Vector Unit for PS2)
- A strong object model and factory system (similar to COM, allowing the dynamic creation of classes, and expose interfaces)
- A persistence system (allows to expose members of a class to authoring tools)
- A common file system for all platforms
- A command system
- A network interface (for remote control of the authoring tools)
- A memory pool manager
- An event system
- An activity system (cooperative multitasking)
- A set of various templates and utility classes
Fresh Render
Fresh Render is the rendering engine library. It is specifically optimized for the PS2, although some of the optimization can benefits other platforms. The engine uses a massive instantiation of basic elements paradigm. It allows the PS2 to display and manage complex worlds with outstanding visuals while keeping a constant 60 frames per second display rate (~18 M poly/sec).
The renderer has been designed to minimize memory footprint and make use of the parallel, vector architecture of the PS2.
The engine includes:
- A visibility system (performing perfect culling of the scene using bounding sphere hierarchy and PVS)
- Volumetric samples for perfect match of static lighting on dynamic objects
- 4 parallel lights + 2 point lights dynamic lighting
- Real-time rendering of smooth shadows for dynamic objects using point or parallel source
- A transform and animation pipeline optimized for PS2 (150us to transform and blend 4 animations on a character composed of ~100 bones)
- Multiple weights skinning system (1 to 3 influences optimized VU1 routines)
- Robust collision and ray cast system using Kd trees and low memory access
- Dynamic particle system (features near perfect replica of Maya®'s particle engine, plus extras like heat distortion and ray effects)
- Rigid body dynamics (supporting primitives and convex hull)
- Lens flare (with pixel perfect occlusion computations using frame buffer down sampling)
- Complex shaders (such as two pass shiny with alpha gloss map...)
- Adaptive patch rendering with procedural vertex displacement (4 linear sine waves + 2 concentric interactive waves)
- Screen based effects (screen copy with UV distortion and RGBA blending)
- Full screen anti-aliasing
- Various other effects such as volumetric fog, small particle objects and motion blur
Fresh Sound
Fresh Sound is a sound library mainly managed by IOP, leaving the CPU free. It features:
- 4 streaming channels for music/effects streaming
- Sound effects playback with 3D positioning and priority management
- Ambient sound management
Fresh Tools
Fresh Compiler
Fresh Compiler is a pre-compiler designed to simplify the writing of code and automatically generate persistence tables and interface maps. This pre-compiler contributes also to the abstraction of platform since it manages to call the required compiler with the right options depending on the selected platform.
Fresh Compiler is integrated to Visual C++ environment and currently supports Visual, ProDG and CodeWarrior compilers.
Fresh Tuner
This tool is a front end connected via network to any target (PC, PS2 devkit, PS2 debug station) executing a Fresh application. It provides customizable workspace interface allowing to quickly create specific views depending on the needs (debugging, tuning game content, previewing gfx, monitoring performances...).
Each user can define its own workspaces and share them with other users. The tool enables to create on-demand specialized editor such as:
- Character or animation previewer
- Performance and memory display
- Display and editing of the transform nodes of the scene hierarchy
- Display and tuning of any properties of any object using sliders, color selectors, checkboxes etc...
- Cinematic editor
- Behavior edition and debug view
- ...
The host tool calls commands running on the target. This approach allows to easily creating your own editor. Simply choose the required windows, object type lists, buttons and selection you need for your game.
Fresh Scripting
Embedded in FreshTuner is a script editor. FreshScripting uses LUA scripting language and allows for manipulating game objects and properties, trigger events, load/unload resources, display texts and interfaces, ...
Graphic tool chain
graphic tool chain provides a set of plug-ins to create, manage and export graphic content to the target.
Generalized library
The library enables the user to store, use and share graphic content using a visual browser that is directly embedded into Maya®.
Scene editor
It is a set of tools to quickly edit a map using the massive instantiation paradigm. Objects are picked in the library, and instantiated on the fly. Objects can easily be manipulated with the available tools:
- Create instance
- Replace an object with another
- Transform object (move, rotate, scale)
- Add and edit collision mesh
- Automatically update scene if objects have been modified in the library
- Add and edit various flags to instances
- Add and edit lights
- ...
Shader editor
Provides a customized version of Maya® shader editor. The editor provides a list of supported materials that are mapped to actual VU1 routines.
Exporters
- A mesh exporter that automatically creates stripping and generate texture pages
- A scene exporter that maintains instances information, and creates strip and texture for all included objects
- A skinned meshes exporter that generates strips and support up two 3 influences and 7 matrices palette.
- A skeletal animation exporter that support up to 4 simultaneous export regions and an efficient compression method.
FreshEngine® Unique Sales Points
Quality
- Unique instance paradigm perfectly suited to PS2 architecture
- Original high quality rendering on PS2
- Allow to create realistic and natural worlds. Works well for indoor as well as outdoors.
Performance
- Smallest memory footprint (enable the creation of huge detailed worlds)
- Provides a sustained 300K+ polygons per frame @ 60 Hertz for unique organic outdoor rendering (18 M+ polygons/Sec)
- Low usage of CPU, 80% of the CPU is free for AI and Physics
- Really good results on the Performance Analyzer as compared to other middleware.
Productivity
- User friendly proven user interface based on MAYA®
- Reusability of 3D objects through different games
- Powerful cross platform game debugging tools
"PlayStation" is a registered trademark of Sony Computer Entertainment Inc.
"Maya" is a registered trademark of Alias Systems Corp.