Spieleentwicklung Orbix - Erfahrungen mit Oscar64 C

Es gibt 3 Antworten in diesem Thema, welches 723 mal aufgerufen wurde. Der letzte Beitrag (7. November 2024 um 21:43) ist von 8R0TK4$T3N.

  • Hallo,

    ich möchte an dieser Stelle mal etwas über die Erfahrung mit Cross Development mit Oscar64 C berichten. Ich habe in den letzten Monaten an meinem Spiel 'Orbix' gearbeitet und vor ein paar Tagen veröffentlicht. Ich finde dieses Projekt leider etwas zu wenig gewürdigt, dabei sind damit einige tolle Spiele entstanden (Minotrace, Mineshift Gap, Portal Buster etc.).

    Das SDK wurde von DrMortalWombat erstellt und beinhaltet einen C99 kompatiblen C Compiler/Linker mit einigen C++ Features wie Templates oder Lamdas. Auf die C++ Features habe ich aber in meinem Projekt allerdings verzichtet. Der Compiler hat einige Optimierungsmöglichkeiten, bis auf -O1 und -Os (size optimiert) haben diese aber in meinem Projekt nicht gut funktioniert. Aber auch mit der Standardoptimierung läuft es sehr performant.

    Mein Spiel hat ca. 8500 Codezeilen und der eigentliche Code ist in Maschinencode ca. 64 Kb inkl Bss, Heap, Stack. Was ich intensiv genutzt habe sind Floating Point Arithmetik, dies ist eins der wenigen 6502 Programmiersprachen die dies können (bis auf Basic kenn ich da nichts). Dadurch konnte ich eine 2d Ballphysik schreiben und die Levels nach mathematischen Funktionen aufbauen (alles wird bei Levelstart errechnet!) Die mitgelieferte C Lib hat ist fast vollständig und auch die C64 Bibliotheken sind super. Ich habe intensiv die Bitmap Library genutzt zur Darstellung von Polygonen, Schriften etc. Interrupts werden unterstützt sowie Sprite Multiplexer (bis zu 16, mit Tricks 24 Sprites gleichzeitig). Ein Fastloader ist möglich, sowie Dekompression. Assembler Code für Performance kritische Elemente lassen sich einbinden.

    Das mein Spiel immer umfangreicher wurde aber ich mich für Easyflash entschieden, auch hier ist du Unterstützung drin. Dies habe ich intensiv genutzt. Damit kann auch Funktionsaufrufe zwischen den Easyflash Banks machen, das Bankswitchen habe ich selbst implementiert. In der aktuellen Version kann man aber auf spezielle C++ Templates setzen die automatisches Bankswitching können, damit lässt sich C Code über alle 64 (?) Easyflash Bänke aufrufen. Vorausgesetzt der Heap Speicher läuft nicht über.

    Der Support ist super, DMW antwortet i.d.R. innerhalb von ein paar Stunden. Es gibt auch einen externen Debugger den man benutzen kann, allerdings nicht für Easyflash Projekte. Die Symboldateien kann man aber in Vice einlesen und dort Werte auslesen. Für die Speichernutzung gibt es eine map Datei, indem detailliert der Speicherbedarf aufgelistet wird.

    Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.


    Andy

  • Ich finde ja Einblick in solche Projekte sehr spannend. Ich lese gern Blog Posts dazu und schau auch Videos, wenn sie denn Substanz haben.
    Oscar kenne ich vom Lesen her, ich kann aber (noch) kein C, deshalb fehlt mir hier auch etwas der Einblick.

    Solltest du aber mal Lust haben, etwas mehr Einblicke zu liefern, dann wären die von dir angesprochenen Punkte schon sehr interessant für mich :smile:

    YouTube Kanäle über Basic, den C128 und den VDC-Chip
    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.
    Commodore 8-Bit Projekte
    auf Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. zu Commodore 8-bit Hardware
    auf printables.com
  • Gratuliere! Hab auch schon mal C für den C64 programmiert. Hört sich nach tollen Möglichkeiten an! Ich hab bisher nur cc65 und gcc-6502 programmiert.

  • Interessanter Kurzeinblick in die Entwicklung.

    Gerne mehr davon. :ilikeit:

    "Führungskräfte verrichten keine Arbeit." — Schülerduden Physik