Bachelorarbeit (Informatik) - Ist das Thema "2D-Spiel" anspruchsvoll genug?

Hallo,

Ich suche seit einiger Zeit schon ein Thema für meine Bachelorarbeit (ich studiere Informatik an einer FH) und dabei kam mir bisher das Thema “Spieleprogrammierung” mit Abstand am interessantesten vor. Das ganze wird wohl denke ich etwas 2D-mäßiges, eine Art Jump-&-Run Sidescroller, vielleicht eine Art abgespecktes Minecraft 2D (wie gesagt, abgespeckt!).

Das ganze würde ich natürlich alles von 0 an programmieren, also ohne irgendeine Game-Engine zu nutzen.

Ich frage mich nur, ob das Thema wirklich anspruchsvoll genug für eine Bachelorarbeit wäre? Akzeptiert würde es an meiner FH werden, das wäre nicht das Problem. Aber wie sehen das Firmen später bei der Bewerbung? Eher lachhaft?
Was mich am meisten verunsichert ist, dass das ganze ja eigentlich auch jemand, der eine Ausbildung zum Fachinformatiker AE gemacht hat hinkriegen würde. Das Thema ist vielleicht arbeitsaufwändig, aber da steckt jetzt keine höhere Mathematik oder sonstiges komplexes hinter. Allerdings behandelt es letzendlich die Richtung Softwareentwicklung (Spiele sind ja nichts anderes als Software), in der ich später wieso arbeiten möchte und welche zudem auch ein elementarer Bestandteil der Informatik ist.

Was ich z.B. komplexer finden würde, wäre irgendetwas aus dem Bereich Theoretische Informatik zu nehmen. Wobei ich es mir andererseits auch nicht unnötig zu schwer machen möchte, da die Bachelorarbeit ja immerhin einen Großteil der Abschlussnote ausmacht.

Was meint ihr?

[QUOTE=KrokvsKrok]Das ganze würde ich natürlich alles von 0 an programmieren, also ohne irgendeine Game-Engine zu nutzen.
[/QUOTE]
Das würde ich nicht machen, da kommst du ja nirgendwohin und dein Programm schaut dann aus wie in der Steinzeit - besseres Pong. Du musst doch nicht beweisen, dass du Schleifen, x-y-Koordinaten etc. verwenden kannst.

Nimm eine Bibliothek, ein Framework: das gehört auch zu Softwareentwicklung, und du wirst ein ansprechenderes Ergebnis produzieren.

Was mich am meisten verunsichert ist, dass das ganze ja eigentlich auch jemand, der eine Ausbildung zum Fachinformatiker AE gemacht hat hinkriegen würde.

Noch gar nicht fertig und schon der Dünkel? Spaß beiseite: was glaubst du denn, was du nach deinem Bachelor HINKRIEGST, was ein guter Fachinformatiker NICHT HINKRIEGT?
Das ist wirklich kein Problem, dass andere das auch können…

Mach einfach das, was dich am meisten begeistert. Bau dann noch irgendeinen popeligen Online/Mobile/Internetquatsch dazu, das peppt die spätere Bewerbung noch ein bisschen auf.

Das kann dir nur dein Prof beantworten. Die Spieleindustrie ist aber kein ganz unwichtiger Wirtschaftszweig, und die dort gewonnenen Erfahrungen werden auch bei der „ernsthaften“ Visualisierung immer wichtiger. Mir stellt sich eher die Frage nach der Wissenschaftlichkeit, womit wir dazu kommen:

Das ganze würde ich natürlich alles von 0 an programmieren, also ohne irgendeine Game-Engine zu nutzen. Ich frage mich nur, ob das Thema wirklich anspruchsvoll genug für eine Bachelorarbeit wäre?

Wie man ein 2D-Spiel programmiert, ist bekannt. Falls du nicht gerade revolutionäre Ansätze ausprobierst (mir käme da FRP in den Sinn, aber das ist wirklich schwierig), programmierst du im Prinzip die vorhandenen Engines nach, und das vermutlich schlecht (wenn du nicht gerade ein Genie bist, kann es bei der investierten Manpower nicht anders sein).

