Ergebnis 1 bis 16 von 16

Thema: Space Wars Beta

  1. #1

    Space Wars Beta

    Joa, entschuldigt bitte die übertriebene Nutzung der Spoiler-Funktion, aber ich finde dieses neue Spoiler-Design einfach sehr schick und vor allem sehr praktisch (vor allem im Apple-Look ^^) was die Übersichtlichkeit angeht. So muss man nur das lesen was man wirklich wissen will












    mfg
    Phönix Tear

  2. #2
    könnte man auch eine version für leute, die den kepatch nicht haben, machen?
    wäre cool. ist für mich leider nicht spielbar, weil ich das ding halt nicht habe. :/

  3. #3
    also die vorstellung gefällt mir.
    und so erinnert mich das spiel stark an space Invaders.

    ich lade es gerade und spiele es mal an werde meine meinung
    zum spiele selbst dann noch reinschreiben.

    mfg .kerby

  4. #4
    Das Spiel läuft bei mir auf halber Rate (4x 0,0) flüssig. Bei den anderen beiden Einstellungen geht die Framezahl auf 15 fps runter oder es gibt sogar zwei Sekunden Standbild. Bei einem zwei Monate alten Rechner dürfte das nicht passieren (wenn dann doch grobe Werte gefragt werden: 1GB Ram, D-Prozessor, Geforce 7600GS). Müsste man die nötigen Waits überprüfen.

    Dank der Mausuntertützung gefällt mir das Spiel echt gut. Allerdings muss mMn das Grundkonzept noch stark erweitert werden, damit der Spaßfaktor weiterhin steigt. Daher würde ich vorschlagen, dass du vor dem Weiterarbeiten erstmal ein paar Grundansätze durchdenkst, wenn das noch nicht getan wurde.
    So würde ich zum Beispiel um einiges mehr grafische Informationen einbauen. Da diese unter Umständen pictureabhängig sind, ist ein frühzeitiges Strukturieren nötig.
    Bin gespannt, wie es weitergeht. Uns immer schön auf dem Laufenden halten.

    Zitat Zitat
    Durch Call-Durchlauf trifft jeder (!) Schuss, außer sie überschreiten eine Geschwindigkeit, die größer ist als der Gegner lang.
    Das ist sehr wichtig zu überarbeiten.
    Vielleicht hilft eine Abfrage weiter, die nicht den momentanen Punkt des Raumschiffes überprüft, sondern den Bereich, der durchflogen wird. Also mit größer-kleiner arbeiten.

  5. #5
    Was genau meinst du mit Grundlegenden Sachen? Ich hatte übrigends alle Pictures verplant. Picture 1 könnte ich noch freimachen (ist der Strich auf dem Radar) und Picture 12 sollte eigentlich noch ein Bonusobjekt werden. Außerdem ist noch Picture 18 frei. Hatte da evtl an was gedacht was dem Helden folgen könnte...


    Bleibt nicht viel über...
    Und die Waits sind überprüft. Ich kann hier gerne mal genauer den Durchlauf aufzählen. Letztendlich gibt es 4 Parallel-Process Events.

    Neben den PPs natürlich noch eine Reihe von CEs welche als Register für die Gegnerwerte sowie Schusswerte und auch Energieberechnung und Anzeigenbewegung dienen. Diese werden nur gecallt wenns auch unbedingt nötig ist.

    Zitat Zitat
    Zitat Zitat
    Durch Call-Durchlauf trifft jeder (!) Schuss, außer sie überschreiten eine Geschwindigkeit, die größer ist als der Gegner lang.
    Das ist sehr wichtig zu überarbeiten.
    Vielleicht hilft eine Abfrage weiter, die nicht den momentanen Punkt des Raumschiffes überprüft, sondern den Bereich, der durchflogen wird. Also mit größer-kleiner arbeiten.
    Dafür müsste ich eine Art "Vorher - Nachher" Variablenschar einbaun. D.h. bei jedem Zug am Anfang eine "Position X Neu" und "Position Y Neu" für die Schüsse vergeben und dann vergleichen ob der Schuss in der Zeit den Gegner durchwandert hat. Hätte ich am Anfang darauf gebaut die Gegner nur horizontal zu bewegen wäre das kein Problem gewesen. Dann müsste ich nur einen Y-Bereich festlegen und den Schaden berechnen sobald "Schuss Start X" < "Gegner X" < "Schuss Aktuell X" und "Gegner Minimum Y" < "Schuss Y" < "Gegner Maximum Y". Dem war aber nicht so. An sich sollten sich die Gegner auch vertikal bewegen können. Bei langsamen Schüssen kann es dadurch zu fehlern kommen (der Schuss ist am Gegner bereits vorbei wenn dieser sich auf seine Bahn lenkt und wird trotzdem getroffen).

    Hmm, jetzt hab ich den Faden verloren...

    @Marian:
    Wenn mir jemand sagt wie man das macht, sicher ^^°

    Was ich noch fast vergessen hätte:
    Sollte das Spiel erstmal etwas flüssiger laufen werde ich mich natürlich nach einem guten Pixler umsehen um das Spiel in Grafischer hinsicht um einiges aufzuwerte (bzw. aufwerten zu lassen ) ^^

    Edit:
    So, nachdem der Held wie die Gegner jetzt nur noch ganz am Anfang angezeigt werden und die Pictures danach nur noch bewegt werden, läuft es zumindest ein bisschen flüssiger. Es geht bei mir jetzt fast ohne ruckeln mit normale (2x 0,0 Wait) Refreshrate...

    Edit 2:
    Ich hab noch einen Fehler in der Kollisionsabfrage der Gegner gefunden. Dort wurde dummerweise immer für alle Schuss des Heldens gerechnet, selbst wenn diese nicht unterwegs waren. Der Fehler ist nun behoben, dadurch läuft es, wenn ich die Schüsse der Gegner abstelle, selbst mit doppelter Refreshrate fast völlig ruckelfrei.
    Ich hab bei der Gelegenheit auch noch einen Fehler mit dem kleinen Trümmerstück behoben. Dessen Picture war nicht ganz richtig ausgerichtet, sodass es im Vergleich zu seiner Hitbox 2 Pixel zu tief war. Durch eine ungerade Größe kann ich es nicht ganz beheben, aber wenigstens minimieren ^^

    Geändert von Phönix Tear (29.10.2006 um 17:52 Uhr)

  6. #6
    Zitat Zitat
    Damit der Schuss den Gegner trifft müssen diese 8 Werte wie folgt zueinander stehen (wenn jemand ne leichtere Variante weiß, dann nur her damit!)
    Dein Möglichkeiten grafisch dargestellt:

    Bei den Bedingungen sind meiner Ansicht nach nur die jeweils beiden letzten nötig (X3, X4, Y3, Y4). Es muss nur abgefragt werden, ob das Minimum oder das Maximum des Schusses zwischen dem Minimum und Maximum des Gegners ist ("minimumGegner < minimumSchuss < maximumGegner" oder das gleiche mit Maximum des Schusses). Korriger mich bitte, wenn ich dabei was übersehen hab.

    Zitat Zitat
    Der Gegner 1 hat genau wie die Heldbewegung, je nach Einstellung ein, zwei oder vier 0,0 Wait. Dabei ist dieses Event jenes, welches die Call-Reihe in Gang setzt. Jene ist wie folgt:
    Zitat Zitat
    Gegner 1 - Gegner 1 Schussabfrage - Gegner 1 Schussbewegung - Gegner 2 - Gegner 2 Schussabfrage - Gegner 2 Schussbewegung - Gegner 3 - ... - Gegner 5 Schussbewegung - Held Schussbewegung - Kollisionsabfrage Gegner - Kollisionsabfrage Held
    Wieso setzt du auf Call-Management, oder wie man das nennen kann? Dadurch ist der Abstand zwischen zwei Überprüfungen eines Schusses/Gegners sehr lange. Ich habe bei meinen Spiel "Battle Versus 2" Parallel Process benutzt, damit alles gleichzeitig abläuft. Und das läuft mit entsprechenden Waits ruckelfrei (bei mir). Oder bedeutet deine Kette garnicht, dass es hintereinander abläuft?

    Zitat Zitat
    Was genau meinst du mit Grundlegenden Sachen? Ich hatte übrigens alle Pictures verplant.
    Genau darin sehe ich Gefahren. Durch die begrenzte Schussanzahl von maximal fünf Schuss gleichzeitig, besteht eine Einschränkung im Spielfluss, die nachträglich nicht mehr so leicht verändert werden kann. Daher muss man sich schon frühzeitig überlegen, inwiefern man die fünf Schuss ausnutzt - sie also mit passenden Idee absichtlich wirken lässt - oder die Anzahl erhöht. Mit absichtlich mein ich, dass mehr Schüsse bei einer bestimmten Idee Nachteile hätten. Etwas umständlich erklärt...

  7. #7
    Hmm, mit der Abfrage hast du gewissermaßen recht. Dadurch wird allerdings der Bereich kleiner in dem geprüft wird, wodurch es leichter vorkommen kann, dass ein Schuss nicht trifft (wenn man extreme Werte verwendet (besonders kleine oder schnelle Gegner / Schüsse)).
    Dazu ein Beispiel:
    Zitat Zitat
    Der Schuss hat die Koordinaten (10|120) und den Speed 20. Außerdem die X-Größe 4.
    Der Gegner hat die Koordinaten (30|120) und den Speed 8. Außerdem die X-Größe 5.

    Nun ist die Ausgangsposition:
    Schuss: (10|120) Minimum: (7|120) Maximum: (13|120)
    Gegner: (30|120) Minimum: (25|120) Maximum: (35|120)

    Die Abfragen ermitteln also, dass der Gegner nicht getroffen wird.

    Jetzt gehen wir einen Schritt weiter, d.h. die jeweilige Geschindigkeit (ich nenn sie immer "Speed", weils einfach schneller geht ^^) wird addiert, bzw. subtrahiert.

    Schuss: (10|120) + (20|0) = (30|120)
    Gegner: (30|120) - (8|0) = (22|120)

    Die Positioin ist nun also:
    Schuss: (30|120) Minimum: (27|120) Maximum: (33|120)
    Gegner: (27|120) Minimum: (22|120) Maximum: (32|120)

    Die Vereinfachte Abfrage von nur X3 + X4 und Y3 + Y4 würde ergeben, das der Gegner nicht getroffen wird, da keiner im anderen liegt. Nimmt man X1 + X2 und Y1+Y2 hinzu, wäre dies jedoch schon der Fall. Gerade bei sehr kleinen Gegnern ist dies also ein großes Problemfeld...
    Daher denke ich muss ich diese Abfrage leider so lassen. Denn sollten Schuss und Gegner zufälligerweise gleich groß sein und sie der Gegnerspeed und Schussspeed auf die Gegner- bzw. Schussgröße addieren, wird es, je größer der dadurch erhaltene Wert ist, unwahrscheinlicher das ein Schuss beim vorbeifliegen trifft...

    @Zum Call-Management:
    Zitat Zitat
    Dadurch ist der Abstand zwischen zwei Überprüfungen eines Schusses/Gegners sehr lange.
    Das stimmt so eben nicht. Darum geht es ja gerade beim Call-Management . Dadurch das die Schussbewegung in der gleichen "Call-Reihe" wie die Kollisionsabfrage steht, wird für jede Position die der Schuss hat einmal überprüft ob er trifft. Es geht also ganz nach dem Verfahren:
    Zitat Zitat
    Schuss X + Schussspeed
    Gegner X - Gegnerspeed
    Kontrolle ob getroffen wurde
    Schuss X + Schussspeed
    Gegner X - Gegnerspeed
    Kontrolle ob getroffen wurde
    ...
    Dadurch hat man (außer bei den genannten Extremwerten) eine 100% Trefferquote.

  8. #8
    ich weiß nicht genau, wie das geht... ich glaube, man muss irgendwie halt diese oldharmony.dll oder harmony.dll oder sowas mit in den spiel-ordner packen. frag mal bitte irgendwen, der sich auskennt, ich will das auch spielen. D:

    ...//edit:

    mah, hat sich erledigt, ich habs selbst gebacken bekommen. jetzt mal ne bewertung.

    junge, junge. das schafft mein rechner nicht gut. ich hab glaube ich sonen amd athlon 1,8 ghz-prozessor, 512mb arbeitsspeicher und ne gforce 6800 als grafikkarte. frag mich nichts näheres, ich habe keine ahnung von hardware.
    nunja. da scheinen nen menge parallele prozesse am laufen zu sein, so schlimm ist das ja noch nichtmal mit meinem möchtegern-3d-shooter gewesen. Oo
    ansonsten ganz nett, du könntest grafisch noch was machen, aber das spielen geht klar so, solang es nicht ruckelt (was bei mir allerdings fast permanent der fall ist. :S ).

    wtf? nur 4 parallele prozesse lese ich da? wieviele schleifen und sonstiges zeug hast du benutzt? oder liegt das am keypatch?
    ich hab von sowas ja eh keine ahnung. :/

    Geändert von Marian (30.10.2006 um 15:08 Uhr)

  9. #9
    also ruckelfrei lief es bei (4x 0,0) bei denn anderen ruckelte es leicht.

    und so gefirhl mir das spiel ganz gut maus unterstützung funzte perfekt.
    nur gefallen mir die grafiken der raumschiffe nicht bzw. des Weltraum schrott.


    also von meiner seite aus dickes lob ein sehr schönes spiel( Beta,Demo was auch immer ^^ )


    mfg .Kerby

  10. #10
    Nya, Schleifen hab ich ein paar. Die allerdings nur bei der Kollisionsabfrage, da dort immer fast gleicher Code durchlaufen wird. Die wollte ich sowieso nochmal überarbeiten. Die Überarbeitung wird allerdings nichts an der Performance verbessern, alles lediglich übersichtlicher gestalten (via Variablen Nummern).

    @.Kerby:
    Wie gesagt, ich wollte danach noch einen Graphiker suchen. Für die Beta hätte ich da auch einfach bunte Klötze hinsetzen können (hab ich auch, wenn ihr einfach mal die "Held Schiff ID" oder die "Gegner ID" (nachdem dieser gespawnt ist) auf 0 setzt

    Also -> Graphik wird verbessert

  11. #11
    Ich glaub es ist 100% möglich ohne Fehler mit der Hälfte der Positionsabfragen. Gewagte These...
    Erstmal grundlegende Fragen, von denen ich ausgehe:
    - Kann sich ein Schuss nur waagerecht bewegen?
    - Hat das eigene Raumschiffe Move-Picture-Strecken (Startkoordinate-Endkoordinate) ohne zwischenzeitliche Koordinaten (schnellere Bewegung --> längere Strecken)?
    - Kann sich ein Raumschiff nur auf Move-Picture-Strecken bewegen?


    Wenn wir davon ausgehen, würde ich Folgendes vorschlagen:



    Der erste Teil des Bildes zeigt das Projektil von links kommend, dass mit dem in einer Kurve nach oben fliegenden Gegner kollidiert. Hierbei ist aber die Geschwindigkeit so groß, dass sie sich bei der Berechnung nicht berühren würden. Daher muss man gucken, wo der Gegner war (y-Achse) als er die x-Achse des Schusses durchquerte. Die Berechnung dazu steht im zweiten Teil des Bildes.
    Wenn der y-Abstand zwischen Gegner und Schuss größer als die y-Geschwindigkeit des Gegners ist, können sie sich nicht gekreuzt haben (größer im Sinne von weiter von Null entfernt und beide positiv oder beide negativ).

    Hat man einen möglichen x-Wert des Gegners gefunden, muss man gucken ob dieser zwischen den beiden Schuss-x-Werten liegt (letzte und vorletzte Position). Damit steht dann fest, ob er die Bahn gekreuzt hat oder nicht.

    Man muss noch beachten, dass bei [y-Speed = 0] nicht gerechnet werden kann (siehe Abbildung). Hier muss man nur den x-Wert überprüfen.

    Da der Gegner kein Punkt ist, muss es für die maximal und minimal Werte berechnet werden. Hier sind dann nur die Bedingungen X3, X4, Y3 und Y4 nötig.
    Jetzt bin ich mal gespannt, ob mir jemand ein Beispiel liefern kann bei dem das nicht funktioniert...

  12. #12
    Hmm, ich muss zugeben das ich die Rechnung nicht ganz verstanden habe... Warum ist (XSpeed * h) / YSpeed = b?
    Aber auch egal. Ich denke da es wichtiger ist einen schnellen Spielfluss zu gewärleisten, werde ich den Gegnern einfach die Möglichkeit nehmen sich in Y-Richtung zu bewegen und dadurch erreichen das ich lediglich noch abfragen muss, wann ein Schuss Hinter dem X-Minimum des Gegners ist und dabei zwischen Y-Mini- und Maximum liegt... Für Y bräuchte ich dann wirklich nur Y3 und Y4, egal wie man es sieht, da es nicht soo wichtig ist das jeder Streifschuss funktioniert. Dann werde ich einfach die Y-Schussgröße auf 1 setzen, wodurch die wahrscheinlichkeit sehr hoch ist das man trifft...
    Werde mal versuchen wie sich das auf die Performance auswirkt...

  13. #13
    Ich hab mir mal nen Doppelpost erlaubt um das ganze wieder aktuell zu machen ^^°
    So, ich hab jetzt noch ein paar Änderungen gemacht, die Kollisionsabfrage ein kleines bisschen angepasst (jetzt zwar ungenauer aber weniger Ressourcen fressend), die Gegnerschussabfrage überarbeitet, etc. Jetzt läuft es mit einigen kurzen Rucklern selbst auf Doppelter Geschwindigkeit. Mit doppelter Helden- und normaler Gegneranzeigerate läuft es sogar absolut ruckelfrei.
    Für die Statistiker unter euch kommt am Ende jetzt auch noch eine kleine Nachricht wie viel ihr geschossen habt, wie viel ihr getroffen habt, etc...

    Also, bitte nochmal testen und posten wie es nun funktioniert (Standardeinstellung ist nun doppelte Helden- und normale Gegneranzeige).

    Hier der Download-Link:
    *klick mich* (468 KB)

  14. #14
    Läuft bei mir wunderbar auf 1x0,0 bei beidem mit 55 Frames. Das heißt zwar, dass von der 60-Frames-Makergrenze fünf fehlen, aber es läuft...

    Bin ich bekloppt, oder wurde das Festhalten der Feuertaste neu eingebaut? Jetzt kann man ja Dauerfeuer raushauen! Find ich echt spaßig. Nach zweimal spielen natürlich langweilig... Die Vollversion wird doch sicherlich mit sehr, sehr , SEHR viel Abwechslung, Ideen und Action auftrumpfen!?
    Dann wird das nämlich ein Screenfun-Anwärter.
    Dran bleiben!

    EDIT: Ganz vergessen was zu der Kollision zu sagen.
    Leider besteht das Problem immer noch durch Gegner und Schüsse mit einer schnellen Bewegung durchfliegen zu können. Das muss auf jeden Fall behoben werden.

    Geändert von CapSeb (05.11.2006 um 20:45 Uhr)

  15. #15
    Gut, das mit den Gegnern ließe sich machen. Allerdings habe ich in letzter Zeit mehr Wert darauf gelegt die Performance zu verbessern, daher von weiteren Abfragen abgesehen. Und jetzt mal ehrlich: Wer ist denn böse wenn er unfairer weise nicht stirbt? ^^ Aber gut, wenn du meinst das das wichtig ist, muss ich da nochmal schauen. (Wird allerdings nicht ganz so einfach, da man es durchaus schaffen kann in einem Rechendurchgang vom oberen linken Bildschirmrand zum unteren rechten zu springen. Daher werde ich wohl eher versuchen müssen, den Bereich ein bisschen zu erweitern...)

    Das man jetzt Dauerfeuer machen kann liegt an der Schussgeschwindigkeit. Die hab ich etwa verdoppelt. Da nun die Gegnerabfrage stark vereinfacht wurde (also nur noch überprüft wird ob ein Schuss hinter dem Gegner ist) war das recht einfach zu machen...

    Zum Thema Abwechslung:
    Ideen bitte T__T

  16. #16
    Ideen...
    hm.
    Was brauchtest du nochmal? Ach ja, Ideen!

    Auf jeden Fall sehr viel verschiedene Gegner, jeder ein klein wenig anders. Zur Maximierung kannst du ja 5 Merkmale machen, die in verschiedenen Kombinationen auftreten. Oder so ähnlich.
    Außerdem müsste jedes Level eine besondere Regel/Situation haben, damit jedes Level wie ein neues Spiel ist. Weil dreimal das gleich ist echt sau öde.
    Dann für jedes Level ein Geheimnis. Sozusagen ein "Geheimgang" oder ein anderes Ende. In "Lylat Wars" (Starfox) ist das so umgesetzt. Dann überlegt man sich nämlich an jedem Levelende, wo denn da jetzt verflixt nochmal das Geheimnis versteckt war, sodass man die Level (plural... ) erneut spielt.
    Ein unterschiedliche Umgebung - bei jedem Level - wäre auch was ganz Sinnvolles.

    ...ein paar schnell überlegte Idee des ersten Eindrucks.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •