Beliebtester Compiler zu DOS-Zeiten



  • Die Turbo-Reihe von Borland war damals sicherlich sehr beliebt. Also Turbo Pascal und Turbo C/C++. Die waren vor allem auch in Computer-Abteilungen der damaligen Kaufhäuser verfügbar, zu erschwinglichen Preisen. Ich selber war so einer, der sowohl Turbo Pascal als auch Turbo C gekauft und ausprobiert hatte.

    Wenn ich so zurück denke... war die IDE von Turbo Pascal wirklich cool! 🙂



  • Ich glaube auch dass der Borland C++ damals recht beliebt war. Und dann natürlich noch Watcom C++.

    Spiele wurden zu der Zeit fast alle zu weiten Teilen (oder ganz) in Assembler geschrieben.

    Ich behaupte mal das ist ne Urban Legend. Beim C64 mag das noch so gewesen sein, vielleicht noch bei Amiga 500 etc., aber beim PC...
    Zu dem Zeitpunkt wo Spiele am PC relevant wurden gab es schon sehr gute C Compiler, und ich kann mir echt nicht vorstellen dass professionelle Spieleentwickler sich ohne guten Grund selbst so ausgebremst haben.



  • Die Grafikroutinen, Soundroutinen usw. wurden natürlich in Assembler programmiert. Einfach die kritischen Teile als Assembler-Code in den C Code einbetten. Kommt sicherlich auch darauf an, um welche Spielgattung es geht. Einfach kleine Spiele waren wahrscheinlich auch später noch komplett Assembler. Und komplexere Spiele wurden dann mit C plus Assembler.

    Aber das bei komplexen Spielen nicht alles in Assembler gemacht wurde, sieht man sehr schön an SCUMM, das es schon zu DOS-Zeiten gab.


  • Mod

    hustbaer schrieb:

    Ich behaupte mal das ist ne Urban Legend. Beim C64 mag das noch so gewesen sein, vielleicht noch bei Amiga 500 etc., aber beim PC...
    Zu dem Zeitpunkt wo Spiele am PC relevant wurden gab es schon sehr gute C Compiler, und ich kann mir echt nicht vorstellen dass professionelle Spieleentwickler sich ohne guten Grund selbst so ausgebremst haben.

    Und ich behaupte mal, dass du da falsch liegst. Soweit ich weiß war nämlich Doom der große Durchbruch für C in der Spieleprogrammierung und das ist von 1993.



  • SeppJ schrieb:

    Soweit ich weiß war nämlich Doom der große Durchbruch für C in der Spieleprogrammierung und das ist von 1993.

    Nee, soweit ich weiß, war Doom außergewöhnlich, weil es nur C war und trotzdem ok, während der Stand der Technik überall sonst schon so viel weiter war.



  • @volkard:
    Was meinst du mit "Stand der Technik überall sonst schon so viel weiter war"?

    Dass die anderen in Assembler programmiert haben, und dadurch mehr rausgeholt, oder dass die anderen modernere Sprachen als C verwendet haben (wie z.B. C++)?



  • hustbaer schrieb:

    @volkard:
    Was meinst du mit "Stand der Technik überall sonst schon so viel weiter war"?

    Dass die anderen in Assembler programmiert haben, und dadurch mehr rausgeholt, oder dass die anderen modernere Sprachen als C verwendet haben (wie z.B. C++)?

    Ich meinte, daß die anderen modernere Sprachen als C verwendet haben (wie z.B. C++). Natürlich gerne mit ein wenig Assembler durchsetzt.


  • Mod

    volkard schrieb:

    Ich meinte, daß die anderen modernere Sprachen als C verwendet haben (wie z.B. C++). Natürlich gerne mit ein wenig Assembler durchsetzt.

    Das Thema würde mich wirklich interessieren. Wo kann man darüber mehr erfahren? Doom ist sehr bekannt, weil es eine der ersten guten First-Personshooterengine war, daher kann man darüber leicht Informationen über die Entwicklung bekommen. Bei den Sachen die davor waren, wird es aber ziemlich düster, weil ich einfach die Titel nicht mehr kenne und selbst wenn ich wüsste bei welchen Spielen ich gucken sollte, dann ist es schwer etwas über die Programmierung zu erfahren, außer dass Spiele damals noch von einer Handvoll Leute programmiert wurden (höchstens!). Das eine Wirtschaftssimulation von 1985 vermutlich in einer Hochsprache (höher als C) geschrieben wurde, würde mich natürlich auch nicht weiter wundern. Aber was war mit Spielen die damals dem Rechner technisch alles abverlangt haben? Wie heißen die? Gab es so etwas überhaupt?
    Oder als alternative Fragestellung: Wie wurde damals für die Konsolen entwickelt? Die Konsolenspiele waren naturgemäß technisch anspruchsvoll, weil während der großen Konsolenkriege die Grafik ein wichtiges Argument war (das hat sich seitdem auch nie geändert)



  • watcom



  • Ich weiß auf jedenfall von einigen Spielen um 1992, die zu überwiegenden Teilen in C oder C++ programmiert waren [Betrifft vor allem die etwas "größeren" Projekte].

    Natürlich spielte unter DOS bei Grafikausgaben die Optimierung unter Assembler eine große Rolle, nur waren das Optimierungen, nicht gänzlich in Assembler geschriebene Projekte.



  • Alle 8- und 16-Bit Konsolen wurden definitiv komplett in Assembler programmiert. Weil der Speicher einfach sehr knapp war. Und die Spiele wurden dann halt nicht portiert sondern komplett jeweils neu programmiert, für jede Plattform. Das war auch nicht teuer, weil die Spiele nicht sonderlich komplex waren. Turrican z.B. wurde für jede Plattform (C64, Amiga, ST, Mega Drive und SNES) jeweils neu programmiert.

    Another World (Amiga) von Dolphin war auch in Assembler, lediglich die Tools für die Entwicklung wurden in BASIC programmiert, da es da nicht auf Performance ankam, aber die Ergebnisse für die Tools schnell da waren.

    Bei DOS fallen mir schon ein paar Hammer-Games ein: z.B. Strike Commander.

    Zu dieser Zeit waren auch die PCs schon mit recht viel Speicher und CPU-Leistung ausgestattet... Ein 486 war schon schnell!



  • Welche Spielkonsolen? Was wir heute als Spielekonsolen kennen, gab es damals noch nicht.
    Der Umstieg von C nach C++ war natürlich kostenlos, weil man kein langsames C++-Sprachmittel verwenden mußte, sondern sich die Rosinen herauspicken durfte. Der Unterschied war auch nicht so groß wie heute. Außerdem gab's damals einen C++-Hype. Eine Beschränkung auf C war wie heute noch religiöser Natur und nicht schlau.
    Die meisten PC-Spiele konnten auf sehr vielen verschiedenen Leistungsklassen laufen, um einigermaßen viele Kunden bekommen zu können. Natürlich gab es auch grafikhungrige Titel allen voran wie Wing Commander, die kaum ein PC schaffte (und natürlich keine Konsole).



  • Wing-Commanger ist denke ich ein gutes Beispiel. Da waren auch nur ein paar wenige Routinen Performance-kritisch, nämlich die Blitting-Routinen. Wobei das im Prinzip drei Funktionen sind: rotiert & skaliert blitten (Raumschiffe, ...), nur skaliert blitten (Bullets, ...) und 1:1 blitten (Zwischensequenzen, HUD, ...).
    Diese Routinen waren hoffentlich in Assembler geschrieben.
    Beim ganzen Rest kann ich es mir nicht vorstellen - würde zumindest keinen Sinn machen.

    Wie man das rausbekommen kann weiss ich auch nicht so genau. Falls jemand ne Seite kennt wo solche Informationen aufgelistet sind: immer her damit!

    Welche Spielkonsolen? Was wir heute als Spielekonsolen kennen, gab es damals noch nicht.

    Naja, was gemeint war ist ja klar: NES, SNES, Master System, Mega Drive, PC-Engine - diese Dinger eben. Spielkonsolen halt 🙂
    Wobei es mich selbst da wundert. C kommt ja im Prinzip ohne jegliche Runtime aus, wenn man keine Standard-Library verlangt (die man zum Spiele programmieren auch nicht braucht -- malloc & free vielleicht mal ausgenommen).



  • Bedenken sollte man evtl. auch, daß die C Compiler auf früheren Rechner auch noch nicht so sonderlich schnell waren - im Vergleich zu den Assemblern.
    Mein 30K Source-Code in C von einem Simulationsspiel auf dem Amiga (MC68000) hat damals als Komplett-Build ca. 20 Minuten gedauert. Der DEVPAC Makro-Assembler war dagegen sauschnell, so daß ich in derselben Zeit schon ein paar Dutzend mal das Programm hätte erstellen und aufrufen können...



  • Sogar Lotus 1-2-3 war damals komplett in Assembler geschrieben.
    http://en.wikipedia.org/wiki/Lotus_1-2-3

    Ich hab damals auch meine Turbo-C Programme als Assembler Code ausgeben lassen, dann z.B Schleifen in Assembler optimiert (von SI, DI nach CX) und dann neu "kompiliert".



  • @Th69:
    20 Min. Rebuild-Zeit sehe ich jetzt nicht als Problem, wir haben Projekte wo ein Rebuild länger dauert. Zum Testen muss man ja nicht immer nen kompletten Rebuild machen. Und wenn das Bauen so lange dauert, dann wird halt weniger oft gebaut - man muss ja nicht alle 5 Minuten Änderungen testen.


Anmelden zum Antworten