Dark Jump

Kommentare anzeigen Worklog abonnieren

Worklogs Dark Jump

Rutsch mein Freund, Rutsch!

Dienstag, 2. Februar 2010 von coolo
Hallo,

nun wurde die Bodenhaftung/Trägheit erfolgreich implementiert, dadurch sind nun Dinge wie Anlaufnehmen um ein bestimmtes Hindernis zu überwinden, Rutschflächen und vieles mehr möglich.
Dabei musste ich das Kollisionssystem Frameunabhängig machen, da ja evtl. die Geschwindigkeit über 16px pro Frame kommen kann (dies ist die vorherige maximal Geschwindigkeit vom Spieler). Das war allerdings nicht allzuschwer.

Schwerer war die Entscheidung das Regensystem nicht zu implementieren. Aufgrund verschiedener Tests bin ich zum Ergebnis gekommen dass das Regensystem SICHER nicht das Weg ins Spiel finden wird.
Warum nicht?
Erstens liegt es daran, dass die nötigen Berechnungen und all das nicht im Rahmen dieses Features wären.
Zweitens bringt es keinerlei Gameplaytechnischen Verbesserungen mit sich, außer vllt. "natürliche Speedruns" oder so, aber das lässt sich auch anders implementieren.

Stattdessen ist eine Tauch/Unterwasser -welt gedacht. Das heißt der Charakter (dessen Name noch nicht feststeht) wird unter Wasser schwimmen können und tauchen können.

Nebenbei habe ich mir einige "Konzepte" ausgedacht, welche ich nun hier aufliste und gerne eure Meinung dazu hören will:
Runde Plattformen: Die mit Abstand schwierigst umzusetzendste Idee welche mir in den Sinn gekommen ist. Dabei denke ich an so Planeten artige Dinger wie in Super Mario Galaxy. Also quasi Planeten in 2D. Ich hätte mir gedacht dass jeder Planet einen Mittelpunkt hat, worauf hin die Figur sobald sie innerhalb vom Radius dieser ist dort hin hingezogen wird. Allerdings wäre auch das Problem mit dem Mapping und so vorhanden, da ja alle Tiles und so in einem Array untergebracht sind müsste ich hier die Codebasis stark umändern.

Zerstörbare Landschaften: Diese ist weniger schwer umzusetzen, da ich mir schon eine funktionierende Klasse gebastelt habe. Diese ist in der Lage in (halbwegs) Echtzeit in Biler zu zeichnen. Allerdings wäre hier wieder das Problem mit dem "Alles ist in einem Arrays".

Coop Modus: Hierbei denke ich an ein Multiplayer Spiel. Dies wäre nicht direkt wie in "New Super Mario Bros Wii" sondern viel mehr eine Art Hilfestellung, also dass der zweite Spieler Monster schlagen kann (da fällt mir ein diese fehlen ja auch noch gänzlich :O) oder andere Dinge. Wäre im Prinzip nicht so schwer zu implementieren.

So das wars.
MfG Coolo

PS: Ich brauch dringend einen Grafiker, bitteee Sad, Er müsste eigentlich "nur" die Spielergrafiken und Gegnergrafiken zeichnen, da ich nicht in der Lage bin lebende Objekte zu zeichnen...

PPS: Jaja, diesmal gibts keine Bilder, dafür nächstes mal versprochen!

Schatten und Schnee!

Dienstag, 26. Januar 2010 von coolo
Hallo Leute!

Ich habe wieder was zu berichten. Damit ich nicht Worklog Leser verliere, habe ich mich dazu entschieden mal ein zwei Bilder zu zeigen.
user posted image
Das neue Schneesystem (Doch nicht dynamisch).

user posted image
Das neue Schattensystem.