Ich würde eher die Engines (entweder Grafik oder eventuell Physik) selbst in den Vordergrund rücken - das macht es viel leichter, das Kriterium der Wissenschaftlichkeit zu erfüllen: „Ich möchte den Aspekt X bei der 2D-Programmierung untersuchen. Dabei betrachte ich die drei Engines A,B,C, die sich darin wie folgt unterscheiden. Als Anwendungsfall habe ich das Spiel FooFighter mit A, B, C als Frontend implementiert, und dabei festgestellt, dass X am besten mit dem Ansatz von Engine A umsetzen lässt, weil…“

Die Vorteile: Du kannst ein Spiel schreiben, es muss nicht super sein, sondern nur den gewählten Aspekt verdeutlichen. Und du hast kein Problem, das als Wissenschaft zu verkaufen.

Wie erwähnt, völlig sinnloses Herangehen.

Ja, wie jede andere Bakk-Arbeit auch xD Was hast du denn für eine Idee was sowas wert ist.

Die programmieren normalerweise sowieso besser als ein Bachelor. Mach’ dir da nur nichts vor.

Aprobos unbegründete Dünkel: Uni-Absolventen sind sowieso FH-Absolventen überlegen. Immerhin haben die eine echte Uni abgeschlossen. :stuck_out_tongue:

Und das soll dir dann doch irgendwie helfen einen Job als Code zu bekommen?

Das ist der beste Rat.

Und beide hoffen, dass ein Fachinformatiker oder eine umgeschulte Hausfrau im Team sind - irgendwer muss die schönen UML-Bilder ja in den komischen „Code“ verwandeln.

*** Edit ***

Mir fällt gerade noch was ein: der heutige Google-Doodle

Für eine Abschlussarbeit ein wirklich peppiges 3D-Zeugs im Browser, das wär erstes was schönes und ziemlich neues - und ist Job-Chancen-steigernd (da würde mal wahrscheinlich eine Menge Javascript dabei lernen, oder besser gesagt: frickeln)

Ich wundere mich auch, was an meiner FH angenommen wurde. Vergleiche Software 1,2 und 3 aus dem Bereich A miteinander und evaluiere diese.

Ich hab ein System mit JavaEE entwickelt, 80% der Arbeit die ich abgegeben habe, bestehen aber aus Konzeptbeschreibung/entwicklung (@Bleiglanz: Keine UML-Bildchen, aber genug andere Diagramme -.-) + Vorstellung der verwendeten JavaEE Elemente.
Wenn du, wie von Landei beschrieben, eine Game-Engine unter die Lupe nimmst, und dort evtl. eine besonders performante Nutzung o.ä. findest, ist das schon viel wert. Selbst wenn es nicht an AAA-Games rankommt.

Mich verwundert es, dass hier die meisten dagegen sind, alles von 0 an zu coden. Gerade das wäre doch das spannende finde ich?! Es wäre doch langweiliger eine bereits fertige Engine zu nutzen.
Vorallem wenn man wirklich alles von 0 an macht, dann hätte man reichlich Schreibmaterial für die Bachelorarbeit. Alleine über die Game-Loop oder Tiles könnte ich mehrere Seiten vollkriegen. Zwar hätte man mit beidem auch bei einer fertigen Engine zu tun, aber da dann eher nur mit fertigen Methoden, wo man vielleicht max. den Methodennamen kennt. Mache ich aber alles selber, kann ich auch gut Codestellen einbrigen usw.

Und wo wäre das Problem mit dem wissenschaftlichen Teil bzw. dass mein Thema an sich bereits nichts neues wäre? Eine Bachelorarbeit muss ja das Rad nicht neu erfinden, das ist ja schließlich keine Doktorarbeit.

Das war eher so gemeint, dass ich bei diesem Thema soweit keine richtige bzw. höhere Informatik drinnen habe, was das ganze vielleicht als Bachelorarbeit überhaupt rechtfertigt. Andere schreiben z.B. über Theoretische Informatik oder KI, das sind z.B. Themen mit richtiger/höherer Informatik aus dem Studium. Aber andererseits, wenn ich beim Spiel die „SW-Entwicklung“-Schiene fahre, samt UML-Diagramme und Entwurfsmuster, dann wäre es ja auch Informatik.

