AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Spiel] BloodyQuest (~ do you like zombies ~)
Thema durchsuchen
Ansicht
Themen-Optionen

[Spiel] BloodyQuest (~ do you like zombies ~)

Ein Thema von BUG · begonnen am 19. Jan 2009 · letzter Beitrag vom 11. Apr 2011
Antwort Antwort
Seite 5 von 9   « Erste     345 67     Letzte »    
Benutzerbild von BUG
BUG
Registriert seit: 4. Dez 2003
Wer kennt folgende Situation nicht:

Man ist auf einem umgrenztem Feld von 800x600 Pixeln und hat 2 automatische Waffen mit nur 1.000.000 Schuss Munition.
Plötzlich strömen von überall her Zombies auf einen ein.

Während der Programmierung dieses Spieles sind keine Zombies zu Schaden gekommen.
  • Laufen: W-A-S-G
  • Schießen: Maustasten
  • Freeze: mittlere Maustaste
  • benötigt: openAL & openGL
So ungefähr lässt sich der Inhalt dieses Spiels zusammenfassen. Im Großem und ganzen eine Spielerei mit Partikeln* und Licht. Getestet unter Windows Vista.

Ich hab das Ganze mit einen Quadcore (Core 2 Quad Q6600) getestet, es kann also sein, dass einige Systeme mit den voreingestellten Einstellungen lahmen. Dann einfach daran schrauben und die Ergebnisse evtl. hier posten.

Ersetzt nicht grade den neusten Egoshooter, aber kurz vorm Einschlafen vorm PC ist es doch eine Herausforderung.

Benötigt openAL für Tonausgabe:
Eine Downloadseite gibt es hier: openAL-Download (ca. 550 kb)

// OpenSource Version //


Da mir mittlerweile klar ist das ich diesen Source nicht mehr anfasse und ja danach gefragt wurde, stelle ich ihn mal rein.
Wenn jemand etwas gravierendes auffällt, kann er das natürlich posten, aber ich werde den Code nicht weiter betreuen.

Der Highscoreteil ist dahingehend entschärft, das er nicht mehr mit dem Server von Mikescher funktioniert, kann aber wieder zum laufen gebracht werden.

Wenn jemand den Code als Ganzes oder in Teilen verwendet, bitte ich um die Verlinkung dieses Themas (auch in der Readme / in den Credits).

Um Verwechselungen vorzubeugen, bitte ich um die Vermeidung des Namens "BloodyQuest" in eigenen Veröffentlichungen (insbesondere als Titel).

Fremder Code:

dglOpenGL.pas und openAL.pas stehen unter ihrer eigenen Lizenz. Diese muss natürlich beachtet werden.
winutils.pas enthält u.a. Code aus fremden Quellen, z.B. der Code-Library oder Themen der Delphi-PRAXiS.
Der Code zur Nutzung von OpenGL und insbesondere letters.pas ist unter Beeinflussung verschiedener Tutorials (meist http://www.delphigl.com/) entstanden.

Anmerkung zum serverseitige Highscoreteil:

Wenn im serverseitigen PHP-Code irgendwelche Sicherheitslücken auftauchen bitte ich um eine Benachrichtigung an mich.

MfG,
Bug

* Achtung: Splatter-Effekte, bei Nichtgefallen nicht spielen.
Angehängte Dateien
Dateityp: zip bloodyquest_102.zip (1,06 MB, 301x aufgerufen)
Dateityp: zip bloodyquest_opensource_187.zip (687,3 KB, 41x aufgerufen)
Dateityp: zip highscores_112.zip (4,2 KB, 24x aufgerufen)
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
 
Benutzerbild von jfheins
jfheins
 
#41
  Alt 23. Jan 2009, 23:48
Zitat von bigben37:
Super, jetzt sollt er nur noch mit beiden Kanonen schießen können
Zitat von jfheins:
Mein Highscore damit: 2869 Kills
Toll, ich schaff ohne Bot 5000
Sag mir das doch einer

Anbei Version 1.1 - mit rechter Maustaste geht er glatt hoch auf *trommelwirbel* 70000 Kills
Angehängte Dateien
Dateityp: exe test_1_151.exe (12,0 KB, 16x aufgerufen)
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#42
  Alt 24. Jan 2009, 00:03
Zitat von jfheins:
Zitat von bigben37:
Super, jetzt sollt er nur noch mit beiden Kanonen schießen können
Zitat von jfheins:
Mein Highscore damit: 2869 Kills
Toll, ich schaff ohne Bot 5000
Sag mir das doch einer
Wusste ich auch nicht Ô_o
Werde dann direkt nochmal spielen und gucken, ob ich meinen alten Highscore knacken kann...
Florian Heft
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

 
Delphi 6 Personal
 
#43
  Alt 24. Jan 2009, 00:13
Naja, es waren nur 3677.

Coole Sache das. Wie haben wir das denn angestellt ?
Bild nach Zombiefarben scannen und nähsten Zombiefarbe anwählen, dabei Maus leicht rotieren lassen etc.
Matti
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins
 
#44
  Alt 24. Jan 2009, 00:28
Ja, so in der Art

Nachdem ich ja schon einen Bot für Hier im Forum suchenheiliger damm geproggt hatte, war das hier sozusagen die Fortsetzung.

Erster Versuch war, einfach immer im Kreis zu rotieren. War auch reltiv gut, mit 0,8 Umdrehungen pro Sekunde, aber nur bis 800 Kills.

Heute hab ich dann weitergemacht - es wird jetzt ein Bildausschnitt um den Spieler herum geholt und nach Farben gescannt. Man darf natürlich nicht rumlaufen, sonst ist die Berechnung im Eimer ^^

Aufgrund der äßerst ungünstigen Farbgebung musste ich mir da aber ein paar Tricks einfallen lassen - Der Hintergrung ist veränderlich und hat in etwa dieselbe Farbe wie die Zombies, und die sind auch andersfarbig untereinander (wg. Beleuchtung) und dann ist das auch noch das "Blut" das u.U. auch so ähnlich aussehen kann.

Daher wird nicht nur ein Pixel geprüft, sondern mehrere in einem kleinen Bereich. wenn die alle im "Zombiefarbenbereich" sind, wird dort ein Zombie erkannt und ein fetter, roter Punkt gemalt um den gleichen Zombie nicht wieder zu erkennen.

Musste etwas herumspielen (großen Bereich, dafür viel Toleranz bei der "Zombiefarbe") um die Zombies unterscheiden zu können.

Sobald ein Zombie gefunden wird, einfach Cursor auf den Zombie und nächstes Timer-Intervall gehts dann von vorne los.

Wenn im Bild nichts gefunden wurde, wird wieder zur Drehbewegung übergegangen.

(Der aktuelle hat 2 Zonen, in denen er Zombies findet, eine große für "Lass mal abknallen" und eine kleine für "sofort diesen Zombie erledigen, sonst ist das Spiel vorbei")

Im Großen und ganzen geht das auch gut - aber bei 70000 Kills wird der Sichtradius dann zu klein ...
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#45
  Alt 24. Jan 2009, 00:33
Argh, ich hab vergessen, welches die Freeze-Taste war. Also wollte ich pausieren, um im Thread nachzuschauen -> ESC. Leider war das die GameOver-Taste

--> 3588 Kills, 0,99Kills/Schuss - und nie gestorben, nur "freiwillig" kapituliert


Edit (quasi.. Beitrag wurde nicht abgeschickt, wg rotem Kasten): Jetzt sinds 15981 Kills bei 1,89Kills/Schuss und 58706 Treffern 8)

Wird der Lichtkegel eigentlich immer kleiner? Habe am Schluss fast nix mehr gesehen, aber vielleicht wurden auch nur meine Augen schlecht

Ist auf Dauer halt relativ unmotivierend, weil es keine Items, bessere Waffen oder stärkere/Gegner gibt ...


Edit (diesmal wirklich!) @ Bot: Schick! :thumbs: Lustig wirds allerdings, wenn man mal freezed - interessantes Muster kommt da bei raus
Und wenn man ihn stoppt, bleibt das Dauerfeuer aktiv (Maustasten gedrückt).
Florian Heft
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

 
FreePascal / Lazarus
 
#46
  Alt 24. Jan 2009, 02:22
Geniales Spiel!
Ich glaub ich geh jetzt auch mal wieder meiner Lieblingsbeschäftigung nach. (Spieleprogrammierung )

Was ich gefunden habe:
Es gibt eine recht sichere Möglichkeit das Spiel endlos weiterzuspielen und immer mehr Kills zu bekommen. (Ja auf normalem Wege)
Und das ganze ohne diesen Pausenmodus zu benutzen.
Leider dauert das ziemlich lange, deswegen hab ich "nur" bis 21.xxx Kills gespielt.
Oder passiert nachher noch irgendetwas Spielbeeinflussendes?

