AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Sysygy Image Viewer

Sysygy Image Viewer

Ein Thema von littleDave · begonnen am 9. Mai 2008 · letzter Beitrag vom 16. Mär 2009
Antwort Antwort
Seite 1 von 11  1 23     Letzte » 
Benutzerbild von littleDave
littleDave
Registriert seit: 27. Apr 2006
Hallo liebe Community,

ich möchte euch hier mein aktuelles Projekt vorstellen, an dem ich die letzten eineinhalb Jahre gearbeitet habe.

Was ist der Sysygy Image Viewer
Der Sysygy Image Viewer ist eine Art Bildbetrachtungsprogram. Es steht dabei nicht in Konkurenz zu anderen Bildbetrachtern wie z.B. IrfanView, die alle nur in 2D arbeiten. Sysygy Image Viewer stellt die Bilder in ein dreidimensionales Museum, durch das man sich wie in einem First-Person-Shooter frei bewegen kann. Die Steuerung ist dabei identisch mit der gängigen Shooter-Steuerung. WSAD oder die Pfeiltasten zum Laufen, Maus zum Umschauen und Leertaste zum springen. Bevor jetzt gleich jemand denkt: "ach wieder so ein Spin***, der unbedingt einen Shooter machen will, aber keine Ahnung hat" - bitte liest weiter bevor ihr Urteilt (ich persönlich find diese Threads "Wie mache ich einen 3D-Shooter" auch lächerlich, aber dass ist jetzt OT). Das Programm kann auf viele weise eingestellt werden, um auch auf schwächeren Systemen zu laufen. Ebenfalls können die einzelnen Shortcuts neu belegt werden.

Wie benutze ich Sysygy Image Viewer
Als erstes muss man ein Picture-Set erstellt, damit das Program auch weiß, welche Bilder dargestellt werden sollen. Dabei werden die Bilder gleich umformatiert, damit die Grafikkarte diese auch im Museum aufhängen kann. Es können beliebig viele Picture-Sets mit beliebig vielen Bildern erstellt werden. Dies alles kann man mit dem beigefügten GalleryCreator erledigen. Zusätzlich kann man jedem Bild einen fast beliebig langen Kommentar geben, denn dann angezeigt wird, sobald man in der Galerie vor dem Bild steht.
Sobald man ein Picture-Set erstellt hat, kanns auch schon losgehen. Im eigentlichen Programm wählt man dann das Picture-Set aus, dass man sich ansehen will. Danach wählt man noch eine Galerie aus, in der die Bilder aufgehängt werden soll. Nach einer kurzen Ladeperiode kann man sich frei druch das Level bewegen und sich die Bilder anschauen. Aber das ist noch nicht alles. Der Sysygy Image Viewer bietet auch eine Art Mehrspieler-Modus an. Wenn jemand einen Server erstellt, kann man sich zu diesem verbinden und dann gemeinsam durch die Levels laufen. Eigentlich genau so wie in einem First-Person-Shooter nur ohne Waffen und mit Bildern an der Wand. Mit Hilfe eines auf php und MySQL basierenden Master-Servers kann man sich bequem zu verschiedenen Servern verbinden.
Damit es im Single-Player-Modus nicht allzu langweilig wird, kann man zusätzlich noch Bots in die Galerie mit einbinden, die dann ebenfalls durch das Level laufen und sich die Bilder anschauen. Zudem kann man entweder der begefügten Musik zuhören, oder auch eine eigene PlayList mit den eigenen Musikdateien zusammenstellen.

Die Sprache des Hauptprogramms sowie von der Hilfe ist Englisch. Das Hauptprogramm ist zudem multi-language-fähig und beinhaltet bereits eine deutsche Übersetzung, die bei einem deutschen Windows automatisch geladen wird (kann man aber auch manuell einstellen)

Systemvoraussetzungen
Minimale Systemvorraussetzungen
  • Getesten mit Windows XP SP 2 (Windows 9x/ME/NT/2000/Vista sind nicht getestet) (Windows 9x/ME/NT/Vista wird offiziel nicht unterstützt)
  • 256 MB RAM (je nach Betriebssystem kann auch mehr benötigt werden)
  • 40 MB Festplattenplatz + Platz für die Picture-Sets (ein Picture-Set mit 50 Bildern braucht ca. 5 MB)
  • OpenGL 1.3 - fähige Grafikkarte mit mindestens 64 MB Video RAM
  • Minimale Bildschirmauflösung: 800x600
  • Windows kompatible Soundkarte
  • Maus und Tastatur