[QUOTE=timbeau;94087]Ich wundere mich auch, was an meiner FH angenommen wurde. Vergleiche Software 1,2 und 3 aus dem Bereich A miteinander und evaluiere diese.

Ich hab ein System mit JavaEE entwickelt, 80% der Arbeit die ich abgegeben habe, bestehen aber aus Konzeptbeschreibung/entwicklung (@Bleiglanz: Keine UML-Bildchen, aber genug andere Diagramme -.-) + Vorstellung der verwendeten JavaEE Elemente.
Wenn du, wie von Landei beschrieben, eine Game-Engine unter die Lupe nimmst, und dort evtl. eine besonders performante Nutzung o.ä. findest, ist das schon viel wert. Selbst wenn es nicht an AAA-Games rankommt.[/QUOTE]

Also war dein Thema auch „nur“ ein klassiches SW-Entwicklungsprojekt wie es bei meiner Idee der Fall wäre?
Aber wozu eine Engine nehmen? Bzw. was soll ich dort für performante Nutzungen finden? Die Methoden dort werden zu 99% schon bestmöglichst optimiert sein, sodass ich da nichts verbessern werde können.

Du musst zwischen Produkt- und Projektentwicklung unterscheiden. In Letzterem konzentrierst du dich darauf nach Ablauf der Zeit etwas fertig zu stellen - in deinem Fall ein Spiel. In Ersterem konzentrierst du dich dagegen mehr darauf zu einem Stichtag eine gewisse Menge an Features bereitstellen und vorzeigen zu können, also z.B. eine Engine für ein Spiel. Es macht wenig Sinn beides zu mischen. Entweder willst du ein Spiel machen oder eine Engine. Wenn du es langweilig findest eine fertige Engine zu nehmen, dann bist du kein (guter) Projektentwickler, in dem Fall würde ich dir raten dich darauf zu konzentrieren eine Engine zu machen und Graphikdemos + eine Architekturübersicht als Endresultat vorzuzeigen. Du kommst zeitlich nicht damit klar neben der Engine auch noch ein Spiel zu machen, das sind zwei unterschiedliche Ziele mit unterschiedlichen Schwierigkeiten.

Auf der anderen Seite geht eine Bachelorarbeit auch nicht lange und wenn du noch nie ein Spiel entwickelt hast bist du die Hälfte der Zeit sowieso mit Einarbeitung beschäftigt und bekommst außer einem rudimentären Spiel sowieso nicht viel hin, da würde ich mich auf Engineerstellung gar nicht erst konzentrieren. Wenn du dann von 0 anfängst gehst du nur das Risiko ein dich in Implementierungsdetails zu verheddern, die für die Erstellung eines Spiels nicht wichtig sind.

Ja, meine Arbeit war SW-Entwicklung, mit Elementen die es so nicht gibt und einen Prozeß ermöglichen und reale Handarbeit verringert. Angeschlossen an ein reales Projekt. Der wissenschaftliche Teil bestand darin, Design etc zu entwickeln, Anforderungen zu ermitteln und Sicherheitsaspekete einzubeziehen. Die SW am Ende war nur ein Prototyp.

