Mit welchem Programm wurden früher Amiga und Comodore c64 Spiele geschrieben?

9 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hallo,

in Cobol; DOS und BASIC.

Hansi

Woher ich das weiß:Berufserfahrung

Commodore64  26.12.2021, 15:59

Cobol wurde nur für Datenbanken bzw. Programme die mit Datenbanken zu tun haben benutzt da die Variablenverwaltung da sehr mächtig aber auch sehr Speicherfressend ist. Es gab zwar Cobol für den C64, das hat aber praktisch niemand ernsthaft benutzt da man so praktisch die Hälfte der Leistung und des Speichers "wegwirft".

Und DOS ist ein betriebssystem, keine Programmiersprache!

1
Kerner  28.12.2021, 14:53
@Commodore64

Exakt!

Ich hatte mal einen Commodore 128.

Aber das ist schon so lange her!

Hansi

0

Damals waren die Computer sehr langsam und hatten sehr wenig Speicher. Da musste man besonders effizient programmieren und zwar direkt in Maschinensprache. Das sind also Zahlenfolgen die im Speicher liegen die der Prozessor direkt verarbeiten kann. Jede Zahl steht für einen bestimmten Maschinenbefehl, oft gefolgt von einer weiteren Zahl als Parameter oder Adresse.

Mit dem BASIC com C64 konnte man nicht viel machen und das verbrauchte sehr viel Speicher. Das größte Problem ist, dass Commodore kein Geld an Microsoft ausgeben wollte. Der Vertrag mit Microsoft war für jede Version von BASIC, nicht pro verkauftem Gerät oder anderweitig auf die Geräte bezogen. Also haben die eines der simpelsten und ältesten BASIC herausgekramt und das etwas "kastriert" um es mit wenig Aufwand auf den neu entwickelten C64 laufen zu lassen. Daher fehlen sämtliche Befehle für Grafik, Musik und andere Grundlegende Aufgaben die man in einem Spiel hat. Das musste man dann alles Aufwändig durch POKE Befehle die direkt in die Hardware des C64 eingriffen sehr aufwändig und undurchsichtig alles selber machen. Der C64 hat BASIC V2, etwa 5 Jahre vorher hatte man bereits BASIC V4 für die Commodore "Bürocomputer" verwendet.

Videoram, Zeichensatz, Kernal und Hardwareregister verbrauchen einen Großteil der 64kByte an RAM im C64, da bleibt für Programme nicht mehr viel übrig. Erst der C128 hat einen ordentlich nutzbaren Speicher. Der nicht nur die paar übrigen Bytes des C64 sondern völlig unbenutzte 64k oben drauf! Nur leider war der nicht so gut verkauft worden so dass es kaum Spiele für den C128 modus gibt. Und viele davon sind tatsächlich nur die C64 version die dann wegen dem stärkeren Prozessor etwas schneller läuft und ein bischen aufgehübscht ist.

Die einzige Hilfe um Maschinenspracheprogramme schreiben zu können ist ein sogenannter "Assembler". Der übersetzt die Zahlen in dreibuchstabige Kürzel die der Mensch sich besser lesen und merken kann. Auch rechnet der Sprungadressen aus so dass man bei Änderungen nicht alle Adressen selber mit einem Taschenrechner anpassen muß.

An Spielen gibt es nur sehr wenige, einfache die mit einer Hochsprache geschrieben wurden. Die meisten davon sind dann in BASIC geschrieben (z.B. das Spiel "MAFIA"). Und der Großteil eben in Assembler.

Beim ATARI2600 ist alles rein in Assembler, also Maschinensprache geschrieben. Jede Hochsprache würde den Speicher mit wenigen Anweisungen füllen so dass dabei kein Sinnvolles Spiel bei herauskommen kann. Das wäre nur heutztutage mit hochoptimierenden Compilern möglich, damals absolut undenkbar!

Beim AMIGA sieht es wieder anders aus, der ist recht schnell und hat ordentlich Speicher. Hier kann man einfache Spiele mit einer Hochsprache schreiben, aber die "guten" Spiele sind aber auch alle in Assembler geschrieben, nur so können komplexe Vorgänge und viele Audio/Video Effekte schnell genug ablaufen.

Die PS1 und der Nintendo 64 ist schon so modern, dass das meiste in C geschrieben wurde. Beim N64 gibt es bei "Mario 64" sogar den Bug, dass die vergessen haben Compileroptimierungen einzuschalten so dass einige Level etwas hakelig sind - abgesehen von der Japan Version, die ist optimiert, die läuft wesentlich flüssiger so dass praktisch alle Speedruns auf der Japan Version gemacht werden.

Woher ich das weiß:Berufserfahrung

Bloximox  30.11.2021, 17:35

Im Prinzip war das Basic was dem C64 verpasst wurde eine Beleidigung für diesen Computer! Das war bekanntlich damals schon veraltet!

0
Commodore64  13.12.2021, 17:08
@Bloximox

