Efter att ha arbetat med motorn OX i slutprojektet av 2:an, så kände jag att bristen på funktionalitet och dokumentation begränsade arbetet.
Därför åtog jag mig i block1 att skapa en egen motor. WEngin för XNA och C#.
Motorn fick under blocket denna funktionalitet som skulle vara grunden för fortsatt arbete.
- Multi-Threading : Hur de olika kärnorna på processorn kan arbeta med olika uppgifter samtidigt för ökad prestanda, detta effektiviserar bland annat förflyttning och fysik.
Detta löste jag med ett MessageBuffer system, där spelet är uppdelad i två processer, utritning och updatering. För att kommunicera mellan dessa skickas sedan meddelanden. - Mesh-Instancing: I ett spel ritas det ofta ut flera exemplar av samma modell och bild, för att effektivisera den processen kan man då använda sig av Hardware Mesh-Instancing.
En teknik där modellen i princip kopierar sig själv till ett flertal olika ställen och bara ändrar position, rotation och skala. - Octree : När vi förflyttar oss igenom en digital värld är målet att rita ut så få objekt som möjligt, men ändå visa alla som borde synas. Processen att beräkna vilka som skall synas och inte är en väldigt krävande del.
En effektiv metod att underlätta detta är ett octree, en teknik där världen delas upp i kuber och mängden objekt som måste gås igenom minskas radikalt, med påföljden snabbare process.

Screenshot ifrån spelet gjort för redovisning av Block1

Stress-test av Mesh-Instansiering, 2,4 milioner polygoner i bild.
