Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Aug 19, 2019 17:04

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 27 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: New Sga Project
BeitragVerfasst: Sa Jul 07, 2012 16:24 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
Hallo Leute,

bei meinem Projekt handelt es sich um einen Boulder Dash Clone der etwas anderen Art. Ursprünglich basierte mein Projekt nämlich auf dem Spiel "Rockford" für den PC (Dos), das erste Spiele, das ich jemals auf einem Computer gespielt habe ;-)

Link zum Meinungsthread

Hintergrund:
...
Wobei Rockford natürlich ein Ableger des Klassikers ist. Erst mit der Zeit passte ich das Spiel mehr und mehr an die C64 Game-Engines an. Im Sommer 2006 begann ich damit, das Spiel mit Hilfe von SDL in Delphi zu programmieren. Allerdings nutzte ich kein OpenGL. Irgendwann bin ich dann an die Grenzen von SDL gestoßen, das Spiel habe ich trotzdem im Dezember letzten Jahres fertiggestellt. Schade fand ich es, dass ich bei meinem Spiel wegen Performance-Problemen die Spielgeschwindigkeit limitieren musste und dass es nicht möglich war, die Auflösung zu ändern. SDL bietet dafür leider keine geeigentet Lösung.

Ich hatte schon oft überlegt, das ganze neu in OpenGL zu implementieren, allerdings wurde mir bei dem Gedanken, wieviel Zeit ich nochmal dafür investieren muss, schlecht.

Vor etwa einem Monat habe ich mich dann doch vorsichtig daran gewagt, OpenGL zu lernen und bin dadurch auf Eure Website aufmerksam geworden. Ohne die guten Tutorials (v.a. das 2D-Tutorial) hätte ich es nicht so weit gebracht. Vielen dank nochmal dafür.

Verwendete Units und Bibliotheken:
dglOpenGL.pas (was auch sonst)
glBitmap.pas (von Lossy eX)
Bass.dll (verwende ich noch nicht, werde ich aber für die Soundausgabe verwenden)

Techniken:
Ich programmiere das Spiel in Delphi und nutze hier die VCL. Das Spiel ist ein reines 2D-Spiel auf Tilebasis, wobei ich jedes Tile in eine eigene Textur lade (habe meine Gründe dafür ;-) ) Besondere Effekte habe ich bisher nicht geplant. Im Moment sind die Level/Höhlen mit der Tastatur ohne Einschränkungen spielbar. Sound-Support gibt es noch keinen, wird jedoch kein großes Problem sein, das zu implementieren. Im Moment kann man zwischen drei Auflösungen wählen, außerdem ist es möglich, das Spielfeld zu Zoomen. Die Frame-Zahl kann optional limitiert werden, um die CPU-Auslastung zu senken. Ich selbst bevorzuge eine bessere Performance. Zur Zeit benutze ich das Hauptmenü des Formulars um Levelsets und Grafiken zu laden, sowie um die Einstellungen zu ändern. Ich werde jedoch direkt im Spiel Menüs einbauen und das Hauptmenü aus dem Formular entfernen.

Ich könnte zwar schon eine Demo hochladen, möchte jedoch vorher noch den Quelltext optimieren. Zumindest habe ich aber ein paar Screenshots für Euch.

TODO: (In Planung)
Ersetzten des Hauptmenüs des Formulars durch In-Game Menüs
Sound-Support
Gamepad/Joystick-Support
Fullscreen-Support
Aufnahme und Wiedergabe von Leveldemos
speicherbare Highscore-Tabellen
evtl. Save-States


Das Projekt ist zwar in einem sehr frühen Stadium, allerdings habe ich schon vor, das Projekt fertigzustellen. Außerdem kann ich viele Programmteile aus meinem alten Projekt übernehmen. So musste ich z.B. an der Game-Engine nur kleine Veränderungen vornehmen. Ich hatte befürchtet, dass alles in mehr Arbeit ausartet.

Nachtrag: Die aktuelle und vermutlich auch finale Version des abgeschlossenen Projekts kann im letzten Beitrag dieses Threads bzw. auf meiner Homepage runtergeladen werden. Alle älteren Versionen habe ich von meiner Homepage entfernt.

Viele Grüße


