530 likes | 908 Views
Auran Jet Engine. Keng Shih-Ling <kensl@csie.nctu.edu.tw>. http://www.auran.com/jet. Agenda. Overview Jet Systems Jet Extensions Jet Examples Q & A. Agenda. Overview Jet Systems Jet Extensions Jet Examples Q & A. Overview.
E N D
Auran Jet Engine Keng Shih-Ling <kensl@csie.nctu.edu.tw> http://www.auran.com/jet
Agenda • Overview • Jet Systems • Jet Extensions • Jet Examples • Q & A Keng Shih-Ling
Agenda • Overview • Jet Systems • Jet Extensions • Jet Examples • Q & A Keng Shih-Ling
Overview • Auran Jet is a development engine that can be used to create a variety of 3D applications including, games, simulation and training software. Keng Shih-Ling
Game Game Play Layer NPC System Virtual Agent Trading System Story Terrain Collision Character Dynamics Sound FX UI Engine Layer Combat System FX System Game AI Script System 3D Scene Mngmt 2D Sprite Gamepad Audio Network 3D Graphics API 2D API Input Device OS API System Layer Hardware Overview • 3D Application API Keng Shih-Ling
Overview • License Fee • RC1 Free • V1.0, Non-Commercial US $99 • V1.0, Commercial US $30,000 • Other Commercial Case by case • “Run Time”, “Royalty”,”Full Source”,… • Scale • Over 400,000 lines of code • Over 5,400 documented API symbols Keng Shih-Ling
Overview:: Architecture • Modular and Layered Architecture • Kernel • Core • Foundation • Extensions • Jet Tools • Game Systems • Game Tools Keng Shih-Ling
Agenda • Overview • Jet Systems • Jet Extensions • Jet Examples • Q & A Keng Shih-Ling
Jet Systems • Kernel • Input • Interface • Network • Render • Sound • Artificial Intelligence • WAVE (Wide Area Virtual Environment) • JIVE (Jet Integrated Visual Environment) Keng Shih-Ling
Systems:: WAVE • WAVE (Jet Integrated Virtual Environment) Keng Shih-Ling
Systems:: JIVE • JIVE (Wide Area Virtual Environment) Keng Shih-Ling
Jet Systems • Kernel • Input • Interface • Network • Render • Sound • Artificial Intelligence • WAVE (Wide Area Virtual Environment) • JIVE (Jet Integrated Visual Environment) Keng Shih-Ling
System:: Kernel • The Jet Kernel is the hub of all other Jet systems and provides support for some of Jet’s key features such as: • OS abstraction • Win32 (Linux) • Low-level services • Language extensions • Memory management • Multi-threading support • Debugging facilities Keng Shih-Ling
System:: Kernel • Major Systems: • Jet Task Management System • Jet Resource System • Jet Plug-in System Keng Shih-Ling
System::Kernel:: Task • Jet Task Management System • Tasks provide Jet's main frame-level update mechanism. Each task is called once-per-frame and may be suspended or resumed individually. • The Task Manager is responsible for initializing, updating, and uninitializing tasks. Tasks are added to the Task Manager and stored in a prioritized list in order from highest priority at the top of the list to lowest at the bottom. Keng Shih-Ling
System::Kernel:: Task • Jet system tasks and their priority Keng Shih-Ling
System::Kernel:: Task • Main thread Keng Shih-Ling
System::Kernel:: Task • Jet is a multi-threads system • The main thread • The network thread • The sound streaming thread • The resource streaming thread Keng Shih-Ling
System::Kernel:: Resource • Jet Resource Management System • Resource Databases • A tree-like structure • Resource & Resource types • Each resource type is handled by a specific resource plug-in • (*.bmp, *.jpg, *.pm, *.im, *.kin, *.mp3, …) • Resource aliases • (*.bmp.alias, *.pm.alias, *.mp3.alias, …) Keng Shih-Ling
System::Kernel:: Resource • Jet Resource Management System • Asynchronous background loading • Use multi-threading abilities • Allows the application to continue its execution while resources are being loaded. • Resource priority • Load critical resources ahead of less critical ones. Keng Shih-Ling
System::Kernel:: Plug-in • Jet Plug-in Management System • Jet's Plug-in Management System allows programmers to add, replace and/or extend engine features and systems • Winamp • 3dsMax Keng Shih-Ling
System::Kernel:: Plug-in • Jet Plug-in Management System • Encapsulated user interface components • Different resource loading schemes • Hardware and third-party API device drivers • JIVE plug-in tools and applications Keng Shih-Ling
Jet Systems • Kernel • Input • Interface • Network • Render • Sound • Artificial Intelligence • WAVE (Wide Area Virtual Environment) • JIVE (Jet Integrated Visual Environment) Keng Shih-Ling
System:: Render • Render system DLL Hierarchy Keng Shih-Ling
System:: Render • DLLs and sample functionality Keng Shih-Ling
System:: Render • Rendering Pipeline Keng Shih-Ling
System:: Render • Kernel • Graphics API Abstraction • Rendering Optimization Support • Layers • Scene Support • Modifiers • Animation Support • Progressive LOD Support • Mesh Support • Sprite support • Particle Effects System • Texture And Material Support Keng Shih-Ling
System::Render:: Kernel • Kernel • RenderKernel • The RenderKernel initializes and provides an interface to the Render system ( SceneGraph, MaterialManager, TextureManager…) • SystemResourceViewer • SystemResourceViewer allows derived classes to receive a Layer visible list before each frame is rendered Keng Shih-Ling
System::Render:: API • Graphics API Abstraction • Vertex Formats • PackedVertex{P,N,C,W,T,TT} • GeometryChunk • a base class describing geometry grouped for efficient rendering. Keng Shih-Ling
System::Render:: Optimization • Rendering Optimization Support • The core of Jet's rendering optimization support are render caches • RenderingCache • Alpha, Materials, Shadows, Particle effects • RenderingCacheManager • RenderingCache objects receive a priority used by the RenderingCacheManager to control sequencing. Keng Shih-Ling
System::Render:: Layers • Layers • A Layer is a rendering abstraction representing a rectangular screen region, with a separate rendering pass within the current frame • Viewport • Canvas Keng Shih-Ling
System::Render:: Scene • Scene Support • The Jet Render System supports many types of scene abstractions, such as: • 3D object hierarchies • Lights • Shadows • 2D/3D primitives (also used for collision checking) Keng Shih-Ling
System::Render:: Scene • Scene Support • SceneGraph • Element and VisibleElement • Particle (for 3D object hierarchy) • Line2D, Cone, Polygon (2D/3D primitives) • Lights • LightTargets • Shadows • ShadowVolume Keng Shih-Ling
System::Render:: Modifiers • Modifiers • Jet provides custom update mechanisms through the Modifier and its associated classes • Modifier • ModifierHost • ModifierList Keng Shih-Ling
System::Render:: LOD • Progressive LOD support • Jet’s progressive level-of-detail (LOD) supports scene-balancing through scalable LOD scene objects and manager. The manager distributes geometry to each scalable object to meet the scene’s target geometry allowance. Keng Shih-Ling
System::Render:: LOD • Progressive LOD support • ScalableDetail • ScalableDetailManager • ScalableDetailManager uses the object’s distance from the camera and size to allocate triangles Keng Shih-Ling
System::Render:: Mesh • Mesh Support • Geometry, TriangleGeometry • FaceDescriptor • to query a mesh for information regarding a given face • IndexedMeshInstance • ProgressiveMeshInstance Keng Shih-Ling
System::Render:: Mesh • Mesh Support • InfluenceMesh • provides skin deformation for Jet mesh objects • MeshObservers • allows derived classes to receive mesh related events and define actions on a per-event basis. Keng Shih-Ling
System::Render:: Animation • Animation Support • Skeleton, SkeletonModifier • AnimationModifier • Animator • AnimaitonObserver • AnimationEvent Keng Shih-Ling
System::Render:: Sprite • Sprite Support • SpriteInstance • SpriteManager • SpriteResource Keng Shih-Ling
System::Render:: Particle • Particle Effect System • ParticleFXEmitter • Point, Ribbon, Disc, Rect • ParticleFXModifier • Color, Field, Swirl Keng Shih-Ling
System::Render:: Texture & Material • Texture & Material Support • Texture • TextureManager • The TextureManager controls the creation, activation, and updating of textures used per frame. • Material • MaterialManager Keng Shih-Ling
Agenda • Overview • Jet Systems • Jet Extensions • Jet Examples • Q & A Keng Shih-Ling
Jet Extensions • Jet Collision System Extension • Jet Movement System Extension Keng Shih-Ling
Ext:: Collision • CollisionArea • CollisionBox • CollisionBSPNode • CollisionBSPTree • CollisionManager • CollisionObject Keng Shih-Ling
Ext:: Movement • DirectMotion • Grid2DPathSearch • Grid2DTerrainBase • PathMotion • PathMotionEventType • PathMotionObserver Keng Shih-Ling
Agenda • Overview • Jet Systems • Jet Extensions • Jet Examples • Q & A Keng Shih-Ling
Jet Examples • JRally 2101 • A multi-player racing game • Full source code • 3 artists • 3 programmers • 7 weeks Keng Shih-Ling
Agenda • Overview • Jet Systems • Jet Extensions • Jet Examples • Q & A Keng Shih-Ling
Q & A ? Keng Shih-Ling