24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von pluto »

Hallo

Letztes Jahr habe ich ein Versuch unternommen "Prince of Persia" nach zu bauen. Im Internet habe ich eine Seite gefunden, die sehr viel Infos über Prince of Persia hatte. Außerdem ein Programm um die *.dat Dateien zu Entpacken. Da es inzwischen sehr viele weitere Varianten gibt, denke ich, darf ich die Dateien weiter geben. Bin mir aber nicht sicher. Ich habe die Dateien entpackt und in das Zip Archiv gepackt.

Wenn ihr meint, dass wäre zu unsicher, nehme ich sie wieder raus.
Hier ein paar Links, wo es um Prince Of Persia 1 und 2 geht:
1. http://popuw.com/
2. http://forum.princed.org/

Die Sprites sind in einzelne BMP Dateien zerlegt, die ich wieder zusammenfüge Dynamisch.

DAS PROJEKT IST LEIDER NOCH NICHT FERTIG. Es gibt da noch Fehler. Ich komme mit dem Pseudo3D nicht zurecht. Das Problem ist:

Die Sprites müssten um 90° gedreht werden(nehme ich an). Ich habe ein einfaches Raster erzeugt, wo ich erst mal die Sprite anschauen kann.
In einem ersten Prototyp hatte ich auch Probleme mit der Animation des Princen. Es gibt dazu einige Bilder, die kann ich auch anzeigen und der reihe nach Abspielen, aber das nützt mir wenig. Außerdem weiß ich auch noch nicht wie ich das Springen einbauen soll.

Wer kann und möchte kann das Projekt gerne weiter Entwickeln, oder komplett neu Anfangen. Ich würde mich jedenfalls Freuen, wenn das Projekt in irgendeiner Form weiter Entwickelt wird. Mein Ziel ist es: Ein Loader zu erstellen. Eine Beschreibung der Level Dateien habe ich auch. Der Loader könnte dann diese Dateien laden.
Es gibt ein Free Prince Projekt, jedoch gibt es da Probleme mit dem Springen. Ob das Problem jetzt gelöst wurde, weiß ich nicht.

Viel Spaß beim Expertentieren.
Dateianhänge
princeofpersia.zip
(1.01 MiB) 261-mal heruntergeladen
mypop02.png
mypop01.png
MFG
Michael Springwald

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: 24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von Soner »

Das ding zu Programmieren ist zu einfach, für Pseudo3d kannst du die Raster (Tiles) als Rauten oder Parallelogramme erstellen. Hier würde Parallelogramm passen. Und Höhen und Tiefen erstellst du mit Ebenen. Ich hatte in den 90zigern ein Spiel das vom Prinzip her ähnlich war Programmiert. Mann mußte mit Hubschrauber über Flüsse fliegen und feindliche Soldaten und Fahrzeuge abschießen, hohe Felsen überfliegen oder Brücken drunterfliegen.

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: 24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von Soner »

Ich habe das mal runtergeladen und kann bestätigen dass es Prototyp ist :)) . Wenn du Crossplatform-Programme schreibst achte immer Trennzeichen für Pfade (=Pathseparator).

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: 24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von pluto »

Danke für deine Tests. Ich arbeite eigentlich(meistens) mit "Pathseparator" aber hier wohl nicht...

Das ding zu Programmieren ist zu einfach, für Pseudo3d kannst du die Raster (Tiles) als Rauten oder Parallelogramme erstellen.

Könntest du mir dazu mal ein einfaches Beispiel erstellen? Ich bin nicht so "gut" in Mathe.

Ich habe das mal runtergeladen und kann bestätigen dass es Prototyp ist :)) .

Eigentlich ist es noch nicht mal ein Prototyp, es ist nur eine Forschungs Version....
MFG
Michael Springwald

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: 24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von Soner »

