Spiele Programmieren mit Java Flash oder andere Sprache?!?

elfquest

Aktives Mitglied
Thread Starter
Dabei seit
04.07.2007
Beiträge
359
Reaktionspunkte
6
Hallo zusammen,

also, folgende Situation:

Ich habe ein Kartenspiel entwickelt und ist soweit auch fertig. Da es mir derzeit an Testspielern mangelt, möchte ich das ganze in ein digitales Spiel portieren.
Hierzu möchte eine OS unabhängige Variante nutzen wie z.B. Java oder Flash

Ich kenne mich leider mit beiden Sprachen überhaupt nicht aus, ich kenne lediglich die Grundlagen in C und C++ und habe auch schon ein bißchen mit HTML und VisualBasic experementiert.

Frage: Gibt es einen gescheiten freeware compiler für Java bzw. Flash (sofern ein compiler benötigt wird) und ein dazu passendes deutschsprachiges HowTo?

Oder Ist das Programmieren in Java/Flash garnicht mal so ohne, dass ich um eine ausführliche Papiergebundene Grundlage nicht drum herum komme?!?

ElfQuest
 
Hallo Eflquest,

wenn du platformunabhänghig programmieren willst und dies nach Möglichkeit auch noch günstig, würde ich dir auf jeden Fall zu Java raten. Alleine, weil das Java SDK schon im Lieferumfang von Mac OS X steckt und sich gute Entwicklungsumgebungen wie Eclipse oder NetBeans ebenfalls kostenlos aus dem Internet laden lassen.

Einen Vergleich zu Flash kann ich jedoch nicht ziehen, da ich mich dort nicht sehr gut auskenne.

In Java würde ich mich jedoch als ziemlich fit einstufen ;-).

Wie schwer es ist, das von dir erdachte Kartenspiel in guten Java-Code zu packen, kann ich dir jedoch momentan noch nicht sagen, da ich die Regeln deines Spiels nicht kenne.

Ein einfaches Black-Jack oder 17+4 sollte aber in kaum mehr, als 200-300 Zeilen programmiert sein.

Trotzdem brauchst du für ein solches Vorhaben schon ein halbwegs vernünftiges Rüstzeug in der Java-Programmierung.


Für den Anfang empfehle ich dir einfach mal in http://www.galileocomputing.de/openbook/javainsel6/ zu schauen. Das ist die kostenlose online-version eines ziemlich populären Java-Buchs.

Gruß
Jan-Michael


PS: Ich würde den Thread vllt. besser in das Entwicklerforum verlegen
 
Jo, Java klingt vernünftig. Es ist weit verbreitet, gut ausgereift, anständig entwickelt, es gibt eine IDE usw.
 
Hallo Elfquest,

im Grunde sind beide von dir genannten Moeglichkeiten denkbar. Beide Plattformen erlauben es dir Plattformunabhaengig zu entwickeln.

Der Vorteil von Flash waere, dass du es einfacher mit der Grafik hast, da du die ganzen Teile des Spiels direkt dort zeichnen kannst. ActionScript in der mittlerweile 3. Version laesst sich auch ganz gut Programmieren, auch wenn der mitgelieferte Editor ein Graus ist.
Zu den Nachteilen von Flash waere zu erwaehnen, dass eine Lizenz gekauft werden muss, die nicht unerhebliche Kosten mit sich bringt. Ein weiterer Minuspunkt ist Performance. Leider leidet Flash dort noch immer ein wenig. Ist die Grafik recht aufwendig und detailliert, kommt das ganze schnell ins Stocken.

Java halte ich persoenlich fuer eine gute Wahl fuer das Projekt. Es kostet im Gegensatz zu Flash rein garnix. Auch super Entwicklungsumgebungen gibt es kostenlos. Die API ist sehr umfangreich und sollte dir fuer dein Projekt alles bieten, was du brauchen wirst. Minuspunkt gegenueber Flash waere hier der hoehere Aufwand in Sachen Grafik.

Selbstverstaendlich gibt es auch noch weitere Alternativen. Fuer C++ z.B. gibt es kostenlose, plattformunabhaengige Game Engines, mit denen ein solches Projekt auch realisierbar ist.
 
Danke erstmal für den Link
vielleicht könnt ihr das ja mal grob überschlagen, was die Entwicklung des Spiels an Zeit und können erfordert, hier mal ein grober Abriss des Spielprinzips:


Spieltyp: Kartenspiel mit eigenem Kartendisgn
Spielerzahl: 2-4 Spieler (für eine Computervariante vielleicht erstmal nur 2)
Kartentypen: 4 (Angriff, Verteidigung, Rohstoffe, Aktionskarten)
Kartenzahl: 72
Handkarten: 5 (werden vom Hauptstapel gezogen)
Je Zug: es können 3 Aktionen durchgeführt werden (karten ausspielen, ausgespielte karten aktivieren bzw. ablegen, oder direkt die Karten ungenutzt abwerfen)

