Registriert: Di Jun 12, 2012 21:26 Beiträge: 112
Programmiersprache: Delphi
Technisch gabs keine Änderungen, nur Bugfixes und Verbesserungen der Kompatibilität zu den C64-Fanspielen. Es sind nun ein paar weitere Levelsets enthalten. Alles weitere könnt Ihr dem Changelog entnehmen.
Es wird wohl doch noch eine Weile dauern, bis ich das Projekt abschließe.
secretgoaf142beta.zip (Link entfernt)
Zuletzt geändert von subotai am Sa Mär 28, 2015 21:33, insgesamt 1-mal geändert.
Registriert: Di Jun 12, 2012 21:26 Beiträge: 112
Programmiersprache: Delphi
Wer mein Programm schon getestet hat weiss, dass der Editor eine separate VCL-Anwendung ist. Ein integrierter Editor ist zwar eine feine Sache, wäre für mich jedoch ein großer Aufwand, der sich meiner Meinung nach nicht lohnt. Beim Testen der Level wird die Hauptanwendung über CreateProc gestartet und das entsprechende Level geladen. Habe gelesen, dass ShellExecute zum Ausführen von exe-Dateien nicht verwendet werden soll. Bisher bin ich so verfahren, dass ich das aktuelle Level in einer temporären Datei (Unterordner "data" gespeichert habe). Diese Datei wurde beim Schließen des Editors gelöscht. Inzwischen nutze ich ein MMF, in dem ich die Leveldaten als Buffer speichere und in der Hauptanwendung wieder auslese. Soweit ich weiss, kann man einen Buffer nicht als Kommandozeilen-Parameter übergeben, und die Lösung mit dem MMF funktioniert gut. Da die Daten beim Laden verifiziert werden, dürfte dabei nicht allzu viel schiefgehen.
Ansonsten bin ich im Moment viel mit Testen, kleinen Bugfixes und Korrekturen der Chm-Hilfedatei beschäftigt. Zur Zeit habe ich das Gefühl, dass sich das Projekt auf einem recht guten finalen Stand befindet. Kleine Veränderungen sind zwar noch geplant, aber im Grunde habe ich soweit alles implementiert, was geplant war. Oje, wie oft habe ich das schon behauptet
Unterstützung für Hintergrundmusik wäre vielleicht noch ein Gedanke. Ich hatte schonmal in einer alten Version meines Projekts Hintergrundmusik eingebaut und fand das eine feine Sache.
Bzgl. originalen C64-Grafiken und Soundeffekten biete ich natürlich weiterhin Support, da ich diese selbst sehr gerne nutze, werde diese aber nicht offiziell zum Download anbieten. Ich finde das zwar sehr schade und letztendlich würde es wahrscheinlich niemanden interessieren, aber es ist eben eine Grauzone. Aus diesem Grund habe ich ein eigenes Tileset mit Grafiken im C64-Stil erstellt.
Ein Erscheinungstermin fürs nächste Release gibt es noch nicht, das entscheide ich immer spontan
Registriert: Di Jun 12, 2012 21:26 Beiträge: 112
Programmiersprache: Delphi
Nun habe ich auch Unterstützung für Hintergrundmusik eingebaut. Das ganze läuft wie von mir geplant über M3U-Playlists. Ich habe dafür eine kleine Klasse geschrieben, welche die M3U-Playlist lädt und bei Bedarf die Reihenfolge der Titel mischt. Die Titel werden je nach Einstellung nacheinander oder in einer Endlosschleife abgespielt. Das Abspielen der Titel in einer Endlosschleife ist für kurze Samples gedacht. Bei letzterem wird beim Start einer neuen Höhle immer der nächste Titel abgespielt. Die Fehlerprüfung ist recht einfach gehalten, wird ein Titel nicht gefunden, so wird das Abspielen der Hintergrundmusik abgebrochen. Geplant ist eventuell ein Durchsuchen der Liste nach gültigen Titeln, wobei ich eigentlich voraussetzen kann, dass man gültige Playlists verwendet!? Den Gedanken beim Laden der Playlist zu überprüfen, ob die Dateien existieren habe ich verworfen, da das bei großen Playlisten zuviel Rechenzeit benötigt. Für die Anzahl der Playlist-Einträge habe ich keine Obergrenze gesetzt. Ab einer gewissen Größe wird es vermutlich mit dem Laden und Mischen etwas langsamer. Naja, das Programm soll ja kein Audio-Player werden. Die M3U-Playlists kommen in den Unterordner "music" und können hier vom Programm aus geladen werden. Es spielt dabei keine Rolle, ob die Pfadangabe in der Liste relativ oder absolut ist. Durch Druck auf die Page Down- und die Page Up-Taste kann man zum nächsten bzw. zum vorherigen Titel springen. Geladen werden die Audio-Dateien in einem Thread, da es im Spiel beim Sprung zum nächsten Titel ansonsten zu sichtbaren Rucklern kommt. Jetzt fehlen mir nur noch ein paar passende Musikstücke.
Die relative Lautstärke für Sound und Musik kann im neuen "Audio-Settings"-Menü eingestellt werden. Hier kann, wie oben schon erwähnt, auch der Wiedergabe-Modus eingestellt sowie der Amoeba-Sound und Magicwall-Sound deaktivert werden. Die Soundeffekte und M3U-Playlists lassen sich hier auch auswählen. Ordner mit Soundeffekten werden nun im Ordner "sounds" gespeichert. Dadurch fällt der Ordner "addon", den ich nur für Soundeffekte genutzt habe weg, kann aber bei Bedarf, z.B. für Custom-inifiles natürlich immer noch genutzt werden.
Ansonsten gabs nur kleine Änderungen. Man kann nun unendlich viele Leben einstellen, da mich das ständige Neustarten selbst genervt hat. Desweiteren gabs nochmal kleine Verbessrungen der Kompatibilität zu ein paar C64-Spielen und ich habe ein neues eigenes Spiel mit 20 Höhlen gebaut. Gibts alles im nächsten Release. Vorher muss ich jedoch noch ausgiebig testen.
Geplant ist (vielleicht) eine höhere Fehlertoleranz bei Demo-Dateien. Bisher waren die Demo-Dateien nach Änderungen des Levelsets unbrauchbar. Sinnvoller wäre es, die einelnen Höhlen auf Kompatiblität zu überprüfen. Mal schauen... Ich brauch jetzt erstmal ne Pause
Registriert: Di Jun 12, 2012 21:26 Beiträge: 112
Programmiersprache: Delphi
Und das nächste Release. Update auf Revision 143 beta.
Zu den m3u-Playlists gibt es nun auch Support für m3u8-Playlists. Außerdem können fehlerhafte Demo-Dateien repariert werden. Weitere Änderungen stehen im Changelog.
Download: secretgoaf143beta.zip (Link entfernt)
Viele Spaß beim Ausprobieren
Zuletzt geändert von subotai am Sa Mär 28, 2015 21:35, insgesamt 1-mal geändert.
Registriert: Di Jun 12, 2012 21:26 Beiträge: 112
Programmiersprache: Delphi
EDIT: Ich habe gerade einen üblen Bug entdeckt, der das Gameplay betrifft. Deshalb habe ich die aktuelle Release zurückgezogen. Trotzdem gibt es schonmal einige Informationen zum nächsten Release:
Man kann nun aus allen verfügbaren Bildschirmauflösungen größer als 320x240 Pixel und 32 BPP wählen. Außerdem lässt sich die Fenstergröße durch Ziehen mit der Maus am rechten oder unteren Rand beliebig ändern. Im Optionsmenü kann man wählen, ob die Seitenverhältnisse beibehalten werden oder nicht. Ein neuer Effekt ist der Kacheleffekt, der jedoch erst im Optionsmenü aktiviert werden muss. Bei diesem visuellen Effekt wird vor dem Start der Höhle die Höhle nach und nach mit Tiles gefüllt und der Bildschirm scrollt zur Startposition. Der Effekt wurde in den original Fanspielen für den C64 genutzt, hat jedoch keinen Einfluss auf das Spiel. Ohne Anfrage eines Fans hätte ich diesen Effekt mit hoher Wahrscheinlichkeit nicht implementiert. Letztendlich gefällt er mir jedoch selbst ganz gut.
Was mir nicht gefällt ist, dass das Fenster immer zentriert angezeigt wird, auch nach Größenänderungen. Ich möchte jedoch auch nicht, dass das Fenster bei Programmstart irgendwo am Rand des Bildschirms erscheint. Wenn mir einmal sehr langweilig ist und ich viel Zeit habe, steige ich vielleicht auf SDL2 um. Damit ist es wohl möglich, dass Fenster beim Programmstart über das Handle zu zentrieren.
Inzwischen sind über 180 Levelsets enthalten. Hatte natürlich keine Zeit, alle zu testen. Sollten Probleme oder Fehler auftreten, werde ich versuchen diese zu beheben.
Viele Grüße
P.S. Wem mein Projekt gefällt, der kann sich hier noch weitere Tilesets und Soundeffekte runterladen: gfxsfxpackage.zip (ca. 515 KB)
Zuletzt geändert von subotai am Do Mai 22, 2014 17:42, insgesamt 1-mal geändert.
Registriert: Di Jun 12, 2012 21:26 Beiträge: 112
Programmiersprache: Delphi
Heute mal sehr wenig Text, aber dafür ein Release: Version 1.4.5 Beta mit Bugfix. Ich hatte zwar schon eine Vermutung, die sich letztendlich bestätigt hat, es war jedoch nicht ganz so einfach, den Fehler einzugrenzen, da er nicht eindeutig reproduzierbar war. Deshalb hats ein paar Tage gedauert. Ich hatte schon große Sorgen, dass ich den Bug nicht finde.
Alle wichtigen Änderungen stehen im vorherigen Beitrag. Hier ist der Downloadlink: secretgoaf145beta.zip (Link entfernt)
Weiterhin viel Spaß!
Zuletzt geändert von subotai am Sa Mär 28, 2015 21:37, insgesamt 1-mal geändert.
Registriert: Di Jun 12, 2012 21:26 Beiträge: 112
Programmiersprache: Delphi
... und wieder ein Release mit ein paar Bugfixes. Außerdem habe ich die Steuerung nochmal ein wenig verbessert. Beim Graben reicht ein Antippen der Tasten und es spielt keine Rolle mehr, ob zuerst die Pfeiltaste oder die Grabentaste losgelassen wurde. Die Steuerung ist zudem nicht mehr so "schwammig", wie sie es einmal war. Zumindest habe ich den Eindruck dass das so ist. Wenn ihr mit Tastatur spielt, bestimmt übrigens die zuletzt gedrückt Taste die Richtung. Drückt ihr z.B. die linke Pfeiltaste, haltet diese gedrückt und drückt zusätzlich die rechte Pfeiltaste, bewegt sich die Figur nach rechts. Haltet ihr hingegen die rechte Pfeiltaste und drückt die linke Pfeiltaste, so bewegt sich die Figur nach links.
Zum Status des Projekts: Das Projekt ist mehr oder weniger beendet, ich werde jedoch weiterhin testen und bei Bedarf Bugfixes vornehmen. Weitere funktionelle Änderungen sind jedoch nicht geplant, auch kein Widescreen-Modus. Der Widescreen-Modus wäre für die normalen Höhlen überhaupt kein Problem, beisst sich jedoch mit den Intermissions, die dafür einfach zu "hoch" sind, wenn Scrollen deaktiviert ist. Vielleicht ändere ich meine Meinung dazu doch noch irgendwann.
Hier der Downloadlink: secretgoaf146beta.zip (Link entfernt)
Viel Spaß
Zuletzt geändert von subotai am Sa Mär 28, 2015 21:38, insgesamt 1-mal geändert.
Registriert: Di Jun 12, 2012 21:26 Beiträge: 112
Programmiersprache: Delphi
Nun habe ich doch einen Widescreen-Modus eingebaut. Im Optionsmenü kann man zwischen den Seitenverhältnissen 4:3 und 8:5 wählen. Für den Widescreen-Modus sollte man eine entsprechende Auflösung wählen, also z.B. 640x400 Pixel, ansonsten werden am Rand schwarze Balken angezeigt. Den Videomodus (PAL, NTSC, Mode 13h, Arcade oder Normal) kann man nun separat wählen.
Im Widescreen-Modus wird die Höhe beibehalten und am linken und rechten Rand des Bildschirms werden ein paar Tiles mehr sichtbar. Eigentlich wollte ich oben und unten einen Teil des sichtbaren Bereichs "Abschneiden", damit nicht runterskaliert werden muss. Allerdings passen dann die Intermissions ohne Scrolling nicht mehr in den sichtbaren Bereich des Bildschirms.
Außerdem habe ich kleine Änderungen an der Gameengine vorgenommen, um die Kompatibilität zu den C64-Engines nochmal zu verbessern. Intermissions werden nun auch im entsprechenden Videomodus (also z.B. PAL) dargestellt.
Registriert: Di Jun 12, 2012 21:26 Beiträge: 112
Programmiersprache: Delphi
Und hier gibts die neue Version mit Widescreen-Unterstützung. Neben 4:3 können nun die Seitenverhältnisse 8:5 (16:10) und 16:9 gewählt werden. Wenn die Fenstergröße nicht dem Seitenverhältnis entspricht, werden schwarze Balken dargestellt. Im Fenstermodus könnt ihr so ganz einfach bei Bedarf die Fenstergröße manuell anpassen oder im Optionsmenü die entsprechende Auflösung wählen.
Die Anwendung wird beim Start nicht mehr zentriert. Es hat mich einfach gestört, dass auch bei Größenänderungen des Fensters zentriert wird. Außerdem gabs einige weitere Korrekturen und Verbesserungen, die ihr dem Changelog entnehmen könnt.
Registriert: Di Jun 12, 2012 21:26 Beiträge: 112
Programmiersprache: Delphi
Es gab hauptsächlich kleine Bugfixes. Außerdem habe ich ein paar weiter C64 Tilesets hinzugefügt.
secretgoaf148beta.zip ca. 2.04 MB (Link entfernt)
Wer weitere Tilesets und Soundeffekte runterladen möchte, finder ein paar Beiträge weiter oben einen Downloadlink. Auch in diesem Archiv sind nun mehr Tilesets und ein Update der SFX enthalten.
Zuletzt geändert von subotai am Sa Mär 28, 2015 21:41, insgesamt 1-mal geändert.
Registriert: Di Jun 12, 2012 21:26 Beiträge: 112
Programmiersprache: Delphi
Nach einem Monat gibt es wieder ein Update bzw. Release:
secretgoaf149beta.zip ca. 2.05 MB (Link entfernt)
Trotz glClear(GL_DEPTH_BUFFER_BIT OR GL_COLOR_BUFFER_BIT); hatte ich beim Testen auf einem Laptop das Problem, dass Teile aus den vorherigen Menüs angezeigt wurden. Es war immer nur der rechte Rand betroffen und immer nur Bereiche, in denen nicht gezeichnet wurde. Nach vielen erfolglosen Versuchen, das Problem zu beseitigen, habe ich mich dafür entschieden, einfach einen schwarzen Hintergrund in Form eines Quads zu zeichnen. Was die Ursache ist, ist mir immer noch schleierhaft, da es diese Probleme auf anderen Rechnern nicht gab, aber zumindest konnte ich dadurch das Problem vorerst lösen.
Mittels wglSwapIntervalEXT(1); wird nun VSync aktiviert. Im Inifile kann VSync bei Bedarf deaktiviert werden. Ich selbst konnte bezüglich Performance keinen Unterschied feststellen. Sollte es jedoch vorher auf manchen PC's zu Tearing gekommen sein, ist das Problem damit hoffentlich beseitigt.
Die Units dglOpenGL.pas und glBitmap.pas wurden aktualisiert.
Außerdem habe ich zwei Demodateien für meine eigenen Levelsets hinzugefügt. Letzteres war schon lange geplant, habe ich aber immer vor mir hergeschoben, da das Aufzeichnen von Demo-Dateien sehr viel Zeit kostet (ich war letztendlich auch mehrere Tage damit beschäftigt).
Mit der Performance beim vertikalen Scrollen bin ich nicht ganz glücklich. Zumindest auf meine Laptop sind vor allem mit bei den klassischen C64 Tileset beim genauen Hinschauen immer wieder dünne schwarze horizontale Linien zwischen den Tiles sichtbar. Wobei ich mir nicht sicher bin, ob es an meiner Implementierung oder meiner Hardware liegt. Beim horizontalen Scrollen tritt das Problem nicht auf. Wenn ich die Möglichkeit habe, werde ich das nochmal auf anderen PC's testen.
Die Spielgeschwindigkeit lässt sich nun im Pause-Menü drosseln. Vorher war das inoffiziell über die Tasten F8 und F9 möglich.
Ansonsten sind keine weiteren Änderungen mehr geplant. Bei Bedarf werde ich noch Bugfixes vornehmen und wenn möglich die Performance verbessern. Ansonsten ist das Projekt mehr oder weniger abgeschlossen.
Zuletzt geändert von subotai am Sa Mär 28, 2015 21:43, insgesamt 1-mal geändert.
Im Menü zur Auswahl der Bildschirmauflösungen wurde oft die gleiche Auflösung mehrfach angezeigt. Ansonsten habe ich nochmal den Grafikfehler, den ich nur auf einem Laptop reproduzieren konnte, etwas verbessert (siehe dazu "glClear" im vorherigen Beitrag).
Da das Programm stabil zu laufen scheint, habe ich mich dafür entschieden, die Beta-Phase zu beenden.
Mitglieder in diesem Forum: YaCy [Bot] und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.