So, das neue Schattensystem, schaut beim ersten Blick genauso wie das Alte aus. Beim zweiten Blick sieht man, dass die Schatten nun Pixelgenau sind. Sie haben nun eine Klare Kante. Außerdem ist es um ein paar mal schneller.
Doch warum? Das alte Schattensystem war im Prinzip ein Raytracer. Vom Spieler sind Strahlen ausgegangen welche die Schattenobjekte identifiziert haben. Das hat natürlich einige gravierende Nachteile. Unter anderem ist es dadurch nicht möglich andersförmige Schattenobjekte zu implementieren (da der Strahl ja nur Zugriff aufs Map Array hat) außerdem ist es ungenau (man siehts ja die Schatten haben keine klaren Grenzen auf den alten Bildern) und langsam (das Programm muss ja alle Strahlen rumd herum überprüfen).
Das neue System jedenfalls geht nun nichtmehr alle Strahlen durch, es geht alle Tiles durch und überprüft ob es sichtbar ist. Dabei sind viel weniger Berechnungen notwendig und vorallem entfällt die "Step" Ungenauigkeit (heißt dass beim "abtasten" keine bestimmten Pixel ausgelassen werden). Außerdem weiß nun ein Tile ob es in Sicht ist oder ob es völlig unsichtbar ist (wieder ein Geschwindigkeitsvorteil) außerdem ist es möglich dass auch normale Objekte Schatten erzeugen können.

Schneesystem hier habe ich es mir ein wenig einfacher gemacht, da nun die Tiles doch nicht dynamisch in den Schneelook umgewandelt werden. Die Particle bleiben sobald sie mit der Karte kollidieren stehen, dadurch entsteht dieser "bedeckt" Effekt.
Außerdem habe ich fürs Schneesystem ein Action "onstart" erstellt, welches am Anfang alle Einstellungen setzt.
Über das Action System werde ich in Zukunft mehr reden, da dieses dazu verwendet wird die Story zu scripten (es wird Simple Script Max verwendet).

Also als nächstes gedenke ich Trägheit zu implementieren, damit der Spieler in der Eiswelt "rutscht" und somit sollten auch einige Goodies möglich sein (Eisflächen,...).

MfG
Coolo

Weiter gehts!

Mittwoch, 20. Januar 2010 von coolo
Hallo,
warum kam von mir in letzter Zeit so wenig? Nunja, eigentlich musste ich für die Schule etliche Java Programme schreiben (unter anderem eine Mini Scriptsprache). Da blieb nunmal für Privatvergnügen wenig Platz Smile.

Heute habe ich nun wieder Zeit (die Semesterferien stehen ja vor der Tür Smile). Darum habe ich mir nun drei Punkte aus meiner ToDo Liste herausgepickt:
Arrow Schattensystem neu schreiben: Das aktuelle Schattensystem ist im Prinzip eine Aneinanderreihung von Workarounds.
Das heißt am Anfang werden alle Tiles schwarz gezeichnet, danach wird der Schatten gecastet(dabei unterscheidet er nur Solid und Nicht Solid), und dann werden die noch sichtbaren Tiles (also, die im Radius vom Spieler) je nach Entfernung zum Spieler mit unterschiedlichem Alpha gezeichnet.
Das hat einige Nachteile unteranderem sind keine Diagonalen (oder andersförmigen Tiles) möglich, da es ja nur Solid/Nicht Solid gibt. Außerdem können Ereignisse keine Schatten casten, da ja der "Raytracer" nur Zugriff auf das Map Array hat.
Darum will ich das Schattensystem so umschreiben, dass der Schatten vom Tile/Objekt selber verwaltet wird. Dadurch werden gleich zwei Fliegen mit einer Klatsche erwischt. Erstens sind andere Formen möglich, da ja das Objekt selber "weiß" welche Form es hat und die Ereignisse können selber auch Schatten erzeugen.

