summaryrefslogtreecommitdiffhomepage
path: root/Doc/Engine.txt
blob: ce256fefb17531d6a282781fea5e07079256812c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
Generic 3D Game Engine
----------------------

Game              // the main loop
   <Specific Game>

Video             // abstract video interface
   VideoDirect    // any old full screen direct draw
   VideoDirect3D  // direct draw and direct 3d
   VideoWindow    // WinG or DDraw in a window

PolyRend          // abstract polygon renderer
   PolyRendSW     // software renderer
   PolyRendD3D    // Direct 3D renderer
   PolyRend3Dfx   // Glide renderer

Screen            // the whole screen, a collection of canvases
   FullScreen     // a single screen, full screen or in a single window
      <Various Game Screens>
   MultiWinScreen // multiple windows, one canvas per window

Window            // rectangular region of screen, basic 2D graphics
   Canvas         // window with View attached
      Form        // a collection of controls
   Control        // abstract dialog widgets
      Label       // static text
      Edit        // text input
      List        // single or multi-select
      Button      // various styles and states
      Slider      // also a gauge
      Scrollbox   // a scrolling window, user must subclass?

WinEvent

Cursor            // mouse pointer

View              // what to draw in a canvas
   CameraView     // handles projection and clipping of visible polys
   FormView
      <Various Game Dialogs>
   ImageView      // displays a single bitmap
   FadeView       // fades the whole display in/out
   MovieView      // displays a movie or animation
   <Various Game Views>

Camera            // position and point of view
CameraClipper     // view pyramid clipping for a given camera

Color             // RGBA color (32-bit)
ColorIndex        // index into 256 color palette (8-bit)

fix               // fixed point math
Rect
Vector
Point
Plane
Poly
Matrix

// These are private to a particular camera view
// Texture, MipMap, Cache, etc.

DataLoader
Asset
   Palette (and inverse palette)
   Bitmap
   Model (3d)
   Sound
   Song (RedBook / MIDI ?)
   Movie
   Text
   Font
      ColorFont

Physical          // an entity in a 3d simulation that responds to physical
                  // forces (velocity, acceleration, drag, thrust)

Director          // something that controls something else, once per frame

Universe          // a collection of physical models
   <Game universe>

Graphic3D         // a generic image in a 3d scene
   Solid3D        // polygon model
   Sprite3D       // textured billboard, with optional animation
   Blob3D         // textured poly, oriented towards camera
   Composite3D    // a graphic composed of other graphics (?)

Light             // a point light source

Scene             // collection of graphics and lights

Sound             // abstract sound (ambient or localized, memory or streamed)
   SoundD3D       // concrete sound using DirectSound(3D)
SoundCard         // something that plays sounds
   SoundCardD3D   // concrete sound card using DirectSound(3D)

MotionController
   Keyboard
   Joystick
   Mouse
   ComboController
ControllerInfo