Ziel: Rohstoffe sammeln, Verkaufen, durch den verkauf Geld sammeln und einen Siegpunktestand in form von Geld erreichen

Ich habe das ganze mal versucht in einen Programmablaufplan zu packen, ich selbst würde es als schon reht komplex einstufen. Aber das ist ein Projekt, in das ich gerne bereit bin zeit zu investieren, da ja wie gesagt das Spiel an sich bereits fertig ist und es nun lediglich darum geht das Regelwerk in ein (ich glaube nach dem was ich bisher gelesen habe mich bereits entschieden zu haben) Javaapp zu stopfen :D

[EDIT] Zusätzlich habe ich ein zweites spiel in der mache, das an das Kartenspiel anknüpft, jedoch ist dieser Entwurf ein Brettspiel, beide möchte ich eigentlich in einem Programm umsetzen....aufwendige Grafiken werde ich nicht benutzen.....ich habe mein Kartendesign vollständig in OpenOffice Draw gefertigt und bin mit dem Ergebnis hoch zufrieden. [EDIT]
 
Zuletzt bearbeitet:
Soll das Spiel mit mehreren Spielern auf einem Rechner, oder ueber das Netzwerk stattfinden?

Edit: Bei einer solchen Entwicklung kommt es allerdings auch darauf an, wie gut man das Framework kennt. Es ist daher relativ schwierig abzuschaetzen fuer dich. Wenn du noch nie mit Java gearbeitet hast und du mit dem Projekt loslegen moechtest, wird es schon recht lange dauern.
 
Zuletzt bearbeitet:
@cynic ich würde es am allerliebsten als eine Netzwerkvariante machen die sowohl für LAN als auch für Internet tauglich ist, zusätzlich würde ich aber auch gern einen Computergegner mit einbinden, wobei das eher schwieriger ist als ein Netzwerkbasiertes spiel
 
Hehe, langsam frage ich mich um was fuer ein Spiel es sich da handelt. :D

Mit dem Netzwerkspiel wird die Sache ja auch noch ein wenig komplexer, so dass du dich auf jeden Fall noch mit Threads (wenn es nicht sowieso noetig gewesen waere) und Socketprogrammierung auseinandersetzen musst.

Ich denke mal der beste Weg wuerde sein sich erstmal mithilfe von Literatur in Java einzuarbeiten, so dass du siehst, wie schnell du wie weit kommst und dir dann ggf. fuer das Projekt noch Hilfe an Board holen kannst.
 
@cynic ich würde es am allerliebsten als eine Netzwerkvariante machen die sowohl für LAN als auch für Internet tauglich ist, zusätzlich würde ich aber auch gern einen Computergegner mit einbinden, wobei das eher schwieriger ist als ein Netzwerkbasiertes spiel

Also ich will mal realistisch sein und behaupte, dass wenn du gewisse Ansprüche an die grafische Qualität deines Spiels stellst und die zitierten Sachen umsetzen willst - ist das für dich kaum in der näheren Zukunft machbar. Java ist zwar eine sehr durchdachte uns schöne Sprache, erfordert jedoch immer noch zeitlichen Aufwand, um sich darin einzuarbeiten.

Für deine Ansprüche wären dann die Bereiche: Graphic2D, Threads, evtl. Animationen (vielleicht mit TimingFramework), Netzwerkprogrammierung, evtl. KI usw. usw. relevant. Basics noch nicht mal angesprochen.

Fang also schon mal an, dich in die Sprache einzuarbeiten und ständig zu programmieren - in einem Jahr oder so, kannste dann mit dem Projekt starten.
 
@plattform7: das ist eine ernüchternde aber dennoch klare Ansage.
Spieleprogrammierung ist also nicht unbedingt das kleinste Thema in diesem bereich :D

Vielleicht sollte ich da doch eher meine Ansprüche etwas zurückschrauben und bei einem kleineren Projekt anfangen... um die Grundlagen zu bekommen die notwendig sind.
 
Vielleicht reicht es dir zum Testen der grundsätzlichen Spielidee auch erstmal ein Kommandozeilen Interface?
Das würde die Sache wieder ziemlich vereinfachen.
Wenn dir das Spiel dann immernoch gefällt kannst du dich ja an das Interface machen!
 
@plattform7: das ist eine ernüchternde aber dennoch klare Ansage.

