Treffen Sie Doug Poston! Ich weiß, dass Sie ihn schon aus dem Forum kennen, aber dieses Interview wird uns allen Informationen über die Zukunft der Acknex Engine geben.

F: Sie haben als Spieleentwickler gearbeitet, bevor Sie zu Conitec stießen; geben Sie bitte einige Details.
A: Vor Conitec arbeitete ich als Programmierer für "Nintendo Software Technology Corporation" (NST), welches Nintendos internes Entwicklerteam ist. NST hält ziemlich unter Verschluß, was genau sie tun und ich habe klare Anweisung, über keines der Projekte zu reden, an denen ich zu der Zeit beteiligt war, aber mein Name taucht in den Credits für RidgeRacer64 auf (http://www.nintendo.com/games/gamepage/description.jsp?gameId=222#about ), also können Sie Ihre eigenen Schlüsse ziehen. ;)

Vor Nintendo studierte ich "Echtzeit interaktive Simulation" bei Digipen ( www.digipen.edu ) und habe einige kleine Spielprojekte für Windows und Macintosh Plattformen realisiert.

F: Sie sind gerade von der Game Developer Conference wiedergekommen - haben Sie interessante Neuigkeiten für die Acknex Community?
A: Einige 3DGS Anwender sahen mich auf der Conference, wie ich aus der Xbox Entwickler Lesung kam, aber ich stehe unter Schweigepflicht also kann ich im Moment über nichts Konkretes reden. ;) Ich stehe immer noch zu den Dingen, die ich früher sagte, 3D GameStudio könne auf der Xbox laufen, aber wir brauchen die Unterstützung eines lizensierten Xbox Entwicklers.

Die neuen Grafikkarten von ATI und nVidia sehen phantastisch aus. Microsoft arbeitet an einigen neuen Technologien für DirectX, die kombiniert mit aktuellen und zukünftigen Grafikkarten, Ihrem Spiel ein cineatisches Feeling verleihen. Viele Gruppen führen die Kunst und Wissenschaft der KI fort, also ist die Zukunft sowohl "schlau" als auch "gut aussehend".

F: Wo und wie erlernten Sie C-Skript (alias WDL)?
A: Ich habe C-Skript (damals WDL) von der Dokumentation gelernt, dem Handbuch. Weil ich bereits mit Programmiersprachen Erfahrung hatte, auf denen C-Skript basiert (C, C++ und Java), konnte ich die Grundlagen sehr schnell lernen.

Erfahrung mit anderen Sprachen hilft, aber die beste Art C-Skript zu erlernen ist es zu benutzen. Beginnen Sie mit den Grundlagen (Workshops und Tutorials) und experimentieren Sie dann selbst. Sie wissen nicht genau, wie eine Anweisung funktioniert? Schreiben Sie ein kleines Projekt und probieren es aus. Fragen Sie sich, ob Sie einen guten Effekt reproduzieren können, den Sie in einem anderen Spiel oder einem Film sahen? Probieren Sie es.

Wir versuchen, die Dinge leicht zu halten, aber C-Skript ist dennoch eine Programmiersprache, die man kaum über Nacht erlernen kann. Arbeiten Sie daran. Schlagen Sie Anweisungen im Handbuch nach. Schauen Sie in die Foren, um zu sehen wie andere Leute die Probleme gelöst haben. Für jedes gelöste Problem werden Sie besser im Programmieren werden.

F: Werden Sie die Templates neu schreiben? Was planen Sie für die Zukunft?
A: Ich bin im Moment dabei, sie neu zu schreiben. Wir planen, das einzufügen, was von den Usern erfragt wurde. Code für Egoshooter wird da sein, aber Rennspiele, Rollenspiele, Weltraumflugsimulatoren und andere Genres werden ebenfalls hinzugefügt werden.

Die Idee ist es, die Templates modularer zu gestalten, so dass wir neue Elemente hinzufügen können und die User verschieden Elemente nach Belieben kombinieren lassen können, um die gewünschten Ergebnisse zu erzielen. Das Hauptziel ist es, neue User die Elemente auswählen zu lassen, die sie wollen, einige Werte zu ändern und das Spiel zu produzieren, ohne den Code anzurühren. Dennoch werden die Templates so gestaltet, dass erfahrene Programmierer die Teile, die ihnen gefallen nehmen können und neue Skripts schreiben können, die sich nahtlos in den bestehenden Code einfügen lassen.

F: Wird die KI auch verbessert? Was können wir von den neuen Feinden erwarten?
A: Die neue und verbesserte KI ist auf jeden Fall ein Teil der neuen Template Skripte. In der Vergangenheit war die KI sehr einfach gehalten, weil es sehr schwierig ist, eine "schlaue KI" zu schreiben, die in jeder Situation funktioniert. Das Ergebnis: "dumme" KI, die in den meisten Situationen funktioniert.

Die modulare Struktur der neuen Template Skripte macht es leichter, eine Vielzahl von Kis hinzuzufügen. User können die KI wählen, die am besten auf die Situation paßt. Brauchen Sie eine KI, die ein Objekt bewacht? Eine, die eine Zone patroulliert und nach dem Spieler sucht? Eine, die ein Auto fahren kann? Wählen Sie die passende KI und setzen Sie sie in Ihr Level.

