A Ball's World

Kommentare anzeigen Worklog abonnieren

Worklogs A Ball's World

#2 bzw. #2,5 - Zurück zum Ursprung

Montag, 10. Januar 2011 von Zwer99
So schnell wieder von vorne anfangen?!?
Ganz genau! Ich denke es ist besser viel zu früh, als zu spät neu zu beginnen. Natürlich hätte das Spiel auch ohne Neubeginn
fertiggestellt werden können, allerdings wäre ich mit mir selbst unzufrieden, wenn ich ständig in einem Wurschtelcode
herumstochern müsste. Außerdem kann ich ein neues Teammitglied "WARoemer" in unserem Team "Corporation & Co",
kurz "CAC" (ausgesprochen hört sich diese Abkürzung irgendwie... naja KAK-mäßig an Wink ), begrüßen. Eines vorweg: WARoemer arbeitet sich
derzeit in BlitzMax ein und ich weiß auch nicht inwiefern er vor hat, Beiträge in dieser Community zu leisten. Jedenfalls hoffe ich,
dass er und ich vieles mit diesem Projekt und eurer Hilfe lernen können.

Keine Planung = Wurschtelcode - Der Plan
Ich will gar nicht daran denken, wie viele tolle Projekte an schlechter Planung scheitern bzw. scheitern werden... Und
ich will gar nicht daran denken, wie wenig Projekte an zu viel Planung und sinkender Motivation gescheitert sind...
Deshalb möchte ich einen Mittelweg finden, zwischen Planung und Motivation. Leider habe ich nur sehr wenig Zeit
(wie man eventuell an den Worklogeintragsintervallen sehen kann), weshalb bei mir auch eine mittelmäßige Planung
sehr lange dauern kann.

Planung - KlassenDIaGramme - ABSTRAKT - *Kopfweh* - Meine Probleme bei der Planung
So habe ich mir das vorgestellt: "Also, als erstes erstelle ich ein Dokument, in dem ich alle meine Ideen zu einem Konzept verbal
zusammenfasse und dann mache ich mich an das Klassendiagramm"
Gut: Das Dokument ist soweit fertig, auf zum Klassendiagramm!

Und hier ist gleich meine Frage:
Wie geht ihr an ein Klassendiagramm heran, wenn ihr genau wisst, wie das Spiel am Ende aussehen soll? Versucht ihr einige
Konstruktionen, die ihr dann mit einem Pseudocode "ausprobiert", ob sie funktionieren? Ich will jetzt keine genauen Details,
sondern einfach nur wissen, ob ihr beispielsweise gewisse Techniken habt bzw. weitere Diagrammarten zur Erstellung des
Klassendiagramms zur Hilfe nehmt.

Eigentlich alles abgeschrieben, aber was soll's - Erste Versuche
So, das ganze States-Management: Spiel, Menü, Editor, usw. habe ich, meiner Meinung nach, mit Hilfe eines Tutorials soweit
fertig. Wenn es etwas zu verbessern gibt bitte melden!!:

user posted image

Und jetzt kommt denke ich ein wichtiger Punkt. Im Prinzip sollte bei jedem State ein Level mit Physik und allem Drum und Dran
vorhanden sein. Das heißt ich will ein dynamisches Menü, wo man die Menüeinträge wahlweise mit der Maus oder mit der
Kugel erreichen kann. Also brauche ich ein Level sowohl für das Spiel, als auch für das Menü. Dann habe ich mir gedacht, dass
wenn sowieso immer nur ein Level geladen ist, das Singleton-Pattern anwenden könnte und dass es keine allzu "feste" Verbindung
mit den States gibt. Das Level kümmert sich also großteils um sich selbst. Ist diese Lösung sinnvoll, oder würdet ihr es anders machen?

user posted image

Kurze Beschreibung zu den Methoden:
Arrow Init() - Lädt das Level aus der Datei von changeLevel()
Arrow initDefault() - Erzeugt ein komplett gerades Level, falls die Datei nicht gefunden wurde, oder wenn der Editor gestartet wird.
Arrow getLevel() - Gibt das aktuelle Level zurück oder erstellt ein neues, falls noch keines geladen wurde
Arrow changeLevel() - Nimmt den Dateinamen auf und ruft init() auf. Falls die Datei nicht gefunden wurde, wird initDefault() aufgerufen.

Gibt es in BlitzMax Exceptionhandling?

Hoffentlich helfen mir ein paar von euch, denn ich denke, dass ich bei diesem Planungsprozess viel über OOP lernen kann und
sicherlich können auch andere Leute davon lernen. Very Happy


MfG, Zwer99

#1 - The beginning with 80%

Dienstag, 24. August 2010 von Zwer99
Hallo an alle!
Nun traue ich mich auch mal einen kleinen Worklog zu starten (die scheinen ja wie wild aus dem Boden zu sprießen).
Ich bin ja so der Typ von Hobbyprogrammierer, dem immer wieder mal eine Phase der Lust ergreift und dann wild drauf
los hämmert und zum Schluss ein passables, aber nicht ausgereiftes Ergebnis am Bildschirm hat. Damit ist dann auch Schluss
und das Projekt verstaubt und versinkt in den Tiefen meiner Festplatte. (Dennoch achte ich peinlich genau darauf, dass
meine Spiele nicht im Nirwana verschwinden, also auch auf meinem zukünftig neuen Computer sind wieder alle Codehäufchen
aus 2003 drauf. Ich bin eben stolz auf meine Werke, na und Rolling Eyes )

