Well, I know you said just graphics, but what good are nice graphics without proper physics, good sound, etc? So here goes. I'm sure I'll repeat a ton of stuff that other people have already mentioned. In the end we all want similiar features anyways though...
Pre-requisites: Development started immediately upon availability of enough information regarding DX9 to *fully* target DX9 features. This means development could have started during DX8 widespread availability, or even beta phase, presuming enough DX9 info was available. Developer and publisher are targeting DX9 hardware *exclusively*, with *no* fallbacks, and top end processors and memory configurations projected for DX9 release. Engine should be completed within 2 months of R300/NV30 release (whichever releases later). Target frame rate is 60 frames per second at 1024x768x32 with no FSAA, but full anisotropic and trilinear filtering and all details at maximum (for single processor version, not high fidelity mode as described below). Provisions are not made in the first release to maintain any semblance of compatibility with pre-DX9 cards. Engine is based on DX9 as OGL 2.0 will not likely be ready in time. Networking is *not* supported in initial release. Single player games always best multiplayer games in visuals, and networking need not be concentrated on for this graphics showcase.
Rough Target Platform (?): NV30/R300, 1GB PC333 DDR-RAM/RDRAM, "Athlon Hammer 3400+"/P4 2.8Ghz, Sound Blaster Audigy, DVD-ROM drive (game would be shipped on DVD).
Rendering:
Full scene lighting model. Environment, objects, etc. cast shadows on each other and on themselves. Visually, indoor and outdoor lighting should behave the same, but may use slightly different approaches.
Volumetric lighting.
Soft, perspective correct shadows. (ex: shadows get softer the further from the object casting the shadow)
Simulated radiosity using customizable granularity sub divided zone based light and surface color transmission. (I'm working
on how to impliment this. I may come up with a better way...)
Overbright lighting and simulative approach to human visual perception. An example of this, though somewhat exagerated, is found in ICO's lighting approach.
Arbitrary geometry modification. All objects and "level" geometry are fully destructable in an arbitrary manner into an arbitrary number of objects of any size, shape, velocity, etc. This, like all other engine functions, can interact with and be effected by the physics model, so buildings will fall when unsupported, pieces of objects will submerge in and displace water when of sufficient volume and mass, objects being destroyed can trigger particle systems, etc.
Deformable/destructable terrain (goes with arbitrary geometry destruction). Terrain is not based on a height map in game, but can use one to import into the editor. Overhangs, caves, etc. are possible.
Landscape engine with ecology based flora (and fauna?) distribution, implimented in editor and engine.
Accurate atmosphere, outdoor lighting and haze modelling algorithm based on algorithms similiar to those implimented in Terragen (in other words, visually accurate).
Metaballs system with dynamic and customizable tesselation and LOD. Affected by physics model (used for small scale water
simulation), and able to interact fully with and be effected by all other world objects.
Support for 3D textures, bump mapping, texture compression (DXTC), texture sizes up to 4096x4096, real time reflections and refractions, render resolutions up to 2048x2048, in game screenshot and Quicktime VR capture, volumetric fog (and clouds,
both of which can be effected by physics engine), multireflection (mirror reflecting a mirror's reflection), skeletal animation with inverse kinematics which interacts with the physics and colision detection, anisotropic effects (reflection, etc.) and any other buzzword you can think of.
All surfaces bump mapped where appropriate.
Any object may be used as a camera. Unlimited independant cameras possible in each scene. Mostly this is done for real time cut scene and Machinima purposes.
Full particle system that interacts with physics, sound, AI, objects, etc. An object could have a hook to a particle system in its material properties so that it melts at a certain "temperature" for instance. Due to physics interractions particles can be dispersed by rocket trails, running characters, etc. Particles can also stick to objects and slowly fall off over time or as the object moves.
Materials include multiple channels which can be based on procedurals, textures, or information from other objects or
modifiers. Channels include specular, alpha, transparency, bump, displacement, etc.
Procedural texturing engine. Generated textures can be use for any texture channel, alpha, bump, displacement, etc.
Extremely customizable rendering engine with support for various styles of cartoon/cel/sketch rendering, with extreme
customizability, both in the editor, and in the user environment. Think Serious Sam level of options, including hue, saturation
and color controls, but with added cel shading and many other effects. Examples of alternate render styles include "blue
print", "matrix", "pencil sketch", "colored pencil sketch", "charcoal", "ink outlines", etc. Option to use "real time computer graphics" or "human visual system" for lighting simulation for another example. The former is more similiar to traditional game lighting, the latter is like ICO or Ghost Recon.
Physics:
A full physics model including cloth physics, water/fluid physics with accurate wave and ripple interreaction (covered later
in Water engine as well), soft and rigid bodies, springs, "Incredible Machine"-like physically based object interractions
such as objects having a "flammable" flag, which allows all objects of this type to be set alight.
"Forces" implimented as part of physics model. Push, pull, vortex, wind, gravity, etc. All fully customizable *per instance*,
like Serious Sam's gravity that changes in different rooms.
Arbitrary collision detection boundaries (up to per polygon accuracy if appropriate) with an intelligent "LOD"-style algorithm.
AI:
AI has a learning ability, like Black and White.
Characters include information similiar to other objects on basic properties, "motivations", states (emotional and otherwise) etc. Each character could be implimented like a simple RPG character for instance, with strength, skills, items, etc.
Implimentation of a game oriented, stripped down but enhanced (in speed and appropriateness to application) version of the Cyc NLP/Reasoning engine and knowledge base, for NPC interraction with the player as well as NPC interraction with the world.
Sound:
64 3D sound channels, support for Dolby Digital EX, support for MIDI, MOD, and Ogg Vorbis/MP3 audio, with dynamic music support that can accept data from any scene object or group of scene objects.
Full sound propogation and material reflection implimentation.
Support for HRTF, Doppler Effects, Reverb, Chorus, etc. on all game sounds, including music.
Misc:
Object data exchange protocoll, similiar to Unix piping. Levels and behaviors are composed of many smaller, simpler actions,
rather than explicitly scripted and created as a whole. This creates more emergent gameplay, and a greater degree of environment, character, and object interraction. Many of the more successful robotics approaches these days are using
combinations of simpler behaviours to create more complex and adaptable robotic entities.
LOD system for textures, geometry, etc. AI, physics, and all other systems dynamically adjustable in an LOD-style manner to maintain performance.
A full water engine, with a separate "micro fluid" engine to simulate smaller scale fluids like glasses of water, toilets,
sinks, puddles of water, rain drops, etc. Full scale water engine includes perspective correct reflection, refraction, water
coloring, depth based transparency and coloring, simulated caustics, "god rays", foam, wave interreaction, wave propogation,
particle system hooks, displacement, etc. Both water engines can be adapted for use with other similiar scale fluids such as
liquid metal, blood, etc.
Fully optimized for AMD and Intel's latest processors and multimedia instructions.
Optimized for dual processor support.
Functions can be flagged as "essential"/"priority" and will recieve processor priority and LOD bias preference. Non essential functions will only be fully implimented with sufficient processor power, perhaps only on dual processor systems.
A "high fidelity" mode implimented *only* for dual processor systems that increases non-essential, processor intensive detail
such as small scale physical simulation (more detailed water or particle physics for instance). Dual processor systems will
never become more main stream if there are no applications to take advantage of them.
Object and effect "states" with interraction properties and rules. Imagine a task based AI implimentation that is asked to make food for itself. It needs to know where food is, what state the food is in (frozen, raw, etc.), what state it needs the food to be in to eat it, how much to eat, and perhaps even what foods go well together or the fact that it likes more than one kind of food. The food, and the various preparation objects "broadcast" their functions and states to help the AI accomplish these tasks. I believe The Sims works partially in this way. Objects have a multitude of properties, possibly stored in a large relational database. Information is classified by perception level, so that only certain information is available to an AI entity with only a visual inspection. Thus traps may be set and catch AI characters unawares (AI is not inherently aware of entire game state in other words). Objects have material properties including tensile strenth, flammability, melting point, base color, mass, rigidity, etc.
Content Creation and Mod Support:
Full real time editor including lights, shadowing, procedural textures, etc. Editor runs the engine in a window basically, at
a target frame rate of 30fps, half of the full engine frame rate. This should be quite achievable on the target platform.
Dual processor systems may be needed for full real time feedback of all effects. Real time feedback can be turned on or off and detail levels set for each type of scene and object property. Physics system may be turned on or off in editor for instance, for greater responsiveness and control.
Editor support for scripted events, in engine cut scenes, etc. Engine cut scenes can be rendered out to movie files like AVI,
Quicktime, etc.
MOD support includes a proprietary scripting engine (similiar to python, semi-human readable), a relational database editor,
behavior (AI and other objects) editor, a 3D engine editor, a cut scene scripter, etc. All are implimented as modules of a
central editing application and include macros for ease of editing larger behaviors, events, and situations.
Script based events and interractions for creating explicit states and scenes.
Objects can be grouped together conceptually and information from them output as a single entity to drive certain functions.
A flock of birds could have sound simulated by creating a flock object and outputting the number of birds in the flock to a
semi-randomized chorus effect on a single wing flapping sound (simple and probably bad example, but hopefully you get the
idea). Weapon impact proximity and number could be used to directly influence music tempo or instruments used, as another
example.
Editor includes a full editor for procedural textures with accurate real time visual feedback. Combining image based textures
with procedurals also possible.
Application: This engine would be used to make a Deus Ex style game, but with a more wide open story, more varied characters,
and less defined and narrow objectives. A "true" RPG perhaps, along the lines of what Project Ego is supposed to be for the
XBox, but in a more modern or perhaps futuristic setting. Ideally a world like that portrayed in The Reality Dysfunction
series of novels by Peter F. Hamilton, or perhaps something like Neuromancer or Snow Crash.
The key: Publishing model. First "episode" is published online *only*. $15 for download, $25 + s/h for shipped copy with
manual and CD. Demo also available with only one "level" (area) of the entire city available in the initial internet release.
1 year later game is re-released in stores for public consumption, with fall back paths implimented for older hardware, and
all advanced effects and high rez textures in an "advanced pack" second disk and an additional 2 "episodes" of content,
spanning perhaps several more cities, more items, weapons, skills (?), and an extension to the story. Thes version is also made available online, but is not available for download.
I believe much of what I've described would actually be possible were the pre-requisite criteria to be met. I know some of my
implimentation approaches and ideas may not be ideal, but I believe the underlying ideas are still sound, in general.
I've also probably missed some stuff that I would like to include, and each point deserves more elaboration. For the
purposes of this topic what I've put so far should suffice however. I have a more complete version of this somewhere, but this is all off the top of my head so to speak.
- JavaJones
P.S. Yes, there would be a flame thrower.
<font size=-1>[ This Message was edited by: JavaJones on 2002-02-19 14:05 ]</font>