Informatik (Schule) erstes Java Projekt 3d Grafik + Pixelart zu schwer oder machbar?
Wer nicht lesen möchte guckt sich das beigefügte Video (Gameplay) an, inwiefern das machbar ist mit wenig Zeit.
Wir werden voraussichtlich in meinem Informatik Kurs ein Spiel programmieren. Jede einzelne Person ein eigenes. Ich hab nun aber noch nie mit Java gearbeitet und wollte fragen wie schwer es ist sich dort reinzufuchsen. Haben in der Schule mit java tutle und kara bisher gearbeitet und habe in Scratch so 30h an ein kleines Pixeladventure gearbeit (selber alles gezeichnet und animiert). Aber das war alles letztes Jahr, im Prinzip fange ich also wieder bei 0an.
Da ich auch die Grafik selber machen will (Charakterdesign, Animationen, Welt) wollte ich fragen wie schwer es ist. Ich wollte einen nach hinten gehenden Raum machen bei dem die Kamera dem Charakter nach hinten oder nach vorne folgt. Das selbe für einen weg von rechts nach links. Alles frei bewegbar.
ich füge mal gameplay von ANNO: Mutationem hier ein, so ähnlich möchte ich es haben, nur nicht so eine Crazy große Welt. (short story adventure eben)
https://www.youtube.com/watch?v=O0bkJArvYIE
wie sehr ist das zu hoch ambitioniert für ein Schulprojekt. Plane höchstens 30 Stunden Zuhause daran zu arbeiten (+30h für die künstlerischen Aspekte) und sonst haben wir ca 15h im Unterricht dafür.
Sollte ich lieber meine Ansprüche runterschrauben und was einfacheres machen, ein Spiel ohne 3d Perspektive? Habt ihr vielleicht Tipps von Tutorial Kanälen auf YouTube? Weiß noch nicht wie das Programm aussieht welches unser Lehrer geben wird, aber grundsätzlich erstmal java.
4 Antworten
Ich halte dein Ziel für zu hoch gegriffen. Das Erstellen der Assets dürfte dich bereits einiges an Zeit kosten und dann käme eben ein hoher Aufwand in die Einarbeitung sowie Recherche in Java (komplexer als Scratch/Kara) und zusätzlich einer Engine/Bibliothek hinzu, bei der du erst einmal schauen müsstest, wie du deinen geplanten Stil überhaupt einarbeiten kannst.
Ich würde dir empfehlen, stattdessen einen einfachen 2D-Platformer zu gestalten, bei dem deine Spielfigur nach links/rechts laufen und evt. auch springen kann.
Überlege dir eine kurze, einfache Story (vielleicht muss die Figur Objekte sammeln, um nach und nach verschiedene Wege/Aktionen freizuschalten, die zum Endziel führen) und welche Funktionen, Objekte, Assets (bei animierten Sprites sind die unterschiedlichen Zustände zu berücksichtigen) du dafür benötigst. Wenn du weißt, wie viel du für die Gestaltung von einer Grafik benötigst, kannst du ungefähr hochrechnen (evt. mit einem zusätzlichen Komplexitätsfaktor), wie viel du für weitere Grafiken brauchst. Mehr als 15-20h würde ich dafür erst einmal nicht einplanen. Sollte später doch noch Zeit sein, lassen sich immer Verbesserungsmöglichkeiten/Ansätze für Erweiterungen finden.
Konzentriere dich nach der Planung auf die Implementation der Basisfunktionen (laufen, springen, sammeln, Zeichnen von Grafikelementen/Sprites und Hintergrund, etc.), aber nutze dabei entweder Platzhalterbilder oder erstelle vorerst nur 1-2 Sprites, mit denen du ausreichend testen kannst. Grafiken u.ä. kannst du später immer noch erstellen/austauschen. Es ist daher nicht tragisch, wenn am Anfang des Projekts noch Rechtecke durch die Welt springen.
Für die Umsetzung wäre Processing geeignet. Es handelt sich dabei um eine eigene Programmiersprache, die auf Java basiert und für Einsteiger gestaltet wurde. Der wesentlichste Unterschied zu Java liegt darin, dass sie an sinnvoller Stelle Setup-/Boilerplate-Code reduziert, der für einen Anfänger eh nicht relevant ist bzw. erst vollends verständlich wird, sobald er sich über die Grundlagen hinaus mit objektorientierter Programmierung beschäftigt hat. Nichtsdestotrotz können Sketches bei Bedarf um Java-Klassen erweitert werden und andersherum kann man die Kernbibliothek von Processing ebenso in ein Java-Projekt einbinden, um ihre Funktionen mit reinem Java zu nutzen. Ersteres ist allerdings meist nicht nötig und auch Zweiteres würde ich vermeiden, wenn möglich. Generell gibt es in Processing ebenso Klassen und Objekte.
Sollte seitens deines Lehrers eine Vorgabe bestehen, dass ihr explizit mit Java arbeiten müsst, dann sprich es im Vorfeld mit ihm ab.
Neben der offiziellen Dokumentation kann ich diese Seiten als Lernquellen empfehlen:
Andere Optionen wären Greenfoot (sehr einfach, daher oft in Schulen genutzt) oder (schwerer) libGDX.
Bevor du überhaupt mit dem Projekt starten kannst, halte ich es für unausweichlich, dass du zumindest ein kurzes Tutorial zu den Sprachgrundlagen (Variablen, Operatoren, Kontrollstrukturen, Funktionen, Arrays) durcharbeitest. Ob nun zu Java oder Processing.
Sowas macht man idR mit Game Engines Wie Unity3D, da ist das alles vorgefertigt in Java hier nur mit grundlegenden grafikbibliotheken musst du ja erstmal das Ganze Rendering und die 3D Objekte alles selber erfinden.
Vorschlag mach sowas wie einen GTA 1 oder 2 Klon aus der Vogel Perspektive, das könnte man noch viel cooler umsetzen als im Original weil das soll ja eigentlich die Sicht aus dem Polizeihelikopter sein die den Kriminellen verfolgt den du steuerst, dass man hier noch ordentlich Polizeifunk und Helikopter Geräusche via Audio reinbringt.
In 30 Stunden schaffst du nicht einmal den Bruchteil eines Bruchteiles davon.
Zudem hängt da ja einen Note dran, also solltest du sowieso eher niedrig als hoch planen.
Ich würde empfehlen, etwas in der Dimension von Flappy-Bird oder PacMan zu planen. Wenn du dann früher fertig bist kannst du noch Zeug hinzufügen.
Für Ideen, schau dir evtl. alte Automatenspiele an.
Natürlich wäre ein Professionelles Spiel für einen Anfänger und erst recht als Schulprojekt zu viel
Aber etwas einfaches wirst du natürlich hinbekommen