Zuletzt geändert von subotai am Sa Mär 28, 2015 21:29, insgesamt 3-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: New Sga Project
BeitragVerfasst: Fr Jul 13, 2012 17:32 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
Die letzten Tage habe ich versucht, die Performance zu verbessern. Eine spürbare Verbesserung gabs zwar nicht, ich denke jedoch, dass das bei einer so einfachen Anwendung normal ist. Ich habe mich dafür entschieden, jedes Tile in eine einzelne Textur zu laden, da ich beim Laden aller Tiles in eine einzige Textur das Problem hatte, dass an den Rändern benachbarter Tiles Artefakte entstanden. Eine zufriedenstellende Lösung für dieses Problem fand ich erstens nicht, und zweitens konnte ich beim Testen keinen Vorteil gegenüber der anderen Technik feststellen. Da nur Texturen/Tiles im sichtbaren Bereich gebunden und gerendert werden, gibt es bei mir keine Probleme. Hier die Schritte, die ich beim Verbessern, der Performance gegangen bin:

    - Backface Culling aktiviert
    - Es werden nur Texturen gebunden, die im sichtbaren Bereich liegen.
    - Jede Textur wird nur einmal gebunden
    - Alphablending wird nur bei Bedarf aktiviert
    - Es wird nur im sichtbaren Bereich gezeichnet

Außerdem kann man nun durch Drücken der Tasten ALT + ENTER zwischen Fenster und Vollbildmodus wechseln. Im Moment wird im Vollbildmodus nur eine Auflösung von 640*480 Pixel unterstützt, die Frequenz wird übernommen. Ich habe geplant, dass das Programm später automatisch herausfindet, welche Auflösung und Frequenz für den Vollbildmodus unterstützt wird oder dass die gewünschte verfügbare Auflösung aus einer Liste ausgewählt werden kann.

Inzwischen weiss ich, dass die von mir verwendete Techniken veraltet sind. Da ich jedoch alles in Funktionen und Proceduren gepackt habe, sollte ein Umstieg auf Displaylisten oder VBO's (wenn das Sinn macht) kein großes Problem darstellen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: New Sga Project
BeitragVerfasst: So Jul 22, 2012 02:58 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
An der äußeren Erscheinung hat sich zwar nicht viel geändert, dafür habe ich jedoch einige Änderungen und Verbesserungen am Programm vorgenommen. Das Backface Culling habe ich deaktiviert. Außerdem nutze ich nur noch eine Textur für das Tileset und Charset. Für den Aufhell-Effekt, sobald sich der Ausgang einer Höhle (Level) öffnet, deaktiviere ich die Texturen. Dadurch fallen die vielen Texturenwechsel weg. Beim Laden des Tilesets in die Textur zeichne ich mit Hilfe von Scanlines die Ränder der einzelnen Tiles doppelt. Dadurch entstehen beim Zoomen keine Artefakte. Als Filter nutze ich GL_LINEAR, da bei den MIPMAP-Filtern das Bild beim Verkleinern unscharf wird. Dieses Probleme hatte ich bei der alten Methode (dem Texturenwechsel) noch nicht. Der Nachteil des LINEAR-Filters ist, dass das Skalieren merkwürdige Farbeffekte entstehen können. Damit kann ich jedoch (im Moment) ganz gut leben kann ;-) Die CPU-Auslastung liegt auf meinem Laptop im Schnitt nun bei ungefähr 20-25%, hat sich also drastisch reduziert.

Die Steuerung im Auswahlmenü habe ich etwas verbessert. Hier kann man jedoch nach wie vor durch Drücken oder Halten der Pfeiltasten nach links und rechts eine Höhle (Level) auswählen. Außerdem gibt es nun sowohl im Auswählmenü also auch im Spiel selbst Joystick/Gamepad-Support. Ich nutze dafür die SDL-Bibliothek, da ich mit MMSystem das Problem hatte, dass es eines meiner Gamepads nicht erkennen wollte. Direct Input will ich nicht unbedingt nutzen, da ich es komisch finde DirectX und OpenGL zu mischen. Wobei ich nicht weiss, wie das SDL macht. Unterstützt wird die Steuerung über das D-Pad, den Analog Stick und den Hat-Switch. Geplant ist die Möglichkeit, das Spiel bei Bedarf komplett über das Gamepad (also ohne Tastatur) zu steuern. Custom Keys und Buttons für die Tastatur und das Gamepad sind bereits implementiert, jedoch noch nicht nutzbar. Später wird es möglich sein bei mehreren angechlossenen Gamepads eines auszuwählen und die Gamepad- und die Tastatursteuerung zu konfiguieren.

Im Downloadlink könnt ihr eine neue Demo herunterladen. Nähere Infos zur Steuerung etc. findet ihr im Unterordner "info". Bitte beachtet, dass dies wieder nur eine Testversion ist, die jedoch stabil läuft.

NewSGATestVersion220712 (547 KB) (Link entfernt, da Version veraltet)

