Glut

You are currently browsing articles tagged Glut.

…am Hochseilgarten in Immenstaad.

Ich war zwei Tage bei einer Freundin in Ravensburg, das war eine sehr coole Zeit. Unter anderem in besagtem Hochseilgarten! Einige Überwindung kostet es schon in solch enormer Höhe durch die Bäume zu hüpfen, aber der spass war die 16€(!) wert! :)

Danach gings noch nach Meersburg zum Eis essen (an dieser Stelle sei jedem ein Besuch dort empfohlen) und abends feiern.

Mein Modelbuilder-Projekt kommt leider nicht so gut voran, das liegt weniger an programmiertechnischen Problemen als daran das ich nicht so oft dazu komme :(

Im Moment implementiere ich eine doppelt verkettete Liste die später die einzelnen Punkte hält. Die Idee ist diese verkettete Liste in einer anderen zu schachteln um so die Punkte bzw. Linien zu flächigen Objekten zu verbinden, die ebenfalls dynamisch erzeugt werden. Nur jagt mir die Vorstellung das umsetzen zu müssen ein wenig respekt ein, schließlich bin ich mit Zeigerarithmetik noch immer nicht 100% fit.

Immerhin funktioniert das resizen nun wundervoll, ich kann mit der Maus Punkte setzen und bewegen(allerdings noch ohne Verkettete Liste) und die Ansicht im fenster lässt sich bewegen.

Obwohl der Game-Kontest offiziell schon am Freitag zu Ende ging haben wir die Ergebnisse erst Dienstag besprochen bzw. selbige bewertet.

All zu viel habe ich mir nicht davon versprochen, mein Spiel besteht zu diesem Punkt schließlich aus nicht viel mehr als einem Schiff welches (ab und an) schießen kann… Allerdings fand der Versuch immerhin noch Gnade vor der Jury und ich kam mit 11 Punkten davon :) (zum Vergleich, Jonas bekam 28(!). Aber der hat schließlich auch mehr als verdient gewonnen.

Weiterschreiben werde ich meinen Sidescroller höchstwahrscheinlich nicht, dazu ist er viel zu ineffizient programmiert. Vielleicht schreibe ich auch einfach den Code neu bzw. organisiere die Klassen anders.

Im Moment widme ich mich einem etwas grundlegenderem Projekt, einem Modelbuilder ebenfalls in OpenGL. Keine einfache Sache, aber ich lerne eine Menge :)

Hm-hm.

Grobe Verkalkulation möchte man sagen… Nächstes Mal: Planung, Planung, Planung.

  • Gegnerklasse und Gameklasse
    …mit Funktionen deklariert, letztere ist für Dinge wie Gegnerwellen usw zuständig – noch lange lange nicht fertig implementiert, ebenso wie die Gegnerklasse
  • Waffen
    Musste mich heute mehrere Stunden mit Sinus/Cosinus/Winkelberechnungen herumschlagen und halb Wikipedia durchlesen, nur damit Projektile nun in jedem beliebigen Winkel fliegen können, ausserdem von jeder beliebigen Position und in beliebiger Anzahl. Das ist schonmal sehr sehr Cool und neue Waffen erstellen bzw vorhandene Upgraden ist damit ein Kinderspiel :)
    Jedoch:
  • Neues Problem
    Die Waffen tun nicht, bzw die Projektile. Es gibt RAM-Access-Errors am laufenden Band. Shit.

