Hallo Besucher, der Thread wurde 27k mal aufgerufen und enthält 155 Antworten

letzter Beitrag von Zirias/Excess am

Zork auf dem C64 mit 53 Spalten

  • ei dem einfachen Ansatz mit simpler Zeichenbreite würde ich da sagen: besser nicht. Damit die Idee mit der automatisch korrekten Breite funktioniert ist es am einfachsten, wenn die Spalte ganz links immer leer ist, dann muss der Code, der den Font rendert, trotzdem recht wenig tun, das eine Pixel Abstand ist immer automatisch da.

    Der Code könnte davon komplett unbeeinflusst bleiben, wenn man notfalls den 1 Pixel Abstand beim Import hinzufügt. Ich würde ihn nur nicht im Editor verschenken wollen. Ich hätte gerne mal probiert, das kleine m noch einen Pixel breiter zu machen, geht hier aber nicht, weil ohne Not bei 7 Pixeln Ende ist.


    Die Breitenangaben in meinem Format erlauben theoretisch sogar Zeichen, die über ein Char hinausgehen. Dafür sollte man aber auch alle Pixelspalten nutzen dürfen.


    Wenn man so weit geht, dass man beim Rendern immer eine leere Spalte einfügt, könnte man ja gleich noch auf die Idee kommen, "richtiges" Kerning zu unterstützen

    Und schon wäre man wieder einen Schritt näher an "richtiger" Schriftdarstellung ;) – Allerdings wäre der Nutzen bei unseren Minifonts doch recht gering.

  • Der Code könnte davon komplett unbeeinflusst bleiben, wenn man notfalls den 1 Pixel Abstand beim Import hinzufügt. Ich würde ihn nur nicht im Editor verschenken wollen. Ich hätte gerne mal probiert, das kleine m noch einen Pixel breiter zu machen, geht hier aber nicht, weil ohne Not bei 7 Pixeln Ende ist.

    Würde dann aber auch nichts helfen, wo soll der Import denn dann die 9. Spalte hinschreiben, die sich daraus ergibt? Dann sind wir wieder an der Stelle, dass der Renderer die Leerspalte hinzufügen muss :)

    [Kerning] Allerdings wäre der Nutzen bei unseren Minifonts doch recht gering.

    Jep. Paar wenige Stellen gibt es aber, auf dem Screenshot z.B. das o nach dem Y ;)

  • Würde dann aber auch nichts helfen, wo soll der Import denn dann die 9. Spalte hinschreiben, die sich daraus ergibt? Dann sind wir wieder an der Stelle, dass der Renderer die Leerspalte hinzufügen muss :)

    Jep. Paar wenige Stellen gibt es aber, auf dem Screenshot z.B. das o nach dem Y ;)

    TYPOLEXIKON.DE schreibt zum Thema Kerning: "Das Zeichenrepertoire (Zeichenvorrat) eines digitalen Fonts, beispielsweise eines OpenType Fonts (.otf), kann bis zu 80.000 definierte Kerning-Paare umfassen. Ein wohlproportioniertes Kerning 2 ) gilt deshalb als wesentliches Qualitätsmerkmal einer sorgfältig entwickelten Druckschrift bzw. Screen Fonts und rechtfertigt einen höheren Verkehrswert."


    Um das Kerning einzuführen, werde ich dann wohl eine REU zwingend voraussetzen müssen :wand

  • TYPOLEXIKON.DE schreibt zum Thema Kerning: "Das Zeichenrepertoire (Zeichenvorrat) eines digitalen Fonts, beispielsweise eines OpenType Fonts (.otf), kann bis zu 80.000 definierte Kerning-Paare umfassen. Ein wohlproportioniertes Kerning 2 ) gilt deshalb als wesentliches Qualitätsmerkmal einer sorgfältig entwickelten Druckschrift bzw. Screen Fonts und rechtfertigt einen höheren Verkehrswert."
    Um das Kerning einzuführen, werde ich dann wohl eine REU zwingend voraussetzen müssen :wand

    Haha :D Also erstens mal, du arbeitest ja vermutlich mit nicht mehr als 128 (ASCII) -32 (Steuerzeichen) = 96 Zeichen, eher weniger. Dann kann es auch theoretisch maximal 96² = 9216 Kerning-Paare geben. Wie allerdings @Retrofan schon schrieb reduziert sich das sehr viel weiter, da der Font sehr klein ist und eine geringe Auflösung hat. Mit mehr als ca 30 Paaren* würde ich hier nicht rechnen, das wäre schon sehr hoch gegriffen. Also, dürfte auch ohne REU gehen ;) Die 80000 sind für Vektor-Fonts auf hochauflösenden Displays und Unicode ...


    * der zu erwartende Wertebereich wäre übrigens maximal [-1 .. 1], also in 2 Bit darstellbar. Eventuell reicht sogar [-1,0].

  • kann bis zu 80.000 definierte Kerning-Paare umfassen.

    Die Betonung liegt hier aber auf dem Wörtchen "kann". Ich habe das studiert und auch schon Opentype-Fonts entworfen und bestehende für größere Organisationen angepasst. Wenn ich Zeichen "zurichte", dann mache ich das zu 95% über die individuellen Breiten. Wenn man das wirklich gut macht, benötigt man keine 80.000 Kerning-Paare. Für einen Font kann das Zurichten (ohne Kerning-Tabellen) schon ein paar Tage Arbeit bedeutet aber dafür ist der Rest dann umso leichter. Kerning-Paare erzeuge ich dann nur noch für die üblichen Verdächtigen (A, F, T, V, W, Y in Kombination zueinander und zu vielen Kleinbuchstaben). Klingt auch noch nach Arbeit aber im Vergleich zum Entwurfsprozess, der viele Monate dauert, ist das quasi nur noch Kleinvieh.


    Aber wie gesagt, wäre Kerning-Unterstützung hier vielleicht schon etwas over the top. ;)

  • Würde dann aber auch nichts helfen, wo soll der Import denn dann die 9. Spalte hinschreiben, die sich daraus ergibt?

    Wer sagt denn, dass intern ein Zeichen (inkl. Abstand) nur 8 Pixel breit sein darf? Im Bitmap-Mode ist diese Breite doch vollkommen willkürlich.


    96 Zeichen, eher weniger. [...] schon schrieb reduziert sich das sehr viel weiter, da der Font sehr klein ist und eine geringe Auflösung hat.

    Richtig, man hätte es nur mit wenigen Zeichen und nur Verschiebungen um 1 Pixel zu tun. Allerdings würde das verbesserte Ergebnis wahrscheinlich kaum jemand goutieren.

  • Wer sagt denn, dass intern ein Zeichen (inkl. Abstand) nur 8 Pixel breit sein darf? Im Bitmap-Mode ist diese Breite doch vollkommen willkürlich.

    Nö. Es ist schon einiges an Aufwand, das Zeichen an eine beliebige Stelle in die Bitmap zu setzen anstatt in einen 8x8 Block, denn die Bitmap ist tatsächlich auch im Speicher in Blöcken organisiert. Bevor man jetzt zusätzlich zum Lesen der Daten herumtricksen würde (ein Byte hat nunmal 8 Bit) wäre es schon wieder einfacher, wenn der Renderer die leere Pixelspalte einfügt. Sparen kann man sich das nur, wenn bereits im Font immer eine Spalte frei bleibt.

  • Welcher Held lädt diese zusammengezupften Images eigentlich ständig als "Releases" auf csdb hoch? Oder bin ich der einzige der das so'n klitzekleines bisschen albern findet?

    Das habe ich jetzt auch erst durch Deinen Post festgestellt So ein Unfug!
    Was ich hier poste sind keine Releases sondern Testversionen, damit ich Hilfe bei der Entwicklung habe.
    Sobald ich eine stabile Version für die Computer VC20, C64, PLUS/4 und CBM8000 fertig habe, gibt es ein Release auf http://www.petsd.net

  • Das habe ich jetzt auch erst durch Deinen Post festgestellt So ein Unfug!Was ich hier poste sind keine Releases sondern Testversionen, damit ich Hilfe bei der Entwicklung habe.

    Naja, daran muss man sich wohl gewöhnen, mein immer noch nicht fertiges Spiel ist ja auch ganz schnell dort gelandet (hab dann eines der Updates selbst eingetragen).


    csdb hat eben ne etwas andere Definition von "Release": Alles was öffentlich verbreitet wird (dazu gehört dann eben auch ein frei zugängliches Webforum) ist ein Release. Wenn sie es so haben wollen, lass sie doch -- gibt dann eben potentiell ziemlich viele Einträge in ihrer Datenbank ;) Jedenfalls ist das hier sicher "cool genug" um noch etwas weiter verbreitet zu werden :thumbup:

  • Welcher Held lädt diese zusammengezupften Images eigentlich ständig als "Releases" auf csdb hoch?

    Ich finde es hingegen erstaunlich, dass die Spiele-Betas noch nicht "gecrackt" wurden (wie unser SUPERHERO-Test). So ganz ohne Vorspann fehlt mir richtig was. ;)

  • Ich finde es hingegen erstaunlich, dass die Spiele-Betas noch nicht "gecrackt" wurden (wie unser SUPERHERO-Test). So ganz ohne Vorspann fehlt mir richtig was. ;)

    Naja, reines Introlinking ist verpönt, also macht's lieber keiner. Wenn sich nicht irgendwas "verbessern" lässt, dann lässt man das mit dem "Cracken". Ich hab da natürlich ein ganz klein bisschen "Nahrung" geliefert, weil 8192 mit nem IRQ-Loader nachlädt --- alles in ein File packen ist ne Art "verbesserung", je nach Anwendungszweck :)

  • Alles was öffentlich verbreitet wird (dazu gehört dann eben auch ein frei zugängliches Webforum) ist ein Release.

    Könnte man glatt gegenhalten dass das hier nicht "frei zugänglich" ist, denn ohne Account kann man hier nicht runterladen. Aber das wird natürlich niemanden dort vom Hochladen abhalten. Leider sieht man nicht wer dieses Sammler-Genie ist.

    Ich finde es hingegen erstaunlich, dass die Spiele-Betas noch nicht "gecrackt" wurden (wie unser SUPERHERO-Test).

    Liegt bestimmt nur daran dass sie den Kopierschutz trotz ausgiebiger Suche nicht finden... Schade dass kein Highscore Saver eingebaut wurde, den könntet ihr glatt weiterverwenden... :)


    reines Introlinking ist verpönt

    "Verpönt" bedeutet natürlich nicht dass es nicht gemacht wird, nur dass derjenige besonders schmerzbefreit ist. :S


    BTT:


    @Bit Shifter:
    Idee so am Rande: könnte man noch eine weitere konfigurierbare Farbe für den Cursor und die Texteingabezeile einbauen? Ich finde es erhöht den Wahrnehmungsfluss etwas wenn Eingabe und Ausgabe zusätzlich abgesetzt sind.

  • Könnte man glatt gegenhalten dass das hier nicht "frei zugänglich" ist, denn ohne Account kann man hier nicht runterladen.

    Naja, da die Registrierung aber frei zugänglich ist ... ;)

    Leider sieht man nicht wer dieses Sammler-Genie ist.

    Doch, eigentlich schon ... einer vom Vice team der bei csdb recht aktiv ist. Aber wozu auch? Es entspricht ja der csdb-Auffassung von "Release", also einfach nicht stören lassen. Und ja, genug des OT hier ;)