Viel Spaß beim Ausprobieren :)


Zuletzt geändert von subotai am Di Apr 15, 2014 12:32, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: New Sga Project
BeitragVerfasst: Mo Sep 17, 2012 22:22 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
Inzwischen habe ich mich sowohl vom Hauptmenü des Delphi-Formulars als auch von SDL verabschiedet. Die Implementierung mit SDL war nicht das Problem. Der Arbeitsaufwand, eine Anwendung für verschiedene Plattformen zur erstellen, ist mir aber ehrlich gesagt zu groß. Nebenbei ist es für mich sehr fraglich, ob sich der Aufwand überhaupt lohnen würde.

Die Joystick/Gamepad-Steuerung habe ich nun mit Hilfe der HID-Komponente der Jedi's implementiert. Da ich nur zwei Gamepads besitze, konnte ich das Ganze noch nicht ausführlich testen. Allerdings sollte die Steuerung (hoffentlich) mit jedem USB-Joystick/Gamepad funktionieren. Unterstützt werden die X- und Y-Achse und alternativ der Hat-Switch sowie logischerweise die Buttons. Probleme könnte es unter Umständen mit den Bewegungsrichtungen geben, da ich nicht weiss, ob manche Gamepads auch negative Wertebereiche nutzen. Hier bin ich auf Bugreports angewiesen. Der Nachteil ist, dass eben nur USB-Gamepads unterstützt werden.

Für das Spiel habe ich nun eine grobe Menüstruktur mit Titelbild und Untermenüs erstellt. Wichtig ist mir, dass sich das Spiel (bei Bedarf) ausschließich über ein Gamepad steuern lässt. Hierbei trat das Problem auf, das beim Beenden der Anwendung über das Gamepad der Bildschirmschoner gestartet wurden. Diese Problem konnte ich aber inzwischen beheben. Einige Punkte im Optionsmenü sind noch nicht verfügbar, diese Punkte wurden mit N/A (not available) gekennzeichnet.

Außerdem habe ich nun die Soundeffekte hinzugefügt, die im Moment mit Hilfe der bass.dll abgespielt werden. Eventuell steige ich auf OpenAL oder DirectSound um, da bin ich noch etwas unschlüssig. Die Soundeffekte werden zusammen mit dem Spiel pausiert, sobald die Anwendung den Fokus verliert oder das Fenster gezogen wird (Drag & Drop). Lezteres habe ich über Messages gelöst.

Den Framelimiter habe ich entfernt, da er sich nur negativ auf die Performance auswirkte und ich keinen wirklichen Sinn darin sehe, die Performance zu verschlechtern, nur um die CPU-Auslastung zu senken.

Zuletzt gabs ein paar kleine Bugfixes und Änderungen im Spiel, und ich habe ein paar zusätzliche Levelsets hinzugefügt. Weitere Infos findet ihr wie immer im Unterordner "info".

NewSGATestVersion170912 (636 KB) (Link entfernt, da Version veraltet)

Viel Spaß beim Zocken :-)


Zuletzt geändert von subotai am Di Apr 15, 2014 12:34, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: New Sga Project
BeitragVerfasst: Do Okt 11, 2012 01:55 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
Nachdem ich hier im Forum einiges Pro- und Kontra SDL gelesen habe, bin ich zu dem Entschluss gekommen, mehr oder weniger unabhängig von der VCL und SDL weiterzuentwickeln. Das heisst, ich trenne den SDL- und VCL-spezifischen Code, der nur einen sehr geringen Anteil ausmacht, vom Rest. Im Moment tendiere ich doch wieder eher zu SDL, lass die Entscheidung aber noch offen. Ihr seht, ich bin sehr wankelmütig ;-)

Technisch leiste ich hier natürlich nichts weltbewegendes, einiges an Arbeit und Zeit muss ich aber trotzdem investieren. Im Moment nutze ich immer noch den Immediate-Mode. Mir ist erst einmal wichtig, dass ich das Projekt fertigstelle. Am Feintuning kann ich dann immer noch arbeiten, und eventuell VBO's oder Displaylisten nutzen (wobei ersteres wohl besser ist).

