PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PC Gamer interviews John Carmack on the future of iD


Gandharva
2006-01-15, 12:57:11
Oder: Warum Doom³ noch keine schönen Texturen hatteAre you working on a new rendering engine?

Yeah. For the last year I’ve been working on new rendering technologies. It comes in fits and starts. Our internal project is not publicly announced on there. We’re doing simultaneous development on Xbox 360, PC, and we intend to release on PS3 simultaneously as well, but it’s not a mature enough platform right now for us to be doing much work on.

Game engines have their own certain look to them. Quake 3 era games all have a similar lighting and texture model, so do Doom 3 era games, from the high-poly bump maps. Can you predict what the engine is going to look like from the start?

Usually when I set out making the technical decisions I don’t know how it’s going to turn out. A lot of it is working out what works, and what ideas come to you. It is worthwhile mentioning, as you said, that there’s a characteristic look to the new engine, and it’s going to be centred around Unique Texturing.

This is an argument I get into with people year after year. Every generation, someone comes up and says something like “procedural and synthetic textures and geometry are going to be the hot new thing. I’ve heard it for the last three console generations – it’s not been true and it’s never going to be true this generation too. It’s because management of massive data-sets is always the better thing to do. That’s what a lot of the technologies we are working on centre around – both the management for the real time use of it, and the management of the efficient content creation side of it. I think that’s going to give a dramatically better look than what we’re seeing in this generation.

Can you describe how it will look, in a layperson term.

When you start seeing screenshots of games designed like this, it’ll be obvious that they’re of a new generation. I’m not sure how much it comes through, but Quake Wars: Enemy Territory, the game Splash Damage are working on, that uses an intermediate half-way technique, the Megatexture stuff I did originally. They’ve really gone and run with that. Some of their screenshots are really starting to show the promise of unique texturing on everything. We’ve got an interesting combination of techniques on that – they did a procedural offline synthetic synthesis to generate the basis of the terrain, and I built some technology to let artists dynamically stamp things into all the channels in game. We’re starting to see some really, really spectacular results out of this, as everyone climbs up the skill curve of using these new tools. The technology we’re working on here at id takes that a step further with a terrain texturing system is applied throughout for everything.When you create a technology, do you build features specifically for a game, or is a case you just testing to see what the silicon can do?

It’s somewhere in between. You don’t build technology for technology’s sake. The people who would just build 3D engines without a game attached, those have never been the really successful products. In any case of engineering, you really need to tailor your design to what you’re trying to accomplish. There are always the types of situations when you can say, “we know we want our game to have this type of outdoor stuff, or this type of indoor stuff,” and you start trying to write technology for it, but you find out something might be harder than you expected, or you might get a novel idea, and that might feed back into the game design. We commonly switch gears during our development process when a really good opportunity comes up. We’re not going to be pig-headed about something, and say “this is what our design spec says, so this is what we’re going to do”. We’ll pick targets of opportunity when we get them, but the technology does very much try to build around what we want to accomplish with our games.

Was there one of these “targets of opportunity” in the development of Doom 3?

When we left Quake 3 I had several different directions of technology that I considered potentially useful for next generation game engines. One of those was uniquely texturing the surfaces, and one of them was this bump-mapped and unified lighting thing that wound up in Doom. The decision I made at the time was that something that made less quality screenshots but a more dynamic environment would make a better game, which is why I took that direction, but it’s interesting, now that the technology of the hardware has progressed, I can combine both of what I wanted to do with the unique texturing and the fully dynamic environments.Hier das komplette Interview: http://www.rage3d.com/board/showthread.php?t=33841622

Sieht so aus als hätte Carmack bei Doom³ nur die Hälfte seiner Wunschvorstellungen realisieren können aufgrund zu langsamer Hardware. Quake Wars: Enemy Territory soll wohl ein Anfang sein beide Techniken (unique texturing und fully dynamic environments) in ein Spiel zu integrieren.

Aquaschaf
2006-01-15, 13:42:31
I have a quote here from Gabe Newell talking about the next generation of processors and consoles. He says “the problems of getting things running on multicore processors are not solved. We have doctoral theses but no real world applications.” Do you agree with him?