Changelog:

  • Waffen
    tun jetzt richtig, also auch mit Grafik und so :) #
    Aber: Um die Projektile schöner erstellen und zerstören zu können muss ebenjene mit new erstellen und den gesamten Code umschreiben -.-, das hat richtig lange gedauert :(

Mittwoch und Donnerstag muss ich nochmal richtig Powern.

18 Uhr: Zurück in Tübingen

20 Uhr: Arbeiten

24 Uhr: Bedtime

Wo soll Mensch da noch zeit fürs Programmieren finden?

Tjaja…

Changelog:

  • Waffen
    Endlich einigermaßen implementiert. Hat lang genug gedauert und das klassenkonzept hinkt immer noch, bzw ich bin noch viel am Attribute hin- und herschieben.

Da ich am Tag zuvor noch bis ca. 5 Uhr programmiert habe und Sonntag abend auch noch meine Angebetete besucht habe bin ich nicht wirklich viel weiter gekommen. :(

  • Sterne
    Wow, was so ein Rechner leisten kann oO
    5000 Sterne, alles einzelne Klassen, lassen sich ohne Probleme über den Bildschirm bewegen. Das ganze ist schick und dient dazu ein Gefühl von Geschwindigkeit zu vermitteln. Da der Shooter im Weltall spielt wird nicht mehr all zu viel dazukommen.
  • Horizont
    besteht jetzt erstmal aus einer Art 2D-Nebel, also verschiedene Ebenen mit verschiedenen Alphawerten hintereinandergelegt.
    Merke:
    1. Verdeckungsrechnung ausschalten, sonst siehts scheiße aus
    2. Die Gegenstände im Hintergrund davor, die Gegenstände im Vordergrund dahinter rendern.
    Es hat einige Zeit gebraucht bis ich auf 2. gekommen bin. Dabei eigentlich logisch. oO
  • Konzept
    Ui. Eigentlich wollte ich noch kurz Waffen implementieren, doch das gestaltet sich als etwas schwieriger als erwartet.
    Letztendlich habe ich nur noch ein immer noch etwas… löchriges Klassenkonzept entwickelt.
    Implementiert wird Heute.
  • Texturen
    Aus irgend einem Grund killen die Texturen meine Leistung. Und zwar in einem Maße dass mein Laptop komplett zusammen bricht. Ich denke ich sollte das ändern. ;)

AUfgrund diverser Nebentätigkeiten hielt sich der Fortschritt des Ganzen leider in Grenzen.

Changelog:

  • Menü
    Hat etwa drei viertel der Zeit in Anspruch genommen. Aber: Jetzt sieht es gut aus, ist animiert und kann… noch nicht viel. Zumindest der Play-Entry geht.
  • Zustände
    Trivial. Man kann jetzt spielen und im Menü herumeiern.
  • Model
    Zumindest das Spielermodel sieht jetzt besser aus. Perfekt noch nicht, aber in ca 200 Zeilen code habe ich ein ganz nettes (rein) OpenGL-Model erstellt.
  • HUD
    Zeigt Energie, Waffen usw an. Noch lange nicht fertig implementiert, da muss ich heute noch kräftig klotzen und endlich mit dem Gameplay beginnen. Das wird nicht ganz einfach, schwant mir…

Der Contest hat begonnen… Und damit der morgendliche Rückblick auf meine programmiererischen Ergüsse…

Nunja. Ich mache das ganze Stichwortartig in Form eines Changelog:

  • Basissetup
    Glut einrichten, eine Window-und eine Input-Klasse erstellen, ein leeres Fenster halt.
  • Konzept
    Erste Probleme tauchen auf… ICH HABE KEIN KONZEPT!! oO
    Scheiße… Papier und Bleistift nehmen, ein bisschen UML Diagramme kritzeln. So, das muss erstmal reichen.
  • Weltklasse!
    …mit allem was so Hintergrund sein könnte. Also erstmal einem wunderbaren Grid, einem künstlichen horizont und, öh… das wars schon. Der Spieler ist jetzt übrigens Texturiert :)
  • Flackern
    Scheiße… ca. 4 Stunden lang geht gar nichts. Aus irgend einem Grund flackern die Objekte wenn ich glutPostRedisplay() aufrufe oO
    Das versaut mir so die hälfte des abends und ist schrecklich deprimierend. Nach diversen Tests ist Jonas so nett und gibt mir sein letztes Kontestprogramm (ich hoffe das ist nicht illegal oO).
    Letztendlich lags am Double-Buffer(VOR dem Fenster initialisieren!!!!!!), aber in Jonas’ Pong fand ich immerhin eine sehr nützliche glutTimerFunc! Wow! Das ist echt einfach! Da klappts auch mit den Eingaben! Jetzt fliegt mein Raumschiff endlich in 2 Richtungen gleichzeitig :)
  • Menü
    …muss her. Und damit Schrift. Was Nehe in ca. 100 Zeilen Code kann, kann ich in vier. Yeah! Allerdings nur ohne strokeFont :( , aber vielleicht mach ich die noch später.
    Ich habe eine geile Idee das ganze doch noch schöner und dynamischer zu machen… Mal sehn.