Bzgl. der Soundausgabe werde ich im Moment bei der Bass.dll bleiben, da ich mit ihr auch Dateien im Ogg-Vorbis-Format ohne zusätzliche Bibliotheken abspielen kann. Für die Tilemaps nutze ich nun das *.png-Format. Dadurch ist der Nutzer beim Erstellen und Bearbeiten der Tilesets nicht mehr auf meinen Packer angewiesen. Das Laden der Tilemaps ist noch recht langsam. An der Optimierung werde ich noch arbeiten. Den Editor aus meinem alten Projekt zum Erstellen eigener Levelsets habe ich an mein aktuelles Projekt angepasst. Zum Testen der Höhlen, kann man den Editor mit dem Spiel verlinken. Beim Testen wird das Spiel mit ShellExecute und Parameterübergabe in der entsprechenden Höhle gestartet. Ich bin froh, dass ich mich bei meinem alten Projekt für diese Lösung entschieden habe. Dadurch habe ich mir viel Arbeit gespart. Es ist übrigens möglich sowohl die kommerziellen als auch zahlreiche C64-Fanspiele in meinen Editor zu importieren, anschließend zu speichern und in neuer Form zu spielen. Die Kompatibilität ist, soweit ich das beurteilen kann, recht gut. Die variable Spielgeschwindigkeit habe ich mehr an die Original-Spiele angepasst. Dafür war es nötig, das Dateiformat der Levelsets leicht zu ändern. Die alten Dateiformate können nach wie vor über den Editor importiert werden, werden im Spiel selbst jedoch nicht mehr unterstützt.

Im Spiel selbst kann man die Tastatur- und Joystick-Steuerung bei Bedarf nun endlich selbst festlegen. Die Optionen habe ich leicht erweitert. Es gibt unter anderem die Möglichkeit die Seitenverhältnisse des Mode 13h zu nutzen. Zudem kann zu jedem Levelset eine ini-Datei mit für dieses Levelset spezifischen Optionen erstellt werden. So hat man unter anderem die Möglichkeit festzulegen, welches Tileset für welche Höhle verwendet werden soll. Die Highscore-Tabelle und das Speichern sowie Abspielen von Demos muss ich noch implementieren. Und damit hätte das Projekt wieder den Funktionsumfang meines alten Projekts. Wenn ich es zeitlich schaffe, lade ich am Wochenende eine neue Version hoch. Soweit zum aktuellen Stand.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: New Sga Project
BeitragVerfasst: Mo Okt 15, 2012 20:10 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
Etwas verspätet, aber wie versprochen, gibts ein kleines Update. Aber erst mal ein paar neue Screenshots.

Editor:
Bild

Spiel:
Bild

Der Editor muss, wie oben schon erwähnt, mit der Exe des Spiels verlinkt werden (GamePath-Button). Ich habe meinen alten Editor etwas umgebaut, wundert Euch also nicht über den Spieltitel. Außerdem liegt dem Editor die chm-Hilfedatei meines alten Spiels bei, wo genau erklärt ist, wie man selbst eigene Levelsets erstellen kann. Bei Rückfragen könnt ihr Euch natürlich gerne an mich wenden. Die alten Levelsets können übrigens ohne Probleme in den Editor geladen und im neuen Format gespeichert werden (wird von mir jedoch nicht empfohlen). Mein Spiel selbst unterstützt nur noch die neue Version mit einer verbesserten Zeitmessung. Ups, mir ist gerade aufgefallen, dass mein Editor noch Project1 heisst ;-)

Zum Status des Spiels: Ich denke, ich habe soweit die meisten Bugs ausgebügelt. Für die Demos und Highscore-Tabelle hats zeitlich dann am Wochenende leider nicht mehr gereicht.

Was ist neu?

NTSC Vs. PAL-Timing:
Die meisten C64-Fanspiele wurden für PAL entwickelt. Ursprünglich wurden die kommerziellen Spiele jedoch für NTSC programmiert, wo eine Sekunde eben einer Sekunde entspricht. Auf dem PAL-System dauert eine Sekunde aufgrund der Anzahl der Bilder pro Sekunde etwas länger. Ich habe als Standard PAL vorgegeben, im Editor kann man jedoch auch NTSC wählen und das Levelset speichern. Im Endeffekt bedeutet das eigentlich nur, dass man zum Lösen der Höhlen unter PAL etwas mehr Zeit hat. Das Dos-Spiel Rockford hingegen, das ich auch unterstütze, nutzt NTSC-Timing. Dinge, die die Welt nicht braucht, ich weiss ;-)

Laden und Speichern der Einstellungen:
Die Einstellungen werden nun in einer ini-Datei im Programmverzeichnis gespeichert. Darunter fallen die Optionen, das aktuelle Levelset mit Caveindex, das aktuelle Tileset und die Tastatur- sowie Joysticksteuerung. Im Optionsmenü gibt es hierfür den Punkt "Save settings on exit".