Arrow Schneesystem: Da ja Dark Jump mehrere Landschaften haben soll (Höhle, Gebirge, Wasserland und Wolkenwelt) soll es für das Gebirge ein Schneesystem geben. Dabei habe ich es mir so vorgestellt, dass man im Editor Schneewolken setzt, und diese dann vollautomatisch Schnee erzeugen. Der Schneebelag soll dynamisch erzeugt werden, wodurch der Grafiker weniger zutun hat.
Dazu werden die Schneepartikel dynamisch auf die Tiles gezeichnet. Nach einiger Zeit sollten dann die Schneepartikel wieder verschwinden (oder sollten sie sich in Wasser auflösen kA?)

Arrow Wassersystem: Da in Dark Jump auch eine Wasserwelt vorhanden sein wird, darf es natürlich nicht dem Wasser fehlen. Dabei sollte eine Regenwolke Wasser erzeugen. Dann stapelt es sich und nach einiger Zeit entstehen dann Wasser Seen (oder man erzeugt diese Seen gleich im Editor). So könnte man diverse Levels bauen, welche man nur durch eine gewisse Zeit lösen KANN.
Ich stelle mir das Wasser wie in Clonk vor, also keine SPH whatever Simulation.

EDIT: Das Wassersystem ist rein konzeptionell, es wird höchstwahrscheinlich nicht den Weg ins Spiel finden, da der Aufwand zu hoch ist.

Diese Dinge sind bis jetzt rein konzeptionell und werden bestimmt noch ausgearbeitet.
MfG
Coolo

Spring empor mein Freund!

Montag, 4. Januar 2010 von coolo
Hallo,
ich habe in den letzten zwei Tagen an drei Dingen gearbeitet.
Beginnen wir mal mit dem was funktioniert:
Wandsprünge: Diese funktionieren erstaunlich gut, ich hätte nicht gedacht, dass das so leicht zu implementieren ist. Nunja wie habe ich das gemacht? Im Grunde genommen habe ich das System der Jumper (katapulieren den Spieler irgendwohin) und diese auf Wandsprünge umgeändert.

Schräge Flächen: Diese haben mir viel Zeit geraubt, funktionieren leider immernochnicht so wie ich will... Vorallem die Schatten haben Probleme mit schrägen Flächen.

Bewegungssteuerung: Ich habe vor Dark Jump per Webcam steuerbar zu machen, dies funktioniert bereits recht gut, dabei verwende ich das Prinzip von EyeToy, welches sehr Simpel ist. Aber im Moment ist es nur eine kleine Techdemo, und überhaupt nicht spielbar, da es noch recht verbuggt ist. Beizeiten werde ich ein Video davon machen.

Ach ich würde noch einen Grafiker brauchen, würde mich echt freuen wenn sich jemand meldet Smile

MfG
Coolo

Was noch ein Jump'n'run?

Samstag, 2. Januar 2010 von coolo
Da ich eine kleine Auszeit von Simple Script Max brauche, habe ich mich an einem Jump'n'Run rangewagt.
Ursprünglich wollte ich es für den BCC33 schreiben, allerdings bin ich schnell an die Grenzen der Regeln gekommen. So habe ich mich entschlossen einen Worklog zu erstellen.

Im Grunde genommen ist es ein J'n'R wie jedes Andere. Das heißt Seitenansicht, scrolling und all der Blabla. Mir ist es auch wichtig, das man gewisse Freiheiten im Spiel hat, und so die Welten (fast) frei erkunden kann.

Also gehen wir die bereits implementierten Features durch:

* Spring und Beweg System:
Das darf natürlich in keinem J'n'R fehlen, und somit wurde dies als allererstes eingebaut. Bis jetzt ist wie gesagt springen, bewegen und ducken drinnen. Außerdem will ich noch einen Wandsprung, div. Schlagtechniken und andere Dinge. Mein Ziel ist es hier den Stand von Super Mario Bros DS zu erreichen.

*Karten System:
Dieses System ist so ausgelegt quasi unendlich große Karten darstellen zu können, da wirklich nur das berechnet wird, was im Bildschirm zu sehen ist. Es kann außerdem beliebig viele Layer darstellen (im Spiel werden allerdings nur drei unterstützt)