Ich würde eigentlich gerne Senf dazugeben, aber es wäre mir lieber, wenn das fundierter Senf sein könnte. Kann es aber nicht sein. Also: Rein subjektiv und vollkommen unfundiert: Ich denke, dass bei einer Bachelorarbeit schon ein bißchen was rumkommen sollte. Und das kann im Zweifelsfall auch sein, dass sich jemand systematisch in ein Thema einarbeitet und eine passende Software dazu implementiert (und wenn sie nicht funktioniert, kann man sie ja immernoch “Prototyp” nennen :D). Ich weiß nicht, wie die Schwerpunkte an der FH sein sollten, oder ob das ganze noch davon abhängen sollte, ob man nachher den Master machen will, aber … “Entwicklung von so einer Art abgespecktem Minecraft 2D” klingt als Titel für so eine Thesis schon komisch. Also, es sollte da IMHO wohl ein Ziel dahinterstehen, das darüber hinausgeht, “mal ein nettes Spielchen” entwickelt zu haben. Da kann ja ALLES drunter fallen: Man könnte sich mit einem Entity-System beschäftigen, Rendering/Grafik, Netzwerk/Multiplayer … das sollte IMHO schon irgendwie eingegrenzt sein. Sicher kann “irgendein Spiel” geeignet sein, um daran das zu implementieren/demonstrieren, worum es in der Arbeit geht, aber es geht dabei nicht oder selten um “das Spiel an sich”. (Die Grenze könnte hier etwas verwischen, wenn man was in Richtung “Serious Games” / “Digital Storytelling” macht, aber das schien dir nicht vorzuschweben).
Und der allgemeine Hinweis, dass man nicht bei “0” anfangen sollte, stimmt IMHO auch. Das tut man praktisch nie. Du würdest ja auch nicht mit dem Bresenham anfangen. Schon solche Fragen wie Swing/JavaFX/Android/OpenGL sind da ja wichtig, um den “Nullpunkt” (von dem man nicht anfangen sollte) überhaupt benennen zu können.

Und diese Seiten wären mehr oder weniger Zeugs, das man genau so auf der Wikipedia oder sonstwo im Internet finden würde?

Wenn du vorher schon Angst hast, dass du nicht genügend Seiten produzieren kannst, dann wird das eh nix. Und falls es doch um die Seitenproduktion geht, dann würde ich mehr in Richtung „Soft-Themen“ wandern. Hilft auch bei späteren Tätigkeiten im Consultingbereich.:slight_smile:

Scherz beiseite: Ich habe vor zig Jahren mal eine Diplomarbeit betreut, noch zu seligen J2EE-Zeiten. Der Diplomand hat viel gearbeitet und gecodet, einen Haufen Theorie gehabt etc (war so ne spezialisierte Code-Gen Sache in Richtung XDoclet). Den Umfang seiner Arbeit konnten wir nur durch extreme Streichungen genügend reduzieren, damit die Seitengrenze nicht überschritten wurde. Ich war dann bei der Abschlussprüfung dabei, da hat der Prof doch dann glatt gesagt, das wäre ja eigentlich trivial und simpel. Ein alter Knacker, der wahrscheinlich das letzte mal mit FORTRAN was programmiert hat - und der das Thema selbst ein halbes Jahr vorher ganz begeistert abgesegnet hatte.

Du musst das im Vorfeld in einem persönlichen Gespräch mit dem Prof klären, wie und was in der Arbeit stehen soll.

Und hör auf die Mehrheitsmeinung hier: bei 0 anfangen und Sprites neu zu erfinden, das mag zwar für Volumen sorgen - aber es ist eben so irrelevant und so fern jeder Praxis der Softwareentwicklung, dass man das einfach bleiben lassen muss. Und offensichtlich unterschätzt du den Zeitfaktor - das sieht zwar vielleicht vorher aus als ob das Pipifax wäre, aber wenn du dann nach vier Wochen intensiver Arbeit da sitzt und auf dem Bildschirm nur ein paar farbige Kleckse umherschwirren, dann wird dir schlagartig klar werden, dass es nicht geht.

Wenn dir das wirklich gefällt und du einen Betreuer findest, der das zulässt: Passt! Mach’s halt. Ist eh besser wenn man sich eine leichte Arbeit raussucht. Wenn du den Msc. anhängst interessiert das sowieso niemanden.

[QUOTE=Bleiglanz]Und diese Seiten wären mehr oder weniger Zeugs, das man genau so auf der Wikipedia oder sonstwo im Internet finden würde?
[/QUOTE]

Das ist doch nicht verboten bei einer Bachelorarbeit?! Ich schreibe ja schließlich keine Doktorarbeit.

Nehmen wir an ich nehme das Thema “Spieleengine”:
Wie wäre dies in meinem Fall mit einem Minecraft 2D kombinierbar in eurem Sinne? Einfach ein Minecraft 2D mit einer Spieleengine erstellen?