Empfolene Systemvorraussetzung
  • Windows XP SP 2
  • 1024 MB RAM
  • 40 MB Festplattenplatz + Platz für die Picture-Sets (ein Picture-Set mit 50 Bildern braucht ca. 5 MB)
  • OpenGL 2.0 - fähige Grafikkarte mit 128 MB Video RAM (GeForce 6800 Ultra oder ähnliche)
  • Windows kompatible Soundkarte mit Surround-Sound-Support
  • Internetanbindung mit ca. 10KB/s upload und 50KB/s download
  • Bildschirmauflösung >= 1024*768x32
Ein kurzer Blick in die Features
  • Komplett selbstgeschriebene Engine. Die Engine enthällt einen Textur- und ResourceManager, Kollisions-Engine, Server/Client-Engine, Script-Engine, Sound-Engine, KI-Engine und eine Grafik-Engine
  • Die GrafikEngine benutzt OpenGL zur Ausgabe. Das selbstgeschriebene Level-Format ist in einem VFS eingebettet und ist objekt-orientiert aufgebaut. Objekte steuern dabei die einzelnen Surfaces und helfen bei der Kollisionskontrolle. Die einzelnen Surfaces haben viele verschiedene Einstellungsmöglichkeiten, angefangen vom Blending-Mode bis hin zur Shader-Einbindung.
  • Die Lightmaps werden vom Editor ber Raytracing berechnet. Bisher ist nur Direct-Lighting eingebaut, für spätere Engine-Versionen ist auch Indirect-Lighting geplant. Die Lightmap-Auflösung jedes Surface kann beliebig skaliert werden. So kann für Surfaces mit wenig Licht- und Schattenabwechlsung eine kleinere Auflösung gewählt werden, um speicher zu sparen. Die Lightmaps werden dann noch durch einen Anti-Aliasing-Filter gejagt, um weichere Kanten zu zeichnen. Die Berechnungsdauer für die Lightmaps der mitgelieferten Karten hat insgesammt 15 Stunden gedauert.
  • Soundausgabe per FMod: die einzelnen Sound-Ermitter haben jeweils eine eigene Playlist, die automatisch verwaltet wird. Jeder Sound-Ermitter hat verschiedene Optionen, wie z.B. 3D oder 2D Sound. Dabei können die Sounddateien wahlweise aus dem Virtual-File-System oder direkt von der Festplatte geladen werden.
  • Selbstgeschrieben Script-Engine, die Pascal als Gramatik benutzt. Sie unterstützt viele Grundarten wie Byte, Single und String. Ebenso können Functios und Procedures mit beliebig vielen Parametern erstellt werden, die optional auch var-Parameter seien können. Ebenso unterstüzt die Script-Sprache die üblichen for, repeat und while-Schleifen. If und case-Anweisungen (auch mit Strings) sind ebenfalls vorhanden, genauso wie Kompileranweisungen wie {$IFDEF} oder {$INCLUDE}. Zudem können weitere Units per uses-Deklaration hinzugefügt werden. Es können "echte" Delphi-Funktionen eingebunden werden. Als zusätzliche Hilfe können diese externen Funktionen auch in Klassen zusammengefasst werden, die auch Klassenvererbung unterstützen. Auch können Variablen aus dem Programm heraus ausgelesen und verändert werden. Ein Compiler kompiliert die Skripte einmal in ByteCode, der dann von einer RunTime-Klasse ausgeführt wird.
  • Selbstgeschriebenes Multiplayer-Protokoll mit Chatunterstützung, Rechtesystem, Kick- und Bannoption, Web-Interface zur optionalen Steuerung des Servers, File-Download, Passwortsystem, ...

Screenshots
GalleryCreator:
http://www.godlikesoft.de/images/ext...b/Screen51.jpg http://www.godlikesoft.de/images/ext...b/Screen52.jpg

Sysygy Image Viewer:
http://www.godlikesoft.de/images/ext...b/Screen53.jpg http://www.godlikesoft.de/images/ext...b/Screen54.jpg http://www.godlikesoft.de/images/ext...b/Screen55.jpg
http://www.godlikesoft.de/images/ext...b/Screen56.jpg http://www.godlikesoft.de/images/ext...b/Screen57.jpg
(der Balken rechts unten ist nur die aktuelle Position der Musikwiedergabe, keine Zeitbeschränkung)

