Hallo Besucher, der Thread wurde 8,5k mal aufgerufen und enthält 80 Antworten

letzter Beitrag von sauhund am

[OT aus TT] annehmbar gute Spiele in C

  • Zitat

    Ich würde aber generell davon abraten, Spiele für den C64 in C zu coden.


    och, das geht schon. SO schlimm ist der code der rauskommt nicht - dieses trapthem zb sollte sich zu fast 100% in C implementieren lassen, ganz bequem :)


    wovon ich allerdings dringend abrate ist: an C auf dem C64 auch nur zu denken bevor nicht solide assemblerkenntnisse vorhanden sind.

  • @Rayne: Warum das *generelle* abraten? Klar gibt es Spiele die man nicht in C umgesetzt bekommt weil der generierte Code nicht schnell genug und zu gross ist, aber es gibt auch welche bei denen das kein Problem ist und man gegenüber Assembler Zeit beim schreiben und lesen spart und gegenüber BASIC schnelleren Code und einen strukturierteren Quelltext hat.

  • @Rayne: Warum das *generelle* abraten? Klar gibt es Spiele die man nicht in C umgesetzt bekommt weil der generierte Code nicht schnell genug und zu gross ist, aber es gibt auch welche bei denen das kein Problem ist und man gegenüber Assembler Zeit beim schreiben und lesen spart und gegenüber BASIC schnelleren Code und einen strukturierteren Quelltext hat.


    Ich bin mal von ausgegangen dass man beim Coden eines Spiel nicht unnötig Ressourcen verschwenden will die man an einer anderen Stelle evtl. noch brauchen kann.

  • Zitat


    und das sinnlose verwenden von assembler wenn es eine hochsprache genauso gut tut ist eine gigantische verschwendung der resource "zeit"



    Wobei in diesem Fall nur die "Zeit" des Entwicklers verschwendet wird, und anderereseits ALLE Nutzer/Spieler darunter zu leiden hätten...
    Aber hier dreht man sich imho eh im Kreis... ;)

  • Naja, beim C64 geht man schon so oft an die Grenzen, dass eine erste Präferenz für Assembler ganz sinnvoll erscheint. Nichtsdestotrotz -- C MUSS nicht ineffizienter sein. Je nachdem, was genau man vorhat, kann man auch auf das herumschleppen einer stdlib verzichten. Dann ist natürlich auch wieder viel Komfort verloren, aber machbar ist es allemal, man hat immer noch die strukturellen Vorteile von C. Und solange man nicht in gewisse Grenzbereiche geht (cycle-stabiler raster-code und sowas) ist eh immer die Frage, wer hier besser optimiert: ein guter C-Compiler oder der Coder selbst.


    Ich persönlich hab noch nichts mit C für den C64 gemacht (einige kleine Versuche, war schnell wieder bei ASM, da kann ich immerhin auch schon strukturierter programmieren als in BASICv2 *g*) -- aber wenn jemandem das gut liegt und ein Projekt durchaus in C realisierbar ist: Warum dann bitte nicht? Würden wir hier nicht von einer Plattform mit SEHR eingeschränkter Rechenleistung reden, kein Mensch würde je auf die wahnwitzige Idee kommen, ein ganzes Spiel in Assembler zu schreiben :D -- Wobei, die Russen haben ja damals auch ein PC DOS in Assembler gebaut .... :D

  • Elite Frontier ja offenbar auch.
    Und ich glaube nicht, dass C Probleme aehnlich effizient loest wie in Assembler beim 6502 in der Hand von halbwegs Erfahrenen Programmierern.
    Bei z80 wird's schon kritischer nach dem was ich davon weiss.
    Aber darum geht es ja auch nicht.
    Wem C mehr Spass macht soll das machen, dann aber bitte nicht staendig rumjammern wenn es zu langsam, zu gross zu schwer ist.
    Entschuldigungen gibt es naemlich nicht ;-)

  • korrekt. und das sinnlose verwenden von assembler wenn es eine hochsprache genauso gut tut ist eine gigantische verschwendung der resource "zeit"


    Wenn am Ende etwas brauchbares herauskommen soll, muss man die Zeit auf der Prioritätenliste eben etwas nach unten verschieben. Ich sehe da kein allzugroßes Problem bei Hobbyprojekten. Es ist niemand da, der dem Coder eine Frist setzt bis wann das Projekt fertig sein _muss_ ;)


    (Wie schon Chris Hülsbeck sagte, wenn am Ende etwas gutes herauskommen soll, braucht das auch eine gewisse Zeit, und die nehm' ich mir einfach ^^)

  • @Rayne: Das klingt so als wenn man mit C nichts brauchbares bekommen kann. Wenn Du persönlich lieber Assembler nimmst und für Dich C für kein Spiel in Frage käme ist das ja völlig in Ordnung, aber das generelle abraten finde ich krass übertrieben.


    Bei einer Menge von Puzzle-, Strategie-, Aufbau-, Karten-, Adventure-, oder Brettspielumsetzungen kann einem eine Hochsprache beim Entwickeln Zeit sparen ohne dass die Nachteile (grössere, langsamere Binärdateien) für den Endnutzer ins Gewicht fallen. Bei einigen von den genannten Genres gibt es wohl genau aus dem Grund erfolgreiche Spiele deren Hauptprogramm in BASIC geschrieben ist. Demgegenüber ist C eine deutliche Verbesserung. Vor allem kann man da Assembler viel nahtloser integrieren. Zum Beispiel eine in C geschriebene Funktion durch eine handgeschriebene Assembler-Implementierung ersetzen, ohne das man an den Stellen wo das aufgerufen wird etwas ändern muss.


    Nicht alles wo man mehr Zeit rein steckt, wird dadurch auch automatisch besser. :)


    Und um ein wenig näher an das Thema zu kommen: Wenn man ein furchtbares in C geschriebenes Programm sieht, muss das nicht an C liegen. Der Autor würde in reinem Assembler sehr wahrscheinlich genau so furchtbares abliefern. :whistling:


  • nunja. gran tourismo 2 für die ps1 zb ist im wesentlichen in assembler geschrieben, anders wäre der "hd mode" nicht realisierbar gewesen :)


    Nunja? Das hört sich dann ja auch wieder nach eingeschränkten Hardwarefähigkeiten (für das, was erreicht werden sollte) an, so dass es mit meinem GANZEN Satz eigentlich wieder passt. ASM will man normalerweise vermeiden ;)

  • @Rayne: Das klingt so als wenn man mit C nichts brauchbares bekommen kann. Wenn Du persönlich lieber Assembler nimmst und für Dich C für kein Spiel in Frage käme ist das ja völlig in Ordnung, aber das generelle abraten finde ich krass übertrieben.


    Auf dem C64 rate ich davon ab, auf anderen Plattformen >1Mhz und >64KB Ram könnte C sinnvoller sein. Auf dem C64 jedoch macht es kaum Sinn.

  • @Rayne: Ich verstehe immer noch nicht warum Du so entschieden und generell abrätst. Du sagst es macht kaum Sinn, das hätte ich gerne mal begründet gesehen. Denn es macht objektiv gesehen durchaus Sinn Zeit beim Programmieren und Warten eines Programms zu sparen. Auf der anderen Seite macht es tatsächlich kaum Sinn Speicherplatz zu sparen den man sowieso nicht verwendet oder Laufzeit zu sparen die dem Anwender eh nicht auffällt und wenn dann nicht zwingend negativ.


    Da es offensichtlich Sinn macht Spiele ganz oder zum Teil in BASIC zu schreiben, muss es doch auch Sinn machen eine Sprache zu verwenden die was Hardwarenähe und Geschwindigkeit angeht besser ist als BASIC, und zwar schlechter als Assembler was Codegrösse und Geschwindigkeit betrifft, aber besser als BASIC und Assembler zusammen wenn es um Strukturierung von Code und Daten geht.