F: Reden wir ein wenig über das neue System für modifizierbare Skripte. Wie funktioniert es und für welche Spiele wird es Templates geben?
A: Diese Skripts gehören zum "Non-programming Game Creation" System, welches wir erstellen wollen. Es basiert auf dem neuen, modularen Template System, das es dem User erlaubt, Skripte hinzuzufügen und zu entfernen, je nach Art des angestrebten Spiels. Dann können Werte eingestellt werden und Ressourcen ausgewählt, die von den Skripten benutzt werden. Auf diese Weise kann das Spiel völlig eingestellt werden, ohne eine einzige Zeile Code schreiben zu müssen.

Das ist schwer zu erklären, daher ein Beispiel. Sagen wir, Sie möchten ein Spiel schreiben, in dem es einen Level mit animiertem Himmel gibt. Im WED würden Sie "Add Script" selektieren und eines der Himmel Skripte anwählen, das für die Situation passend ist. Jedes Skript hat Anfangswerte, aber Sie können die meisten ändern, indem Sie "Customize" anwählen. Dann können Sie Himmel für Tag und Nacht auswählen, den Horizont und die Wolken einstellen. Sie können die Animation und Größe jedes Elements Ihres Himmels wählen. Speichern und starten Sie Ihr Level. Es ist so einfach.

F: Wie sollten wir Code schreiben, um die maximale Geschwindigkeit zu gewinnen? Gibt es Funktionen, Features etc., die vermieden oder mit Vorsicht gebraucht werden sollten?
A: Die neue Dokumentation führt die Geschwindigkeit von Anweisungen auf. Natürlich sollten Sie versuchen nach Möglichkeit langsame Anweisungen zu vermeiden, aber es wäre ein Fehler, sich zu sehr auf die individuellen Geschwindigkeiten zu konzentrieren und das Gesamt-Design zu vernachlässigen.
- Führen Sie nichts aus, was der Spieler nicht sieht. Wenn Sie 100 Entities in Ihrem Level haben, der Spieler aber nur 3 sieht, sollten die anderen 97 nicht viel Rechenleistung beanspruchen. Mit Hilfe von Schaltern in Ihrem Level, um Entities zu aktivieren oder selbst mit "langsamen" Anweisungen wie trace, um festzustellen, ob der Spieler eine Entity sieht, kann man eine Menge Geschwindigkeit herausholen.
- Nur weil etwas funktioniert, muß es nicht richtig sein. In einem meiner Projekte hatte ich einen Effekt mit 50 Partikeln. Es sah gut aus, also fuhr ich fort. Später fand ich heraus, dass von diesen 50 Partikeln nur 10 verschiedene Positionen hatten, die anderen 40 wurden über diese 10 gemalt! Ich habe die Zahl der Partikel auf 10 reduziert und alles sah genauso aus wie vorher, lief nur fünf Mal schneller!
- Haben Sie keine Angst von vorn zu beginnen. Es ist wahrscheinlich, dass die erste Lösung für ein Problem nicht die optimale ist. Hängen Sie nicht an Ihrem Code; wenn Sie eine bessere Lösung finden, benutzen Sie sie.
- Verbringen Sie nicht zuviel Zeit damit, Ihren Code zu optimieren, falls Sie nicht sicher sind, dass Sie es müssen. Verwenden Sie das Debug Panel um zu sehen, wieviel Zeit von Ihrem Code benutzt wird und vergleichen Sie es mit der Zeit, die mit dem Rendern des Levels verbracht wird. Meistens muß die Grafik, nicht der Code, optimiert werden. (Lesen Sie auch Marcos Interview letzten Monat für Ideen, wie man Level designen kann, die schneller laufen)

F: Geben Sie uns einige Tips für Anfänger!
A: Hier sind 3 Tips, die vielen Anfängern (und einigen Fortgeschrittenen) sehr helfen könnten.
- Beginnen Sie klein. Zu viele User versuchen, Ihr Traumspiel von Anfang an zu programmieren. Das ist ein guter Weg, um frustriert zu werden. Wenn Sie noch nie programmiert haben und eine tolle Idee haben, schreiben Sie die Idee auf und denken Sie über ein einfacheres Design nach, für den Anfang.
- Verbringen Sie mehr Zeit mit dem Design. Eine Idee direkt aus Ihrem Kopf zu programmieren ist schwerer, als Sie vielleicht glauben. Nehmen Sie sich ein Blatt Papier oder eine Textverarbeitung und schreiben Sie Ihre Ideen auf. Selbst bei einem kleinen Projekt werden Sie einige Sachen vielleicht mehrmals ändern, bevor sie richtig funktionieren; es ist leichter, auf dem Papier Änderungen vorzunehmen, als im 3D GameStudio. Wenn Ihre Ideen nicht auf einige Blatt Papier passen, sollten Sie Tip 1 nochmals lesen. ;)
- Beenden Sie es! Das ist vielleicht das Schwierigste. Viele Spiele werden zu 60%, 70% oder 80% beendet, aber diese letzten 20% sind es, die es zu einem Spiel machen. Sie können auch von halbfertigen Projekten eine Menge lernen, aber die Freude und Erfahrung, die von einem fertigen Spiel kommt, kann nicht gemessen werden. Ich könnte noch mehr Tips geben (speichern Sie *vor* großen Änderungen, benutzen Sie Breakpoints und Panels zum Debuggen, etc.), aber Anfänger sollten sich auf diese drei konzentrieren.
Vielen Dank, Doug.