Noch kurz ein Hinweis
Für alle, die keine Lust haben die Readme zu lesen: ich möchte euch warnen, dass das Erstellen eines Picture-Sets relativ lange dauern kann (je nach Auflösung des Ursprungsbildes 1 bis 2 Sekunden pro Bild). Ihr könnt zwar jederzeit das Hinzufügen abbrechen, doch ich würde euch raten, die Anzahl der Bilder auf ca. 50-60 pro Picture-Set zu begrenzen. Ihr könnt natürlich auch mehr verwenden, doch ich wollt euch nur sagen, dass das doch etwas Zeit in Anspruch nehmen kann.
Ich könnte zwar den Vorgang beschleunigen, dadurch würde aber die Qualität der Bilder zu sehr leiden - und das wäre gerade in einem Bildbetrachter nicht so toll.

Download
  • Download: 1.3 (mit Setup)hier (ca. 36 MB).
  • Download: 1.3 (ohne Setup)hier (ca. 37 MB)
  • Download: Beispiel-Picture-Set hier (ca. 8 MB)
  • Download: Patch auf Version 1.3 hier (ca. 2,5 MB)
  • Editor: auf Anfrage (bisher ohne Hilfe)
  • Lizenz: Freeware (Redistributionerlaubnis nur auf persönliche Anfrage)
  • Sprache: [Readme]: Englisch, [GalleryCreator]: Englisch, [Hauptprogramm]: Multi-Language (Englisch + Deutsch enthalten)
  • Version: 1.3
  • Programmiert mit: Delphi 7
  • Release-Datum: 13.05.2008

ChangeLog
Die neue Version steht als Patch sowie als kompletter Download zur Verfügung. Beide Dateien sind unter dem oben angegebenen Download-Link verfügbar. Der Patch ist nur für ein Update von der letzten Version aus gültig.

Version 1.3
  • Programm: Neue Karte hinzugefügt
  • Gallery Creator: seltene Probleme beim erstellen von Picture-Sets behoben (dank der Mithilfe von bitsetter)
  • Gallery Creator: Bilderqualität beim Hinzufügen von Bildern einstellbar
  • Gallery Creator: Bilder, die nicht eine Farbtiefe von 24 Bit haben, können jetzt auch hinzugefügt werden
  • Fehlendes Texturpacket nachgeliefert (wird nur benötigt, wenn keine Shader ausgewählt sind)
  • Chat-Fenster im Multiplayer nach hinten verlagert
  • Bot-Chat wird jetzt im Programm angezeigt (deaktivierbar)
  • Rechtschreibfehler in der deutschen Sprachdatei behoben
Version 1.2
  • Screenshots werden jetzt im Programmordner gespeichert (falls Konfiguration so eingestellt)
  • letzten vier Sekunden vom ersten Lied rausgeschnitten (war keine Musik mehr)
  • Nachrichtenfenster bei Multiplayer-Ereignissen anders positioniert
  • Namen der Spieler werden jetzt angezeigt (Multiplayer)
  • Chatfenster jetzt auch außerhalb der Lobby (Multiplayer)
  • Esc schließt die Lobby bevor das Menü angezeigt wird (Multiplayer)
  • Gammawert wird jetzt gespeichert und ausgelesen
  • allgemeine Soundeinstellungen können geändert werden
  • Schriftfarbe der Servereinstellungen in der Lobby geändert
  • AVs im Server behoben
  • Probleme beim Betreten der Galerie behoben (nur Mulitplayer)
  • Länge von Chat-Nachrichten nicht mehr so arg begrenzt
  • Pos1- und Ende-Tasten funktionieren bei den Eingabefeldern
Version 1.1
  • Ordner der Konfiguration jetzt beim Start wählbar (falls eine Wahl auf Grund der Rechte nicht möglich ist, kann man keine Auswahl treffen)
  • Kleiner Rechtschreibfehler in der deutschen Sprachdatei behoben
  • Taste für dauerhaftes Rennen eingeführt (default: Feststelltaste)
  • Weiche Animationsbewegungen deaktivierbar (manche mögen das nicht)

Feedback, Bugreports oder Ideen sind wie immer sehr erwünscht

Grüße
Dave
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
 
Benutzerbild von bitsetter
bitsetter

 
Turbo Delphi für Win32
 
#2
  Alt 9. Mai 2008, 11:56