The difference between theoretical performance and real world performance on the CPU level is growing fast. On say, a regular Xbox, you can get very large fractions of theoretical performance with not a whole lot of effort. The Playstation 2 was always a mess with the multiple processors on there, but the new generations, with Cell or the Xbox 360 make it much, much worse. They can quote these incredibly high numbers of giga-flop or tera-flops or whatever, but in reality, when you do a straighforward development process on them, they’re significantly slower than a modern high end PC. It’s only by doing significant architectural work that you even have a chance of finding speed-ups to what the PC can do, let alone it’s theoretical performance. It’s only through trivial, toy or contrived applications that you can deliver the performance numbers they claim.

Als Skeptiker gegenüber dem Nutzen von Multicore-Prozessoren für Spiele finde ich dieses Zitat am interessantesten ;)

Demirug
2006-01-15, 13:49:47
Als Skeptiker gegenüber dem Nutzen von Multicore-Prozessoren für Spiele finde ich dieses Zitat am interessantesten ;)

Das Problem ist das die APIs sowie die Tools einfach noch nicht dafür gedacht sind. Zudem kommt hier wieder das "Unsere Engine ist vollkommen neu. Wirklich" Problem zum tragen.

Corrail
2006-01-15, 21:38:17
Hat irgendwer Informationen ob JC bei OpenGL bleibt oder ob er ins DirectX/WGF Lager wechselt?

deekey777
2006-01-15, 21:43:00
Hat irgendwer Informationen ob JC bei OpenGL bleibt oder ob er ins DirectX/WGF Lager wechselt?
Vielleicht hilft dir das weiter:
OpenGL's Future in PC Games (http://www.beyond3d.com/forum/showthread.php?t=22498)
John Carmack, id Software - "I'm happy working with D3D9 on the Xbox 360 platform. We did seriously consider going D3D only on the PC, but there are still some mitigating factors. OGL will probably still be slightly higher performance on the PC pre-longhorn. ATI and Nvidia both still like the idea of being able to do more focused optimization work in OGL. We also still care about the Mac and Linux platforms."

Corrail
2006-01-15, 22:00:03
Vielleicht hilft dir das weiter:
OpenGL's Future in PC Games (http://www.beyond3d.com/forum/showthread.php?t=22498)
John Carmack, id Software - "I'm happy working with D3D9 on the Xbox 360 platform. We did seriously consider going D3D only on the PC, but there are still some mitigating factors. OGL will probably still be slightly higher performance on the PC pre-longhorn. ATI and Nvidia both still like the idea of being able to do more focused optimization work in OGL. We also still care about the Mac and Linux platforms."

Danke, das kenne ich schon. Wollte wissen, ob es diesbezüglich schon was neueres gibt.

deekey777
2006-01-15, 22:08:02
Danke, das kenne ich schon. Wollte wissen, ob es diesbezüglich schon was neueres gibt.

Hm, wenn da ein neueres Statement von ihm gibt, wird es wohl überall zu lesen sein. :)

http://img367.imageshack.us/img367/6163/corrail2lk.th.jpg (http://img367.imageshack.us/my.php?image=corrail2lk.jpg)

ollix
2006-01-17, 15:13:22
It is worthwhile mentioning, as you said, that there’s a characteristic look to the new engine, and it’s going to be centred around Unique Texturing. Was ist unter Unique Texturing genau zu verstehen?

Coda
2006-01-17, 19:13:41
Keine Texturwiederholungen auf dem Gelände.

Android
2006-01-18, 21:34:34
Als Skeptiker gegenüber dem Nutzen von Multicore-Prozessoren für Spiele finde ich dieses Zitat am interessantesten ;)

Skeptik ? Wozu ?

Jeder weiss doch, dass momentane Spiele so gut wie keinen Nutzen aus Mehrprozessorsystemen ziehen können. Nur ist das Ziel auch nicht dahingehend gesteckt. Interessant wird es für Spiele meist erst dann, wenn man andere Prozesse ( Physikberechnung, grafikkartenbezogene Prozesse etc.) auf einen weiteren Prozessor auslagern kann.
Den Nutzen kann man dann schon belegen, auch wenn es wahrlich bessere Einsatzgebiete für Dual-Systeme gibt.

