En Game Engine repræsenterer en bestemt måde at organisere sin kode på, hvor de mere generelle opgaver i f.eks. en Windows applikation separeres fra de mere specifikke opgaver i relation til selve spillet. Et vigtigt design princip er i denne forbindelse mønsteret Separation Of Concern. De specielle opgaver i applikationen kan samles i en Model klasse og en UI klasse. I applikationen associeres objekter af Model og UI klasserne med et objekt af Engine klassen.
Fordelen ved denne opbygning er, at man kan opbygge sin Game Engine med faciliteter, som man kan genbruge i alle fremtidige spil af samme type. Desuden gør det udviklingen af spillet enklere, således at man som udvikler kan fokusere på det vigtigste: konstruktion af koden til selve spillet.
De fleste kommercielle spiludviklere anvender en Game Engine, som de ofte selv har udviklet og forfinet gennem flere år - herved får man skabt en Engine, som man gradvist har lært at kende, og som passer perfekt til den type spil, man udvikler.
I andre tilfælde anvender man en Game Engine, som andre har udviklet, og som indeholder et sæt faciliteter, som man ønsker at bruge til en bestemt type spil. Dette er f.eks. tilfældet med flere kendte spil af FPS-typen (First Person Shooter).
Der er også adskillege gratis Game Engines i Tutorials og Samples rundt om på internettet. Disse kan anvendes som eksempler på, hvordan Game Engines opbygges, og hvilke funktioner de typisk indeholder.
Skemaet herunder giver en oversigt over den vigtigste funktionalitet i en Game Engine:
Metode | Vigtigste indhold |
Constructor | Opsætning af skærmbilledets dimensioner og caption |
InitializeGraphics | Opsætning af device Opsætning af view matrix - kameraets placering og synsretning Kald af RestoreDevice Initiering af de involverede modellers objekter |
RestoreDevice | Opsætning af parametre til håndtering af dybdebuffer
og lys Opsætning af lyskilder Opsætning af projektionsmatrix |
Render | Blankstilling af Backbuffer og dybdebuffer med ønskede
baggrundsfarve Tegning af modellens grafik og tekst - sker ofte ved kald af Render metoder for hvert af modellens objekter |
UpdateModel | Opdatering af scenen |
Keydown | Indlæsning af tastetryk fra tastaturet |
Mousedown | Indlæsning af knaptryk fra tastaturet |
Managed code is code written in one of over twenty high-level programming languages
that are available for use with the Microsoft .NET Framework, including C#,
J#, Microsoft Visual Basic .NET, Microsoft JScript .NET, and C++. All of these
languages share a unified set of class libraries and can be encoded into an
Intermediate Language (IL). A runtime-aware compiler compiles the IL into native
executable code within a managed execution environment that ensures type safety,
array bound and index checking, exception handling, and garbage collection.
By using managed code and compiling in this managed execution environment,
you can avoid many typical programming mistakes that lead to security holes
and unstable applications. Also, many unproductive programming tasks are automatically
taken care of, such as type safety checking, memory management, and destruction
of unneeded objects. You can therefore focus on the business logic of your applications
and write them using fewer lines of code. The result is shorter development
time and more secure and stable applications (Help - DirectX 9.0 for Managed
code).
Beskrivelse af det materiale en overflade består af.
Maske, net, garn, gitter, (indgreb)
"You might find yourself wondering, what exactly is a mesh? When rendering 3D graphics, everything that is rendered onscreen consists of one to many triangles. A triangle is the smallest closed polygon that will always be coplanar. (Rendering primitives that are not coplanar isn't very efficient.) You can build virtually any object by using a large number of triangles. A mesh is simply a data store for this triangle (or geometry) data." Tom Miller, kap. 4.
Et Mesh er en struktureret liste med punkter (vertices), som definerer et antal flader (trekanter), som udgør overfladen på en figur.
Anvendes f.eks. i Flight Simulator SDK, hvor mesh betegner det gitter eller netværk, som bliver placeret ud over jordens overflade - indenfor hvert felt i gitteret placeres en texture, som kan være en standardgrafik (f.eks. ørken eller skov) eller et rigtigt billede baseret på et luftfoto.
I forbindelse med DirectX anvendt om det gitter bestående af trekanter (eller andre polygoner?), som man bruger til modellering af 3D objekter (f.eks. en tepotte).
Man kan selv fremstille sine Meshes; men det forudsætter, at man har adgang til et særligt grafisk konstruktionsprogram, som kan udføre denne funktion - f.eks. MeshX.
Der kan vælges mellem to grundlæggende forskellige former for projektion
Sammensætning, struktur, overflade, materiale (Material).
Texture kan indlæses fra en fil (jpg-format, png-format, bmp-format eller lignende).
Gengive, oversætte. Rendering: gengivelse
Beskrivelse af en model opbygget af et Mesh gemmes typisk i en .X fil. En beskrivelse af dette filformet findes her.