Hallo, ich brauche Unterstützung beim Design einer kleinen 2D Engine. Mein Ziel ist es nach sehr langer Auszeit von der Programmierung zunächst einmal ein kleines Spiel wie Pong zu schreiben. Da ich von da aus weiter aufbauen möchte, habe ich vor die Sache gleich "richtig" anzugehen, sprich die Engine in eine dll-Datei auszulagern und sie nach und nach zu erweitern.
Mein konkretes Problem ist jetzt Folgendes: Ich würde die Engine gerne ganz und gar in C schreiben, also auf sämtliche C++ Funktionen verzichten und die Engine nicht standardmäßig objektorientiert mit Klassen realisieren. Als Alternative kam mir dann ein Klassen-ähnliches Design in den Sinn, indem ich einfach sämtliche Variablen, die ich sonst in einer Klasse definieren würde in eine Struktur zu packen und sämtliche Methoden als normale Funktion zu implementieren die einfach mit einem Zeiger auf die betreffende Struktur arbeiten.
Dies überzeugt mich allerdings auch nicht wirklich, weshalb ich auf der Suche nach einer Alternative bin. Interessant finde ich zum Beispiel das Modell von OpenGL, da ich dort einfach nur eine Funktionen aufrufen muss, sämtliche interne Variablen bekomme ich nicht zu Gesicht. Leider verstehe ich nicht genau wie das intern funktioniert. Es scheint mir, dass OpenGL intern mit einer globalen Struktur arbeitet, doch ich verstehe nicht woher OpenGL weiss auf welche Daten es zugreifen muss, wenn z.B. zwei Prozesse gleichzeitig OpenGL benutzen.
Hat also jemand eine Idee wie man eine Engine noch realisieren könnte, bzw kann jemand das OpenGL Design genau erklären?