Weiterhin bringt Carmack als Beispiele komischerweise den Cell und die XBox360. Das deren Architektur nicht mit dem von PC`s vergleichbar ist (was er auch leise einräumt) sollte einleuchten. Für spezifierte Umgebungen wie die Playstation 3 ist der Cell dahingehend optimiert und durchaus geeignet.

Darüberhinaus sollte Carmack mal kleine Brötchen backen. Zuerst beschwerte er sich grundsätzlich über die PS3 und lobte die Xbox360 als "super-mit-zu-arbeiten" Gerät. Jetzt heisst es Xbox360 und PS3 sind irgendwie nicht der Bringer, morgen heisst es.......... blablabla.
Mal sollte nicht zu sehr auf Carmacks Gefasel hören. Der Hype um ihn scheint ihn in den letzten Jahren ein wenig überbeflügelt zu haben.
Denn komischerweise hörst du von anderen Spieleherstellern nicht dieses ewige Gejammer.

Coda
2006-01-19, 00:23:16
Och der Xbox 360-Prozessor ist eigentlich genau gleich zu behandeln wie ein PC-Dual-Core was die Multithreading-Optimierung angeht. Bei Cell wird die Sache noch zusätzlich verschärft.

Denn komischerweise hörst du von anderen Spieleherstellern nicht dieses ewige Gejammer.Wer würde denn überhaupt Gehör finden? Gabe Newell hat sich übrigens sehr ähnlich geäußert.

Grobblin
2006-01-19, 04:33:36
Die CryTek-Gruender Yerli haben sich zuversichtlich mal zu DualCore geaeussert.
Ich glaube es war ungefaehr so: "Es ist schwierig Spiele auf DC zu opitmieren aber wir haben da schon enorme Vortschritte gemacht und man kann erstaunliche Physik oder KI auf dem einem Core berechnen lassen waehren der Rest auf dem anderen Core laeuft."

Android
2006-01-19, 05:15:27
Och der Xbox 360-Prozessor ist eigentlich genau gleich zu behandeln wie ein PC-Dual-Core was die Multithreading-Optimierung angeht. Bei Cell wird die Sache noch zusätzlich verschärft.

Ja, die Xbox ähnelt dem PC ein wenig mehr als die PS3.

Wer würde denn überhaupt Gehör finden? Gabe Newell hat sich übrigens sehr ähnlich geäußert.

Warum sollen sie denn auch motzen ? Auf wievielen Spielen steht denn dick und fett auf dem Cover "YEAH, NOW WITH PS3.0" ??
Keiner zwingt die Spielehersteller einen zusätzlichen Prozessor/Core zu nutzen.
Oder meinste auf dem nächsten Spielecover steht "YEAH !! DC SUPPORTED!!"?
Warum pisst Carmack sich dann so an ? Dann soll er halt den zweiten Kern bei der Entwicklung ignorieren. Andere wie Grobblin schon bemerkte, scheinen damit weniger Probleme zu haben.

Juerg
2006-01-19, 08:37:07
Warum pisst Carmack sich dann so an ? Dann soll er halt den zweiten Kern bei der Entwicklung ignorieren.Weil vielleicht die Single-Core Performance seit 2 Jahren stagniert? Könnte das sein? G. Moore hat "nur" die Anzahl Transistoren gemeint, die sich verdoppeln innert (~18 Monaten), nicht die allgemeine Performance. Zuerst muss das fundamentale Problem gelöst werden, inhärent sequentielle Prozesse, selbstredend mit einem allgemeinen Ansatz, zu parallelisieren. Diese Lösung sollte dann auch noch skalieren können, d.h es sollte nicht nur 170% aus 2x100% CPU ergeben. Dies sieht nur auf den ersten Blick gut aus. Wie sieht das aber mit 4, 8 oder gar 16 cores aus. Dann sind wir schon an der Grenze des Nutzen gegenüber des Aufwandes angelangt. Die Lösung sollte weit über 198% aus 2x100% CPU bringen. Utopisch? Ja vielleicht. 300-400 Millionen Transistoren auf einem Nagel des kleinen Fingers als Grafikkarte hat sich vor zehn Jahren auch niemand vorgestellt. Oder frag mal 1986 ob die Sowjetunion (UdSSR) im Jahre 2000 noch existiert. Man hätte dich in die Zwangsjacke gesteckt. :biggrin:

Gast
2006-01-20, 01:58:54
Skeptik ? Wozu ?

Jeder weiss doch, dass momentane Spiele so gut wie keinen Nutzen aus Mehrprozessorsystemen ziehen können. Nur ist das Ziel auch nicht dahingehend gesteckt. Interessant wird es für Spiele meist erst dann, wenn man andere Prozesse ( Physikberechnung, grafikkartenbezogene Prozesse etc.) auf einen weiteren Prozessor auslagern kann.
Den Nutzen kann man dann schon belegen, auch wenn es wahrlich bessere Einsatzgebiete für Dual-Systeme gibt.

Weiterhin bringt Carmack als Beispiele komischerweise den Cell und die XBox360. Das deren Architektur nicht mit dem von PC`s vergleichbar ist (was er auch leise einräumt) sollte einleuchten. Für spezifierte Umgebungen wie die Playstation 3 ist der Cell dahingehend optimiert und durchaus geeignet.

