Delphi-PRAXiS
Seite 18 von 22   « Erste     8161718 1920     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Spiel] Flos DrawBall [neue Version: 06.01.09] (https://www.delphipraxis.net/81410-%5Bspiel%5D-flos-drawball-%5Bneue-version-06-01-09%5D.html)

igel457 23. Dez 2008 13:32

Re: [Spiel] Flos DrawBall [neue Version: 23.12.08]
 
Hallo,

ich habe dein Spiel gerade getestet. Sieht soweit schon einmal besser aus als die letzten Versionen, besonders der Partikeleffekt macht sich gut.

Allerdings war ich ein wenig erstaunt, dass das Spiel eine relativ niedrige Framerate hat und trotzdem 100% CPU-Auslastung hervorruft (normalerweise laufen meine Andorra 2D-Anwendungen mit über 400 FPS, dein Spiel hat gerade mal 40). Vielleicht kannst du noch irgendwo etwas optimieren.

Um die CPU-Auslastung zu minimieren bietet die aktuelle CVS-Version in der TAdPerformanceCounter Klasse die Property "MaximumFrameRate", über die du die FPS auf einen bestimmten Wert limitieren kannst und somit die CPU entlasten.

Weiter so mit dem Spiel,
Andreas

mimi 23. Dez 2008 13:42

Re: [Spiel] Flos DrawBall [neue Version: 23.12.08]
 
Zitat:

Oh, deine Nachricht ist mir jetzt irgendwie rausgegangen, mini. Machst du da noch was ?
An deinem Spiel im Moment nicht, ich hatte eine neue Version vorbereitet. Diesmal basierte sie komplett auf Andorra.
Aber wenn du mir dein Soruce-Code gibt, könnte ich ihn mal unter Lazarus Kompilieren lassen.

Ich habe allerdings vor DrawBall in mein GamePack mit aufzunehmen.

xZise 23. Dez 2008 17:22

Re: [Spiel] Flos DrawBall [neue Version: 23.12.08]
 
Zitat:

Zitat von Florian H
Ja, außerdem können Felder jetzt doppelt belegt werden, nämlich einmal mit einer Kugel und einmal mit einem anderen Feld (sinnvollerweise natürlich nicht gerade eine Wand o.ä.).
Muss mal schauen, ob ich das irgendwie ordentlicher implementiere ...

Okay das wird schon etwas komplizierter. Vielleicht steige ich mit dem Editor auch auf Andorra um.

MfG
xZise

Florian H 23. Dez 2008 17:26

Re: [Spiel] Flos DrawBall [neue Version: 23.12.08]
 
Zitat:

Zitat von xZise
Zitat:

Zitat von Florian H
Ja, außerdem können Felder jetzt doppelt belegt werden, nämlich einmal mit einer Kugel und einmal mit einem anderen Feld (sinnvollerweise natürlich nicht gerade eine Wand o.ä.).
Muss mal schauen, ob ich das irgendwie ordentlicher implementiere ...

Okay das wird schon etwas komplizierter. Vielleicht steige ich mit dem Editor auch auf Andorra um.

Das habe ich mir inzwischen auch überlegt, da ich jetzt ja auch Transparenz etc. brauche, um das im Editor ordentlich darzustellen.
Aber wie gesagt, ich muss mir mal überlegen wie ich das am Besten umsetze. Das Dateiformat bisher ist ja leider eh nicht sonderlich glücklich.

@igel457: Danke! Die Auslastung liegt am TdxTimer, dieser limitiert auch die fps auf 40 ..den werde ich aber bei Zeiten mal durch eine Idle-Loop ersetzen (mit dem adPerformanceCounter).

mimi 23. Dez 2008 17:29

Re: [Spiel] Flos DrawBall [neue Version: 23.12.08]
 
Zitat:

Okay das wird schon etwas komplizierter. Vielleicht steige ich mit dem Editor auch auf Andorra um.
Musst du nicht umgedingt. Meine 2D Engine für Canvas könnte dir evtl. Hilfe leisten.

Zitat:

Aber wie gesagt, ich muss mir mal überlegen wie ich das am Besten umsetze. Das Dateiformat bisher ist ja leider eh nicht sonderlich glücklich.
Hast du schon eine Idee für eine Besserung ?
Evtl. ein Rasterformat....

xZise 23. Dez 2008 19:31

Re: [Spiel] Flos DrawBall [neue Version: 23.12.08]
 
Zitat:

Zitat von Florian H
[...]Aber wie gesagt, ich muss mir mal überlegen wie ich das am Besten umsetze. Das Dateiformat bisher ist ja leider eh nicht sonderlich glücklich.[...]

Also ich könnte nichts an einem Levelformat aussetzen. Was man machen könnte, wäre eine binäre Speicherung. Wobei ich dann gerne die Möglichkeit hätte Metadaten zu speichern (wie Autor oder eine Beschreibung), sodass ich auf die "Hackmap" verzichtet kann. Auf eine Rasterkarte würde ich verzichten, da sie zum einen nicht immer besser sein muss und zum anderen nur eine Sache pro "Fixel" ^^ (Also Feldeinheit) gespeichert werden kann oder dass Format unnötig aufgebeläht wird.

Was Verbesserungswürdig ist, ist das Mappackformat. Ich würde dass ein eine Datei speicher. Also Metadaten, sowie die einzelnen Level.

Ein Vorschlag (menschenlesbar):
Code:
<Name des Levels>
<Anzahl der Levels>
<Länge der Beschreibung>
<Beschreibungstext>
<Levelinformationen des 1. Levels>

<Levelinformationen des 2. Levels>

....
Ein Beispiel:
Code:
MaPpAcK
2
8
Testpack
%10|20|30|40|
1|2|3|0|
2|3|4|0|
3|4|0|0|

%10|20|30|40|
1|2|3|0|
2|3|4|0|
3|4|0|0|
Nagut in dem Beispiel sind die beiden Karten, aber ich hoffe das Prinzip wird deutlich. Die einzelnen Level werden dadurch getrennt, das ein Leerzeile zwischen beiden ist, da dies normalerweise nicht in einem Level auftaucht. Ansonsten könntest du natürlich auch einfach eine "Nichtzahl" in diese Zeile schreiben, sodass ein neues Level dann daran erkannt wird.

Die binäre Speicherung hätte den Vorteil, dass die Levels kleiner würden (ich würde sagen auf < 50%), da du kein "Trennzeichen" und Zeilenumbruch mehr brauchst. Auch könntest du x und y Koordinate in einem Byte speichern (das Feld ist 12x16 Fixel groß, also < 255) und würdest so bei den Koordinaten nochmal 50 % sparen. Das Problem wäre dass das Erstellen, Auslesen und Bearbeiten schwieriger wird (dennoch würde ich es vorziehen, da es so irgendwie professioneller wirkt ^^).

MfG
xZise

igel457 23. Dez 2008 20:55

Re: [Spiel] Flos DrawBall [neue Version: 23.12.08]
 
Wie wäre es mit XML? XML ist Menschenlesbar und kann von Natur aus eine Hirachie (z.B. für Levelpacks) darstellen. Zudem hast du bei Updates auf neue Versionen keine Probleme mit dem Levelformat. Außerdem ist bei Andorra 2D schon eine XML-Bibliothek (modifizierte JvSimpleXML.pas) dabei.

Beispiel:
Code:
<levelpack>
  <level name="Level 1">
    <block type="mauer" x="8" y="9"/>  
    <block type="mauer" x="7" y="2"/>  
    <block type="mauer" x="5" y="1"/>  
    <block type="mauer" x="3" y="0"/>  
  </level>
  <level name="Level 2">
  </level>
</levelpack>
XML braucht zwar relativ viel Speicherplatz, aber da deine Levels ja nicht sonderlich groß sind, sollte es keine Probleme geben. Außerdem lässt sich XML gut komprimieren und sich im Notfall über die in Andorra 2D integrierte .tar.gz Unterstützung einlesen.

Florian H 23. Dez 2008 22:25

Re: [Spiel] Flos DrawBall [neue Version: 23.12.08]
 
Aloha,

binär wäre wohl für die Leveldateien wirklich gar nicht übel, werde da ein wenig experimentieren morgen :)