Custom ini settings:
Zu jedem Levelset kann eine eigene Ini-Datei erstellt werden, in der die Einstellungen für dieses Levelset festgelegt werden. Im Unterordner "levelsets" findet ihr die Ini-Datei für das Spiel Rockford. Ich würde die Dateien dieses Spiel gerne meinem Download beifügen, ich kann mir nicht vorstellen, dass es noch verkauft wird. Allerdings liegen die Rechte immer noch bei den Herstellern. Deshalb sind in meinem Spiel auch nur kostenlose Fanspiele enthalten.

Ansonsten gibts noch ein paar kleine weitere Optionen, unter anderem eine Unterstützung der Mode13h-Seitenverhältnisse. Das habe ich eingebaut, da das Spiel Rockford den Mode13h nutzt. Außerdem habe ich noch einen Infoscreen mit Credits und Spielbeschreibung eingebaut, der im Titelbild nach einer gewissen Zeit automatisch startet oder durch Druck auf die Warp-Taste (TAB-Key) gestartet werden kann.

Weitere Änderungen könnt ihr im changelog nachlesen.

Ich nutze nun übrigens wieder SDL.

Hier die Downloads:

Spiel: Newsga151012 (Link entfernt, da Version veraltet)

Editor: Newsge151012 (Link entfernt, da Version veraltet)

Viel Spaß beim Ausprobieren :)


Zuletzt geändert von subotai am Di Apr 15, 2014 12:36, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: New Sga Project
BeitragVerfasst: So Okt 21, 2012 17:14 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
In der letzten Woche war ich recht produktiv. Eigentlich wollte ich es etwas ruhiger angehen, konnte es dann jedoch doch wieder nicht lassen. Ich setzte nun wieder voll auf SDL. Es gab einige kleine Bugfixes und Verbesserungen. Außerdem gibts nun auch die Möglichkeit, sich in einer Highscore-Tabelle zu verewigen. Die Eingabe ist sowohl mittels Eintippen per Tastatur als auch über das Gamepad möglich. Für die Tastatureingabe nutze ich die GetAsyncKeyState-Abfrage. Soweit ich das beurteilen kann, funktioniert das ganze recht gut. Die Highscore-Tabelle kann bei Bedarf extern in einer Datei gespeichert werden (siehe Unterordner "score"). Hierfür gibt es den entsprechenden Punkt "Save Highscore" im Optionsmenü. Die Highscore-Tabelle wird übrigens mit einer 32 Bit Prüfsumme versehen. Dadurch ist das Manipulieren nicht ohne weitere möglich. Eine richtigen Schutz bietet das ganze natürlich nicht, das ist mir schon klar, aber wer Manipulieren will, der soll es eben ;-).

Generell wird ersteinmal garnichts gespeichert. Zum Speichern aller Einstellungen müssen im Optionsmenü die Punkte "Save Highscore" und "Save Settings On Exit" aktiviert werden.

Die Highscore-Tabelle habe ich übrigens zu den Infoscreens (Credits, Spielbeschreibung) hinzugefügt. Wie schon erwähnt: Im Titelbild die Warp-Taste (TAB-Key) drücken oder etwa 15 Sekunden warten. Zum Sprung auf den nächsten Bildschirm einfach während der Anzeige Enter drücken, zum Verlassen Escape.

Speichern und Laden von Demos/Replays wird noch nicht unterstützt, ist aber nach wie vor in Planung.

Hier noch ein paar Screenshots:

Bild

Bild

Und die Downloads:
Spiel: Newsga211012.zip (Link entfernt, da Version veraltet)
Editor: Newsge211012.zip (Link entfernt, da Version veraltet)

Viel Spaß beim Ausprobieren :-)


Zuletzt geändert von subotai am Di Apr 15, 2014 12:37, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: New Sga Project
BeitragVerfasst: So Okt 28, 2012 10:14 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
Inzwischen hat das Spiel bis auf ein paar Kleinigkeiten den vollen Funktionsumfang. Das Aufzeichen und Abspielen von Demos wird nun im Cave-Auswahlbildschirm unterstützt. Dementsprechend habe ich ein paar alte Demodateien überarbeitet, an die aktuelle Version angepasst und beigefügt. Die Demos liegen im Unterordner "demos", wie der Name schon sagt ;-). Es gibt bei den Demos zwar eine Fehlerverarbeitung, jedoch noch keine Fehlermeldung. Im Moment wird bei Problemen einfach das Spiel normal gestartet. Ein Abfangen der Fehler beim Laden der Demos mit Fehlermeldung ist in Arbeit. Solange man jedoch die Demo-Dateien nicht von Hand bearbeitet, sollten keine Fehler auftreten.

