Hallo Besucher, der Thread wurde 37k mal aufgerufen und enthält 257 Antworten

letzter Beitrag von StingRay am

Höhere Einsteigerhürden beim Amiga?

  • EDIT by FXXS: Threadsplit, stammte aus: C65 Next Generation MEGA65


    Hmmm... Würde ich jetzt nicht so sagen. Im Grunde genommen hat man beim Amiga zum Malen zumeist als Bildschirmmodus nur eine 320x200x16 Bitmap. Mit der Copperliste kann man dann mehr Farben hervorzaubern, wenn man will, Double-Buffering realisieren usw., so daß man keinen Rasterinterrupt mehr braucht, sondern nur noch den VBL als Timer für Sound, Tastaturbearbeitung... Das war's dann mehr oder weniger. Das einzig Schwierige für mich war stets nur der Sound, aber das liegt daran, daß ich von Tonerzeugung keine Ahnung habe.


    Sorry, aber mich regt es echt auf, dass dieser Unsinn immer wieder verbreitet wird, und die Amiga Community als ein Haufen fauler Trottel dasteht.


    Ist jetzt ein längerer Text geworden, aber ich werde den immer wieder mir hier rauskopieren und posten in Zukunft wenn wieder jemand diesen Quark schreibt.



    Also mal Fakten...


    Situation: Ich bin Anfänger, und will auf der für mich neuen Zielplattform ein Spiel coden mit einem statischen Screen (also kein Scrolling) der sich aus einem Datenfeld ausgelesenen irgendwie hingezeichneten Grafikelementen ("tiles" oder "chars") zusammensetzt, und bewegten Männekens (Sprites oder BOBs).




    C64

    System/Screen vorbereiten

    • Eigentlich nix. Eventuell selber Routine basteln, um 1000 x Leerzeichen zu setzen. In Basic sogar nur ->Print "Herzchen" machen.


    Tiles

    entweder...

    • im Charpad mir ein paar Chars malen aus denen ich meine Grafikelemente zusammensetzen will. Diese dann includen und dann Register setzen auf das Charset.
    • Grafikzeichen für meine Tiles in den Screen ab $0400 poken.
    • oder noch einfacher, PETSCII verwenden und direkt poken. Schaut für den Anfang auch gut aus (geht sogar in BASIC direkt).

    Sprites

    • im Spritepad Sprites malen, includen.
    • gewünschte Sprites anmachen in einem Register.
    • Pointerregister auf die Sprites setzen
    • Farben einstellen in Registern
    • Koordinaten setzen. hier ist auch die einzige Schwierigkeit mit dem MSB, weil wir nur 256 Werte für 320 Pixel breite haben.

    Fertig. Hab ich damals als ich das erste Mal ASM am C64 gemacht habe an einem Abend rausgehabt.





    Amiga (500 OCS)


    System/Screen vorbereiten:

    • OS/Interrupts abschalten
    • DMACON Register für alle Bereiche richtig setzen
    • erstmal alle Sprites mit Pointern auf ein Nullsprite belegen, falls an. Am besten aber eh auslassen, weil Sprites unflexibel sind und kacke ausschauen auf dem Amiga wenn man sich nicht auskennt.
    • Entscheidung wieviele Bitplanes/Farben verwendet werden sollen.
    • Bitplanepointer setzen.
    • Interleaved oder nicht? Wenn ja (was angeraten ist!), Bitplane Modulos korrekt einstellen sonst Grafikmüll.
    • Screengröße, DMA Fetch Start usw einstellen, wenn man mag.
    • Bitplanes löschen indem man durch alle Bytes ("chars" gibt es nicht) durchgeht und auf Null setzt.


    Tiles:

    • Grafik in Grafikprogramm erstellen
    • Grafik umwandeln in Konvertertool auf normalerweise interleaved Format
    • Blit-Modulos für interleaved ausrechnen und dann einstellen für Source und Destination.
    • Minterm einstellen auf Raw Blit
    • StartAdresse samt korrekt ausgerechneten Modulo für die Grafiksource Tiles
    • Blit-Source und -Destination ausrechnen. Das sind Bytes, also ausrechnen wo genau auf den vorher gesetzten Bitplanes das ist. Modulos und Interleaved Planes hierbei nicht vergessen, sonst landet man in der falschen Plane und hat falsche Farben und generell nur Grafikmüll.
    • Blitsize ausrechnen per Formel.


    "Sprites" (eigentlich BOBs)


    Da glaub ich die wenigsten mit den beschissenen Amiga Sprites (8 Stück, 16 Pixel breit, 3 Farben plus transparent) arbeiten wollen, wird man wohl BOBs verwenden wollen.


    Dazu braucht man alles was in "Tiles" schon drinsteht, und außerdem noch...

    • Savebuffer für jeden einzelnen BOB anlegen für die Hintergrundgrafik über die wir rübermalen
    • relativ komplexe Routine erstellen, die 1. Hintergrundgrafik restored 2. Hintergrundgrafik rettet bevor wir blitten und 3. dann den BOB blittet.
    • dabei aber auch Minterm einstellen für Maskenoperationen,
    • korrekte Sources und Destinations einstellen
    • den Barrel Shifter im Blitter einstellen, sonst können wir BOBs nur auf Wordgrenzen setzen
    • und sicher noch so ein zwei andere Sachen die ich grad vergessen habe.


    Da bin ich ne ganze Weile dran gesessen, bis das alles saß. Und ich kann mir gut vorstellen, dass da echt nicht jeder drauf Bock hat sich durchzubeißen.


    Also, sorry, was du da schreibst stimmt einfach schon rein faktisch nicht.

  • Wer sagt den das Amiganer Faule Typen sind?
    Und was die "mehrarbeit" am Amiga angeht, wird diese aber auch durch viele verdammt gute Helfer Tools kompensiert.
    Klar mache ein Amiga game etwas mehr Arbeit, aber alleine das es schon sos selten überhaupt angegangen wird ist ja ein unumstößlicher Fakt und auch der Amiga ist durch Gaming erst groß geworden.
    Leider wollen nur alle immer gleich am beste ein 3D Spiel mit Textureierten Polygonen und son zeug, dabei könnte man für die Amiga szene super gut die C64 Hombrew Hits erstmal ordentlich Porten.
    Es gibt da z.b. eine Screenshot online, wo jemand zeigt wie KNIGHT´N´GRAIL auf dem Amiga aussehen könnte und das ist echt schön anzusehen und das Spiel ist einfach klasse und da gibts ja mittlerweile
    Reichlich was man machenkönnte.
    Ich denke das die wünsche in der Amiga Community einfach zu sehr von einem Vanilla A500 oder A1200 weggehen.

  • Ja, sag mal an.Und bitte die Diskussion auf einem technischem Level halten, und nicht irgendwas was du mal gehört hast.


    Und irgendwelche "Game Maker" lassen wir bitte auch mal aus dem Spiel.

    Soll ich dir jetzt jede Tool von Aminet aufzählen das bei Amiga Game Development nützlich ist ???

  • Soll ich dir jetzt jede Tool von Aminet aufzählen das bei Amiga Game Development nützlich ist ???

    Ich hab dir einen Haufen Fakten dargebracht als jemand der ziemlich in Amiga Game Coding drin ist. (und traurigerweise gibts grad wahrscheinlich weltweit grad mal nur ein Dutzend Leute die da genau so tief in dem Thema drin sind wie ich zur Zeit.)


    siehe hier:


    Entweder du hast da jetzt ein Argument a la "hey, warum machst dir es denn so schwer, den ganzen Scheiß kannst du dir doch sparen in dem du Tool X benutzt wie alle anderen auch" oder ich kann das nicht ernst nehmen und stempel dich so leid es mir tut als Schwätzer ab.

  • Du haust hier aber einen ganz schon barschen Ton raus, nur weil dir meine Meinung nicht Passt.
    Zum einen habe ich dir zugestimmt das Amiga Development etwas schwerer ist als am C64, ich finde nur das du es übertrieben darstellst, als gebe es keinerlei Tools und man müsse alles von null auf selber machen.
    Bei dir klingt es nämlich so.
    Zum anderen ist es nun mal Fakt, das in der C64 Szene seit Jahren neue Spiele erscheinen und viele davon sind eben nicht mal schnell hin gebastelt, sondern reizen die Hardware teilweise in Dimensionen aus, die sich noch vor einigen Jahren kaum einer am C64 vorstellen konnte und das auf einem Vanilla gerät. Auf dem Amiga heißt es selbst für Simpel spiele oft: "benötigt mindestens Turbokarte XY oder Amiga OS-schlagmichtot". Und das offensichtlich weil es mit solcher Hardware und BS Unterstützung leichter ist was auf die Beine zu stellen.
    In der Amiga Szene kenne ich jedenfalls niemanden der mal sagt:" komm wir versuchen mal die Grenzen eines un-getuneten A500 mit 1MB Ram zu sprengen.
    Ich sage also nicht das die AMIGANER "Faul" sind, sondern schlicht das die C64 Developer Ambitionierter sind.
    Wenn Amiga Development so unheimlich schwer wäre, hätte es nie so viele gute Amiga Spiele gegeben als er noch am Markt war und da haben an vielen der besten Games auch nur 3 bis 5 Leute dran gearbeitet.
    Deinen Worten nach klingt das schon fast so als wäre die Amiga Community einfach nicht Fähig Spiele zu Proggen, weil es ja so schwer ist. Das halte ich gelinde gesagt für Quatsch, da gibt es nämlich nen Haufen echt guter Progger und Künstler die sich Vielleicht einfach nur mal zusammen tun müssten.

  • Du haust hier aber einen ganz schon barschen Ton raus, nur weil dir meine Meinung nicht Passt.

    Weil es eben nur deine Meinung ist, ohne irgendwelchen faktischen Unterbau, den ich dir im Gegensatz zur Genüge gegeben habe als jemand der seit zwei Jahren an einem Amigaspiel codet, und auch ein gutes Maß an C64-, Vectrex-, und Atari VCS-Erfahrung hat.


    Zum einen habe ich dir zugestimmt das Amiga Development etwas schwerer ist als am C64, ich finde nur das du es übertrieben darstellst, als gebe es keinerlei Tools und man müsse alles von null auf selber machen.

    Dann nenn mir halt bitte diese Tools, die den Einstieg ins Amiga Game Development ->für Anfänger<- so irrsinnig leichter macht.
    Ja, da will ich keinen Verweis aufs Aminet, sondern klare Ansagen.


    Bei dir klingt es nämlich so.

    Ja, weil ich Ahnung habe. Vom C64 und vor allem vom Amiga grad.
    Du anscheinend nicht.


    In der Amiga Szene kenne ich jedenfalls niemanden der mal sagt:" komm wir versuchen mal die Grenzen eines un-getuneten A500 mit 1MB Ram zu sprengen.
    Ich sage also nicht das die AMIGANER "Faul" sind, sondern schlicht das die C64 Developer Ambitionierter sind.
    Wenn Amiga Development so unheimlich schwer wäre, hätte es nie so viele gute Amiga Spiele gegeben als er noch am Markt war und da haben an vielen der besten Games auch nur 3 bis 5 Leute dran gearbeitet.

    Also erstens waren damals die meisten Sachen "lazy ST ports". Spiele die beim Amiga auch nur mal die Customchips nutzten gab es gar nicht mal so viele.
    Dann, bis mal die Coder damals die Customchips richtig ausnutzten und so ein "Shadow of the Beast" da war hat es Jahre gedauert, und das war dann auch eher die Ausnahme.


    Auf jedes "Beast, "Turrican" und "Lionheart" kommen locker 10 Spiele, die nicht mal Blitter, Copper und Co benutzt haben, und weniger als 25 Frames hatten


    Und ja, die C64-Leute sind ambitionierter. Aber erstens ist die Szene um ein vielfaches größer (wahrscheinlich nach dem NES die größte Retroszene überhaupt), und wie ich schon schrieb ist der Einstieg ins C64 coden wesentlich einfacher.


    Wenn du schon mal so einen Klotz an Einstiegshürde hast werden viele erst gar nicht so weit kommen dass sie genug Erfahrung sammeln um den" un-getuneten A500 mit 1MB Ram zu sprengen".


    Beim C64 ist das andersrum. Extremst leichter Einstieg, aber später wirds dann happig, vor allem wegen den Ressourcen, der langsamen CPU und dem lahmen Befehlssatz.
    Aber zu dem Zeitpunkt kann man eben auch schon was.


    Wenn du mir nicht glaubst dann lies dir den Blog von Andrew Braybrook durch (bekannt von Uridium, Paradroid, etc), und wie der über seinen damaligen Einstieg ins Amiga Development heute noch flucht..


    https://uridiumauthor.blogspot.de/?view=flipcard


    Deinen Worten nach klingt das schon fast so als wäre die Amiga Community einfach nicht Fähig Spiele zu Proggen, weil es ja so schwer ist. Das halte ich gelinde gesagt für Quatsch, da gibt es nämlich nen Haufen echt guter Progger und Künstler die sich Vielleicht einfach nur mal zusammen tun müssten.

    Ja, genau.
    Es ist schwer.
    Am Anfang.


    Und da helfen auch keine Wundertools aus dem Aminet, wenn nicht nicht checkst wie der Blitter läuft und du die Kiste erstmal setuppen musst damit überhaupt irgendwas zu sehen ist (siehe noch mal meine Auflistung oben).


    Wenn man die Sachen mal am Laufen hat wird es allerdings irgendwann einfacher als auf dem C64, weil die CPU durch die vielen Register, 32 Bit Werte und den viel besseren Befehlssatz wesentlich angenehmer zu programmieren ist.


    Mehr als wie oben die Fakten hinschreiben kann ich nicht tun für dich.


    Also bleib in deiner Dunning-Kruger-Blase, verlass dich lieber auf dein Hörensagen und schreib irgendeinen Quatsch der nicht stimmt.




    Und hier noch ein Zitat aus dem besagten Blog von Andrew Braybrook als Bonbon:


    Zitat von Andrew Braybrook

    Your plot routines have got to be as efficient as possible. Any extraneous instructions in these will affect how many objects you can display in a game frame. When you`ve written a plot routine, even one that uses the blitter, you can see how many lines of assembler code it takes (about 800 in fact) to do what a hardware sprite does almost for free, and you start to appreciate how useful they are, and how gosh-darned clever the C64 graphics chip is.

  • Deine Auflistung C64 vs Amiga laesst den Amiga allerdings echt schlecht dastehen.
    Da zaehlst Du jeden Fitzel auf. Beim C64 setzt man auch all die boesen Register fuer eine wie auch immer geartete Grafik.
    Die Leute da nehmen halt offenbar gerne einfach den naechstschnelleren Amiga (gibt ja keinen Standard) und dann dafuer C als Sprache.
    Dass es durchaus auch anders geht sieht man ja an Einzelfaellen. Beim CPC ebenso.

  • Deine Auflistung C64 vs Amiga laesst den Amiga allerdings echt schlecht dastehen.
    Da zaehlst Du jeden Fitzel auf. Beim C64 setzt man auch all die boesen Register fuer eine wie auch immer geartete Grafik.
    Die Leute da nehmen halt offenbar gerne einfach den naechstschnelleren Amiga (gibt ja keinen Standard) und dann dafuer C als Sprache.
    Dass es durchaus auch anders geht sieht man ja an Einzelfaellen. Beim CPC ebenso.

    Bleib mal beim Thema "Einstieg ins Coden auf einer Plattform" bitte.


    Und wenn du schlauer bist als wie Andrew Braybrook, dann cool.
    Ich bin's leider nicht gewesen beim Durchkämpfen durch den Wust und hatte die gleichen Probleme.


    Und du kannst auch gerne meine Liste ergänzen, was ich beim C64 noch an Registern setzen muss um das von mir vorgestellte Ziel in dem Beispiel zu erreichen.
    Ich zähle beim Amiga auf was ich mindestens setzen muss um das gewünschte Ergebnis zu erreichen. Beim c64 ebenso.
    Da ist noch keine Trickserei oder tolle Grafik dabei.
    Einfach nur wie schnell man zu dem Ergebnis kommt.


    PS: was soll das Polemisieren mit "bösen Registern"? Entweder wir diskutieren hier mit Respekt oder ich bin raus.

  • Nein, es ist wirklich nicht allzu schwer auf einem C64 etwas dazustellen. Richtig.
    Das setzen von Registern empfinde ich als Selbstverstaendlichkeit - und auf einem komplexeren System sind es mitunter mehr.
    Das Memory- bzw Grafiklayout ist bei Lynx, PC-Engine auch komplizierter als beim C64/ZX48.

  • Nein, es ist wirklich nicht allzu schwer auf einem C64 etwas dazustellen. Richtig.

    Danke fürs Zugeben.

    Das setzen von Registern empfinde ich als Selbstverstaendlichkeit - und auf einem komplexeren System sind es mitunter mehr.

    Nichts anderes schreib ich.

    Das Memory- bzw Grafiklayout ist bei Lynx, PC-Engine auch komplizierter als beim C64/ZX48.

    Keine Ahnung ob die mehr tolle Spiele raushauen als wie auf dem Amiga zur Zeit passieren, aber da ich die beiden Plattformen nicht besser kenne, enthalte ich mich da irgendeiner Diskussion.
    Ich seh grad, du hast was auf dem VCS gemacht. Selbst da fand ich die Einstiegshürde trotz Kernal-bau und co wesentlich kleiner als auf dem Amiga.



    Das hatte ich mal als Proof of Concept gebaut. War mein erstes VCS Projekt, dafür hab ich von null auf nichts 2 Tage experimentieren gebraucht. (und das entspricht sogar genau den Vorgaben die ich oben bei der Aufzählung gemacht habe).


    Und nochmal, es geht mir hier einzig und allein um die Einstiegshürde.

  • Also wo auch immer da die Huerden genau liegen moegen - es scheint auf jeden Fall, von dem was ich so mitbekommen habe, Fakt zu sein, dass auf dem Amiga spielemaessig nicht viel passiert. Und das, obwohl er ja oft als die ultimative Spielemaschine bezeichnet wird. Aber mich wundert das auch. Klar, beim C64 geht es voll ab, da kommt ein Release nach dem anderen. Vielleicht ist es halt auch wirklich die weite Verbreitung und die Tatsache, dass der C64 ein standardisiertes System darstellt, waehrend es beim Amiga zig verschiedene Konfigurationen gibt. Und als ich auch mal versucht habe, ein bisschen in die Amiga-Welt reinzukommen (und zwar NICHT als Programmierer, sondern einfach nur als Spieler!) ist es mir schon oftmals gar nicht gelungen, die ganzen Spiele ueberhaupt ans Laufen zu kriegen, weil jedes Spiel allein schon eine andere RAM-Konfiguration usw. benoetigt.


    Und ich habe auch den Eindruck, beim Amiga geht es immer noch mehr so um die "Weiterentwicklung", und daraus etwas gleichwertiges zum PC zu erschaffen. Es gibt zig neue Betriebssysteme, Internet-Browser, Turbokarten, bis hin zu voellig neuen Amigas (X1000 usw), vielleicht interessiert den durchschnittlichen Amiga-User dann einfach kein Spiel auf A500-Level, weil das ja eher ein Rueckschritt bedeuten wuerde. Und wenn einer nun aber ein Spiel mit 3D und Firlefanz macht, dann kanns halt wieder keiner spielen, weil man da dann genau eine bestimmte von 25 verschiedenen Konfigurationen benoetigt. Also programmiert das eben auch niemand.

  • Sehe das im Prinzip genau so wie ZEHA :)


    Amiga Demos sind oft (laengst nicht immer) PC demos mit 8 FPS.
    Spiele entweder technisch trivial (RPG) oder eben selten (Reshoot).
    Ich glaube es geht laaaangsam zurueck zum A500, zumindest sah ich da Tendenzen.


    Steril, das Bomb Jack am VCS schaut doch nett aus. Wenn Du das so aus dem Boden gestampft hast, hast Du sicher gute docs/examples zur Kenntnis genommen. Gibt es da etwas fuer 'den' Amiga?

  • Das mit den Konfigurationen und der ganzen Aufsplittung der Amiga-Szene dadurch ist schon ein Thema.


    Gibt auch nicht wenige die meinen "ne 30er-Turbokarte hat doch eh jeder", aber dann trotzdem meckern wenn zB der Patrick Nevian was in Backbone baut was dann eben nur auf solchen Kisten läuft.


    Ich bin glaub ich einer der ganz wenigen momentan, die auf nem unveränderten 512K+512K-OCS-Amiga was bauen.
    Ich finde das auch doof, dass es so wenig Software für original OCS gibt, weil für mich grad der Reiz darin liegt die Maschine so zu lernen, wie ich sie 1987 zu Weihnachten bekommen habe.

  • Steril, das Bomb Jack am VCS schaut doch nett aus.

    Danke... ;)
    ich bin dann am Spritemultiplexer gescheitert dort... Da hat mich die Lust verlassen, bzw hat meine Nostalgie für den VCS nicht dafür gereicht mich dann soweit reinzulernen.


    Wenn Du das so aus dem Boden gestampft hast, hast Du sicher gute docs/examples zur Kenntnis genommen. Gibt es da etwas fuer 'den' Amiga?

    Also ich hab die Grundlagen aus dem leicht berüchtigten "Jeff Kandle-Tutorial", dass man leicht per Google findet.
    Das hat einer in den frühen 90ern geschrieben um Demos auf nem original OCS-Setup zu basteln.
    Einiges da drin würde man so nicht mehr machen, vor allem die festen Adressen. Aber an sich ist das die einzige gute Quelle um in die Puschen zu kommen auf dem Amiga die ich kenne. Das mit den BOBs korrekt bauen steht da allerdings auch nicht. Hab ich mir alles selber entwickelt.


    Immerhin hats dazu gereicht:


    das ist ein Stand der jetzt ein halbes Jahr alt ist.


    Mittlerweile guckts eben so aus (ohne den Frosch, der war nur für ZeHa ;) ), wie schon vorher gepostet:



    Also ich denke, ich kann zu dem Thema Amiga Game Development schon ein bisschen was sagen.

  • also: Ich habe dir Fakten genannt nur eben keine Programmiertechnischen sondern über die beiden Szenen und ihre Mitglieder und Vorlieben bei der Hardware. Du redest an demnach ich sagte schlicht dran vorbei indem du immer wieder den einstig thematisierst, aber frag mal im A1K wie lange die Leute da schon Proggen, das sind eben KEINE Einsteiger mehr. Ich hab dir jetzt sogar mehrmals recht gegeben das proggen auf dem Amiga schwerer ist, das aber die Amiga Szene nur nicht aus dem Quark kommt wenn ohne fast schon PC ähnliche Hardware laufen soll und das ist bisher einfach so ,also somit ein Fakt. Du sagst ja selber das du einer der wenigen Vanilla Entwickler bist. Im Grunde meinen wir nämlich fast das gleiche, nur fühlst du dich wohl gerafe auf den Schlips getreten weil bei dir nur angekommen ist:" C64 scene besser als Amiga Szene" und das habe ich so garnicht gesagt. Motiviert doch mal deine Kollegen, so wie du auch mal für Vanilla zu proggen und ein geil es game zu machen.

  • also: Ich habe dir Fakten genannt nur eben keine Programmiertechnischen sondern über die beiden Szenen und ihre Mitglieder und Vorlieben bei der Hardware. Du redest an demnach ich sagte schlicht dran vorbei indem du immer wieder den einstig thematisierst, aber frag mal im A1K wie lange die Leute da schon Proggen, das sind eben KEINE Einsteiger mehr. IIm Grunde meinen wir nämlich fast das gleiche, nur fühlst du dich wohl gerafe auf den Schlips getreten weil bei dir nur angekommen ist:" C64 scene besser als Amiga Szene" und das habe ich so garnicht gesagt. Motiviert doch mal deine Kollegen, so wie du auch mal für Vanilla zu proggen und ein geil es game zu machen.

    Ja gut, wenn du es so umschreibst, dann wird da schon eher ein Stiefel draus...
    Also gerne wieder Frieden... ;) (und den Schwätzer nehm ich auch zurück. War wohl mal wieder zuviel Kaffee heute morgen... )


    Aber ich denke, dass auch bei A1K nicht so extremst viele Leute sind, die das alles drauf haben und dann noch Lust haben Spiele zu coden.
    Und Leute wie der Frank Wille (PHX), den ich so ein bisschen als meinen Mentor da sehe bei dem Thema (zumindest frag ich ihn dauernd Zeug und benutz seinen VASM und seine Konverter-Tools), machen ja was, wie zB Sqrz und Solid Gold. Oder der Lazy Cow mit seinen Powerglove-Port.


    Aber könnte schon viel mehr und mit mehr Pfeffer sein, da gebe ich dir Recht.