Hi,

von der Grafik her ist dein Programm sehr gut. Stimmungsvolle Spiegel- Licht- und Schatten Effekte lassen die Galerie sehr realistisch wirken.
Das Programm ist schon ziemlich professionell gemacht, daher wohl die lange Entwicklungszeit.

Der Ton machte bei mir allerdings Probleme da immer ein Knacken wie bei einer Schallplatte im Hintergrund zu hören war.
35 MB Download ist auch nicht grade ganz ohne, wenn man das Programm nur mal antesten möchte.
Wie du schon geschrieben hast, dauert das Hinzufügen der Bilder nervig lange.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#3
  Alt 9. Mai 2008, 12:22
Erstmal danke für dein Feedback,

Ich hätte die Entwicklungszeit auch verkürzen können, wenn das zum einen nicht meine erste richtige OpenGl-Engine gewesen wäre und wenn ich nicht noch ein normales Leben gehabt hätte. Praktikas und Uni nehmen schon viel Zeit in anspruch.

Zu den Problemen mit dem Ton: ich habe gerade nochmal alle Parameter, die ich an FMod übergebe, nachgeprüft. Es ist eigentlich nichts dabei, was von den Beispielcodes der SDK abweist. Ich weiß nicht, ob ich da wirklich noch was machen kann, da der Sound ja komplett von FMod übernommen wird. Das Programm liefert nur die Daten, und die sind garantiert komplett. Bevor ein Sample geöffent wird, werden die Daten komplett in den Arbeitsspeicher geladen. Bei größeren Dateien extrahiere ich die Daten aus dem Virtual-File-System in eine temporäre Datei, die dann weiter von FMod bearbeitet wird. Sobald dann die Datei nicht mehr gebraucht wird, wird sie wieder gelöscht. Hast du dieses Knacken nur bei einzelnen Sounds (im Menü, nur die Musik, nur die Fußschritte ...) oder bei allen Sounds? Vieleicht hängts von ja von der Komprimierung ab, dass die Dekomprimierung zu langsam ist. Wenns allerdings alle Sounds sind, kanns fast nur an FMod liegen.

Ich weiß, das 35 MB kein Pappenstiel sind, aber ich habe wirklich schon gekürzt wo ich konnte. Ich könnte zwar z.B. ein paar Models löschen, doch das wollt ich eigentlich nicht.

Beim Hinzufügen der Bilder ist mir etwas eingefallen, aber leider erst gerade eben. Ich könnte ja z.B. per Dialog fragen, ob die Qualität der Bilder hoch oder niedrig seien soll. Somit könnte ich das Hinzufügen bei niedriger Qualität vieleicht beschleunigen. Werd es mal ausprobieren.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

 
Turbo Delphi für Win32
 
#4
  Alt 9. Mai 2008, 12:59
Habe es nochmal ausprobiert, das Knacken habe ich nur bei einzelnen Sounds.

Die Kollisionsabfrage der Personen zueinander stimmt noch nicht ganz.

Die Typen die da rumlaufen sehen aus, als wenn die gerade noch eine Knarre in der Hand hatten.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#5
  Alt 9. Mai 2008, 13:31
Mit den Sounds schau ich mir nochmal genau an, ob ich da nicht doch was finde, was eher suboptimal gelöst ist.

Die Kollisionsabfrage mit den Bots ist eher provisorisch eingebaut. Die Bots kollidieren untereinander nicht und weichem dem Spieler nicht aus - dass können sie nicht. Solch eine KI ist wirklich sau schwer zu machen, da sehr viele Details des Levels bearchtet werden müssen. Die Bots sollen ja z.B. beim Ausweichen nicht gegen Wände laufen. Auch muss z.B. irgendwie entschieden werden, welcher Bot wohin geht. Im Mehrspielermodus sollte die Kollisionsabfrage allerdings ganz gut funktionieren. Doch leider hab ich nur einen PC womit der Mehrspielerpart nicht wirklich getestet werden konnte.

Zu den Models: Das Problem ist, dass ich selbst keine Models erstellen kann. Ich hab daher freie Models für Egoshooter genommen. Die haben nunmal die Angewohnheit, eine Waffe tragen zu wollen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

 
Delphi 11 Alexandria
 
#6
  Alt 9. Mai 2008, 13:35