Wie ich bereits geschrieben habe, da hat Commodore einfach Microsoft übers Ohr gehauen und kein Geld für ein neues BASIC zahlen müssen.

Da sind auch sehr viele andere unschöne Dinge gemacht worden. Zum Beispiel hat die 1541 den "Vorteil" noch langsamer zu sein als die 1540 (für VC20) damit die am C64 der häufiger längere Interrupts macht und "wegsieht" störungsfreier funktioniert. Dabei hat man in der Software praktisch gar nichts am C64 angepasst. Gibt man z.B.

LOAD"$",8,1

ein, bekommt man Zeichenmüll auf den Bildschirm. Die Floppy erzeugt aus dem Inhaltsverzeichnis einen Code den der BASIC Editor schön anzeigen kann. Läst man nur "Komma 8", wird zwangsweise in den BASIC Speicher geladen. Mit "Komma 8 Komma 1" lädt man an die in der Datei angegebenen Adresse. Und beim PET und VC20 liegt der Basicspeicher bei Adresse 0400h, da will die 1541 ihr Directory hin haben, beim C64 liegt da aber der Grafikspeicher, daher die wirren Zeichen.

1

Wenn Du an irgendwelche automatisierten Framworks wie Unity dachtest muss ich verneinen.

Damals hatte man Compiler für die damals gängigen Programmiersprachen C, Pascale, cobol usw. Das ganze ergänzt durch Assembler für die Geschwindigkeitsoptimierung. (Jeweils ausgelegt auf die jeweiligen Prozessoren).

Der Rest war die Kunstfertigkeit von Programmierern und Grafikern .

Die Grafik war damals vorwiegend Spritegrafik erstellt in normalen Grafikprogramm.

Sicher gab es bei den verschiedenen das eine oder andere Baukastensystem, aber auch sowas musste erstmal von Hand (und Kopf) programmiert werden.

Du Fragst Dich Stück für Stück die Zeitschriften hinauf, die Antwort wird immer bleiben: mit einem klugen Kopf und voel Kunstfertigkeit.

Mit den PlayStation wurden die Hürden nochmal für die Programmierer richtig Hoch gesetzt.

2004 war ich noch als Tester und Programmierer im Bereich Fehlerbehebung und Shaderprogrammierung in der Emuszene unterwegs. (ua. habe ich die deutsche Lokalisierung für mGBA programmiert)

Egal... zu dieser Zeit habe ich auch einen Beitrag zu den Hürden der PS2-Emulation geschrieben, welcher einen kleinen Einblick in die Technik dieser Zeit gibt und womit Programmierer zu kämpfen hatten.

https://www.spieleforum.de/threads/357970-einige-grundlegende-worte-zur-ps2-emulation-pcsx2-0-9-6?p=3754744&viewfull=1#post3754744

https://arstechnica.com/features/2000/04/ps2vspc/

Aber zurück zu den Heimrechnern der ersten Stunde.

Ich hatte '85 meinen ersten Rechner auf Basis des U880 zusammengelötet. Mit satten 16 KB Speicher. (Sagenhaft teuer damals)

Deshalb musste ich über Deine Ausage lächeln

bei 64KB speicher ist das schnell gemacht .

Mangel ist eine schlimme Hürde....

Heute kann sich bei 16GB Ram niemand den Kampf um jedes Bit von 16 KB, 64KB oder später 640KB vorstellen.

In den Speicher mußte nicht nur der ausfürbare Code passen, sondern auch noch die Grafik und Text. Mal schnell von Festplatte nachladen, war nich. (Das Laden von 16/64 KB von der Datasette konnte locker mal eine 3/4Stunde dauern!) Und auch Disketten brachten wenig Abhilfe.

Also musste Spielecode nicht nur schnell sein, sonder auch noch kompakt. Und das war das Dilema: Spagetticode war schnell und groß,. Kompakte Subroutinenaufrufe und Sprünge waren langsam... Wo bringt man Opfer? ...und der Grafiker hatte ja auch noch seinen Anspruch auf den raren Speicher.

Diese Zeit war der pure Wahnsinn.

Heute wird an ein Spiel drangeschrieben min 8Kerne a3,5GHz und NVIDIA gtx *9**

...das könnten wir damals nicht... also jagde möglichst kleinen möglichst schnellen Code durch den Assembler und hoffte das Bilder und Text noch passten, sonst musste weiter optimiert werden....

Und mehr Speicher und schnellere Prozessoren machten es nicht besser... zu keiner Zeit


lschecker90gf 
Fragesteller
 24.12.2020, 07:01

oh man.. ne 3/4 stunde woher wusstest du den ob er nicht hängen geblieben ist?

0
Erzesel  24.12.2020, 07:29
@lschecker90gf

Garnicht... Die Datasette war eine ganz normale Kassette mit einer Tonmodulalation welche die Daten repräsentiert (gezwitscher)... und die lief egal ob der Rechner zuhört oder nicht.