Leider ist das so, auch wenn ich dir wirklich ungern deine Visionen weg nehmen möchte. :(

Vielleicht reicht es dir zum Testen der grundsätzlichen Spielidee auch erstmal ein Kommandozeilen Interface?
Das würde die Sache wieder ziemlich vereinfachen.
Wenn dir das Spiel dann immernoch gefällt kannst du dich ja an das Interface machen!

Das wäre eine machbare Alternative - wenn du mit den Einschränkungen leben kannst. Sollte es nur darum gehen, die gelungene Idee zu verifizieren, würde ich ebenfalls solch eine Lösung vorschlagen. Die hierfür notwendigen Basics (bis auf KI) sind recht schnell erlernbar.
 
wenn ich das nun richtig verstehe läuft die Aussage von Crea auf eine Art Simulation des Spiels hinaus?!?

Würde zum entwickeln für das eigentliche Spiel natürlich ausreichen, die Umsetzung würde mit Sicherheit nur einen Bruchteil der Zeit in Anspruch nehmen, eine Grafisch ansprechende Variante könnte man dann immernoch ins Auge fassen.

Je mehr ich darüber nachdenke ist diese Art der Umsetzung vielleicht sogar besser, da ich mich mehr auf die Umsetzung in der "Realität" konzentrieren kann.

Gehen wir mal davon aus, dass ich diese Alternative umsetzen möchte....was brauche ich? :D
 
Gehen wir mal davon aus, dass ich diese Alternative umsetzen möchte....was brauche ich? :D

Nun auch hier musst Du dich mit der Sprache auseinander setzen. Im Grunde werden hier nur die zeitaufwendigen grafischen "Spielereien" vermieden.

Am einfachsten wäre also ein Komando-Zeilen-Betrieb zwischen 2 Spielern an einem Rechenr. Also kein LAN, Internat, Speilen gegen Computer usw. Diese sachen sind schon bissel anspruchsvoller.

Um die obigen Anforderungen umzusetzen, sind die grundlegenden Basics in Java notwendig. Dazu kannst Du gerne die oben verlinkte Gallileo-Referenz durcharbeiten. Kostet nichts und ist recht gut.

Wichtig wäre also die allgemeine Syntax von Java. Skills bezüglich der Vererbung, Collections, Verarbeitung von Eingaben (hier Tastatur) usw.

Fang einfach an zu lesen, so wie das Online-Buch aufgebaut ist- Rest wird sich schon ergeben. Einfach wird es dennoch nicht. Da du aber sagst, dass du Bereits gewisse Vorkenntnisse in C++ besitzst, dann werden Begriffe wie Klasse, Objekt, Vererbung usw. ja wahrscheinlich bekannt sein. Im Idealfall wirst Du dich hauptsächlich mit der Java-spezifischen Syntax beschäftigen.
 
nachdem du c kennst, wäre auch c + SDL/Allegro/andere Spiele-API eine Möglichkeit.
Gerade wenn vielleicht ein kleiner graphischer Effekt geplant ist,
ist dies zu empfehlen, da dieser in purem Java mit Swing selten
performant genug umzusetzen ist.

SDL/Allegro + OpenGL ist allerdings schwieriger, da das Abstraktionsniveau
ein ganzes Stück niedriger ist.

Ansonsten: Java ist auch eine Insel
 
  • Gefällt mir
Reaktionen: elfquest
Hallo!

Naja, das Spiel auf Kommandozeilenebene zu realisieren ist mit Sicherheit eine gute Idee für den Anfang und auf jeden Fall einfacher umzusetzten, als eine Version mit Graphics2D zu schreiben ...

Trotzdem glaube ich, dass es vllt. noch eine weitere Alternative gibt, das Vorhaben auch graphisch zu realisieren.

Man könnte ja auch versuchen die Karten mit Buttons zu repräsentieren. Die Anzahl der Karten würde ich vllt. via JLabel darstellen. So finde ich, erhielte man eine immernoch recht ansprechende Oberfläche, ohne sich gleich mit DoubleBuffering und ähnlichen Spielereien auseinandersetzen zu müssen.

Ich bin mir bei dem folgenden Tipp nicht ganz sicher, ob es nicht doch ein wenig zu schwer für den Anfang ist, aber NetBeans (recht gute Entwicklungsumgebung) bietet die Möglichkeit eine GUI per Drag&Drop zu erstellen. Auch das Event-Handling ist in dieser IDE (afaik) denkbar einfach.

Du kannst dir die Umgebung ja einfach mal anschauen. Ansonsten wünsche ich dir natürlich noch viel Spaß und Vergnügen beim Erkunden von Java ;-)
 
danke für die vielen Tips, ich werde mir das netBeans mal anschauen, ansonsten steht jetzt erstmal viel lesen an, ich werde euch auf dem laufenden halten, was den Fortschritt angeht...vielleicht hat ja der eine oder andere auch Interesse das Spiel zu testen, ich suche noch Beta Spieler :)
 
Selbstverständlich. :D

Dann wünsche ich dir mal viel Spaß bei der Entwicklung und freue mich schon auf deine Berichte!
 
  • Gefällt mir
Reaktionen: elfquest
Zurück
Oben Unten