Btw: Alle Einstellungen auf maximal+Zeige alte Partikel sieht total übertrieben aus , nur laggt ein wenig.

Und nochwas:
Wenn ich immer weiterspiele wird mein Sichtradius immer kleiner.
Ist das ein Bug oder ist das so gewollt?
Ich hab am Ende schon fast gar nichts mehr, außer meinem "Zombiedefender", gesehen.
(Brauchte ich bei meiner Taktik eigentlich eh nicht, nur nervt es immer ins "Dunkel" zu schießen)

Also mein momentanes Fazit:
- Balance ist notwendig
- Aus dieser Grundlage lässt sich noch sehr viel machen, da die Weiterentwicklung des Spiels in kaum eine Richtung eingeschränkt ist.
- @Bot´s verhindern: Brauchst du jetzt nicht unbedingt, jedoch evtl bei einer Highscoreliste. Aber über sowas hab ich mir damals schon oft den Kopf zerbrochen.
--- Interne Variablen könnte man Verschlüsseln, um die "achso professionelen" Memorybots auszuschalten bzw. stark zu erschweren.
--- Eine Lösung gegen diese total stumpf gemachten Bots, die versuchen die Grafik zu Interpretieren, hab ich leider noch keine gefunden, da müsste man schon die Farben immer ändern, was ja ätzend wäre.
--- Man könnte auch mit globalHooks um sich werfen, aber in dem Bereich kenn ich mir "noch" gar nicht aus.

*hust*(Schaut mir alles leider nach einem "TestOnlyProject" aus) */hust*


Ansonsten super Spiel.
Ich würde gerne weitertesten.

@Edits: Man, ist das schon spät, ich wollte/hab irgendwas geändert, ich schau morgen, äh heute, nochmal drüber.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins
 
#47
  Alt 24. Jan 2009, 03:17
Dass der Sichtradius kleiner wird, ist anscheinend gewollt.

Wie gesagt, bei 70000 Kills war er sogar für meinen Bot zu klein.

Aber nein, etwas großartiges passiert nicht mehr. (Nur alle 1000 Kills son Lichtblitz, wenn ich das richtig gesehen habe ...)

Bots verhindern bin ich auch dagegen
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

 
Delphi 7 Enterprise
 
#48
  Alt 24. Jan 2009, 08:49
Du kannst ihn ja noch ein wenig erweitern, in dem er die "kurz vor Schluss" dann noch mal auf die "Freeze Funktion" zugreift, und alle Zombies vom Bildschirm entfernt..
Martin
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#49
  Alt 24. Jan 2009, 12:38
Wofür ist die Freezefunktion eigentlich? Und das man maximal nur 70k schafft stimmt nicht. Dein Bot hat bei mir 140k Kills hingelegt (war währenddessen aber nicht da ). Ich glaube der Bot ist am besten, wenn man die Spielereien auf 0% runterschraubt.

Und irgendwann sollte der Bot auch man nach hinten sehen. Weil irgendwann kommen einen die Zombies von hinten ganz schön nahe. Das heißt, je nach Vergangener Zeit, einen bestimmten Radius festsetzen, bei dem sich der Bot auch mal umdreht?

Ansonsten könnte man zusätzliche Items auf dem Level platzieren (wie Sichtradius erweitern).

MfG
xZise
Miniaturansicht angehängter Grafiken
bq_516.jpg  
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins
 
#50
  Alt 24. Jan 2009, 13:19
Zitat von xZise:
Wofür ist die Freezefunktion eigentlich? Und das man maximal nur 70k schafft stimmt nicht. Dein Bot hat bei mir 140k Kills hingelegt (war währenddessen aber nicht da ). Ich glaube der Bot ist am besten, wenn man die Spielereien auf 0% runterschraubt.
Joa - die 70000 waren im ersten Versuch, ich hatte bloß keine Lust mehr, ihn nochmal anzuwerfen ^^

Zitat:
Und irgendwann sollte der Bot auch man nach hinten sehen. Weil irgendwann kommen einen die Zombies von hinten ganz schön nahe. Das heißt, je nach Vergangener Zeit, einen bestimmten Radius festsetzen, bei dem sich der Bot auch mal umdreht?
Naja - wenn er keine Zombies sieht, verfällt er ja wieder in die Drehbewegung zurück.

Die Geschwindigkeit der Drehbewegung kann man übrigens einstellen in dem Ziffernfeld in Umdrehungen/100sek.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 9   « Erste     345 67     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 10:28 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