Wäre eine Spieleengine für ein abgespecktes Minecraft 2D nicht etwas überdimensioniert? Denn mehr als Tiles zeichnen, auf Kollisionen prüfen, brauche ich doch eh nichts (überspitzt gesagt!). Ich habe schon kleinere Spiele geschrieben, und genau diese Dinge kann man auch gut ohne Engine hinkriegen. Bis man sich da in eine Engine eingelesen hat, hat man das schon längst komplett selbst programmiert und weiß am Ende auch was da wirklich hintersteckt.

Aber du schreibst immer noch eine wissenschaftliche Arbeit. Das bedeutet kein Abschreiben, zitieren aus wissenschaftlichen Quellen (Fachbücher, wissenschaftl. Paper, Internetseiten nur wenn es wirklich sein muss) und vor allem: Eine in wissenschaftl. Kontext gestellte Frage mit wissenschaftl. Mitteln beantworten

[QUOTE=KrokvsKrok;94236] Nehmen wir an ich nehme das Thema „Spieleengine“:
Wie wäre dies in meinem Fall mit einem Minecraft 2D kombinierbar in eurem Sinne? Einfach ein Minecraft 2D mit einer Spieleengine erstellen?

Wäre eine Spieleengine für ein abgespecktes Minecraft 2D nicht etwas überdimensioniert? Denn mehr als Tiles zeichnen, auf Kollisionen prüfen, brauche ich doch eh nichts (überspitzt gesagt!). Ich habe schon kleinere Spiele geschrieben, und genau diese Dinge kann man auch gut ohne Engine hinkriegen. Bis man sich da in eine Engine eingelesen hat, hat man das schon längst komplett selbst programmiert und weiß am Ende auch was da wirklich hintersteckt.[/QUOTE]

Wenn du ein Spiel programmierst, dann ist das für dein Studienfach als Wissenschaft vollkommen irrelevant. Ich würde dir vorschlagen, mit einem anderen Blickwinkel anzufangen: Hinter jeder wissenschaftl. Arbeit (auch einer Bachelorarbeit) steckt eine Frage. Versuche eine solche Frage, wie sie für die Informatik von Bedeutung sein könnte, zu formulieren.

Dabei ist es noch nicht mal schlimm wenn du denkst, sowas ist doch zu einfach oder „das gibt es vielleicht schon“. Solange man die Antwort nicht mit einer schnellen Google-Suche findet, ist die Frage bereits in der engeren Auswahl.

Für dein Minecraft2D (Sowas wie Terraria, Earthbound, …) würde die übergeorndete Frage in etwa lauten: „Wie programmiere ich eine kleine Spielengine?“. Die Antwort auf diese Fragen bieten dutzende Lehrbücher, Tutorials im Internet und quasi jeder der Programmieren kann. Du solltest eher eine Frage finden, die dir keiner auf Anhieb beantorten kann (Natürlich kann sich dein Prof schneller in das Thema einarbeiten als du. Aber die Tatsache dass jemand aus diesem Gebiet dir nicht sofort die Antwort hinklatscht reicht).

Kurz: Auch wenn das hart klingt, „einfach nur ein Spiel programmieren“ kann NICHT Inhalt eine Bachelorarbeit sein.

Kann schon…

Na sicher kann es das. Kommt nur darauf an wie dass die jeweiligen Professoren sehen.

Deshalb meine Empfehlung: Red’ lieber mit deinem Betreuer anstatt mit uns :smiley:

Ok, du hast ja Recht es wird schon viel durchgewunken. Aber meiner Erfahrung nach (Bachelor Mathematik) muss man, wenn das Thema nicht direkt auf die Wissenschaft passt, zumindest noch einen artverwandten Artikel in einem Paper oder zugehörige Forschungsthemen etc. ausführlich erläutern.

Das Thema “2D-Spiel” ist für eine Bachelorarbeit an einer FH sicherlich anspruchsvoll genug, und wenn du das Spiel “from scratch”, also von Grund auf entwickelst, kannst du dabei sicherlich viel lernen, sofern du so etwas bisher noch nie gemacht hast. Ich finde, jeder Programmierer sollte schon einmal ein 2D-Spiel entwickelt haben, zumindest wenn er selbst gerne spielt.

Nach 2.5 Monaten sollte er aber eigentlich ein Thema gefunden haben :wink:

(OT: wir brauchen einen Totengräber-Smiley)