eigenes Spiel programmieren -> Hilfe???



  • Hallo!

    (Bitte nehmt euch mal die Zeit, auch wenn ihr es nur schnell überfliegt! Danke!)

    Glücklicherweise hab ich dieses tolle Forum hier entdeckt. Es macht mir große Hoffnungen ein bisschen Hilfe zu finden und mein Vorhaben einwenig realisieren zu können:

    Was ich "schon kann" (aber nur Grundlagen aus dem normalen Schulunterricht und ein bisschen eigenes Interesse):
    - HTML
    - Java
    - SQL

    Natürlich kann auch noch anderes^^, aber das würde nicht zu meinem Vorhaben passen. (Meine Vorliebe oder mein Hauptgebiet wäre Grafik...)

    SO, nun aber zu meinem groooßen Vorhaben.
    Meine kleine Cousine war am letzten Wochenende sehr begeistert von meinen Meerschweinchen und will jetzt auch unbedingt eines. So, habe ich mit gedacht, dass ich ihr eine virtuelle Meerschweinchenzucht basteln könnte, da ich mich sowieso mal in diesem Gebiet etwas kundig machen wollte...

    So sieht mein Plan aus:
    - einen Meerschweinchenkäfig/Stall zusammen basteln
    - verschiedene Meerschweinchen, die man füttern muss (Verschiedene Altersstufen, Geschlechtsunterscheidung usw...)
    - die Meerschweinchen können, wenn natürlich Männchen und Weibchen zusammengehalten werden nach Zufallsprinzip oder Generator (ich habe leider keine Ahnung, was es da für Möglichkeiten gibt) auch Nachwuchs bekommen
    -das Spiel muss gespeichert werden können

    Das wäre das grobe. Ich weiß nicht, ob man (oder ich) das realisieren kann, aber vielleicht klappt es mit eurer Hilfe oder vielleicht findet sich ja ein Mentor für mich -> hihi^^
    Weitere Extras wären folgende (die man aber auch nach und nach einbauen könnte _> soo viele Ideen oh oh...):
    - das Spiel könnte ja mit Echtzeit laufen
    - das Meerschweinchen würde sterben, wenn man es nicht füttert
    - das Meerschweinchen kann altern und irgendwann sterben
    - das Spiel könnte mit Echtzeit laufen
    - es könnte Spielgeld und ein Lädchen geben (z.B. um Futter und Käfigzubehör zu kaufen)
    - gezüchtete Meerschweinchen könnte man verkaufen um Geld zu verdienen (oder einfach ein täglicher Lohn)
    Okay, ich muss mich stoppen, das führt zu weit, ich könnte noch viel mehr aufzählen^^ Ich dürfte selbst nicht so Meerschweinchen-begeistert sein^^

    Gut, ich habe allerdings überhaupt keine Ahnung wie und womit ich anfangen soll. Eines ist jedenfalls klar: ich will kein Geld ausgeben, sondern nur Freeware verwenden.
    Welche Programmiersprache/ -programm ist am günstigsten?

    Ich will diese Idee auf jeden Fall verwirklichen, egal wie viel Mühe und Zeit es benötigt!!!

    Ich bin dankbar für ALLE Tipps und Links und Hinweise und Ideen und Erklärungen und und und...
    Liebe Grüße



  • Ich hoffe du bist dir im Klaren, dass du dir da verdammt (!) viel vorgenommen hast. Was du da beschreibst ist eine Menge - vor allem für einen Anfänger.

    Zur Realisierung: Wie immer gäbe es viele Ansätze. Du könntest es mit Flash programmieren oder mit einer API wie SDL, DirectX oder OpenGL. Oder du verwendest eine 3D Render Engine wie Irrlicht oder Ogre3D.
    Wenn es dir reicht das alles in 2D zu machen, würde ich Dir zu Flash oder SDL raten. Wenn du es unbedingt in 3D machen willst, dann würde ich eher zu einer fertigen 3D Engine wie Irrlicht raten.
    Aber bedenke in jedem Fall was da noch alles auf dich zukommt. Wenn du es in 3D machst, brauchst du Modelle (Käfig, Hamster etc), musst die Modelle texturieren, animieren, brauchst vermutlich auch noch Soundeffekte usw usw. Wenn du das alles selber machen willst, ist das ein wahnsinniger Aufwand.



  • @this
    Ich würde ihm nicht unbedingt OpenGL vorschlagen 😮



  • Hm.. wenn du schon Java und Zeichnen kannst, dann müsstest du doch ungefähr wissen wie du rangehen könntest. Falls du in Java keine Benutzeroberflächen gelernt hast, dann schau dir mal Swing an. Ich will jetzt nicht sagen, dass das eine gute herangehensweise für ein Spiel ist aber anscheinend willst du dein Spiel schnell fertig haben, weil ich weiß nicht ob deine Cousine in einigen Monaten noch Lust auf ein Meerschweinchen hat.

    Naja erstell in Java halt irgendwie ein leeres Fenster, pack ein paar Grafiken drauf und verarbeite Eingaben mit Maus und Tastatur. Hier und da paar Buttons und vielleicht gefällt es dir (und ihr). Kannst es ja dann mit der Zeit updaten.

    Wenn du aber wirklich was vernünftiges möchtest, dann lerne am besten SDL.



  • Kóyaánasqatsi schrieb:

    @this
    Ich würde ihm nicht unbedingt OpenGL vorschlagen 😮

    Ich wollte es einfach aus Gründen der Vollständigkeit nennen. In meinem Posting habe ich ja klar zu was anderem geraten (Flash,SDL oder ne Engine). Und WENN er es wirklich mit einer Low-Level-API realisieren will, würde ich ihm klar zu DirectX raten, da es im PC Bereich dem ewig hinterher hinkenden OpenGL einfach deutlich überlegen ist.



  • Oder lasses nen paar Inder für'n Hunni proggen^^



  • 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