Die Zukunftsmusik - Motivation für den Worklog
Ich will meine Einstellung ändern mit diesem Worklog: Ich denke durch den Druck im Nacken etwas zu zeigen, das
noch nicht fertig ist, man aber anpreist, DASS es fertig wird, werde ich es wohl bis knapp oder besser bis zur
vollkommenen Fertigstellung bringen.
Wirklich cool fände ich, wenn ich sagen könnte: "WOW, das Spiel ist zwar nicht der Hammer, aber es ist zu 100% fertig."

Die Sache mit den 80% - Ein wenig Off-Topic
Das ist wirklich frustrierend... Ich denke, dass ich für jedermann sprechen kann, dass die 20%, die nach den 80%
kommen, wirklich nerven. Das Projekt zieht sich und zieht sich und man fragt sich: "Warum? Am Anfang ging doch
alles so schnell! Müssen diese letzten 20% wirklich sein?" - Ich sage: "Ja!"
Im Prinzip sind es genau DIESE 20%, die dem Spiel Tiefe geben, ihm Abwechslung bietet. Diese 20% präsentieren im
Prinzip das Spiel, sie sind der Auslöser, warum ein Spieler das Spiel überhaupt einmal versucht zu spielen. Es ist klar, dass alle
hier nur das Spiel an sich interessiert und auch viele Leute hier im Forum unfertige Spiele spielen, die aus dieser Community
kommen, weil es einfach interessant ist, zu sehen, was dieser und jener so gemacht hat.
Doch es gibt auch viele andere potentielle Spieler, die nicht wissen, wie aufwendig es ist ein Spiel zu erschaffen.
Und diese werden sofort beim Aufblitzen eines verkorksten Menüs (ich denke SCHÖNE Menüs gehören zu den letzten 20%)
die Alt+F4 Tastenkombination verwenden.

Verdammt nochmal, komm auf den Punkt! - Die Entstehung
OK, OK, Ich bin eben der Meinung, dass man auch schreiben sollte, was man sich denkt, oder?
Also, mein Spiel war ein Beitrag für den BCC #36 "Indirekte Steuerung" und entstand in produktiven 2 Tagen.
Klar, dass in so kurzer Zeit Fehler und Unschönheiten entstehen. Trotzdem bin ich (wie oben bereits erwähnt) stolz
auf mich, ein - nunja, sagen wir mehr oder weniger - spielbares "Konstrukt" geschaffen zu haben.

Du schweifst schon wieder ab - Das Spiel
Im Spiel geht es eigentlich darum, dass man mit einer Kugel ein Ziel erreichen muss. Das Problem: Die Kugel lässt
sich nicht einfach so steuern, sondern folgt physikalischen Gesetzen. Dazu kommt, dass die Welt alles andere als
hilfreich konstruiert ist.
Nun wird der Spieler aufgefordert die Welt so zu krümmen, dass die Kugel letzten Endes doch noch gesund und munter
das Ziel erreicht.

Downloaden, downloaden!!!
Da das Spiel ja eigentlich schon zu 80% - OK sagen wir 65% - fertig ist und dies hier ein Worklog ist, stelle ich es nun
gleich einmal zum Download bereit:
A Ball's World v0.5 - (v0.5? OK, ich geb's zu, es ist zu 50% fertig Laughing ) (und nein, dieser Text ist
nicht dazu da, den Downloadlink so groß wie möglich zu machen)


Immer diese Ausreden Wink
Ich weiß, dass die Steuerung unpräziese ist und dass noch viel für einen dauerhaften Spielspaß fehlt. Außerdem könnte
man das Spiel in der jetzigen Fassung NOCH ohne verschiebbaren Controler bedienen, im zukünftigen Spielverlauf, wird
man diesen aber benötigen. Aber wie gesagt, das ist die Version, die in (fast) 2 Tagen entstanden ist. Also bitte nicht hauen Very Happy



Und weil es beim Contest einige Startschwierigkeiten gab, hier eine kleine Beschreibung des Spiels

Seite 1
Seite 2
Seite 3
Seite 4


Ein Schlusswort muss sein
Gut, ich hoffe erst einmal, dass der Ersteindruck zusagt und dass ich bald wieder zum Programmieren komme. Allerdings ist
das bei mir nie vorhersehbar, ob in nächster Zukunft ein Finger am Projekt gerührt wird. Was ich allerdings weiß ist, dass ich den
Willen habe weiter zu machen.
Also, wenn es überhaupt jemanden gibt, der auf einen weiteren Eintrag wartet, sollte nicht warten, weil es lange dauern kann Razz


Ernste Frage: Ist dieser Eintrag zu lang oder hat er zu wenig Abwechslung? Ist er anstrengend zu lesen? Ist er unübersichtlich? Ich will versuchen eine gute Qualität zu erreichen, also bitte Kritik Wink

Aja, das Projekt wird mit BlitzMax geschrieben

MfG, Zwer99