# Welche Game Api



## gauo (14. Aug 2007)

Hi, ich bin gerade dabei eine Art Echtzeitstrategie Spiel zu programmieren, wo die graphik wie die von netrek.org
...also so 2D aus der Vogelperspektive....siehe screenshots auf der seite....
Nachdem ich nun drumherum alles fertig habe und nun das geschehen auf der MAP programmieren will, bin ich aber auf das Problem gestoßen das ich keine ahnung hab auf welche ApI ich da zurückgreifen kann...
Kann mir da vielleicht jemand nen tipp geben?...was man vielleicht noch wissen sollte wäre, dass es eine Art Fog of War geben soll(Im umkreis von X Pixeln um das Schiff ist das Spielfeld nur sichtbar) und eine KI...


thx für jegliche Tipps, links und investierte Zeit


----------



## Guest (17. Aug 2007)

ich hab mich jetzt in genuts eingelesen und dass kann ich eigentlich verwenden, nur dass ich keine ahnung hab wie ich das mit dem Fog of War machen soll und wie ich z.B. mehrer Einheiten mit der Mouse auswählen kann...
Kann ich das dort implementieren?


----------



## Gauo (19. Aug 2007)

Kann mir keiner vielleicht ein weitere tutorial verweisen?
oda n tipp?


----------



## Quaxli (20. Aug 2007)

API kann ich Dir keiner nennen, da ich keine verwende bzw. meine selbst geschrieben habe und die auch nur die rudimentärsten Sachen zur Verfügung stellt (Basisklasse für Sprites, SpriteLib, etc.)

Aber: Die Fragen, die Du so genannt hast, z. B. Fog of War, Auswählen mehrerer Einheiten, etc. wird Dir keine Game-API abnehmen. Das ist Logik, die Du schon selbst schnitzen mußt.
Die meisten API werden Dir vermutlich nur die Rahmenbedingungen zur Verfügung stellen, z. B. Spriteverwaltung, Kollisionserkennung, Hintergrundscrolling, etc. 
Auch eine KI wirst Du selber erstellen müssen.... .

Ich neige daher eher dazu, das Spiel komplett selbst zu schreiben. So schwer ist das nicht und man lernt eine Menge dabei.... 
Ich habe aber eher den Eindruck (der natürlich täuschen kann), daß es Dir etwas an Programmiererfahrung fehlt und Du eine Allroundlösung suchst, in die Du nur die "Bilder reinstecken mußt". In diesem Falle wirst Du aber Pech haben.

Die einzige API, die ich mir mal angesehen habe, ist diese: http://java.dnsalias.com/


----------



## Guest (20. Aug 2007)

:/ WasGUI angeht fehlt mir tatsächlich die Erfahrung...das selektieren kann ich mir höchstens so vorstellen, dass ich ne Mouse Clicked und Realeased abfange und wenn nichts aufgewählt war und das eine auf das andere folgt ich mir den Kasten ausrechne und alles auswähle :/...
Gibt es vielleicht Tutorials/Bücher die von diesen zusätzlichen Apis unabhängig sind und n bisschen auf Strategie games gehen als auf diese Arcade Shooter? ^^, 

achja den Fog of War kann ich mir net vorstellen -.-


----------



## Lulumann6 (20. Aug 2007)

also einen fog of war zu erstellen sollte doch nicht so schwer sein. zunächst hast du überall fog und dann prüfst du halt bei allen einheiten ob fog in der nähe ist und tust es weg wenn es der fall ist.


----------



## Quaxli (20. Aug 2007)

'ne GUI in dem Sinne, wie Du Dir das vorstellst bastelt man für Spiele nicht unbedingt. Das läuft eher über MouseListener -Abfragen und ähnliche Ortsbestimmungen.

Tutorials findest Du eher für sog. Arcade-Spiele. Aber eigentlich ist das nicht so schlimm, weil die grundsätzlichen Funktionen sind ja prinzipiell gleich sind. Wenn es rundenbasiert ist, dann wird es ein bißchen komplexer, wenn nicht, ist der Unterschied zwischen Arcade und Strategie meines Erachtens nicht so groß.

Den Fog of War würde ich erst mal außen vor lassen und mich auf grundsätzliches konzentrieren. Schau erst mal, daß Du die Basics zusammen bekommst, z. B.:

- Karte anzeigbar und scrollbar
- Auswahl und Bewegung Deiner Einheiten
- Bewegung der gegnerischen Einheiten, etc.
-....

Den Fog of War würde ich zwar anfangs schon mit einplanen, aber erst später realisieren. Wie soll dieser denn aussehen? Schwarz/Weiß, also sichtbare und unsichtbare Bereiche? Oder komplexer, mit Grauabstufungen?
Ich habe selber noch keinen gebastelt, aber was mir für einen einfachen Fog of War einfallen würde wäre folgendes:

- du definierst ein Image in Kartengröße, welches Du komplett schwarz färbst
- dann ermittelst Du, wo sich Deine Einheiten befinden und welchen Sichtbereich diese haben.
- an diesen Stellen machst Du Dein Image kreisförmig transparent.
- das Image zeichnest Du dann zum Schluß über die Karte

Wie praktikabel das ist, hängt natürlich auch von der Größe der Karte ab.


----------



## Evil-Devil (20. Aug 2007)

@FoW: Prinzipiell ist Quaxlies Idee nicht schlecht, aber ich würd das nicht auf die gesamte Karte modulieren sondern auf der eigentlichen Spielkarte immer mitspeichern ob man an dieser Stelle schon war und falls deine Einheiten eine Sichtweite haben, bis wohin sie bereits gesehen habe.

Wenn du dann deine Karte zeichnest, erstellst du in der Größe des Kartenausschnitts ein entsprechendes Image das mit dem Fog bemalen wird. So hast du für jede Position auf der Karte immer ein kleines Image das nur neugezeichnet werden muss. Ich denke das ist schon ender wie eine ganz große Karte. Neuzeichnen des Fogs brauchst du dann auch nur, wenn sich die bereits gesichteten Punkte ändern oder die Kamera an eine andere Stelle geschoben wird.


----------



## Gauo (20. Aug 2007)

Hokay, danke

ich lese im moment das Buch Killer Game Programming....sobald ich das durch hab werd ich mal weiter schaun....
dass ich z.B einfach einzelne Teile eines Image transparent machen kann wusst ich net
aber das von Evil-Devil verstehe ich nur bedingt...ist es nicht dann immer nätig sobald sich eine unit bewegt dieses Teilimages neu zu definieren, oder soll ich die ganze map mit solchen teilimages belegen?


----------



## Quaxli (21. Aug 2007)

Wenn Du eine Map verwendest ist dies in Summe ja meist sehr viel größer als der Bildschirm. Man sieht ja immer nur einen Ausschnitt. Aus Performance-Gründen solltest Du auch nur diesen Teil berechnen und zeichnen. Zwar könntest Du pauschal alles in ein Graphics-Objekt zeichnen, aber ein Großteil Deiner Karte würde außerhalb des Bildschirms gezeichnet werden.
Entsprechend brauchst Du auch den FoW auf nur für den sichtbaren Teilbereich zu berechnen und anzuzeigen.


----------

