Autor Beitrag
Edlmann
Hält's aus hier
Beiträge: 8
Erhaltene Danke: 1



BeitragVerfasst: Do 07.04.11 16:49 
Guten Nachmittag liebes Delphi-Forum,
ich hatte in letzter Zeit das dringende Bedürfnis, endlich einmal mit OpenGL ein fertiges Spiel auf die Beine zu stellen.
Fertig ist es noch nicht, aber Fertig ist ja auch definitionssache ;) Es ist bisher mal Spielbar, auch wenn ich noch
einige Änderungen vorhabe.

Zur Spielidee:
Sinn hat dieses Spiel nicht, wie so viele Minigames. Der Spieler ist eine simple Figur, und muss andere
Formen abschießen. So simpel es sich anhört, ich spiele das Spiel mittlerweile mehr als dass ich es weiterentwickle ;)
Das ganze Spiel ist im Tron-Stil gehalten, und mag dem einem oder anderem bekannt vorkommen, doch selber gemacht macht
ein Spiel imho immer doppelt so viele Laune wie runtergeladen ;)
Die grünen "Dinger", die jeder Gegner fallen lässt, sind Multiplikatoren. Der Multiplikator bestimmt, wie viele Punkte man pro Gegner bekommt
(10 * Multiplikator), womit der Score gegen Ende stark in die Höhe schießt (In unserer Schule liegt der Record für Pacifism bei 50 Millionen)

Steuerung:
Bewegen kann man den Spieler mit den Tasten WASD wahlweise Pfeiltasten (funktionieren beide, aber am besten nicht gleichzeitig benutzen ^^), gezielt wird mit der Maus.
Mit der linken Maustaste kann man schießen.

Einstellungen etc:
F3: Screenshot machen, wird im Unterordner Screenshots erstellt
F5: Partikel an/ausschalten, sollte auf aktuellen Maschinen nicht nötig sein (In der Schule ist dies aber von Vorteil :D)
F6: Lichteffekte an/aus (sieht mit deutlich besser aus, aber wers lieber schlicht haben möchte...
F7: Equalizer im Hintergrund an/aus
F8: Fenstermodus/Vollbildmodus
F9: Joypad an/aus
Esc: Menü aufrufen (funktioniert nicht bei der Game-Mode-Auswahl)
X: Nächster Song
+ -: Lautstärke der Musik einstellen

Die verschiedenen Spielmodi:
On the Run: Nur relativ langsame Gegner, die dem Spieler folgen. Der einfachste Spielmodus bisher.
Moshpit: Alle 3 Gegnerarten, die ich bisher implementiert habe, erscheinen zufällig. Meiner Meinung nach der schwierigste Modus, da man auf viele verschiedene Dinge achten muss.
Waves: Nur Gegner, die sich gerade über den Bildschirm bewegen, immer über die gesamte Bildschirmbreite. Man muss sich also einen Weg durch die Gegner bahnen, um hier zu überleben.

Download:
dl.dropbox.com/u/12342503/ShapeWars.rar
Ohne Musik:
dl.dropbox.com/u/123...20-%20No%20Music.rar

Dank an:
Steffen Xonna (aka Lossy eX) für seine Textsuite
Sascha Willems für den OpenGL-Header der DelphiGL
Der Community der DelphiGL für ihre Tutorials
Jan Horn für seinen Texture-Loader
Den Machern der bass.dll/bass_fx.dll
1024MB (aka Leslie Wai) für einige der Songs
Culxxaw für das Bereitstellen von Server-Kapazitäten und das schreiben der nötigen .php-Scripte für den Online-Highscore
igel457 für seine Klasse zum Kapseln eines Gamepads (veröffentlicht [URL="http://www.delphipraxis.net/71569-gamepad-joystick-abfragen.html#post483035"]hier[/URL])

Würde mich über Feedback, Verbesserugnsvorschläge etc freuen,
Und es wäre super wenn ihr mir Rückmeldung über die Performance geben könntet, die Partikel-Engine ist schon relativ aufwendig...
Vor allem das testen des Online-Highscores auf Bugsicherheit ist wichtig ;)
Lg, Edlmann