Eigentlich hat das mit Mathe nicht viel zu tun. Du sieht im unteren Bild Durchgang mit Sockel, der Sockel hat den Form eines Parallelogramm, als Tiles würde ich das Benutzen und zusätzlich jeden "Tile" eine Höhe zuordnen und das ganze von hinten nach vorne und von links nach rechts zeichen. Gerade bei Prince of Persia war das sehr einfach weil soweit ich mich erinnere die Bewegungen nur nach links, rechts, springen und fallen war.

Edit:
Ich stelle mal vielleicht Zeichnung hier. Ich habe zur Zeit Langeweile, Ich wollte Silkworm von Amiga nach programmieren. Das ist auch nicht schlecht. Abgesehen von Charakteranimationen (Kämpfe und Sprünge) kann es doch nur ein paar Wochen Arbeit sein.
Zuletzt geändert von Soner am So 25. Nov 2012, 00:04, insgesamt 1-mal geändert.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: 24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von pluto »

ich kann dir nicht so ganz folgen... wie meinst du das z.b. mit von Hinten nach Vorne?
MFG
Michael Springwald

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: 24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von Soner »

Von Hinten nach Vorne meine ich von Bildschirm Tiefe zum Betrachter aber hier braucht man das nicht weil es nur rechts/links, oben/unten ist. Ich wollte vor einigen Jahren DoubleDragon nach Programmieren da konnte man in vier Richtungen laufen ähnlich wie Isometriche Projektion.
Ich schau mir mal jetzt PrinceOfPersia in Youtube an damit ich mich wieder an das Spiel erinnere.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: 24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von pluto »

Da findest du recht viele Videos. Auch von den anderen Varianten.

z.b. hier http://www.youtube.com/watch?v=xYshsdVpPDE
MFG
Michael Springwald

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: 24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von Soner »

Ich habe Zeichnung erstellt wie ich es mir vorgestellt habe. Ich würde sogar jedes in drei Stücke unterteilen weil bei PrinceOfPersion die Bewegung immer in der Mitte stattfindet, dann ist es noch einfacher zu Zeichnen und zu Verwalten.
Dateianhänge
teillayout.png

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: 24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von pluto »

Danke! So ähnlich habe ich es mir auch schon vorgestellt. Ich kann so ein Level selbst zeichnen. Das ist nicht das Problem.
Ich weiß nicht wie ich es beschreiben soll.

Wenn ich ein normales Raster hätte, wäre es kein Problem, aber es ist kein Normales Raster. Wie du schon richtig erkannt hast sind es Parallelogramme(eigentlich) .

Vielleicht könntest du mal ein kleines Beispiel erstellen dazu? Nicht großes... einfach nur um das Prinzip da zu stellen.
Ich müsste auch nicht unbedingt die Original Dateien verwenden, ich könnte auch einige Dateien erstellen. Nur die Figuren werden dann recht aufwendig.
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: 24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von pluto »

Ich habe Zeichnung erstellt wie ich es mir vorgestellt habe. Ich würde sogar jedes in drei Stücke unterteilen

Dazu noch etwas:
Aus einem Level-Editor der für POP ist, habe ich entnommen, dass es ein Tile aus einem Boden, eine Mitte und einer Decke besteht.
Diese Tiele haben eine bestimmte Größe. Ein "Raum" kann meins wissens 9 mal 9 Tiele aufnehmen. Jedes Level kann 24 Räume haben, stand in einer Beschreibung drin, wenn ich sie finde, kann ich sie ja hochladen.

Edit01 Der Editor den ich meine heißt "apoplexy"

Edit02: Die Format Beschreibung(Leider auf Englisch)
Dateianhänge
FormatSpecifications.pdf
(216.83 KiB) 245-mal heruntergeladen
MFG
Michael Springwald

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: 24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von Soner »

