eigenes Spiel programmieren -> Hilfe???



  • Soweit ich weiss, gibt es auch 3D-Bibliotheken für Java. (Wäre ja praktisch, da du ja bereits erfahrungen mit Java gemacht hast.) Es gibt auch eine Grafikbibloothek "Allegro", hab zwar noch keine Erfahrungen damit gemacht, aber das soll einfacher sein als DirectX.

    Bevor du aber anfängst, einfach so draufloszuprogrammieren, solltest du zuerst eine Machbarkeitsanalyse durchführen. Dein Projekt scheint ja nicht allzu klein zu sein, von daher sollte man sich schon einige Gedanken machen, bevor man anfängt, das Spiel zu programmieren. Ich hatte mal ein 3D-Snookerspiel programmiert, ohne mir vorher viele Gedanken gemacht zu haben. Das endete dann damit, dass das Spiel nach etwa 6 Monaten fertig war, ich nicht mehr durch den Quelltext durchblickte und das Spiel nicht so gut wurde, wie es hätte werden können. Ich will dir jetzt dein Vorhaben nicht ausreden, wenn du gut planst und deine Fähigkeiten realistisch einschätzt, dann wird das schon. Ich könnte dir ja mal ein paar Ansätze liefern:

    Jeder Objekttyp in deinem Spiel sollte eine eigene Klasse haben.
    z.B. CMeerschweinchen, CStall, CFutter, CLaden, usw...
    Nach Möglichkeit jeden Objekttyp in einem eigenem Modul implemenieren.

    Dann könntest du einen Objektmanager programmieren, der die Instanzen der Objekte verwastet. Hier würde es sich anbieten, alle Objekte von einer gemeinsamen Klasse Abzuleiten, die schon Methoden wie Init, Exit, Render, Update, usw enthält.

    Auch solltest du über die Namensgabung deiner Variablen nachdenken, wie zum beispiel präfixe, an denen man schon sehen kann, um welchen Typ es sich handelt. (z.B. int iAnzahlMeerschweinchen)

    Zum Speichern der Spielstände: Du könntest in einer globalen struktur alle momentanen eigenschaften der einzelnen Objekte (Position, alter, etc.) speichern und diese dann 1:1 in eine Textdatei speichern oder aus der Textdatei laden.

    So, das wars dann von meiner Seite, ich hoffe, ich konnte dir einige Anregungen geben. Ich wünsch dir noch viel Spaß beim Programmieren.

    MfG, Jochen



  • Nun ... nimm eine Digitalcamera, mach ein Foto deines Meerschweinchens. Speicher es auf dem PC und bearbeite es mit einem Bildbearbeitungsprogramm.

    Dann nimm eine Entwicklungsumgebung fuer Delphi oder C# ... dort lassen sich Bilder relativ schnell laden. Eine einfache Schleife mit Timer wuerde dafuer sorgen, das sich dein Bild sich von a nach b bewegt. 😃

    Alles andere koennte man dann darauf aufbauen. Ich wuerde einem Anfaenger erstmal von 3D abraten. Da sind die Erfgolgserlebnisse zu weit weg.
    Echtzeit > dafuer gibts ja Time-Objekte, die man auslesen kann.
    Wachstum, Ernaehrung ect. lassen sich mit simplen Logiken auch einfach umsetzen.

    Also wenn du mich fragst ... du kannst viel Logik auch mit wenig Wissen verwirklichen.
    Mit der Zeit kannst du dann alles verbessern und optimieren.

    Klingt zwar einfach gesagt und es wird auch nicht gleich die megatollen 3D-Effekte geben. Aber deine Cousine wird irgendwann Erwachsen sein 😃 und sich dann vielleicht auch nicht mehr fuer Meerschweinchen interessieren.
    Das Programm soll ja auch mal ne spielbare Version hervorbringen.



  • @fresa:
    Wenn du mit Java schon Erfahrung hast, hier wären auch einige Java Engines gelistet:

    http://en.wikipedia.org/wiki/List_of_game_engines

    Wobei ich die alle nicht kenne und daher auch keine empfehlen kann.

    Von Engines ala Irrlicht, Ogre etc. würde ich abraten. Erstmal sind die alles andere als einfach wenn man von der Materie noch keine Ahnung hat, und dann ... ausreichend gut C++ dass du mit Irrlicht, Ogre etc. was auf die Beine stellst, das dauert *lange*.

    Würde dir eher noch empfehlen dass du dich nach irgendwas Blitz-Basic artigem umsiehst, was halt gratis ist.

    Nochwas: wenn du keine allzu grossen Ansprüche an die grafische Qualität stellst, dann kannst du das auch mit einem GUI Toolkit (Swing, SWT, ...) machen. Sehr sehr viel einfacher wird das mit einer Game-Engine auch nicht.


  • Mod

    ich wuerde erstmal rein die logik imlementieren und schauen, ob das alles funktioniert und spass macht.
    das kannst du mit simplen menues in einer konsole machen oder, falls du dich damit auskennst, mit ein paar dialogen die du zusammensteckst.

    wenn das funzt, koenntest du das ala tamagotchi visualisieren, indem du pro menue ein photo/strichmaenchenbild zeigst z.b.
    -hungriges meerschwein
    -trauriges meerschwein
    -meerschwein bekommt spritze
    etc.

    dann kannst du die eingabe erweitern, z.b. dass man mit dem mauskursor das fell kaemen muss oder was auch immer es fuer interaktionsmoeglichkeiten mit meerschweinchen gibt.

    und falls das alles laeuft, kannst du vielleicht einen graphiker aufgabeln der dir schoen gezeichnete bilder macht damit du deine eigenen ersetzen kannst.

    schon hast du ein spiel auf nintendo ds qualitaet 🙂



  • Dieser Post dient nur dazu Polemik als solche darzustellen und zu verurteilen. Es hat nichts mit dem Thema zu tun.

    DirectX raten, da es im PC Bereich dem ewig hinterher hinkenden OpenGL einfach deutlich überlegen ist



  • Erst einmal ein grßes Danke für die vielen Antworten!!!

    Gut... ja... ich weiß, dass ich mir viel vorgenommen habe. Ich habe es meiner Cousine ja noch nicht versprochen, also ist es nicht schlimm, wenn es in die Hose geht, aber ich würde es gerne auch aus eigenem Interesse versuchen.

    Gut, erst einmal zur Wahl der Programmiersprache: Ich würde mich nun doch für Java entscheiden, weil ich dort wenigstens schon ein paar Vorkenntnisse und Grundlagen habe. Als nächstes müsste ich mich nun für das richtige Programm(e) entscheiden.
    Ich wäre euch seehr dankbar, wenn ihr mir noch einmal kurz auflisten könntet, welche Programme ich allgmein benötige (und wofür genau) und dann ein Beispiel(e)/Empfehlung dazu.
    Das würde mir schon sehr helfen. Eine wichtige Bedingung ist jedoch, dass es kostenlos zu downloaden sein muss!

    Ist es mit Java möglich Spielstände zu Speichern und eine Spielzeit oder sogar Echtzeit laufen zu lassen?

    Nochmals vielen Dank für die Antworten!
    fresa



  • Spielstände in Java zu laden/sepichern ist kein Problem. Du musst ja einfach nur eine Textdatei erstellen bzw. aus ihr lesen. Für die Echtzeit müsstest du ja einfach nur die Uhrzeit abfragen. Das müsste auch gehen.

    Aber ist es denn so klug, das Spiel in Echtzeit laufen zu lassen? Das Altern der Meerschweinchen wäre also extrem langsam, zum Tierarzt müsste man dann wohl auch nur höchstens einmal im Monat, Geldbeschaffung durch Meerschweinchenzucht wäre auch sehr langsam, etc... Letztendlich ist es natürlich deine Entscheidung, wie du das Programmierst, Aber du solltest das Spiel auch nach Möglichkeit so gestallten, dass man die meiste Zeit irgendetwas machen kann. So geht der Spielspaß nicht verloren. Aufbauspiele wie z.B. Industrie Gigant, Genius usw. laufen auch nicht in Echtzeit, damit das Spiel Spaß macht.

    Zu den benötigten Programmen: Eigentlich bräuchtest du nur eine Java-Engine. Dann für die Grafiken eventuell noch bildbearbeitungsprogramme und Texture-Tools. Aber ansonsten brauchst du nicht viel. Ich brauche für meine Spiele auch nur einen Compiler, Paint, meine Engine, Das DirectX-SDK und noch ein Texture-Tool.

    MfG, Jochen



  • Als Java IDE empfehle ich dir eclipse: http://www.eclipse.org/
    Mehr brauchst du eigentlich nicht. Vielleicht noch ein Grafikprogramm um die Bilder zu zeichnen.

    Hier mal ein Tutorial für Java 2D Spiele: http://zetcode.com/tutorials/javagamestutorial/



  • Gut, also das Bildbearbeitungsprogramm ist kein Problem, damit habe ich auch schon angefangen^^

    Gut,ich werde mir jetzt einfach mal dieses Eclipse herunterladen und zusehen wie ich damit klar komme. Ich werde vielleicht auch damit gleich erst einmal die Tutorials durcharbeiten, danke NaaK!
    Mehr brauche ich dann wirklich erst einmal nicht?
    Was genau macht eigentlich der Compiler?

    @Jochen: Das ist natürlich auch eine clevere Variante mit dem speichern. So habe ich noch gar nicht gedacht^^ Ja ok, Echtzeit. Das sind dann wirklich die Nachteile. Vielleicht werde ich es so machen: eine Spielminute entspricht ein Stunde und ich muss ja nicht unbedingt z.B. die reale Zeit nehmen, bis ein Meerschweinchen nach 10 Wochen ihren Nachwuchs bekommen (das wären ja 1680 Spielminuten, also 28 Stunden, da kann man dann ja mal mogeln...).
    Ok, danke, das war ein schlagkräftiges Argument^^

    Nochmals danke!
    Lg fresa



  • Der Compiler sorgt dafür, dass der Code den du geschrieben hast auch vom System verstanden wird. In Java wäre das Bytecode. Dieser Bytecode wird dann von der Java Virtual Machine in Maschinencode umgewandelt.

    Das ist auch der Grund warum Java so systemunabhängig ist. Nur die Virtual Machine unterscheidet sich von System zu System, was den Programmierer ja dann nicht mehr interessiert. Wenn du bei solchen Sachen wie Pfadangaben aufpasst, dann sollte sich dein Programm auf jedem System ausführen lassen, wofür es eine JVM gibt.


Anmelden zum Antworten