Das einzige Lebenszeichen beim Laden eines Programms, waren ein paar fortschreitende Punkte am Bildschirm... Wenn die nicht mehr wackelten war wohl was faul...

Ansonsten hoffte man einfach das Beste.

Datasette 30 Byte/Sekunde (jeder Datenblock wurde 3 mal abgespielt/eingelesen und die Kopien verglichen jedes Byte der 3 Kopien musste mindestens 2× übereinstimmen)

Wenn man bedenkt das der Datendurchsatz einer SSD mehrmillionenfach höher ist...🤩

1
Commodore64  26.12.2021, 16:11
@lschecker90gf

Ganz so schlimm war das nicht. Die Datasette liefert 3600 Baud. Bei 64Kbit Speicher braucht man um den ganzen Speicher zu füllen:

2^16 * 8 bit / 3600 Baud = 145,64 Sekunden = 2,5 Minuten. Als Fehlerkorrektur wurde 2x gespeichert, daher 5 Minuten maximal um den gesamten Speicher zu füllen. Blöd ist, dass man erst nach der ganzen zeit einen "?LOAD ERROR" kriegt wenn da auch nur 1 Bit falsch gelesen wurde. Und dann hat man 50:50 Chance, dass das programm fehlerfrei ist und nur die Kontrolle falsch gelesen wurde.

Gefühlt konnte man natürlich nach Bolivien fliegen und seine Kaffebohnen selber pflücken, zurück fliegen, Kaffee rösten und mahlen und den dann komplett trinken bis die Datasette fertig ist.

Viele Spiele brachten eigene Routinen mit die nach max 30 Sekunden übernahmen und mit viel besserer Fehlerkorrektur in insgesamt unter 2 Minuten den ganzen Speicher voll geschrieben haben.

Der Spektrum hat aus technischen gründen den Bildschirm flimmern lassen, da sah man die Daten in den Computer flitzen. Das haben viele Spiele beim C64 nachgemacht, am Bildschirmrand konnte man durch das Flackern dann sehen, ob der noch ordentlich geladen hat. Blieb das flackern stehen oder wurde viel schneller (und gleichmäßiger) war der Ladevorgang abgestürzt.

0

Hach, hat hier noch jemand die Listings aus der Happy Computer abgetippt? Das waren noch Zeiten. :)

Gerade ergoogelt: https://archive.org/details/Happy.Computer.N34.1986.08-Cartman/page/n57/mode/2up

So sah das damals aus. :)

Falls jemand noch etwas stöbern möchte: https://archive.org/details/computermagazinesgerman


lschecker90gf 
Fragesteller
 24.12.2020, 08:20

du meinst die hex codes? machst du witze wie hat man denn da den überblick behalten

0
ShimaG  24.12.2020, 10:14
@lschecker90gf

Oh, der Checksummer. Das war übel. Aber die "Diskette des Monats" der 64er kostete ja 29,95 DM, die hatte ich nicht.

1

Oh, ich sehe gerade, dass in der Frage noch der Amiga vorkam.

Da wurde auch C programmiert, aber ich vermute, dass das meiste immer noch in Assembler geschrieben wurde.

Ich habe auf dem Amiga viel programmiert und eigentlich nur Assembler gemacht, weil die C-Compiler, die es ja gerade erst gab (Aztec C und Lattice C), nicht auf die Spezialhardware (z.B. den Blitter) direkt zugreifen konnten. Das war aber für Spiele und Demos völlig unentbehrlich, genauso wie Interrupt-Programmierung.

Die Spiele, die ich mir mal "von innen" angeschaut habe, waren weitgehend offenbar auch in keiner Hochsprache geschrieben; dafür war der Code zu stark optimiert.

Ausnahme war das Spiel "Druids", da hatten die Programmierer die Debug-Information des C-Sourcecodes im Executable vergessen, so dass man sich den Source quasi so anschauen konnte. Das war witzig! - Die zeitkritischen und hardwarenahen Sachen haben die aber auch in Assembler gemacht.

Woher ich das weiß:Hobby – Hobby seit meiner Jugend

Erzesel  24.12.2020, 07:07

👍👍...Die Leute heute haben keine Vorstellung von den Entbehrungen, unter denen Programmierer damals litten.

Heute heißt es Unity , sch💩ß drauf wieviel Speicher mein Spiel frisst.

Ich habe mir Final Fantasy 9 für den PC geholt. Neu aufgesetzt mit der Unity engine. 25 GB hallo? Das paste ursprünglich mal auf 4 CDs ? Und lief auf 33Mhz mit 1,5MB RAM.

Heute ruckelt FF9 PC, auf jedem "untermotorisierten" Laptop. (Kauf Dir doch nen besseren Rechner)

6
Bloximox  14.12.2021, 14:46
@Erzesel

Stelle dir das Game mal auf Disketten vor, das wäre eine Wechselorgie!

1