Die Screenshots sehen auf jeden Fall spitze aus . Werde mir das Programm heute Abend zu Hause mal runterladen und ansehen, bin schon sehr gespannt.
Detlef
  Mit Zitat antworten Zitat
Prototypjack

 
Delphi 2009 Professional
 
#7
  Alt 9. Mai 2008, 13:59
Moin,

Die Screenshots sehen wirklich äußerst interessant aus!

Aber: Ich denke an der Texturierung des Hauses könnte man noch feilen (besonders altes, dunkles und durch Verformung charismatisches Holz würde meiner Meinung nach besser zu den Blumen passen und dem ganzen noch einen interessanten Charakter geben).
Außerdem, und das ist der Grund, wieso ich dein Programm vorerst nicht antesten werden: Wieso braucht das Programm Rechte in irgendeinem Ordner, außer %appdata%? Sowas ist schlichtweg nicht nötig.

Ich hoffe du nimmst dir zumindest Vorschlag 2 zu Herzen.

Grüße,
Max
Max
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

 
Delphi 7 Professional
 
#8
  Alt 9. Mai 2008, 14:29
Ich weiß, dass das mit den Schreibrechten nicht so dolle ist. Warum ich das noch nicht geändert habe, hat mehrere Gründe.
  • Eigene Faulheit - ganz klar. Es ist zwar möglich, die Daten in %appdata% auszulagern, doch ich bin zu faul dafür gewesen.
  • Bei der Entwicklung ist es nicht sehr sinnvoll, wenn das Programm die Daten kreuz und quer auf der Platte verteilt. Wenn ich dann was ändere muss ich in mehreren Ordner nachschauen und gegenenfalls die Daten anpassen. Außerdem ist es zum Testen nicht sehr sinnvoll. Wenn ich jetzt einen Testlauf starte und dazu das Programm temporär in ein anderes Verzeichniss kopiere, dann kann ich ohne Mehraufwand nicht einfach testen, ob alle benötigten Dateien vorhanden sind, da sie sich ja auch in %appdata% befinden könnten
  • Ich persönlich HASSE %appdata%. Mein Windows ist auf einer eigenen Partition, alle Programme befinden sich auf einer anderen Partition. Trotzdem muss ich der Windowspartition mehr Platz geben, obwohl der von der eigentlichen Installation benötigte Platz relativ dazu sehr klein ist. Diese ganzen Ordner wie Microsoft Shared und wie auch immer sie heißen, machen mich wirklich sauer. Ich weiß, dass man die Ordner theoretisch anders zuweisen kann, doch daran hab nach der Installation von Windoofs nicht gedacht - und jetzt im Nachhinein ist mir das zu risikoreich. Ich finde es sinnvoll, Programme und Daten zu trennen, aber nicht so.

Die Schreibrechte werden aber nur für bestimmte Aktionen gebraucht: zum einen beim Speichern der Konfiguration. Diese ist in den Unterordner [Data\Config] ausgelagert. Zum anderen beim Downloaded von Dateien (Picture-Sets, Galerien, Texturen oder Models) von einen Server. Vom Code her ist beides schnell auslagerbar, da alle Ordner in Variablen gespeichert sind. Doch ich müsste jetzt für die Models, die Maps, die Texturen und die Picture-Sets zwei Ordner angeben, in denen dann gesucht wird. Wie gesagt machbar ist es, sehe wirklich keine Probleme darin. Doch mir fehlt gerade die Motivation. Aber ich werd mich morgen wahrscheinlich einfach dazu zwingen müssen.

Es sollte auch ohne Schreibrechte funktionieren. Beim erstellen der Picture-Sets kommt man zwar nicht darum, aber sonst: wenn man die Konfiguration jedesmal neu machen will und keine Daten von anderen Servern herunterladen will, wird der Rest funktionieren. Wie gesagt, ich werd mir das auf jedenfall zu Herzen nehmen und ausbessern, aber nicht heute. Morgen oder übermorgen wirds dann wahrscheinlich einen Patch geben.
  Mit Zitat antworten Zitat
mkinzler

 
Delphi 11 Alexandria
 
#9
  Alt 9. Mai 2008, 14:34
Damit disqualifizierst du dein Programm aber für alle Benutzer, die keine Adminrechte besitzen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

 
Delphi 11 Alexandria
 
#10
  Alt 9. Mai 2008, 14:35
Nun lasst ihn doch mal machen, er sagt doch, dass er das in Kürze ändern wird
Detlef
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 11  1 23     Letzte » 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz