Doom 3 source nun open-source
-
Meinst du die Sprache? C++. Schau doch einfach mal 'rein.
-
Vielen Dank für die Info SideWinder, habe jetzt schon länger drauf gewartet!
-
_matze schrieb:
Meinst du die Sprache?
Er meint welche Drogen. Schau dir den Code doch selbst mal an, pi-Brille aufsetzen nicht vergessen.
-
Bashar schrieb:
_matze schrieb:
Meinst du die Sprache?
Er meint welche Drogen. Schau dir den Code doch selbst mal an, pi-Brille aufsetzen nicht vergessen.
Habe schon 'reingeguckt und ebenfalls festgestellt, dass die unerhörterweise C++-Elemente benutzen, die es auch in C gibt. Frechheit! Pi, ich erwarte eine Stellungnahme!
-
Heisst das, dass die idTech Engine Open Source ist oder ist das wirklich nur das Game selbst? Ich habe kurz ein Source File angeschaut und die verwenden Tabs anstelle von Spaces. Das geht gar nicht!!!111
:p
-
Spaces sind Mist.
-
_matze schrieb:
Habe schon 'reingeguckt und ebenfalls festgestellt, dass die unerhörterweise C++-Elemente benutzen, die es auch in C gibt.
Das ist sehr zahm ausgedrückt.
-
Ich finds eigentlich gut lesbar. Wenn ich da an so manchen 90er Jahre Code wie z.B. Build Engine denke... Da steigt ja keiner mehr durch, wenn er mal drei Tage nicht mehr reingeschaut hat
-
_matze schrieb:
Habe schon 'reingeguckt und ebenfalls festgestellt, dass die unerhörterweise C++-Elemente benutzen, die es auch in C gibt. Frechheit! Pi, ich erwarte eine Stellungnahme!
Die Schweine haben auch kein boost verwendet
Und es gibt ein Projekt-File für VS... das taugt eh nix und das gesamte Projekt ist verdoomt gewesen :p
-
GPC schrieb:
_matze schrieb:
Habe schon 'reingeguckt und ebenfalls festgestellt, dass die unerhörterweise C++-Elemente benutzen, die es auch in C gibt. Frechheit! Pi, ich erwarte eine Stellungnahme!
Die Schweine haben auch kein boost verwendet
Und es gibt ein Projekt-File für VS... das taugt eh nix und das gesamte Projekt ist verdoomt gewesen :p
Außerdem sind da jede Menge solcher komischen Sternchen im Code. Sind das Fußnoten? Lässt sich das überhaupt von einem C++-Compiler übersetzen?
-
_matze schrieb:
...
Außerdem sind da jede Menge solcher komischen Sternchen im Code. Sind das Fußnoten? Lässt sich das überhaupt von einem C++-Compiler übersetzen?Das sind Multiplikatoren zur Leistungssteigerung!
-
Cpp_Junky schrieb:
_matze schrieb:
...
Außerdem sind da jede Menge solcher komischen Sternchen im Code. Sind das Fußnoten? Lässt sich das überhaupt von einem C++-Compiler übersetzen?Das sind Multiplikatoren zur Leistungssteigerung!
-
Geilo! Endlich ist es soweit.
-
schaut ganz ok aus fuer 10jahre alten code. mit dem projekt bekomme ich es nicht ganz durchgebaut, will jetzt aber nicht die ganze mittagspause fuer opfern
-
Naja, er prüft schon mal auf Gleichheit von float, nimmt schon mal memset(data,0,sizeof data) statt sofort zu initialisieren, nutzt gerne lokale static Variablen und (modul)globale, was wohl kaum einem evtl. zukünftigen Multithreading dienen dürfte, verwendet gar linked lists und scheint auch ein großer Freund von Casts aller Art zu sein.
-
Wutz schrieb:
Naja, er prüft schon mal auf Gleichheit von float
kann absicht sein
nimmt schon mal memset(data,0,sizeof data) statt sofort zu initialisieren
kann auch absicht sein (z.b. schneller)
wenn du mehr als nur anprangern moechtest, muesstest du schon den source quoten, sonst haben wir beiden nur stammtischgeschwafel
nutzt gerne lokale static Variablen und (modul)globale, was wohl kaum einem evtl. zukünftigen Multithreading dienen dürfte
zum einen gab es ziemlich kein multithreading in spielen und als es dann da war (pentium4D), auch nur dualcore, was man effizient mit einem thread pro system auslasten kann, da selbst bei singlethreading die GPU das limitierende war.
verwendet gar linked lists
solange es den zweck erfuellt, reicht es doch. in der quake 3 engine geht er durch alle lichter pro objekt durch um rauszufinden welche genutzt werden soll.
alle anderen fangen bei sowas an grossartige strukturen zu benutzen um die query time so niedrig wie moeglich zu halten und O(log n)-blabla und carmack macht es auf die simpelste art wie man es braucht.
auf der anderen seite gab es schon vor dem quellcode release von der Q3 engine massig 'clones' die eigentlich nur das rendering nachbauten und viele haben sich einen keks gefreut wenn sie besser als 50% der quake3a performance erreicht haben.carmack coded halt sehr minimalistisch, erstmal muss es gehen und wenn es geht, arbeitet man weiter. wenn es dann mal probleme gibt, kann man es immer noch verbessern.
auf der anderen seite siehst du dass er so ziemlich was zustande bekommt. manche haben engine abteilungen mit 30leuten, dazu noch game teams und dazu nutzen die allerlei libraries. schau dir die credits von doom 3 oder quake 3 an:
http://www.mobygames.com/game/windows/doom_/credits
http://www.mobygames.com/game/windows/quake-iii-arena/credits
da sind 6programmierer die engine, game, tools, build pipeline erstellen.du findestes auch mal comments im source wo sie schon bessere dinge haben, aber aus stabilitaetsgruenden nicht einschalten.
und scheint auch ein großer Freund von Casts aller Art zu sein.
c engine, c coder, playstation 2 zeit, 99% der spiele waren in c geschrieben, questions?
ich glaube zwar nicht dass es soviel besser bei rage aussieht, aber in den tweets hat carmack schon einiges an entwicklung durchblicken lassen
https://twitter.com/#!/wil/statuses/76388496037785600
https://twitter.com/#!/ID_AA_Carmack/status/137192077091024896
https://twitter.com/#!/ID_AA_Carmack/status/119254000431415296
-
Doom3 ist ein Hammergame, Bugs nicht existent, sehr tolle Performance etc
Das macht ihr C++ deutlich schöner als das ganze hochgestylte C++, in dem eh nur Mist verzapft wird.
Im Übrigen finde ich den Style eh nett, Spiele sind meistens etwas obskurr designt, da man mit dynamische Allokationen etc spart.
-
ich hab noch nicht reingeguckt, hoffe nur dass es nicht so ein buch mit 7 siegeln wird wie der quake3 source...
-
rapso schrieb:
ksi schrieb:
Wie kann es beim Stil überhaupt eine unterscheidung in gut und schlecht geben? Solange der Stil konsequent durchgezogen wird, kann der Stil nicht allzu schlecht sein.
geb ich (und die meisten paper die sich damit beschaeftigen) sehr recht. fuer vielzuviele ist es eine art religion geworden, dabei sollte es nur so einheitlich wie moeglich sein damit man im team wenig zeit zum verstehen von syntax verwendet und dafuer mehr fuer den eigentlichen programmfluss. ich passe mich immer dem team an, egal wie ungewohnt mir eine formatierung vorkommt, aber ich habe auch miterlebt, dass manche wie kleine kinder meinten sie wuerden eher ihre kuendigung akzeptieren als ihren stil zu aendern.
es gibt natuerlich, je nach sprache, eigenheiten bei der der stil helfen kann fehler zu vermeiden, aber ob jemand irgendwohin spaces oder tabs, tab2 oder tab4, klammern hier oder da hinsetzt ist nur eine alberne diskusion.
Ähm, du redest jetzt plötzlich von der Formatierung des Codes, das hat für mich relativ wenig mit Stil zu tun. Gut, wenn ihr beide nur Formatierung als Stil anseht, ist es wirklich egal. Aber zum Stil gehört auch sowas wie keine globalen Variablen zu verwenden und die sprachtypischen Idiome usw. zu verwenden. Und wenn man konsequent globale Variablen verwendet, wird es immer noch nicht gut.
PS. Du hast dort http://www.c-plusplus.net/forum/p2149426#2149426 den falschen Thread verlinkt. Solltest du mal ändern, vor jemand im Shader Thread über Doom redet.
-
Ethon schrieb:
Doom3 ist ein Hammergame, Bugs nicht existent, sehr tolle Performance etc
Das macht ihr C++ deutlich schöner als das ganze hochgestylte C++, in dem eh nur Mist verzapft wird.
Im Übrigen finde ich den Style eh nett, Spiele sind meistens etwas obskurr designt, da man mit dynamische Allokationen etc spart.
So programmieren halt Leute die es wirklich drauf haben. Ich mag auch nicht die Pseudoentwickler die glauben nur weil sie studiert haben und sich an alle modernen C++ Regeln halten, dass sie Qualität abliefern.Carmack hat sich das Studium nach 2 Semestern geschenkt und das Resultat seiner Entwicklung macht ihm zum Besten was es auf diesem Planeten im Bereich Gamedevelopment gibt. Da der Code keine großen Bugs hatte, sehr performant war und sehr sehr viel Geld eingebracht hat, sollten sich alle "ich habe aber 55 effektive C++ Regeln drauf" Typen mal von John eine dicke Scheibe abschneiden.
So coden absolute Genies und nicht wie es sehr viele hier immer runter eiern, in dem sie 2-3 Fachbüchern naiv glauben schenken.