Für die LevelPacks dachte ich auch schon an XML, hab das damals aber nicht weiter verfolgt, werde das jetzt auch nochmal in Betracht ziehen, weil es sich ziemlich anbietet. Für die eigentlichen Leveldateien finde ich es aber ziemlichen Overkill ...

Rasterformat ist aber auch insofern schlecht, da ich inzwischen eine Doppelbelegung der Felder zulasse (prinzipiell sogar beliebig viel), sodass also zwei Feldtypen in einem einzigen Feld vorkommen können, was ja durchaus auch Sinn macht: z.B. ein nicht-bemalbares Beschleunigungs-Feld o.ä.

mimi 23. Dez 2008 22:29

Re: [Spiel] Flos DrawBall [neue Version: 23.12.08]
 
wie währe es mit einem Komprimierten Level Format ? Du könntest z.b. ein Zip Archiv nutzen.
Speicherst alles in eine XML Datei, die wiederum packst du mit zlib, die sollte es auch unter Lazarus geben.

xZise 24. Dez 2008 06:54

Re: [Spiel] Flos DrawBall [neue Version: 23.12.08]
 
Hallo Florian,
ich weiß die GUI ist igels Kram aber ich muss (zumindest bei den Pfeilen) immer doppelt auf den Pfeil klicken. Nervt ziemlich :)

Zitat:

Zitat von mimi
Zitat:

Okay das wird schon etwas komplizierter. Vielleicht steige ich mit dem Editor auch auf Andorra um.
Musst du nicht umgedingt. Meine 2D Engine für Canvas könnte dir evtl. Hilfe leisten.

Tut mir leid, aber ich verwende gerade Andorra 2D und damit läuft es jetzt schon mal ganz gut so. Wenn deine Engine gut mit Transparenzen umgehen kann und ich mit A2D nicht weiterkomme greife ich vielleicht darauf zurück.

MfG
xZise


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr.
Seite 18 von 22   « Erste     8161718 1920     Letzte »    

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