Ein Beispiel wäre zu Aufwendig. Ich würde in deine Stelle nicht nachmachen was die Programmier von PoP gemacht haben, weil damals Computer zwach waren, mußten sie so machen wie sie gemacht haben.
Ich würde auch nicht die Grafik von Pop verwenden. Erst einfach geometrische Figuren, Blöcke, einfache Strichmenschen verwenden. Erst wenn alles klappt und ein Demolevel einwandfrei funktioniert dann würde ich mich auf Levelgestalltung und Grafiken konzentrieren.
Ich würde auch nicht mehr PoP nachmachen weil es viele gemacht haben, wie ich gestern festgestellt habe, vielleicht Persian Gulf Inferno nachmachen im Prinzip ähnlich und noch nicht nachgemacht.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: 24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von pluto »

Ein Beispiel wäre zu Aufwendig

Ich meine jetzt kein Komplettes Beispiel. Sondern nur ein Beispiel, was das Rendern zeigt. Es muss nicht perfekt sein.

Ich würde auch nicht mehr PoP nachmachen weil es viele gemacht haben, wie ich gestern festgestellt habe, vielleicht Persian Gulf Inferno nachmachen im Prinzip ähnlich und noch nicht nachgemacht.

Stimmt. Es haben sehr viele Leute schon nach gemacht. "Persian Gulf Inferno" kenne ich nicht.
Mir geht es eigentlich, um was anders wenn ich es nach machen sollte. Mir geht es eigentlich "nur" um das Prinzip.
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: 24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von pluto »

Die meisten Varianten von POP1 und POP2 verwenden intern alle den selben "Loader". Sie haben legendlich entweder "nur" das Levelset ausgetauscht und/oder die Grafiken und Musik Dateien. Aber in der Regel nicht die PRINCE.EXE Datei.

Mein Ziel ist es jedoch: Eine PRINCE Datei zu erstellen, die unter Linux, Windows und Mac OS läuft. Praktisch so wie "Free Prince".
Außerdem möchte ich von Anfang an, einige Änderungen vornehmen z.b. eine Level-Set Verwaltung, man soll Level speichern und Laden können, was erst bei POP2 der Fall war. Bei POP1 gab es einen "Trick". Da nur bis Level 3 "gespeichert" wurde.

Außerdem möchte ich eine Möglichkeit einführen, dass gesammte Level als Grafik Datei abzuspeichern. Dazu habe ich zwar ein Programm gefunden: DrawMap, aber es lässt sich nicht kompilieren, da die *.h Datei fehlen bzw. das ZIP Archiv nicht ganz vollständig war.

Stellen wir uns mal ein Normales Raster vor. Da würde ich ein 2D Array nehmen, die Größe setzten bei POP wäre das eine Statische Größe. Dann würde ich das Raster einmal komplett durchgehen und auf "0" setzten. Angenommen, wir nehmen ein array of array of Byte. Das vereinfacht einiges.
Beim Rendern würde ich das Raster jetzt durch gehen: Erst die Zeile dann die Spalte(mit zwei For schleifen) und würde jetzt z.b. y*TileH machen und x*TileW machen.

Wenn ich das jedoch mache, sieht es so aus, wie im Beispiel oben. Wie sieht das ganze mit einem parallelogramm aus?
MFG
Michael Springwald

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: 24.11.2012 Prince of Persia 1: Nachbau, Erster Protoyp

Beitrag von Soner »

Hast du das fertig gemacht? Ich hatte damals ein Beispiel für dich gemacht, wie du woltest, dann muss irgendetwas dazwischen gekommen sein, dass ich es vergessen habe.
Als ich heute ein altes Projekt gesucht habe, habe ich es entdeckt. Es sind sogar viele Kommentare und Textdatei dabei.
Es ist nur Level-Grundgerüst, Akteure fehlen, mann kann aber zum Testen Level mit Cursortasten scrollen.
Falls du es noch willst hier.
Dateianhänge
mypop.7z
(136.8 KiB) 227-mal heruntergeladen

Antworten