Darüberhinaus sollte Carmack mal kleine Brötchen backen. Zuerst beschwerte er sich grundsätzlich über die PS3 und lobte die Xbox360 als "super-mit-zu-arbeiten" Gerät. Jetzt heisst es Xbox360 und PS3 sind irgendwie nicht der Bringer, morgen heisst es.......... blablabla.
Mal sollte nicht zu sehr auf Carmacks Gefasel hören. Der Hype um ihn scheint ihn in den letzten Jahren ein wenig überbeflügelt zu haben.
Denn komischerweise hörst du von anderen Spieleherstellern nicht dieses ewige Gejammer.

Ja.

Carmack labert und jammert nur und Doom3 langweilte vom ersten Tag an,nach etlichen Jahren Entwicklung und Gerede...*schnarch*

Wie war das nochmal bei FarCry?Früher,BESSER und ohne lange Ankündigungshype,zumindest nicht 5Jahre lang.

Unreal muß demnach auch ein "Flop"werden*gaaanzweitausdemfensterlehn*:)

Coda
2006-01-20, 02:08:09
Was hat jetzt bitte die Technik mit dem Spiel zu tun? omg...

Warum pisst Carmack sich dann so an ? Dann soll er halt den zweiten Kern bei der Entwicklung ignorieren. Andere wie Grobblin schon bemerkte, scheinen damit weniger Probleme zu haben.Die einzelnen Xbox-Cores sind eher schwach von der Leistung - ohne Multithreading bekommst du aus dem Ding keine anständige Performance raus.

Gast
2006-01-20, 17:09:25
Seltsam dass gerade John Carmack Multicore Prozessoren als so problematisch sieht, wo doch Quake 4 derzeit das einzige Spiel ist das einen starken Nutzen aus Dual core cpus ziehen kann.

Coda
2006-01-20, 17:42:23
Eben drum. Er kritisiert ja den hohen Aufwand, weil er eben schon Erfahrung damit gemacht hat.

Die Aussage sollte man nicht so verstehen dass Carmack unfähig dazu ist, nur mag er es eben nicht. Kein Dev mag Multithreading.

aths
2006-01-20, 18:31:44
Das würde ich so pauschal nicht sagen. Kein Dev, der Multiplattform-Titel entwickeln will, mag Multithreading. Für spezielle Multicore-Umgebungen à la PS2 lassen sich auch entsprechend hochwertige Spiele umsetzen, die das System recht gut ausnutzen. Zwar ist die Einarbeitungszeit sicher länger, aber als Singlecore-System ist eine vergleichbar hohe Gesamtleistung viel teurer. Man spart Hardwarekosten (und damit verbundene Abwärme) und wälzt die Arbeit, trotzdem noch was draus zu machen, auf die Software-Entwickler ab. Bei den hohen Stückzahlen der Konsolen-Hardware aus Sicht der Buchführung wohl keine schlechte Idee.

Coda
2006-01-20, 18:43:57
Was interessiert den Dev das HW-Design? Keiner mag es für Multithreading zu programmieren. Mehr Leistung ohne zusätzlichen Aufwand ist einem ganz selbstverständlich lieber.

