Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Es gibt jetzt erste Bilder zu meinem neuen Spiel "Missile II".
Ihr seht darauf den mitgelieferten Level-Editor. Die Levels bestehen aus Polygonen, denen man Materialien zuweisen kann, die wiederum durch ein Skript definiert sind.
Weiterhin lassen sich beliebige Objekte platzieren. Die Objekttypen werden aus speziellen Dateien geladen, so dass der Editor und das Spiel sehr gut erweiterbar sind. Objekte haben ein integriertes Skript, das z.B. bei einer Reparatur-Station die Gesundheitspunkte des Spielers erhöht.
Der Editor ist sehr benutzerfreundlich und bedient sich fast wie 3ds max. Per Mausklick lassen sich Objekte verschieben, rotieren (auch mit Punkt- und Winkelfang), klonen, löschen etc..
Zum Spiel selbst: es handelt sich hierbei um ein Remake des Klassikers "Gravity Force". Man muss eine Rakete mit begrenztem Treibstoff durch Höhlen manövrieren, ohne zu starken Schaden durch Kollision mit den Wänden zu nehmen und ohne von den Gegnern abgeschossen zu werden. Natürlich gibt es auch Waffen (z.B. zielsuchende Raketen oder ein automatisches Verteidigungsgeschütz). Ziel ist es, mit der eigenen Rakete die Basis des Gegners zu zerstören (indem man sie einfach rammt - denn die Rakete, die man steuert, hat selbst ebenfalls einen Sprengkopf).
Es gibt beliebig viele Gravitationsquellen (sowohl Richtungsgravitation als auch Punktgravitation), die das Spiel interessant machen. Schießt man beispielsweise auf einen Gegner, dann kann es passieren, dass der Schuss durch eine Gravitationsquelle abgelenkt wird und möglicherweise sogar eine Umlaufbahn um die Quelle einschlägt.
Für die Physik verwende ich ein relativ realitätsgetreues Modell.
Das Spiel findet eigentlich nur in zwei Dimensionen statt, die Levels und die Objekte sind jedoch dreidimensional, ebenso die Bewegung der Kamera. Sowohl das Spiel als auch der Editor verwenden OpenGL (das ist eine Premiere für mich, an dieser Stelle eine Dankeschön an Patrick, der mir OpenGL nahegelegt hat! ).
Möglich!
Also, der Level-Editor hat einen wirklich sehr schlampigen Quellcode mit KEINEN Kommentaren. Das Spiel selbst hat sehr ordentlichen Quellcode, aber bisher ebenfalls noch garkeine Kommentare...
Ihr könnt Euch jetzt das Programm herunterladen:
http://www.scherfgen-software.net/misc/missile_ii_level_editor.zip
Es ist jetzt sogar ein Echtzeit-Raytracer dabei (nur als kleiner Gag, habe ich diese Nacht innerhalb von 4 Stunden geschrieben ). Startet das Programm und klickt dann oben im Menü auf "?" und dann auf "Info...". Dann öffnet sich ein Fenster mit einer in Echtzeit gerenderten Animation.
Der Raytracer kann bisher nur Kugeln und Ebenen rendern. Er funktioniert so, dass die Objekte mit einer beliebigen Matrix transformiert werden können (sie können auch gestreckt und gestaucht werden!). Genauer gesagt werden nicht die Objekte transformiert, sondern die abgeschossenen Strahlen - und zwar mit der invertierten Matrix. Das hat einen großen Vorteil: die Schnittpunktberechnungen sind viel einfacher, da man bei einer Kugel beispielsweise immer den Radius 1 annehmen kann und den Mittelpunkt (0, 0, 0). Die Strahlentransformation erledigt den Rest.
Außerdem gibt es noch Punkt- und Richtungslichter (die Punktlichter mit linearem und quadratischem Abfall über die Entfernung), die natürlich auch Schatten werfen. Reflexionen werden ebenfalls unterstützt (bisher noch keine Refraktionen). Die maximale Rekursionstiefe ist frei wählbar.
Für die Schatten verwende ich einen Blocker-Cache, der das letzte blockende Objekt speichert.
Die Kamera kann durch eine Matrix ebenfalls beliebig gewählt werden (Position, Blickpunkt, Rotation um die z-Achse, Zoom...). Verfeinert wird das Ganze noch durch einen simplen Motion-Blurring-Effekt.
Es läuft zwar (noch) nicht sehr schnell, aber immerhin!
Die C++-Quellcodedatei des betreffenden Programmstücks habe ich auch mal mit reingepackt.
Ja, mache ich wahrscheinlich noch!
Läuft der Raytracer?
Mittlerweile wurde er noch etwas mehr optimiert, sodass er schneller arbeitet. Die neue Version ist aber noch nicht hochgeladen.
Also bei mir stockt der Raytracer ziemlich und wenn man den Info-Dialog schließt stürzt das Programm ab (Die Anweisung ... verweist in Speicher....)
Ansonsten gefällt mir das Programm schon ziemlich gut.
Wird das opensource werden? Mich würd mal interessieren wie man soetwas erstellt.
In a world without fences and walls - who needs windows and gates ?
Neue Version ist da, ich hoffe, dass der Fehler jetzt weg ist.
Der Raytracer wurde auch noch ein bisschen verändert.
http://www.scherfgen-software.net/misc/missile_ii_level_editor.zip
Das Spiel wird wahrscheinlich Open Source werden.
Aber erwarte nicht zu viel vom Quellcode des Editors!