Technik zum Abspielen und Aufzeichnen der Demos:
Die Daten der Demos werden in einem AnsiString gespeichert. Beim Aufzeichnen wird der AnsiString mit dem Input (Tastatur oder Gamepad) gefüllt, beim Abspielen wird der AnsiString ausgelesen. Vor dem Speichern wird der String gepackt. Ich denke, ein dynamisches Array of Byte wäre vielleicht sauberer, wobei ein AnsiString ja eigentlich auch nichts anderes ist, als ein Array of Char!?

Außerdem muss ich, da ich den Zufallsgenerator verwende, den Randseed-Wert speichern (Dass der Zufallsgenerator vom Compiler abhängig ist, weiss ich).

Für mich nicht wichtig, aber auf Anfrage habe ich die Auswahl der Sprache zwischen Deutsch und Englisch eingebaut. Dementsprechend habe ich den Zeichensatz um die Umlaute erweitert. Eine Eingabe der Umlaute über die Tastatur werde ich vielleicht noch einbauen.

Den Editormodus habe ich überarbeitet, und ein paar kleine Fehler ausgebügelt.

Ansonsten gab es wieder ein paar Bugfixes (jaja, was wäre das Programmieren ohne Käfer). Bald kann ich in die Beta-Testphase übergehen, in der ich noch einmal alles ausgiebig testen werde. Eventuell erstelle ich auch ein weiteres Levelset, in dem ich die Features der Engine noch mehr ausnutze.

Save-States (siehe erster Beitrag, TODO-Liste) werde ich nicht einbauen. Ebenso wenig werde ich aus verschiedenen Gründen das Plugin-System aus meinem alten Projekt zum Laden von Fremdformaten nicht mehr unterstützen.

Hier der Link:
Newsga281012.zip (Link entfernt, da Version veraltet)

Viel Spaß beim Testen!


Zuletzt geändert von subotai am Di Apr 15, 2014 12:38, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: New Sga Project
BeitragVerfasst: Mo Okt 29, 2012 16:18 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
subotai hat geschrieben:
Inzwischen hat das Spiel bis auf ein paar Kleinigkeiten den vollen Funktionsumfang.

Von wegen voller Funktionsumfang. Es hat mich gestern dann doch gereizt, die Spiele mit Original-Grafiken zu spielen, und ich muss sagen, es hat was von Nostalgie :-) . Das kleine Problem war nur ,dass in den Original-Spielen in jeder Höhle andere Farben verwendet werden. Das wurde von meinem Spiel noch nicht unterstützt. Leider hatte ich in den Levelset-Dateien keinen Platz mehr zum Speichern der Farbinformation, in den ini-Dateien für die Levelsets wollte ich die Daten jedoch auch nicht speichern, zu umständlich. Also entschied ich mich dafür, wieder einmal das Levelset-Format um 10 Bytes pro Level zu vergrößern. Da ich nun wieder genug Platz habe, konnte ich die Bescheibung der Höhlen von 16 Zeichen auf 20 Zeichen erweitern (gepackt sind das dann 15 Bytes statt ehemals 12 Bytes). Die Farbwerte werden in zwei Bytes gespeichert (es gibt 4 Farben im Wertebereich 0..15). Im Spiel selbst ändere ich einfach beim Laden einer neuen Höhle mittels Scanline die Farben (das Tileset halte ich sowieso als Bitmap im Speicher). Ich denke, dass ich die Textfarben der Statuszeile veränderbar machen werde, so dass man bei Bedarf für jedes Levelset eigene Farben für die Statuszeile verwenden kann. Viele neue Ideen.

Lange Rede, kurzer Sinn: Ich weiss nicht, in wie weit jemand hier mein Programm nutzt. Allerdings empfehle ich im Moment aufgrund der Änderung des Dateiformats noch nicht in großer Menge eigene Levelsets zu erstellen bzw. Original-Spiele zu importieren. Wird (hoffentlich) alles noch besser. Es wird aber weiterhin eine Möglichkeit geben, meine alten Formate zu aktualisieren

Hier mal zwei Screenshots:

Levelset in meinem Remake:

Bild

Original-Spiel in einem Emulator:

Bild

Wobei ich ein eigenes Tileset im Retro-Look zur Demonstation erstellen werde. Hab etwas Bedenken, Original-Grafiken bzw. Levelsets mitzuliefern, auch wenn das in anderen Remakes gemacht wird und vom Hersteller wohl auch geduldet wird.