Bei der PS2 ist das insbesondere besonders schlimm. Das Ding ist ein Haufen Elektroschrott, auch wenn du da anderer Meinung bist :tongue:

aths
2006-01-20, 18:53:02
Was interessiert den Dev das HW-Design? Keiner mag es für Multithreading zu programmieren. Mehr Leistung ohne zusätzlichen Aufwand ist einem ganz selbstverständlich lieber.Lies doch mal mein Posting.

Bei der PS2 ist das insbesondere besonders schlimm. Das Ding ist ein Haufen Elektroschrott, auch wenn du da anderer Meinung bist :tongue:Ich vergaß, du bist da ja der Kenner.

Coda
2006-01-20, 18:54:35
Lies doch mal mein Posting.Ich habs gelesen. Trotzdem mag es keiner den Aufwand zu betreiben. Obwohl, evtl. sind ja Sadisten dabei...

Ich vergaß, du bist da ja der Kenner.Nein, aber ich kenne einschlägige Diskussionsforen in denen man nichts anderes gehört hat, als das die Devs das Ding verfluchen :tongue:

Ich werd die Diskussion hier aber sicher nicht mit Argumenten fortsetzen, weil es eh keinen Zweck hat.

Demirug
2006-01-20, 18:57:34
Nein, aber ich kenne einschlägige Diskussionsforen in denen man nichts anderes gehört hat, als das die Devs das Ding verfluchen :tongue:

Das Problem sind vorallem die Tools das hat Sony einfach unterschätz. Es schon bezeichnet das Sony für die PS3 eine Firma gekauft hat die ein PS2 Entwicklungstool anbietet das auf dem Visual Studio von MS aufbaut.

Juerg
2006-01-20, 20:20:12
Für spezielle Multicore-Umgebungen à la PS2 lassen sich auch entsprechend hochwertige Spiele umsetzen[...]Das ist mit ein Punkt. Damit erreicht man potentiell *alle* PS2 Konsolen, da alle gleich. Wenn man heute im "PC" Bereich von speziellen Multicore-Umgebungen spricht sind das sagen wir ~2%? Alles andere (hier: Single-Core) läuft dann nichtzufriedenstellend. Oder Single-Core wird gut unterstützt heisst im Umkehrschluss Multi-Core zieht keinen Nutzen davon.

Ein Spiel zu designen das "gracefully degraded" und genügend skaliert auf 4-fach Opteron sowie auf Sempron und "fast" kein Unterschied da sein soll geht irgenwie nicht so.

Und da man die Wahl hat 98% der Nutzer oder eben 2% der Nutzer anzupinkeln macht man halt den Kompromiss die 98% zu unterstützen und für die bleeding-edge ein Zückerchen alà Ultra-High-Textures-HDRish-2048x1920-8FSAA-16AF-SM3only für die Rechtfertigung...

Juerg
2006-01-20, 20:28:05
OT@Demirug
Do you understand anything? Do you speak English? richtig? :confused:

Demirug
2006-01-20, 20:36:32
OT@Demirug
Do you understand anything? Do you speak English? richtig? :confused:

Ja, natürlich ich kann Englisch. Das ist in meinem Job unerlässlich. Allerdings weiß ich jetzt nicht auf was sich das "Do you understand anything?" hier bezieht.

Juerg
2006-01-20, 20:48:33
Ich habe mich nur gefragt, ob deine Signatur japanisch enthält und ob ich das entziffern (oder besser gesagt entlettern :)) kann.

Demirug
2006-01-20, 20:53:04
Ich habe mich nur gefragt, ob deine Signatur japanisch enthält und ob ich das entziffern (oder besser gesagt entlettern :)) kann.

Ja das ist japanisch. Die Übersetzung des ersten Satzes ist allerdings nicht ganz korrekt. "Ich verstehe überhaupt nichts." wäre richtig.

