# Erstes Spiel (Strategie)



## protectedzone (8. Dez 2013)

Hallo

Ich habe nun innerhalb von drei Tagen ein ganz neues Spiel programmiert (mein erstes Computerspiel, Crowd of Force).

Das Spiel könnt ihr hier als JAR-Datei downloaden: www.protectedzone.de

Es ist ein simples Strategiespiel, wo exponentielles Wachstum eine gewisse Rolle spielt.
Die Spielweise sollte relativ schnell klar werden; oben rechts hat man drei Felder, mit denen man entweder attack, production oder exploitation ausbilden kann. Diese Kosten verdoppeln sich jedes Mal, Achtung!

Schaut euch das Spiel mal an. Ich habe es bisher erst hier auf meinem Mac Air getestet. Von dem her kann es sein, dass auf anderen Systemen Unstimmigkeiten auftreten (Bildschirmgrösse). 

Freue mich auf Rückmeldung.

Protected Zone


----------



## eMmiE (11. Dez 2013)

Sehr cooles Spiel
Wie lange hast du dafür gebraucht?


----------



## protectedzone (11. Dez 2013)

Schätzungsweise 20 Stunden.

Es wäre schön, wenn man mir noch Bugs, Wünsche oder anderes mitteilt. Ich zumindest kenne mindestens einen Bug, wo es vermutlich einen int long casting Fehler gibt (iron).

Ausserdem bin ich auch nicht ganz zufrieden mit der Flüssigkeit. Auf meinem Mac Air arbeitet die Java2D nicht so schnell, wie ist es bei euch?

Vielleicht könnte ich das noch verbessern, in dem ich nicht alle Stäbe da zeichne. Das würde es ein wenig entlasten.

Grüsse
ProtectedZone


----------



## eMmiE (13. Dez 2013)

Ich nehme an, dass wenn die "Stöckchen" umkippen, dass sie damt "angreifen" sollen?
Wenn nämlich Stöckchen umkippen um anzugreifen, dann aber gar nicht für einen Angriff benötigt werden, dann bleiben sie in der umgekippten Lage...

Da könntest du VIELLEICHT noch was besser machen (->wiederaufrichten?)

Sonst sehr gut

Gruß eMmiE


----------



## protectedzone (13. Dez 2013)

Schön dass du es gut findest!

Ok stimmt. Das ist so aber eher eine Sache, die im Nachhinein eher mühsam zu ändern ist. So was sollte man von Anfang an mit einplanen. 

Hmh, es ist recht schwer ein Spiel zu erfinden, dass zum einen eher simpel und zum anderen Spass macht. Meine Ideen halten sich momentan in Grenzen.
Wenn einer grad mal eine Idee hat, kann er sie mir sonst mal mitteilen. Ich meine eine Idee, dessen Umsetzung sich in Grenzen hält, weil ich nicht viele "Motivationsphasen" habe...

Protectedzone


----------



## rme (14. Dez 2013)

Schöne Sache 

Aus Neugier: Wie machst du das Rendering? Liste von allen Stöckchen, die passiv in paintComponent gerendert werden und ein Timer für's Repaint? Oder aktives Rendern? Evtl. mit mehreren Threads?


----------



## protectedzone (14. Dez 2013)

rme hat gesagt.:


> Schöne Sache
> 
> Aus Neugier: Wie machst du das Rendering? Liste von allen Stöckchen, die passiv in paintComponent gerendert werden und ein Timer für's Repaint? Oder aktives Rendern? Evtl. mit mehreren Threads?



Nein, ich habe nur ein Thread, wo ich zuerst die Logik berechne, dann alles mit paintComponent zeichne, dann etwa 30 ms warte und wieder von vorne beginne.

Was ist denn genau aktives Rendern und wie kann man es auf mehrere Threads aufteilen?

Grüsse


----------



## rme (14. Dez 2013)

Hehe, das habe ich mich auch immer gefragt, weil ich es hier ab und zu gelesen habe. Ich verwende immer einen ähnlichen Ansatz wie du, nur mit einem Timer statt Sleep. Also der Timer ruft in definierten Abständen repaint() auf, um ein Neuzeichnen auszulösen. Damit komme ich auch bei umfangreichen Sachen auf 60 FPS und hatte deshalb nie Probleme. Von Threads zum Rendern halte ich nix, da Threads nicht gerade leichtgewichtig sind und man sich üble Synchronisationsprobleme einhalnden kann, die gerade beim Zeichnen doof wärne.


----------



## Tiding (15. Dez 2013)

Also, meines Wissens bezeichnet "Rendern" nur den Vorgang der Umsetzung von Informationen in eine Grafik. In den Informationen können dann allerhand detailierterer Dinge liegen; meinetwegen Texturen, ect.