(P.S. Ich hoffe die Links nach draußen sind kein Problem, aber es ist zu groß ums hier hochzuladen und so kann ich es besser aktuell halten)


Zuletzt bearbeitet von Edlmann am Mo 18.04.11 12:40, insgesamt 2-mal bearbeitet

Für diesen Beitrag haben gedankt: Yogu
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Do 07.04.11 16:55 
user profile iconEdlmann hat folgendes geschrieben Zum zitierten Posting springen:
Guten Nachmittag liebe DP

Pssst, wir sind das DF und nicht die DP. :zwinker:
Insofern, Crosspost.

Könntest du Version ohne Musik, sowie die Screenshots als Anhang hier hochladen? Hat u.a. den Vorteil, dass diese z.B. nicht nach einer bestimmten Zeitspanne aus dem Web verschwinden. :)
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Do 07.04.11 17:32 
Benutzt du Timebased Movement? Wenn ja, stimmt damit was nicht ;)
Es sieht so aus, als ob die Schussfrequenz extrem runtergeht sobald Gegner erscheinen, dass macht es etwas sinnfrei. Beispiel: im Wave-Mode, solange noch kein Gegner zu sehen ist sind das ~5 Schüsse/Sekunde. Sobald dann welche auf dem Bildschirm erscheinen bestenfalls noch 2Schüsse/s, das macht es etwas schwierig schnell genug irgendwas zu treffen.
Gleiches auch in den anderen Modes, da sterb ich einfach nur weil das Ding nicht schnell genug nachlädt, selbst wenn jeder Schuss ein Treffer ist.

Was auch nervt, sind Gegnergruppen die direkt um mich rum spawnen, ohne dass ich irgend ne Chance hätte schnell rauszufliegen.

Alles in allem ganz lustig, die Art der Steuerung ist mal was anderes ;)

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
KleinesPferd
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 29



BeitragVerfasst: Do 07.04.11 18:32 
Seltsamerweise bekomme ich folgenden Fehler als ich vor einer riesen Horde abhaun wollte.

diabolustogae.kilu.de/Bilder/Fehler.jpg

Desweiteren: sehr neckisch :)

Edith sagt: Hab mich mti 100 mio auf Platz 2 eingetragen, aber beim Eintragen selber wurde ich als Platz 3 geführt. Ist das normal?
Und noch eine Frage: ist es rein rechnerrisch möglich, ab einem Multiplikator von 2000 mit den Frontgeschützen all deine Shapes abzuschiessen? Hab so das Gefühl, das mehr Shapes spawnen als ich an Schuss abfeuern kann. Und die Peripheriegeschütze sind da auch nicht allzu hilfreich.
Edlmann Threadstarter
Hält's aus hier
Beiträge: 8
Erhaltene Danke: 1



BeitragVerfasst: Fr 08.04.11 08:52 
@Marc: Ups, sorry ^^

Und die Version ohne Musik hier als Anhang hochzuladen fänd ich nicht so super, da dann das Updaten deutlich mehr Arbeit wird als es im Moment ist.

@Martok: Ne, Time-Based-Movement ist noch nicht drinne, im Moment läuft die Bewegung einfach über einen Timer und das Rendern über das OnIdle-Event, was natürlich auf schwachbrüstigeren Rechnern nicht ganz so fair ist. Werd ich aber noch umstellen schätz ich mal, das Projekt ist erst 2 einhalb Wochen alt ;)

Die Gegnergruppen die um einen spawnen können eigentlich nur im Modus Moshpit kommen, bei On-The-Run wird zumindest bei den Rechtecken überprüft dass die nicht zu nah am Spieler sind (manchmal muss man aber in einen Gruppe von Gegnern direkt hinein abhauen, dann hat sich das auch)

@Kleines Pferd: Mmh...kann ich erstmal so nicht reproduzieren den Fehler, und wüsste spontan auch nicht wo der herkommt, von welcher Liste...und 5 Milliarden Gegner waren das auch noch nicht auf dem Bildschirm :D werds mir aber mal anschauen

