Wie kann ich ein "8-Bit-Grafik" -Look erzielen?

10

Ich habe einen starken Programmierhintergrund, nur nicht aus der Spieleentwicklung. Ich habe in der High School nur Pong und Snake gemacht und im College OpenGL.

Ich möchte meine eigene Spiel-Engine erstellen. Nichts Besonderes, nur eine einfache 2D-Spiel-Engine. Aber weil ich ein bisschen altmodisch bin und mich retro fühle. Ich möchte, dass Grafiken wie alte 8-Bit-Spiele aussehen (Megaman, Contra, Super Mario, ...).

Wie wurden die alten Spiele damals gemacht? Ich möchte den einfachsten Ansatz. Haben sie auch Assets (Bilder) verwendet, wie es neuere Engines jetzt tun? Wie erreichen Sie diese Art des Renderns mit OpenGL?

Merken Sie sich. Einfachste Lösung. Ich möchte wissen, wie es damals gemacht wurde und wie ich das replizieren kann. Muss nicht einmal OpenGL sein. Ich kann auf Fenster Leinwand zeichnen. Ich möchte es im Grunde von Grund auf neu machen.

Matjaz Muhic
quelle
6
8-Bit-Grafiken sind eine Frage der Ressourcen und nicht der Programmierung. Ich nehme an, Sie könnten Ihre Farbpalette im Code einschränken, aber das klingt nur für das Gefühl der alten Schule etwas zu viel.
Luke B.
Wenn Sie 8-Bit-ähnliche Grafiken wünschen, beschränken Sie die Farbpalette, wenn Sie Ihre Kunstobjekte erstellen, und verwenden Sie immer die Filterung des nächsten Nachbarn für Texturen.
Robert Rouhani
3
Wo Sie anfangen sollen und welche Technologie zu verwenden ist, ist für die Site kein Thema. In den FAQ erfahren Sie, welche Arten von Fragen Sie hier stellen müssen. Sie können versuchen, Ihre Frage neu zu formulieren, um nur zu fragen, wie 8-Bit-Grafiken gerendert werden sollen, und alles über das Erstellen einer Spiel-Engine entfernen.
MichaelHouse
1
Was Byte56 gesagt hat - dies könnte eine großartige und nützliche Frage sein, wenn Sie sie überarbeitet haben, um sie genauer auf ein bestimmtes Thema abzustimmen.
Maximus Minimus
Geändert. Hoffe es ist jetzt besser.
Matjaz Muhic

Antworten:

7

Wie wurden die alten Spiele damals gemacht?

Ganz anders - ähnlicher wie wir es jetzt als "Embedded System Programming" bezeichnen würden. Modusbasierte Grafiken von 8-Bit-Konsolen und Arcade-Boxen wurden von der Hardware und nicht von der Software gesteuert. Der Spielcode (normalerweise Assembly) steckte einen speziellen Speicher in einen Anweisungsplan (z. B. X Anweisungen pro Scanlinie).

Wie erreichen Sie diese Art des Renderns mit OpenGL?

Textur-Map eines Quad mit deaktivierter Filterung. Besser noch, stapeln Sie mehrere Quads zusammen und atlas die Assets für eine bessere Leistung.

Max
quelle
das Vermögen "atlas"? Was bedeutet das?
Matjaz Muhic
Einfügen mehrerer Bilder in ein Texturbild und "Auswählen", das mithilfe der UVs des Quad angezeigt werden soll. So könnten beispielsweise alle Hintergrundkacheln auf einem Texturblatt gerastert werden, und dann müssen Sie nur eine Textur binden, bevor Sie die Hintergrundebenen rendern.
Max
Oh. So etwas wie Sprites?
Matjaz Muhic
@ Matjaz: Sehr ähnlich wie Sprites. Dieses Wort bedeutete etwas anderes, lange bevor 3D-Grafikbeschleuniger hinzukamen.
Ilmari Karonen