Sprich, genau das was ihr macht.


----------



## protectedzone (19. Dez 2013)

Ok. In meinem Spiel können Synchronisationsprobleme auftreten, zwar selten, aber dennoch existieren sie. Ich glaube sie können dann auftreten, wenn das repainten zu viel Zeit benötigt (>30ms).

Zum Weichzeichnen/Rendern verwende ich einfach
setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

Ich habe nun das Spiel um folgende Aspekte erweitert:

-detaillierte Spielbeschreibung in Level 1
-Integer Long Fehler behoben.
-Victory und Defeat Window wird richtig platziert
-Computer (easy und Medium) überarbeitet
-Flugbahnen verbessert
-Die Kosten muss man nicht mehr im Kopf ausrechnen, sondern kann den Exponenten auf der Tastatur eingeben. Wenn du 10 eingibst, erscheint 1024 auf dem Bildschirm.
-Auch eine negativer Iron Stand profitiert von Territory Bonus, aber halb so oft. Dies lässt neue Strategien zu.
-Und Wiederaufrichten ist auch implementiert, aber nur wenn wirklich Freie Bahn ist.

Bugs bitte berichten (egal wie klein).


----------



## protectedzone (19. Dez 2013)

Und ja den Cheat möchte ich auch nicht vorenthalten: Mit enter kann man den Spieler wechseln und zum Beispiel schauen, welche Strategien die Computer anwenden.


----------



## Tiding (19. Dez 2013)

Ich glaub, das ist nicht mein Spiel! Ich verlier immer! 

Aber die Spielbeschreibung war sinnvoll, mir war nämlich nicht immer unbedingt klar, was welche Steigerungen bewirkten .


----------



## lord239123 (15. Jan 2014)

Endlich mal ein gelungenes Strategiespiel hier im Forum, aber könntest du bitte eine Spracheinstellung einführen?

Könntest du evtl. den Quellcode hochladen, wenn du nichts dagegen hast?
Mich würde die genaue Implementierung interessieren.


----------



## protectedzone (16. Jan 2014)

lord239123 hat gesagt.:


> Endlich mal ein gelungenes Strategiespiel hier im Forum, aber könntest du bitte eine Spracheinstellung einführen?
> 
> Könntest du evtl. den Quellcode hochladen, wenn du nichts dagegen hast?
> Mich würde die genaue Implementierung interessieren.



Hallo lord239123

Danke für deinen Kommentar. Eine Spracheinstellung könnte ich tatsächlich noch einführen, danke für den Hinweis. 

Ich überarbeite sowieso gerade das ganze Spiel, es kommt noch eine neue Funktion hinzu. 

Vielleicht füge ich auf meiner Website auch einen Download für Quellcode hinzu.

In ein paar Tagen wird die neue Version hochgeladen, da melde ich mich hier wieder.

Grüsse,
protected zone


----------



## Thunderstorm (25. Jan 2014)

Einen kleinen "Bug" habe ich gefunden. Das Spiel gewinnt oder verliert man manchmal schon bei 98% bzw. 2%, das passiert immer dann, wenn die Stäbchen der Gewinnerseite schräg liegen und dann an den Rand des Screens stoßen.

Ich denke, dass man gewinnt, wenn das vorderste Stäbchen gegen den Rand stößt, die Zahl des Territoriums aber anhand seines Zentrums ermittelt wird. Die sind dann bei schräglage natürlich nit mehr identisch.

ABER!

Gut gemachtes Spiel, läuft sehr flüssig bis irgendwann 10000 Stäbchen rumgurken 
Wenn du mal richtig Lust hast, könnte man das vlt. noch auf verschiedene Ebenen ausweiten, so dass man nen Regler hat, der die Spawns auf 2 Ebenen verteilt, bei beiden kann man verlieren, wäre zumindest noch ein taktisches Element 

lg Thunderstorm


----------



## protectedzone (26. Jan 2014)

Thunderstorm hat gesagt.:


> Einen kleinen "Bug" habe ich gefunden. Das Spiel gewinnt oder verliert man manchmal schon bei 98% bzw. 2%, das passiert immer dann, wenn die Stäbchen der Gewinnerseite schräg liegen und dann an den Rand des Screens stoßen.
> 
> Ich denke, dass man gewinnt, wenn das vorderste Stäbchen gegen den Rand stößt, die Zahl des Territoriums aber anhand seines Zentrums ermittelt wird. Die sind dann bei schräglage natürlich nit mehr identisch.
> 
> ...



Hallo.

Vielen Dank für die Rückmeldung. Das wird im nächsten Update berücksichtigt. 
Den Gedanken mit den verschiedenen Ebenen hatte ich auch schon 
Aber ich habe nun eine andere Art von Strategie noch hinzugefügt, diese kommt dann im nächsten Update zum Zug; für das Update muss ich aber noch ein paar Tage mehr einplanen.


