Wie werden grafiken bei ballerspielen programmiert?

4 Antworten

Mit der "Programmierung der Grafiken" meinst du vermutlich die Grafikengine des Spiels. Diese ist prinzipiell bei allen Engines sehr ähnlich. Alle Modelle und Eckpunkte werden mit Koordinaten auf einem dreidimensionalen Koordinatensystem dargestellt.
Ein Eckpunkt hat also in etwa folgende Daten: 

xPosition : int
yPosition : int
zPosition : int
referenz  : Objekt/Tabelle

Natürlich meistens mehr, hier nur vereinfacht dargestellt.

Anhand dieser Daten weist die Grafikengine deiner GPU Rechenaufgaben zu.

Im Normalfall werden die Punkte in etwa so dargestellt:

X = Punkt.xPosition/Punkt.zPosition
Y = Punkt.yPosition/Punkt.zPosition

Selbstverständlich ist auch das hier nur vereinfacht dargestellt, denn sobald eine Achsenverschiebung, Rotation und Kamerawinkel hinzukommen, müssen all diese Faktoren berücksichtigt werden.

Nun, da die Punkte dargestellt sind, können Grafiken verwendet werden.
Dabei werden Flächen definiert, denen Texturen (Skins) zugewiesen werden, die von der Grafikengine in den Arbeitsspeicher geladen werden.

Die Texturen werden anhand von Eckpunkten skaliert und in das Bild eingefügt. So entsteht z.B. eine schräge Wand.
Dieser Vorgang findet etwa 60 mal pro Sekunde statt um dein Bild regelmäßig zu aktualisieren.

Die exakte Ausführung des Prozesses ist zwar von Engine und Grafikkarte abhängig, aber der wesentliche Ablauf ist wie oben beschrieben.


Ich hoffe ich konnte dir einen kleinen Einblick in die Funktionsweise von Grafikprogrammierung geben.

LG,

Messoras

Hey ho,

höchst kompliziert, wenn es hochwertigere Spiele sind.

Um das mal simpel zu erklären, nehmen wir mal Minecraft. Die Modelle sind sehr einfach gestaltet: Eckig.

Siehe dir mal zu Minecraft Skins an. Skin ist (wie du bestimmt weißt) englisch für Haut. Ähnlich wie bei einem Papierwürfel wird die Textur dann angelegt. In richtigen Spielen ist das das gleiche Prinzip. Nur wesentlich hochwertiger.

Modelle sind komplexer. Diese werden animiert und physikalisch mit Hilfe einer Engine angepasst, damit in einem Spiel die Figur auch vernünftig auftritt. Programmierung ist dort eher wenig vorhanden. Diese Tritt dann bei der Steuerung auf, dass dein Charakter nach vorn geht etc.

Ich hoffe, dass ich dir einen groben Überblick geben konnte.

MfG

Die Programmierung einer Engine ist dann noch wesentlich, wesentlich schwerer. Hauptsächlich ist es ein "Wenn Textur auf Koordinate 0, dann presse und bewege Modell".

0

Sehr schön erklärt mit der Haut, ist verständlich. :)

1

Aha, Minecraft ist kein "richtiges" Spiel? xD

0
@Seliba

Ich meinte vom Grafikaufwand ;-) Minecraft ist ja sehr einfach gehalten.

0

Also die Grafiken selbst werden mit grafischen Tools modelliert und gezeichnet. Da gibt es die unterschiedlichsten Tools speziell für die Industrie entwickelt (Photoshop geht zwar auch, reicht aber nicht um produktiv zu arbeiten).

Wenn du meinst, wie so ein Spiel programmiert wird: Man benötigt eine Engine (z.B. Unity, Cry, Frostbite, Unreal,...), in der verschiedenste Daten wie Skripte, Modelle etc. geladen werden. In den Skripten kann man dann programmieren, wie sich bestimmte Dinge zu verhalten haben.

gehört libgdx auch dazu?

0
@ForrestGump1

Kenne ich nicht, daher hab ich gegoogelt. Sieht mir aus wie eine stinknormale Java Engine. Also ja, darin kannst du wohl auch Spiele programmieren. Allerdings ist Java (wie man z.B. an Minecraft sieht) sehr ressourcenfressend. Ich würde lieber eine C++ oder C# Engine nehmen, da die Sprachen eigentlich nur syntaktisch anders sind, aber vom Konzept her sehr ähnlich. Sie fressen trotzdem weniger Ressourcen und für Engines wie Unity oder Unreal gibt es TONNENWEISE Tutorials im Netz, womit du quasi jedes Problem lösen können wirst!

0

Was möchtest Du wissen?