Vermeiden Sie 3D , da Sie wissen müssen, wie man 3D-Modelle erstellt oder gute findet. Sie müssen wissen, wie man solche Modelle lädt (oft eine epische Aufgabe an sich, leider) und wie man sie auf dem Bildschirm zeichnet (z OpenGL oder DirectX erfordern viel Arbeit bei geringem Gewinn, und selbst eine Engine wie jMonkeyEngine erfordert Kenntnisse über die Verwendung der Engine sowie grundlegende 3D-Kenntnisse. Das Blenden von 2D-Bildern auf dem Bildschirm und das Verschieben von Bildern ist viel einfacher als der Umgang mit Scheitelpunkten, Materialien, Ansichtsmatrizen, Transformationen usw. usw. Ich denke, Sie verstehen es.
Halten Sie sich an die integrierten Java-Bibliotheken und -Klassen: Graphics2D, ImageIO, AWT-Listener für Maus und Tastatur, Canvas, Java Sound API usw. Das Festhalten an diesen, anstatt eine andere Bibliothek zu finden, hat folgende Vorteile: Sie kennen sie bereits (bis zu einem gewissen Grad), Sie wissen, dass sie gut getestet und stabil sind und im Allgemeinen Sinn machen, Online-Dokumentation und -Ressourcen sind reichlich vorhanden und sie sind portabel Sie müssen sich keine Gedanken über die Installation zusätzlicher Bibliotheken mit nativen Bibliotheken machen.
Erstellen Sie vorab eine kleine Bibliothek mit Codefragmenten. Dazu gehören Dinge wie das Laden eines Bildes, das Zeichnen des Bildes an eine Position auf dem Bildschirm, das Skalieren des Bildes und andere Effekte, das Abspielen eines Tons, das Schleifen von Hintergrundmusik, das Erkennen von Begrenzungsrahmenkollisionen und das Zeichnen von Text. Haben Sie auch eine Skeleton-Anwendung, die einen Frame (oder ein Applet) öffnet, einen Canvas hinzufügt, und die Mal- und Repaint-Methoden der Canvas sollten überschrieben werden, und ein Thread sollte die Canvas-Repaint-Methode (oder einen Timer, der sie aufruft) in einer Schleife durchlaufen. Sie können diese Dinge lernen, wenn Sie nach suchen Java 2D game programming
. Angenommen, Sie haben Zugriff auf die Bibliothek Ihrer Universität, sollten Sie über eine Reihe guter Java-Spielbücher verfügen. Schau sie dir an und überfliege sie nach den oben genannten Ausschnitten und anderen, die ich verpasst habe.
Üben Sie die Quellcodeverwaltung und Arbeitsteilung mit Ihrem Team im Voraus.Wirst du Subversion, Git, Mercurial oder etwas anderes verwenden? Sind alle Computer auf dieselbe aktuelle Version von Java eingestellt? Erstellen Sie Ihr Repository, schreiben Sie einige Dateien fest / pushen Sie sie, stellen Sie sicher, dass alle das Repository ausgecheckt haben und bereit sind, auf Ihrem System zu arbeiten. Legen Sie möglicherweise eine "Hallo Welt" -App fest und stellen Sie sicher, dass jeder sie abrufen, ändern und festschreiben kann. und stellen Sie sicher, dass Sie wissen, wie Sie mit dem Zusammenführen umgehen (ob Sie dies durch gute Kommunikation oder Paarprogrammierung vollständig vermeiden oder wie Sie ein Zusammenführungswerkzeug verwenden). Wenn Sie mit der Quellcodeverwaltung nicht vertraut sind, stellen Sie sicher, dass Sie eine funktionierende Lösung finden. Egal, ob es sich um Paarprogrammierung handelt, während die dritte Person Kunst oder Sounds macht, oder um etwas anderes, stellen Sie sicher, dass Sie von Anfang an organisiert sind, sonst verschwenden Sie jede Menge Zeit.
Lesezeichen für Links zu Websites, die kostenlose Medien bereitstellen. Es gab eine ganze Reihe solcher Websites, die in anderen Fragen hier aufgeführt sind. Websites wie Freesoundsind perfekt, um schnell nützliche Medien für Ihr Spiel zu finden, wenn Sie nicht die Zeit haben, sie von Grund auf neu zu erstellen. Setzen Sie natürlich ein Lesezeichen auf diese Site, damit Sie eine Frage stellen können, wenn Sie an etwas hängen bleiben. Setzen Sie Lesezeichen für Foren wie die gamedev.net-Foren, damit Sie nach Antworten suchen können. Wenn Sie sich für die Verwendung einer Drittanbieter-Bibliothek entscheiden, setzen Sie ein Lesezeichen für deren Website. Organisieren Sie diese Lesezeichen in Ordnern und greifen Sie auf so viele wie möglich zu. Stellen Sie sicher, dass Sie sie freigeben, damit Sie alle drei über dieselbe nützliche Bibliothek mit Lesezeichen verfügen. Es dauert nicht lange, diese Lesezeichen zu sammeln und nach Typ / Thema zu organisieren, aber es spart Ihnen viel Zeit, wenn Sie sich nicht an all diese Websites in der Mitte Ihres Projekts erinnern müssen.
Weitere Vorschläge finden Sie in den Antworten auf meine Frage "Wie bereite ich mich auf einen Spieleentwicklungswettbewerb vor?" .
Um den Rest Ihrer Frage zu beantworten ... Der allgemeine Rat lautet: Zielen Sie nicht hoch . Dies kann jedoch sehr unterschiedlich sein, je nachdem, wie gut Sie vorbereitet sind (dh meine obigen Vorschläge) und welche Kenntnisse Sie in Java haben. Dies ist größtenteils ein persönliches Urteil, das auf Ihrer Geschichte basiert, aber da keiner von Ihnen in der Vergangenheit Spiele gemacht hat (und daher die erforderliche Zeit nicht beurteilen kann), sollten Sie wirklich sehr, sehr niedrig zielen . Überlegen Sie sich eine wirklich grundlegende Idee, die ohne fortgeschrittene Konzepte einfach in 2D implementiert werden kann (z. B. vermeiden Sie pixelweise Kollisionen, verrückte physikalische Berechnungen, Partikeleffekte usw.). Erstellen Sie dann eine Prioritätenlisteder Funktionen des Spiels so detailliert wie möglich (z. B. teilen Sie jede Funktion in so viele separate Aufgaben wie möglich auf). Auf diese Weise arbeiten Sie sich einfach so weit wie möglich durch die Liste, und wenn Sie nicht zu Aufgaben mit niedriger Priorität gelangen, sollte dies keine große Sache sein. Dies muss sorgfältig durchgeführt werden (Sie benötigen am Ende der Zeit noch ein funktionierendes Spiel, sodass ein Mindestmaß an Aufgaben erledigt werden muss und einige Aufgaben von anderen Aufgaben abhängen), aber im Allgemeinen denke ich, dass dies das ist Der beste Ansatz, wenn Sie nicht wissen, wie lange es dauern wird.