aths
2006-01-20, 21:01:41
Das Problem sind vorallem die Tools das hat Sony einfach unterschätz. Es schon bezeichnet das Sony für die PS3 eine Firma gekauft hat die ein PS2 Entwicklungstool anbietet das auf dem Visual Studio von MS aufbaut.Bei so einem Konsolen-Design, was ich mal (allerdings eher auf Atari-2600-Niveau) durchdacht habe, ist es reizvoll, bestimmte Dinge zu offerieren die über parallel rechnende Chips erledigt werden, bzw. Sound- und Video-Chips programmierbar zu gestalten. Letztlich sind innerhalb es Frames (oder, beim 2600, innerhalb einer Scanline) bestimmte Aufgaben zu erledigen; im Prinzip ist es egal, wie viele Chips da beteiligt sind, die Rechenzeit pro Frame ist begrenzt.

Demirug
2006-01-20, 21:16:28
Bei so einem Konsolen-Design, was ich mal (allerdings eher auf Atari-2600-Niveau) durchdacht habe, ist es reizvoll, bestimmte Dinge zu offerieren die über parallel rechnende Chips erledigt werden, bzw. Sound- und Video-Chips programmierbar zu gestalten. Letztlich sind innerhalb es Frames (oder, beim 2600, innerhalb einer Scanline) bestimmte Aufgaben zu erledigen; im Prinzip ist es egal, wie viele Chips da beteiligt sind, die Rechenzeit pro Frame ist begrenzt.

Nein, es ist nicht egal. Wenn du ein Gefühl dafür bekommen willst must du nur ein Multithread Programm schreiben und vorher festlegen das bestimmte Aufgaben nur von bestimmten Threads erledigt werden dürfen.

aths
2006-01-20, 21:32:06
Nein, es ist nicht egal. Wenn du ein Gefühl dafür bekommen willst must du nur ein Multithread Programm schreiben und vorher festlegen das bestimmte Aufgaben nur von bestimmten Threads erledigt werden dürfen.Das generelle Hauptproblem das ich sehe ist, dass man (bei Gewährleistung einer konstanten Framerate) die Komplexitität begrenzen muss, damit alle Rechnungen rechtzeitig fertig sind. Bei Multichip-Anwendung besteht das zusätzliche Problem, dass nicht nur einfach die Summe der Laufzeiten begrenzt ist, sondern man die Tasks sinnvoll verteilen muss und synchronisieren darf. Damit würde ich mich nur höchst ungerne herumschlagen wollen, aber die Multicore-Systeme werden ja nicht gebaut um die Entwickler zu triezen sondern weil sich nur so eine (theoretische) Gesamtleistung realisieren lässt.

Fähige Entwickler können sich sicherlich in eine Architektur einarbeiten, aber wer will schon PC, Xbox, PS3 und Revo gleichzeitig bedienen? Da darf man jeweils die Engines neu schreiben, nach jeweils gänzlich anderen Regeln optimieren, und den Content (in Auflösung und Vielfalt) anpassen – stell ich mir grauenhaft vor.

Monger
2006-01-20, 21:41:26
Nein, es ist nicht egal. Wenn du ein Gefühl dafür bekommen willst must du nur ein Multithread Programm schreiben und vorher festlegen das bestimmte Aufgaben nur von bestimmten Threads erledigt werden dürfen.

Kannst du das ausführen?
Ich steck nicht so tief in der Materie drin, aber afaik unterstützen weder Java noch .NET eine Festlegung auf eine bestimmte CPU. Wenn Multithreaded, dann muss es egal sein wo sie laufen. Ich vermute es gibt einen wichtigen Grund dafür, aber so spontan kann ich mir keinen vorstellen.

Demirug
2006-01-20, 21:48:58
Kannst du das ausführen?
Ich steck nicht so tief in der Materie drin, aber afaik unterstützen weder Java noch .NET eine Festlegung auf eine bestimmte CPU. Wenn Multithreaded, dann muss es egal sein wo sie laufen. Ich vermute es gibt einen wichtigen Grund dafür, aber so spontan kann ich mir keinen vorstellen.

Nein es gibt eigentlich keinen wirklich wichtigen Grund. Nur wenn man es in eine Platform einbaut könnte man diese nicht mehr auf ein OS portieren das dieses Feature nicht hat.

Aber darum ging es mir gar nicht. Man kann, natürlich nur in Grenzen, die Probleme beim programmieren von Systemen mit vielen Spezialchips duch entsprechend viele Threads nachvollziehen.