Viele Grüße


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: New Sga Project
BeitragVerfasst: Sa Nov 24, 2012 17:08 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
Eigentlich ist es noch etwas zu früh für ein Update, da der Editor noch nicht fertig ist. Aber ich möchte Euch doch einen kleinen Vorgeschmack geben. Eine ausführliche Beschreibung wird mit dem Editor folgen.

In den Levelsets können nun für jede Höhle Farbinformationen gespeichert werden. Hierbei beschränke ich mich auf die C64-Farben. Ziel ist es, die einzelnen Höhlen in den Original-Farben zu spielen. Entsprechende Tilesets liegen dem Download bei. Über die Custom-ini-Dateien können die Einstellungen für jedes Levelset bequem festgelegt werden. Unter anderem kann man einem Levelset ein bestimmtes Tileset oder auch Soundeffekte zuordnen.

Außerdem liegt dem Download nun ein schönes Weihnachtsspiel mit entsprechendem Tileset bei.

Screenshot:
Bild

Credits für die mitgelieferten Levelsets habe ich vergessen, werde ich aber noch einfügen. Weitere Details findet ihr im Unterordner "Info" in der "Datei Steuerung.txt".

Download:
newsga241112.zip (865 KB) (Link entfernt, da Version veraltet)

Wann ich den Editor fertigstelle, kann ich im Moment leider nicht sagen, da ich im Moment viele andere Dinge zu tun habe und nicht viel Zeit zum Programmieren habe.

Viel Spaß :-)


Zuletzt geändert von subotai am Di Apr 15, 2014 12:39, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: New Sga Project
BeitragVerfasst: Mo Jan 21, 2013 12:29 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
Zuerst einmal ein paar Screenshots ;-)

PAL aspect ratio:
Bild

NTSC aspect ratio:
Bild
Kein großer Unterschied zwischen PAL und NTSC, ich weiss.

Magic wall breakscan:
Bild

Trennen von Animationen, Timer und Spielgeschwindigkeit:
Ein wichtiger Schritt war für mich, den Timer von der Spielgeschwindigkeit zu trennen. Bisher hatte ich immer die Zeit aus der Spielgeschwindigkeit berechnet, was meist auch gut funktioniert hat. Nun wird ein eigener Timer verwendet. Dementsprechend musste ich den Warp-Mode zum Vorspulen etwas anpassen. Die meisten Animationen laufen nun ebenfalls unabhängig von der Spielgeschwindigkeit ab. Außerdem gibt es zugunsten eines besseren Timings wieder bei Bedarf Frame-Drops. Da die Anforderungen nicht sehr hoch sind, sollten in der Regel jedoch keine Frame-Drops auftreten, es sei denn man hat noch tausend andere Programme im Hintergrund laufen.

Magicwall Breakscan:
Was ist das, werden die meisten fragen? Das ist ein Feature (oder Bug) in der original Bd1-Engine. Und zwar wird hier, sobald ein Stein in die Zaubermauer fällt, das Scannen der Höhle abgebrochen. Die Implementierung ist noch nicht perfekt, zeigt aber, worauf es hinausläuft. Es sind zwei Levelsets zum Vergleichen enthalten (breakscan_yes und breakscan_no), im letzteren levelset sind die Höhlen nicht lösbar!

Original Soundeffekte:
Nun stelle ich auch Original-Soundeffekte zum Download bereit. Einfach den Ordner "addon" ersetzen. Die Soundeffekte werden automatisch geladen.

Seitenverhältnisse:
Es werden nun folgende Seitenverhältnisse unterstützt: 4:3, PAL, NTSC, Mode 13h, Arcade.
Ist natürlich letztendlich reine Geschmackssache. Im ersten Spiel, das ihr aus den Levelsets wählen könnt (AD01), ist die Voreinstellung für das Seitenverhältnis deaktiviert (siehe ini-Datei des Levelsets). In den meisten anderen Spielen ist die Voreinstellung PAL.

Weitere Details zu den Änderungen könnt ihr dem Changelog entnehmen.

Aktuelle Version:
newsga200113.zip (890 KB) (Link entfernt, da Version veraltet)

C64 and Rockford Soundeffekte:
newsga_sfx.zip (594 KB) (Link entfernt, da Version veraltet)

Viel Spaß!


Zuletzt geändert von subotai am Di Apr 15, 2014 12:45, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: New Sga Project
BeitragVerfasst: So Dez 01, 2013 21:42 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
Nach langer Zeit habe ich mich nun doch wieder an mein Projekt gesetzt. Das Projekt ist nun zum großen Teil beendet und muss nun nur noch ausgiebig von mir getestet werden. Der Editor, mit dem eigene Levelsets erstellt und C64 MemoryDumps importiert werden können, ist nun direkt im Verzeichnis des Spiels enthalten. Eine Chm-Hilfedatei liegt ebenfalls bei.