*Particle System:
Kann bis zu 5000 Particle darstellen, verwendet Tweening für die Particle.

*Upgrade System:
Da das Spiel ursprünglich für den BCC33 geplant war, waren natürlich die Upgrades sehr wichtig. Es wird insgesamt 10 Upgrades geben:
1. Geschwindigkeit: Spieler bewegt sich doppelt so schnell (100%)
2. Hoch Sprung: Spieler kann doppelt so hoch springen (100%)
3. JetPack: Spieler hat ein Jetpack, mit dem er sich begrenzt lang in der Luft bewegen kann (80%, Begrenzung fehlt)
4. Waffe: Spieler kann bestimmte Wände wegfeuern (0% war zu faul)
5. Dynamit: Spieler kann alle Wände wegsprengen (100%)
6. Helikopter: Spieler bewegt sich in einem Helikopter durch die Karte (100%)
7. Baloon: Spieler bewegt sich in einem Baloon durch die Karte, der Baloon bewegt sich im Gegensatz zum Helikopter immer nach oben (100%)
8. Kuh: Spieler nimmt die Form einer Kuh an, sobald ihm Gegner sich nähern lässt die Kuh einen Flatus, woraif hin alle Gegner in Sicht sterben (0%)
9. Spinne: Spieler kann Wände hochkraxeln und Spinnennetze zwischen zwei Wände bauen (0%)
10. U-Boot: SPieler kann sich im Wasser fortbewegen

Das sind die Upgrades. Upgrades lassen sich zum Teil kombinieren (Helikopter + Dynamit ist die BEste Kombi). Upgrades kann man sich durch AP (Action Points) dazukaufen. Diese AP liegen auf der Map frei herum und man muss sie einsammeln.

*Mapeditor: Ja ein ganz normaler Mapeditor, inkl. Tile Auswahl und so.

*Diverse Gadgets: Es gibt Plattformen, Springer, Leitern, Checkpoints, Abgründe, Sterne (Um Upgrades zu kaufen), Teleporter und Action Slots.

*Action Slots: Action Slots sind Scripte, welche das Spiel dynamisch halten. Im Moment beherrschen sie nur MEssage Boxen und einfache Befehle (Teleporten ...). Geplant ist außerdem das implementieren von Simple Script Max. Dadurch wird bestimmt einiges an Dynamik eingebracht.

*Schatten System: Das soll dazu beitragen die Atmosphäre zu verdichten und vorallem viele nette Efekte einbringen. Dieses ist anders als beim Vorgänger von Particle Shooter (Mein Beitrag zum BCC26) halbwegs Pixelgenau sein.

Ja was gibt es noch zu sagen?

Ich brauch GANZ GAAAANZ Ganz dringend einen Grafiker, der mit zur Seite steht, und mir dabei hilft. Der Grafiker bekommt die hälfte der Rechte vom Spiel (Heißt, er darf eig. fast alles machen was er will [Solange er mich dabei erwähnt ;D]) und natürlich Credits.

ToDo:
* Actor System vollenden (Wandsprung und Schlagtechniken)
* Upgrades vollenden
* Particle Effekte entwerfen
* Story
* Mapping
* Grafiken
* Diverse Gadgets (Wasser, Diagonale Tiles ...))
Und vieles mehr Wink

Bilder (das Auge isst ja bekanntlich mit Wink):
user posted image
Mapeditor

user posted image
Der Spieler ist auf einer Plattform \o/

user posted image
Springen kann er auch :O

user posted image
Da ist ja eine Leiter UND ein Stern (mit Sternen kann man sich Upgrades kaufen)

user posted image
Wir haben uns einen Helikopter gekauft und werfen gerade Dynamit zu Boden. Zu sehen: Helkopter und explodierendes Dynamit.

MfG
Coolo