AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Spiel] Flos DrawBall [neue Version: 06.01.09]
Thema durchsuchen
Ansicht
Themen-Optionen

[Spiel] Flos DrawBall [neue Version: 06.01.09]

Ein Thema von Florian H · begonnen am 26. Nov 2006 · letzter Beitrag vom 25. Nov 2011
Antwort Antwort
Seite 18 von 22   « Erste     8161718 1920     Letzte »    
Florian H
Registriert seit: 30. Mär 2003
Hallo zusammen,

mir kam vor einigen Wochen eine prinzipiell ganz nette Spielidee in den Sinn, deren Konzept ich dann auch gleich etwas ausarbeitete und schon bald war ich dann munter am Programmieren. Dann wieder ein paar Wochen nicht und dieses Wochenende dann doch wieder.
Soviel zur sinn- und zwecklosen Vorgeschichte.

Jedenfalls kann ich euch nun eine Version von "Flos DrawBall" präsentieren, die irgendwie auch schon spielbar ist.

Bei dem Spiel geht es darum, einen oder mehrere Bälle in ein Zielfeld zu bekommen.
Das ganze geschieht über Beschleunigungsfelder, die den Ball in eine bestimmte Richtung ablenken, wenn er über sie drüber rollt.
Diese Beschleunigungsfelder kann man auf das Spielfeld aufmalen, indem man die Richtung der Beschleunigung mit den Pfeiltasten auswählt (es gibt also links, rechts, oben und unten) und dann mit der Maus wie in einem Zeichenprogramm quasi malt .. man kann so den Ball ins Ziel führen.
Daneben gibt es (bisher..) ein "böses" Feld, welches der Ball nicht berühren darf (nehmen wir an es ist Salzsäure oder ein Abgrund) und Tintenpatronen - denn die Farbe (Beschleunigungsfarbe oder so ) ist limitiert und man muss ggf. etwas haushalten - oder eben diese Patronen sammeln.

Neu (06.01.09):
  • neues Levelformat, zusätzliche Metainformationen zu Levelsets und einzelnen Leveln (z.B. Titel)
  • Tutorial-Level mit Erklärungen des Spiels und aller Elemente
  • etliche grafische Änderungen und zusätzliche Grafikeffekte (fast alle Elemente wurden neu gemacht oder überarbeitet), z.B. Schatten, Rauch, Beamer-Blitze, Lava, ...
  • neue Kollisionsengine "Ball -> Wand", dadurch deutlich realistisches Abprallen vor allem an Ecken
  • Soundtrack von fishbrain - bitte auch dazu Feedback! (btw sind alle Sounds etwas leise, muss ich noch überarbeiten)
  • Umstieg auf openGL, da directX starke Grafikprobleme macht - testbar durch Umbenennen der Datei "use_dx.NOT" in "use_dx"
  • deutliche Performancegewinne - bis zu 800% FPS-"Steigerung" bei umfangreichen Leveln (wobei die FPS ja auf 40 limitiert sind)
  • zusätzliche HUD-Einblendungen, z.B. mit Levelinformationen oder dem Ergebnis (Roadmap: Punkteberechnung, Highscores, Statistiken), "Spiel neustarten" direkt mit der [R]-Taste

Neu ( 23.12.08 ):
  • Komplett neues Menü
  • Level sind nun in Level-Packs sortiert und diese sind im Spiel dann anwählbar (bisher relativ rudimentär)
  • verbesserte Grafiken (z.B. der Ball)
  • zusätzliche Effekte, zum Beispiel die Ball-Spur in der jeweiligen Farbe der Richtung
  • natürlich viele kleinere Verbesserungen, Bugfixes und grafische Anpassungen


Neu (02.04.07):
- basiert komplett auf Andorra 2D anstatt DelphiX -> deutlich bessere Performance und Grafikeffekte (s.u.)
- etwa die Hälfte aller Grafiken neu erstellt, um die neue Grafikengine voll ausnutzen zu können (Alphachannel etc)
- Kugeln kollidieren miteinander, anstatt einfach durch sich durch zu rollen
- wie immer: übel viele Bugs gefixt (u.a. Speicherfehler, wenn man außerhalb des Fensters malen wollte)

Neu (31.03.07):
- grafische Verbesserungen, Anzeige der verbleibenden Bälle etc

Neu (25.03.07):
- viele kleine Bugs oder Unzulänglichkeiten gefixt (Kollisionen, Menü etc)
- Performance verbessert (v.a. bei vollgemalten Levels deutlich spürbar, sollte auch auf älteren PCs kaum mehr ruckeln)
- neue Elemente: Beam-Felder, Beschleunigungsblöcke, Kissen und Bumper


Kleine Erläuterung:
Beamfelder: davon gibt es 4 verschiedene, bestehend jeweils aus einem oderer mehreren Start- und Zielfeldern, bei mehreren Zielfeldern kommt der Ball zufällig in einem davon heraus
Beschleunigungsblöcke: wirken sich genauso stark aus wie aufgemalte Beschleunigungsfarbe, eine Beschleunigung kann also maximal ausgeglichen werden auf so einem Feld
Kissen: bremst die Bewegung des Balles bei Berühung ab
Bumper: lässt den Ball stärker zurückprallen als er ankam
Nichtbemalbare Fläche: sind die gestreiften grauen Flächen, dort kann keine Farbe draufgemalt werden ("tote Zone")

Ein ausführliches Tutorial-Level ist integriert, ist auf jeden Fall zu empfehlen ...

Level-Editor von xZise[DP-Thread]: klick!


Zum Download mit Musik (extern, Direktlink, 4,4MB)


Viele Grüße
Flo
Miniaturansicht angehängter Grafiken
drawball080_202.jpg   screen1_461.jpg  
Angehängte Dateien
Dateityp: rar release_0.80-nomusic_961.rar (1,99 MB, 244x aufgerufen)
 
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#171
  Alt 23. Dez 2008, 13:32
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
Andreas
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#172
  Alt 23. Dez 2008, 13:42
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.
Michael Springwald
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#173
  Alt 23. Dez 2008, 17:22
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
Fabian
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#174
  Alt 23. Dez 2008, 17:26
Zitat von xZise:
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).
Florian Heft
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#175
  Alt 23. Dez 2008, 17:29
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....
Michael Springwald
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#176
  Alt 23. Dez 2008, 19:31
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
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#177
  Alt 23. Dez 2008, 20:55
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.
Andreas
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#178
  Alt 23. Dez 2008, 22:25
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.ä.
Florian Heft
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#179
  Alt 23. Dez 2008, 22:29
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.
Michael Springwald
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#180
  Alt 24. Dez 2008, 06:54
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 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
Fabian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 18 von 22   « Erste     8161718 1920     Letzte »    


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 21:05 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