sga011213.zip (1.93 MB) (Download entfernt, neuer Download im nächsten Beitrag)

Da nun alle wichtigen Dateien enthalten sind, ist der Download wesentlich größer.

Ich möchte mich hier schon einmal bei allen bedanken, die mich in irgendeiner Form unterstützt haben.

Ich wünsche Euch viel Spaß beim Ausprobieren.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: New Sga Project
BeitragVerfasst: Mo Dez 09, 2013 21:43 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
Schweren Herzens habe ich mich dazu entschlossen, den Retro-Look aus meinem Programm zu entfernen. Es handelt sich hierbei also um keine neue Version, sondern sozusagen nur um eine abgespeckte Version. Ich habe lediglich die C64- und DOS-Grafiken sowie die entsprechenden Soundeffekte entfernt. Das Spiel ist natürlich weiterhin voll funktionsfähig, und wer die entsprechenden Grafiken und Soundeffekte besitzt, kann diese einfach in kommende Releases übernehmen.

sga031213 1.24 MB (Link entfernt, da Version veraltet)


Zuletzt geändert von subotai am Di Apr 15, 2014 12:47, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: New Sga Project
BeitragVerfasst: Sa Jan 11, 2014 10:51 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
subotai hat geschrieben:
Ein wichtiger Schritt war für mich, den Timer von der Spielgeschwindigkeit zu trennen. Bisher hatte ich immer die Zeit aus der Spielgeschwindigkeit berechnet, was meist auch gut funktioniert hat. Nun wird ein eigener Timer verwendet. Dementsprechend musste ich den Warp-Mode zum Vorspulen etwas anpassen. Die meisten Animationen laufen nun ebenfalls unabhängig von der Spielgeschwindigkeit ab.

...was ein großer Fehler war. Denn dadurch entstanden beim Abspielen von Demos Timing Probleme. Inzwischen werden wieder alle Timer aus der Framerate berechnet, was ersten sauberer ist und zweitens viel einfacher zu implementieren war. Beachtet, dass es für die einzelnen Spiele möglich ist, zwischen einem PAL- und NTSC-Timing zu wählen. Der PAL-Timer läuft etwas langsamer (50 Sekunden/Minute), der NTSC-Timer hingengen läuft im Sekunden-Takt. Für die C64-Fanspiele wurde PAL-Timing verwendet. Ich kenne zumindest kein Spiel, das NTSC-Timing verwendet.

Dank dieser Änderung können nun wieder Demos der einzelnen Level aufgezeichnet und abgespielt werden. Selbst das Abspielen der Demo's im Warp-Modus (800% Geschwindigkeit) funktioniert nun einwandfrei.

Ansonsten gab es sehr viele kleine Änderungen und Bugfixes sowohl am Editor als auch im Spiel selbst. Ich habe vorallem die Kompatibilität zu den C64-Fanspielen und auch den Import von C64-Memory-Dumps nocheinmal verbessert. Beim nächsten Release werde ich ein paar neue Levelsets hinzufügen.

Außerdem habe ich ein eigenes Tileset im C64-Stil gebaut, das dem nächsten Release beiliegen wird. Weitere Änderungen könnt ihr dann dem Changelog entnehmen. Vorher muss ich jedoch noch etwas testen.

Bild

Ich persönlich bevorzuge den C64-Retro-Look, viele finden die modernen Grafiken jedoch besser. Letztendlich Geschmacksache.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: New Sga Project
BeitragVerfasst: Mi Jan 15, 2014 22:06 
Offline
DGL Member

Registriert: Di Jun 12, 2012 21:26
Beiträge: 112
Programmiersprache: Delphi
Eigentlich wollte ich das Release erst am Wochende hochladen, hat aber dann doch etwas früher geklappt.

Wie schon geschrieben, habe ich das Timing-Problem gelöst und das Aufzeichnen und Abspielen von Demos ist möglich. Das Tileset im C64-Stil und 45 Levelsets sind enthalten. Das garantiert stunden-, tage-, wochenlangen (?) Knobelspaß ;-) Ich hatte natürlich nicht die Zeit und Nerven, alle Levelsets selbst zu testen. Sollten Euch Fehler auffallen, Bugreports sind immer willkommen.

Hier der Link zum Download:
secretgoaf141beta.zip (Link entfernt)

Viel Spaß beim Ausprobieren :-)


Zuletzt geändert von subotai am Sa Mär 28, 2015 21:32, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 27 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.072s | 16 Queries | GZIP : On ]