----------



## M.Ten (28. Jan 2014)

Hä helft mir, ich check das nicht bei mir kommen keine stäbchen von links


----------



## Thunderstorm (28. Jan 2014)

Stäbchen werden nur gespawnt wenn du Eisen hast. Es dauert am Anfang einige Sekunden, bis Stäbchen kommen. Und immer drauf achten, dass das Eisen nicht unter 0 huscht opcorn:


----------



## M.Ten (29. Jan 2014)

Danke klappt jetzt auch bei mir.
Sehr cooles Spiel


----------



## protectedzone (18. Apr 2014)

Hallo Leute

Ich habe mein Spiel ausgebessert. Falls es jemand noch mal testen möchte, kann dies gerne tun. Die Kampagne wurde ein bisschen erweitert und die ersten zwei Level sind auch für Anfänger geeignet.

Ich denke, ich belasse dieses Spiel nun bei diesem Zustand (kein Multiplayer). Falls jemand noch Bugs findet, werde ich diese gerne ausbessern. Ansonsten aber werde ich mich in Bälde um ein anderes Projekt kümmern.

Grüsse, PZone


----------



## kruemelkeksfan (21. Apr 2014)

Tolles Spiel, das Prinzip gefällt mir gut 
Wie hast du die Wegflieg-Animation der Stäbchen hingekriegt? Wann fliegen sie weg und wann bleiben sie liegen?


----------



## protectedzone (22. Apr 2014)

Sie fliegen weg, wenn der Gegner oder wenn ein Strahl auf sie trifft. 
Die Y-Bewegung des Fluges ist bereits in einem Array vorhanden. Die X Bewegung wird während der Laufzeit berechnet.

Wer den letzten Level schafft, darf sich schon fast Experte nennen


----------



## kruemelkeksfan (22. Apr 2014)

Also, ich weiß ja nicht, wie weit du mit dem Projekt gehen willst, aber was ich echt cool fände, wäre eine Schnittstelle für User-programmierte KI's. So, dass neben Human/Computer noch benutzdefinierte KI's zur Auswahl stehen, die in einem bestimmten Ordner abgelegt werden.


----------



## protectedzone (23. Apr 2014)

Genau den gleichen Gedanken hatte ich auch schon oft. 
Nur weiss ich nicht so recht, wie ich das einfach bewerkstelligen könnte. Ich stelle es mir so vor, dass ich einen Ordner bereitstelle mit einer Klasse ComputerA. Diese Klasse erbt von Klasse Computer, die alle wichtigen Methoden zur Verfügung stellt. Dann kann man die Klasse ComputerA nach seinen Bedürfnissen anpassen und dann kompilieren.


----------



## kruemelkeksfan (23. Apr 2014)

Genau. Und wo liegt das Problem? Methoden brauchst du ja nur 2. Eine, die der KI mitteilt, wie der aktuelle Stand ist und eine, in der die KI ihre "Entscheidungen" mitteilt.


----------



## protectedzone (23. Apr 2014)

Ich bin mir halt nicht sicher, ob man eine Klasse einfach so kompilieren kann. Das Hauptprojekt ist ja schon kompiliert. Am einfachsten ist vielleicht, dass ich mein Projekt als Quellcode als Download anbiete, dann kann sich auch der ein oder andere ein Bild von meiner Arbeit machen.

Gruss


----------



## Phaesty (24. Apr 2014)

Als erstes muss ich sagen das es ein gut gemachtes Spiel ist. Durch sein simples Design hat es wirklich seinen eigenen Charme.
Was sich mir nur noch nicht erschließt, ist das mit dem "Iron", das bei mir immer weit ins Minus geht. Das soll ja bestimmt nicht so sein oder ? Denn so geht ja der Taktische teil verloren


----------



## lord239123 (24. Apr 2014)

Aber nur dadurch, dass das Eisen ins Minus geht, lässt sich sicherstellen, dass nur mit der richtigen Kalkulation gesichert ist, dass auch immer genug Striche auf dem Feld sind.
Was vielleicht noch verbessert werden könnte, ist die Anzeige der Preise für die Verbesserungen.:toll:


----------



## Phaesty (24. Apr 2014)

Ach ja habe eben noch mal getestet ja jetzt macht das Sinn habe das Spiel wohl endlich kapiert


----------



## kruemelkeksfan (25. Apr 2014)

Ist der Quellcode jetzt irgendwo zum Download verfügbar?


----------



## protectedzone (25. Apr 2014)

Jup der Download ist jetzt auf meiner Seite.


----------



## kruemelkeksfan (27. Apr 2014)

Ok, habs  wow, das sind verdammt viele Klassen :O


----------