Vielen Dank für das Feedback ;)
KleinesPferd
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 29



BeitragVerfasst: Fr 08.04.11 09:18 
Mich darfst du nicht fragen, welche Liste da übergelaufen ist. Ich habs halt mehrmals gestartet, weil ich es uncool fand, bei Faktor 230 zu sterben ;)

Was grad öfter mal passiert ist, ist nach dem Start eines neuen Durchlaufes, dass seeeeehr viel lila Objekte rumschwirren, und ich somit gleich zu beginn ein Leben verloren habe. Beim ersten Spiel selber noch nicht passiert, aber so beim 3. oder 4. Anlauf.

Grüße
Edlmann Threadstarter
Hält's aus hier
Beiträge: 8
Erhaltene Danke: 1



BeitragVerfasst: Fr 08.04.11 13:36 
user profile iconKleinesPferd hat folgendes geschrieben Zum zitierten Posting springen:
Mich darfst du nicht fragen, welche Liste da übergelaufen ist. Ich habs halt mehrmals gestartet, weil ich es uncool fand, bei Faktor 230 zu sterben ;)

Was grad öfter mal passiert ist, ist nach dem Start eines neuen Durchlaufes, dass seeeeehr viel lila Objekte rumschwirren, und ich somit gleich zu beginn ein Leben verloren habe. Beim ersten Spiel selber noch nicht passiert, aber so beim 3. oder 4. Anlauf.

Grüße


Das dürfte an meinem bisher sehr simplen Anti-Cheat liegen...Mann kann im Moment schon nicht mehr einfach mit Cheat Engine o.ä. den Score verändern, dann spawnt das Spiel halt 200 Gegner...kann sein dass das noch nicht 100% zuverlässig zurückgesetzt wird zwischen den Runden, werds mir anschauen
Tilo
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Sa 09.04.11 10:56 
Hallo Edlmann,

Ich wollte heute mal das Spiel ausprogrammieren aber bei mir läuft es nicht.

Bei der Variante mit Musik spielt die Musik, der Bildschirm bleibt weiß und nach einiger Zeit meldet Windows dass das Programm nicht reagiert. Bei der Variante ohne Musik sehe ich nach etlichen Sekunden statt einer weißen Fläche einen Startbildschirm (Auswahl des Spielmodus) aber sobald ich die Maus bewege wird die Anzeige weiß.
Die Eckdaten meines Rechners:
1,6Ghz Doppelherz
Win 7 32bit
etwa 2,9GB RAM
Grafik: Nvidia G0 7300 mit nur 64MB Ram. (Ist halt ein Laptop von Okt2006)
Edlmann Threadstarter
Hält's aus hier
Beiträge: 8
Erhaltene Danke: 1



BeitragVerfasst: Sa 09.04.11 14:40 
Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

Das wird schätz ich mal an der Grafikkarte liegen...allein die Hintergrund-Textur belegt etwa 20 MB Graka-Speicher, da bleibt für den Rest nicht mehr viel übrig...Es ist halt so mein erstes Experiment mit OpenGL, und von daher nicht unbedingt das performanteste
KleinesPferd
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 29



BeitragVerfasst: Sa 09.04.11 15:06 
user profile iconTilo hat folgendes geschrieben Zum zitierten Posting springen:
Hallo Edlmann,

Ich wollte heute mal das Spiel ausprogrammieren aber bei mir läuft es nicht.

Bei der Variante mit Musik spielt die Musik, der Bildschirm bleibt weiß und nach einiger Zeit meldet Windows dass das Programm nicht reagiert. Bei der Variante ohne Musik sehe ich nach etlichen Sekunden statt einer weißen Fläche einen Startbildschirm (Auswahl des Spielmodus) aber sobald ich die Maus bewege wird die Anzeige weiß.
Die Eckdaten meines Rechners:
1,6Ghz Doppelherz
Win 7 32bit
etwa 2,9GB RAM
Grafik: Nvidia G0 7300 mit nur 64MB Ram. (Ist halt ein Laptop von Okt2006)


Eine Frage ist natürlich auch, wie gut die OpenGL Fähigkeiten in einer Mobilen Grafikkarte von vor 5,5 Jahren implementiert sind.

Soll nur eine rhetorische Frage sein, die aus eigener Erfahrung herrührt. Denn zu einer ähnlichen Zeit hatte ich bei einem Desktop PC und einer ATI Karte ein OpenGL Spiel versucht, was aber an gewaltigen Performaceproblemen gescheitert ist.

Grüße
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Sa 09.04.11 15:09 
Du könntest das Spiel auch in der Projektecke von DelphiGL.com vorstellen :)
// Ups, hast du ja schon... ^^

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
Edlmann Threadstarter
Hält's aus hier
Beiträge: 8
Erhaltene Danke: 1



BeitragVerfasst: Sa 09.04.11 16:50 
user profile iconTilman hat folgendes geschrieben Zum zitierten Posting springen:
Du könntest das Spiel auch in der Projektecke von DelphiGL.com vorstellen :)
// Ups, hast du ja schon... ^^


Joah, schon relativ früh, aber irgendwie ist dort das interesse nicht so groß ;)
Tilo
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Sa 09.04.11 21:32 
user profile iconKleinesPferd hat folgendes geschrieben Zum zitierten Posting springen:
Eine Frage ist natürlich auch, wie gut die OpenGL Fähigkeiten in einer Mobilen Grafikkarte von vor 5,5 Jahren implementiert sind.


Anscheined anehmbar gut. Habe es eben nochmal probiert und nun läuft es. Keine Ahnung was die Ursache war. Der Rechner wurde nicht neugestart. Ich kann bei der No-Music Version sogar auf einem zweitem Monitor Videos auf YouTube und ein lokales Video abspielen und neben spielen. Hab jezt echt keine Ahnung was für Probleme der Rechner heute früh hatte. Vielleicht Morgenmigräne :?:
beastofchaos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 247
Erhaltene Danke: 4



BeitragVerfasst: Sa 09.04.11 22:31 
Ich frag mich trotzdem, was du für Rechnung machst, um zu prüfen, ob die Teile den Spieler treffen. (??)

Ich arbeite im moment an einem minigolfprogramm (ohne openGl etc.). Ich arbeite in dem mit Vektorenrechnungen. Und bei meinem alten Compi (hab jetzt endlich einen neuen) stockt das manchmal, weil das Programm tausende Rechnungen ausführt um eine Kollision zu überprüfen und dass 100mal pro Sekunde. Da frag ich mich schon ( auch wenn die kein delphi haben ), wie das so aufwendige Spiele wie CallofDuty etc. laufen... Und auch wie deins da tickt, auch wenn das noch nicht sooo aufwendig vll ist von den rechnungen her...
Edlmann Threadstarter
Hält's aus hier
Beiträge: 8
Erhaltene Danke: 1



BeitragVerfasst: So 10.04.11 11:10 
Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

Die meisten Kollisionsberechnungen hierbei sind simple 2D-Pythagorasse (Deutsch? wozu? :D), also betrachte ich all meine Objekte eigentlich als Kreise. Von daher ist das ganze relativ simpel, und die Formen sind auch so aufgebaut, dass sie alle ähnlich groß sind etc, und die Berechnungen immer stimmen. Einzige komplexere ist der Schwanz der Schlange, da hier die Elemente immer kleiner werden.
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: So 10.04.11 15:04 
@Edlmann ich hab mal nen Meinungsthread bei DelphiGL gestartet, vielleicht antwortet jetzt endlich mal jemand ^^ www.delphigl.com/for....php?f=14&t=9850

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)

Für diesen Beitrag haben gedankt: Edlmann
beastofchaos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 247
Erhaltene Danke: 4



BeitragVerfasst: So 10.04.11 15:55 
Ich hab jetzt das erste mal das Spiel gespielt und bin echt krass positiv überrascht :P

Was mich ein bisschen stört:

Bei vielen Gegner ist der Timer/ IdleHandler so überfordert, dass er ((wie bereits gesagt) zu langsam arbeitet. Da würde ich wirklich "Timebased Movements" reinmachen ( bei mir - Minigolf - sind das 3/4 Zeilen um die vergangene Zeit zu zählen und das dann in die Geschwindigkeit für den näcshten Punkt einzubauen ). Auch würde es mehr Spaß machen mit mehr Schuss. Bei vielen Gegner auf dem BIld schießt er halt weniger Schuss ab, was halt auch mit Geschwindigkeit des Compi zu tun hat :/

Aber dass es bei so vielen Gegnern langsamer ist, ist auch iwie ein lustiger Effekt. Es sollte nur die Schussfrequenz dann normal schnell bleiben.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 10.04.11 22:08 
Hey, das ist echt ein klasse Spiel für die Kaffeepause! Du hast eine einfache, aber geniale Idee wirklich gut umgesetzt. Ich finde vor allem angenehm, dass die Musik und diese ganzen Effekte nicht darauf abzielen, Adrenalin auszuschütten, sondern den Spieler zu entspannen. Super gemacht, weiter so! :zustimm:

Ein kleiner Bug ist mir aufgefallen: Im dritten Spielmodi hatte ich sehr wenig Punkte (ca. 400), aber als ich meinen Namen in die Highscore eingeben sollte, war das Eingabefeld ganz unten, daneben und neben dem wirklichen ersten Eintrag beides Mal eine eins.
Edlmann Threadstarter
Hält's aus hier
Beiträge: 8
Erhaltene Danke: 1



BeitragVerfasst: Mo 11.04.11 14:51 
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Hey, das ist echt ein klasse Spiel für die Kaffeepause! Du hast eine einfache, aber geniale Idee wirklich gut umgesetzt. Ich finde vor allem angenehm, dass die Musik und diese ganzen Effekte nicht darauf abzielen, Adrenalin auszuschütten, sondern den Spieler zu entspannen. Super gemacht, weiter so! :zustimm:

Ein kleiner Bug ist mir aufgefallen: Im dritten Spielmodi hatte ich sehr wenig Punkte (ca. 400), aber als ich meinen Namen in die Highscore eingeben sollte, war das Eingabefeld ganz unten, daneben und neben dem wirklichen ersten Eintrag beides Mal eine eins.


Wäre schon irgendwie fatal wenn du da falsch plaziert wurdest...werds nachher mal Versuchen nachzuvollziehen
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Di 12.04.11 16:10 
user profile iconEdlmann hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconKleinesPferd hat folgendes geschrieben Zum zitierten Posting springen:
Mich darfst du nicht fragen, welche Liste da übergelaufen ist. Ich habs halt mehrmals gestartet, weil ich es uncool fand, bei Faktor 230 zu sterben ;)

Was grad öfter mal passiert ist, ist nach dem Start eines neuen Durchlaufes, dass seeeeehr viel lila Objekte rumschwirren, und ich somit gleich zu beginn ein Leben verloren habe. Beim ersten Spiel selber noch nicht passiert, aber so beim 3. oder 4. Anlauf.

Grüße


Das dürfte an meinem bisher sehr simplen Anti-Cheat liegen...Mann kann im Moment schon nicht mehr einfach mit Cheat Engine o.ä. den Score verändern, dann spawnt das Spiel halt 200 Gegner...kann sein dass das noch nicht 100% zuverlässig zurückgesetzt wird zwischen den Runden, werds mir anschauen

Mir ist dieser Bug gerade eben noch einmal aufgetaucht. Ziemlich regelmäßig bei jedem neuen Start - wenn ich aber dann gleich abgebrochen und neugestartet habe, ging es wieder.

Ist es eigentlich beabsichtigt, dass sich der Spieler schneller bewegt, wenn er zwei Tasten gleichzeitig drückt, also diagonal fliegt? Meiner Meinung nach wirkt das etwas seltsam.