Geolaria
Vollbild, Levelauswahl und co.

Sooo, wieder gibts was neues:
Früher war die Standardauflöung 1024x768 und wurde im Vollbild auch so gestreckt, das sieht natürlich nicht sooo toll aus. Die Level wären bei einer größeren Auflösung und somit einer größeren "Karte" für Leute mit einer hohen Desktopauflöung also viel einfacher als für andere. Da es aber genug Leute gibt die es trotzdem im Vollbild spielen wollen (wenn man mit der Maus aus dem Fenster kommt und (ausversehen) klickt wär ja das ganze Fenster weg) habe ich nun einen anständigen Vollbildmodus eingebaut, dieser benutzt die Desktop-Auflösung, die Karte bleibt allerdings zentriert auf 1024x768.
Dazu diese Bilder:
.PNG)
Levelauswahl
Screen:
Hier kann man unter verschiedenen Leveln, die man auch selber bauen kann (siehe ScriptEngine-Eintrag im Worklog), auswählen und ggf. einige "Unterlevel" abschalten, damit man zum Beispiel den Arcademodus trainieren kann ohne ständig die Anfangslevel wiederholen zu müssen. Allerdings hab ich letzeres noch nicht implementiert, folgt aber in den nächsten Tagen sicherlich.
Hinzuzufügen wäre nur noch, dass ich einen weiteren Musikproduzenten gefunden habe, der senerseits auch 2-3 Lieder dem Spiel zusteuern will.
Früher war die Standardauflöung 1024x768 und wurde im Vollbild auch so gestreckt, das sieht natürlich nicht sooo toll aus. Die Level wären bei einer größeren Auflösung und somit einer größeren "Karte" für Leute mit einer hohen Desktopauflöung also viel einfacher als für andere. Da es aber genug Leute gibt die es trotzdem im Vollbild spielen wollen (wenn man mit der Maus aus dem Fenster kommt und (ausversehen) klickt wär ja das ganze Fenster weg) habe ich nun einen anständigen Vollbildmodus eingebaut, dieser benutzt die Desktop-Auflösung, die Karte bleibt allerdings zentriert auf 1024x768.
Dazu diese Bilder:
Levelauswahl
Screen:
Hier kann man unter verschiedenen Leveln, die man auch selber bauen kann (siehe ScriptEngine-Eintrag im Worklog), auswählen und ggf. einige "Unterlevel" abschalten, damit man zum Beispiel den Arcademodus trainieren kann ohne ständig die Anfangslevel wiederholen zu müssen. Allerdings hab ich letzeres noch nicht implementiert, folgt aber in den nächsten Tagen sicherlich.
Hinzuzufügen wäre nur noch, dass ich einen weiteren Musikproduzenten gefunden habe, der senerseits auch 2-3 Lieder dem Spiel zusteuern will.
"Banner" oder so

Hier mal n Banner den ich schnell zusammengeschustert hab, er wird noch verbessert da er aktuell zu sehr dem alten Banner ähnelt, aber ich fand die Version schon gut genug um sie reinzustellen, immerhin ist das hier ja ein Worklog
PS: Ja ich finde lila schön
~Edit~
und noch gleich nen Screen vom noch unfertigen Menü hinterher:


PS: Ja ich finde lila schön

~Edit~
und noch gleich nen Screen vom noch unfertigen Menü hinterher:
Neue Gegnertypen

Hallihallo,
nachdem wieder einige befürchteten, dass das Spiel wieder eingefroren ist, kann ich Entwarnung geben. Ich war eine Woche im Urlaub und die Woche davor hatte ich sehr komische Fehler beim compilen, die sich immer wieder änderten und aus den Modulen bei simplen New-Konstruktoren kamen... Ich kann mir das bis heute immernoch nicht erklären, aber es ist auch egal, habe alle Dateiinhalte manuell kopiert und das hat geklappt, waren ja nich sooo viele Dateien
Was gibts neues fragt ihr euch?
Es gibt nun 8 unterschiedliche Gegnertypen:
Standard und alt bekannte grüne, gelbe und rote Gegner, mit 1,2 bzw 3 Lebenspunkten.
Fast unsichtbare Gegner, die nur einen schwarzen Schatten unter sich haben der auch immer wieder ausfaded.
Eine Art "Mutter"-Gegner in schickem violett... Wird dieser Gegner zerstört kommen zwei kleine Babys raus:
Die Babys (ebenfalls violett aber wie man sich denken kann kleiner als die normalen) bewegen sich eher auf der Stelle als den Spieler zu verfolgen, man kann sie aber leicht übersehen und gerade Kamikaze auf die Mütter ist schwer.
Die grau gehaltenen "Dummies", diese können nicht zerstört werden und dienen zur Ablenkung. So kann man Level interessanter gestalten. Ein Scriptbefehl [KILL]groupid,startevents sorgt aber für kontrollierte Abhilfe.
Hochexplosive Gegner, man erkennt sie durch ihren roten Punkt in ihrer Mitte. Werden sie nach zwei Abschüssen zerstört, explodieren sie und fügen umliegenden Gegnern Schaden zu, je näher sie sind desto mehr Schaden. Diese können also gut taktisch eingesetzt werden wenn man mit wenigen Schüssen viele Gegner zerstören will.
Die unterschiedlichen update()-Methoden sorgten dafür, dass ich das komplette Gegnerverwaltungssystem umschreiben musste, dies hat überraschenderweise sehr lange gedauert, aber nun ist es fertig.
Grafisch wurde auch weiter aufgebessert, so sehen die Explosionen viel besser aus als vorher (meiner Meinung nach natürlich). Das Menü war eigentlich fertig, muss aber durch Komplikationen nochmal implementiert werden, allerdings hab ich grad gar keine Ahnung ob das schnell geht, hab ganz vergessen wie weit ich damit bin.
Außerdem wurden die Grundsteine für die Levelauswahl gelegt. Diese wird man extern runterladen können, ohne viel Aufwand versteht sich.
Da will ich euch mal noch was zum guggn geben (allerdings gibts nicht viel neues zu sehen...):
.PNG)
.PNG)
Ich würde mich sehr freuen wenn ich feedback bekommen würde, das würde mich (hoffentlich xD) motivieren
nachdem wieder einige befürchteten, dass das Spiel wieder eingefroren ist, kann ich Entwarnung geben. Ich war eine Woche im Urlaub und die Woche davor hatte ich sehr komische Fehler beim compilen, die sich immer wieder änderten und aus den Modulen bei simplen New-Konstruktoren kamen... Ich kann mir das bis heute immernoch nicht erklären, aber es ist auch egal, habe alle Dateiinhalte manuell kopiert und das hat geklappt, waren ja nich sooo viele Dateien

Was gibts neues fragt ihr euch?
Es gibt nun 8 unterschiedliche Gegnertypen:






Die unterschiedlichen update()-Methoden sorgten dafür, dass ich das komplette Gegnerverwaltungssystem umschreiben musste, dies hat überraschenderweise sehr lange gedauert, aber nun ist es fertig.
Grafisch wurde auch weiter aufgebessert, so sehen die Explosionen viel besser aus als vorher (meiner Meinung nach natürlich). Das Menü war eigentlich fertig, muss aber durch Komplikationen nochmal implementiert werden, allerdings hab ich grad gar keine Ahnung ob das schnell geht, hab ganz vergessen wie weit ich damit bin.

Außerdem wurden die Grundsteine für die Levelauswahl gelegt. Diese wird man extern runterladen können, ohne viel Aufwand versteht sich.
Da will ich euch mal noch was zum guggn geben (allerdings gibts nicht viel neues zu sehen...):
Ich würde mich sehr freuen wenn ich feedback bekommen würde, das würde mich (hoffentlich xD) motivieren

Einblick in die Scriptengine

Ich lass den ersten Worklogeintrag mal als Überblick und widme diesen Eintrag der ScriptEngine.
Ein Script besteht aus zwei Teilen:
Teil 1: INITIALIZE
In diesem Teil werden die Gegnertypen festgelegt, die Parameterfolge für den [ENEMY]-Tag sieht wie folgt aus:
Code: [AUSKLAPPEN]
und die Implementierung der Standardgegner wie folgt:
Code: [AUSKLAPPEN]
Wie man vielleicht schon erkennt werden Befehle in eckigen Klammern geschrieben und die Parameter, mit Kommata getrennt, angefügt. Weitere Einstellmöglichkeiten gibt es noch nicht.
Teil 2: GAME
Der zweite Teil ist der "Game"-Teil. Hier gibt es 4 wichtige Befehle:
[LEVEL]
Initialisiert ein neues Level und trennt damit das Spiel in mehrere Abschnitte.
[TEXT]Startevents,Text,X,Y,Farbwerte R|G|B, Zeit
Zeigt einen Text in der gewünschten Farbe an der gewünschten Position für die gewünschte Zeit lang an, nachdem die Startevents abgefeuert worden sind.
[WAIT]ID,Startevents,Zeit
Erstellt einen Timer der gestartet wird, wenn die Startevents eintreffen. Wenn die Zeitabgelaufen ist wird ein wait-Event abgefeuert, das die ID des Timers enthält.
[GROUP]ID,Startevents,EnemyID,Anzahl,Verzögerung,PosX,PosY
Das wohl wichtigste am Skript. Dieser Befehl erstellt eine Gegnergruppe mit einer ID. Sie wird gestartet wenn die Startevents erfüllt werden. Erfolgt dies, so wird ein start-Event abgefeuert, mit der GruppenID.Danach werden Gegner des angegebenen Gegnertyps gespawnt. Die Verzögerung muss keine eindeutige Zahl sein, sondern kann eine Rechnung sein, die die beiden Variablen i und n benutzt. i wird für jeden Gegner um 1 erhöht, n stellt die Anzahl der Gegner in der Gruppe dar. So würde 1000-i/n*1000 eine Verzögerung ergeben, die immer kleiner wird und somit die Gegner immer schneller hitnereinander gespawnt werden.
Selbiges gilt auch für die Parameter PosX und PosY. Hierbei können aber noch mehr Variablen benutzt werden: (Ich denke die Variablennamen sind eindeutig)
Code: [AUSKLAPPEN]
und desweiteren können mathematische Funktionen benutzt werden:
Code: [AUSKLAPPEN]
Dadurch kann schon mit eienr einzigen Zeile z.B. ein Kreis erstellt werden:
Code: [AUSKLAPPEN]
Die Events:
Code: [AUSKLAPPEN]
IDs gelten nur im jeweiligen Level.
Noch nicht implementiert, aber geplant:
[POWERUP]Häufigkeit für erscheinen eines PowerUps,Häufigkeit für Schildpowerup,Häufigk. f. SchussanzahlP.Up.,Häufigk. f. DurchschlagP.UP
Dies stellt die Powerups ein und werden im Level definiert und gelten solange bis was anderes definiert wird.
Sooo... für Vorschläge bin ich natürlich noch offen, einfach ne pm an mich.
Diesen Eintrag werd ich leicht abgeändert dann auch als Tutorial mitschicken, falls ich keinen Leveleditor baue.
Ein Script besteht aus zwei Teilen:
Teil 1: INITIALIZE
In diesem Teil werden die Gegnertypen festgelegt, die Parameterfolge für den [ENEMY]-Tag sieht wie folgt aus:
Code: [AUSKLAPPEN]
[ENEMY]ID, Pfad zum Bild, Farbwerte R|G|B, Lebenspunkte, Geschwindigkeit, Punkte
und die Implementierung der Standardgegner wie folgt:
Code: [AUSKLAPPEN]
[INITIALIZE]
[ENEMY]gruen,gfx/gruen.png,0|255|0,1,2.0,10
[ENEMY]gelb,gfx/gelb.png,255|255|0,2,2.0,20
[ENEMY]rot,gfx/rot.png,255|0|0,3,2.0,30
[ENEMY]gruen,gfx/gruen.png,0|255|0,1,2.0,10
[ENEMY]gelb,gfx/gelb.png,255|255|0,2,2.0,20
[ENEMY]rot,gfx/rot.png,255|0|0,3,2.0,30
Wie man vielleicht schon erkennt werden Befehle in eckigen Klammern geschrieben und die Parameter, mit Kommata getrennt, angefügt. Weitere Einstellmöglichkeiten gibt es noch nicht.
Teil 2: GAME
Der zweite Teil ist der "Game"-Teil. Hier gibt es 4 wichtige Befehle:
[LEVEL]
Initialisiert ein neues Level und trennt damit das Spiel in mehrere Abschnitte.
[TEXT]Startevents,Text,X,Y,Farbwerte R|G|B, Zeit
Zeigt einen Text in der gewünschten Farbe an der gewünschten Position für die gewünschte Zeit lang an, nachdem die Startevents abgefeuert worden sind.
[WAIT]ID,Startevents,Zeit
Erstellt einen Timer der gestartet wird, wenn die Startevents eintreffen. Wenn die Zeitabgelaufen ist wird ein wait-Event abgefeuert, das die ID des Timers enthält.
[GROUP]ID,Startevents,EnemyID,Anzahl,Verzögerung,PosX,PosY
Das wohl wichtigste am Skript. Dieser Befehl erstellt eine Gegnergruppe mit einer ID. Sie wird gestartet wenn die Startevents erfüllt werden. Erfolgt dies, so wird ein start-Event abgefeuert, mit der GruppenID.Danach werden Gegner des angegebenen Gegnertyps gespawnt. Die Verzögerung muss keine eindeutige Zahl sein, sondern kann eine Rechnung sein, die die beiden Variablen i und n benutzt. i wird für jeden Gegner um 1 erhöht, n stellt die Anzahl der Gegner in der Gruppe dar. So würde 1000-i/n*1000 eine Verzögerung ergeben, die immer kleiner wird und somit die Gegner immer schneller hitnereinander gespawnt werden.
Selbiges gilt auch für die Parameter PosX und PosY. Hierbei können aber noch mehr Variablen benutzt werden: (Ich denke die Variablennamen sind eindeutig)
Code: [AUSKLAPPEN]
i,n,playerx,playery,gfx,gfy
und desweiteren können mathematische Funktionen benutzt werden:
Code: [AUSKLAPPEN]
sin,cos,tan,ceil,floor,rnd
Dadurch kann schon mit eienr einzigen Zeile z.B. ein Kreis erstellt werden:
Code: [AUSKLAPPEN]
[GROUP]0,,gruen,100,0,gfx/2+sin(i/n*360)*gfy/2,gfy/2+cos(i/n*360)*gfy/2
(100 Gegner die ohne Verzögerung sofort gespawnt werden. Der Kreis hat den Mittelpunkt gfx/2,gfy/2 und einen Radius von gfy/2 und geht natürlich einmal rum)
Die Events:
Code: [AUSKLAPPEN]
start:ID
spawn:ID
kill:ID
wait:ID
Events können miteinander verknüpft werden, dazu bedient man sich einer Pipe ( | ). Ein spawn-Event wird abgefeuert, wenn die Gegnergruppe vollständig gespawnt wurde. Ein kill-Event wenn eine Gegnergruppe vollständig vernichtet wurde.
spawn:ID
kill:ID
wait:ID
IDs gelten nur im jeweiligen Level.
Noch nicht implementiert, aber geplant:
[POWERUP]Häufigkeit für erscheinen eines PowerUps,Häufigkeit für Schildpowerup,Häufigk. f. SchussanzahlP.Up.,Häufigk. f. DurchschlagP.UP
Dies stellt die Powerups ein und werden im Level definiert und gelten solange bis was anderes definiert wird.
Sooo... für Vorschläge bin ich natürlich noch offen, einfach ne pm an mich.
Diesen Eintrag werd ich leicht abgeändert dann auch als Tutorial mitschicken, falls ich keinen Leveleditor baue.
Mir war langweilig...

...also dacht ich mir, machste einfach mal nen Worklog zu meinem aktuellen Projekt.
Ich schreibe gerade an einer Neuauflage meines Spiels ChaosSpace [ShowCase] und weil bestimmt schon viele dachten dieses Projekt sei beim Alpha-Status von 0.93 stehen geblieben, der täuscht sich. Ich hatte zwar mal ne Pause aber seit gut zwei Monaten bastel ich unter Hochdruck eine neue Version. Dazu habe ich ChaosSpace komplett neu geschrieben und gebe dem Spiel daher auch den Namen "ChaosSpace Reloaded"
Ich weiß nicht wie weit der Projektstatus ist, aber ich kann ja mal sagen was alles schon eingebaut ist:
Aktuelle Features:
Komplett neue ScriptEngine, mit der das Levelgestalten jetzt einfacher ist als es früher gewesen wäre.
Völlig neue Grafikeffekte
Mehr Partikel *lächz*
Komplettes Sicherheitsmodul, das "Hackern" es nun schwieriger gestalten sollte im Spiel zu cheaten (dank an nX^)
Mehr Einstellmöglichkeiten, falls die Partikel langsamere Rechner in die Knie zwingen sollten.
Gegner verteilen sich noch besser
Schüsse wurden verändert, man kann jetzt durch entsprechende PowerUps bis zu 4 Schüsse gleichzeitig abfeuern. Das "Durchschlagskraft-PowerUp"(
) wurde beibehalten.
Gegner prallen nun vom Schild ab
Neu definierbare Gegner - wie z.B. fast unsichtbare (nur n kleienr schwarzer Schatten für ein wenig Nervenkitzel xD)
Extra für ChaosSpace Reloaded komponierte Musik (4 Titel). Dank geht an Sebastian Schell
Menü, einstellbare Sprache (Englisch oder Deutsch)
Noch geplante Features:
Levelauswahl
Komplett neuer online Highscore, der sicherer ist als der jetzt.
Filtermethode und Scrollbalken für den Highscore (man war das nervig früher)
neue Sounds
Noch ein paar Gimmicks in Sachen PowerUps
natürlich eine Menge neuer Level
Besserer Updater mit mehr Möglichkeiten, der natürlich vorher fragt ob er updaten darf.
Fragwürdig geplante Features:
Leveleditor
Coop-Modus
eigene Website xD
offline Highscore
<EDIT>
Es gibt nun 8 unterschiedliche Gegnertypen:
Standard und alt bekannte grüne, gelbe und rote Gegner, mit 1,2 bzw 3 Lebenspunkten.
Fast unsichtbare Gegner, die nur einen schwarzen Schatten unter sich haben der auch immer wieder ausfaded.
Eine Art "Mutter"-Gegner in schickem violett... Wird dieser Gegner zerstört kommen zwei kleine Babys raus:
Die Babys (ebenfalls violett aber wie man sich denken kann kleiner als die normalen) bewegen sich eher auf der Stelle als den Spieler zu verfolgen, man kann sie aber leicht übersehen und gerade Kamikaze auf die Mütter ist schwer.
Die grau gehaltenen "Dummies", diese können nicht zerstört werden und dienen zur Ablenkung. So kann man Level interessanter gestalten. Ein Scriptbefehl [KILL]groupid,startevents sorgt aber für kontrollierte Abhilfe.
Hochexplosive Gegner, man erkennt sie durch ihren roten Punkt in ihrer Mitte. Werden sie nach zwei Abschüssen zerstört, explodieren sie und fügen umliegenden Gegnern Schaden zu, je näher sie sind desto mehr Schaden. Diese können also gut taktisch eingesetzt werden wenn man mit wenigen Schüssen viele Gegner zerstören will.
</EDIT>
Joar, das wollt ich mal berichten, und jetzt vergessen wir die Worte und lassen Bilder sprechen
Screenshots: (Klicken zum Vergrößern)
.PNG)
.PNG)
.PNG)
.PNG)
(Das Menü ist noch nicht fertig)
Einen Betarelease (sofern überhaupt nötig) werde ich aber erst später machen wenn alles bis auf den Feinschliff steht. Wers nicht erwarten kann dieses Spiel zu spielen soll sich erstmal mit dem alten ChaosSpace zufrieden geben und "Jan" von dem Highscore wegputzen
Wie man merkt treibe ich ziemlich großen Aufwand für das Spiel, deshalb werde ich das ganze auch ein bisschen größer releasen als die alte Version, mehr sag ich dazu jetzt aber nicht
Ich schreibe gerade an einer Neuauflage meines Spiels ChaosSpace [ShowCase] und weil bestimmt schon viele dachten dieses Projekt sei beim Alpha-Status von 0.93 stehen geblieben, der täuscht sich. Ich hatte zwar mal ne Pause aber seit gut zwei Monaten bastel ich unter Hochdruck eine neue Version. Dazu habe ich ChaosSpace komplett neu geschrieben und gebe dem Spiel daher auch den Namen "ChaosSpace Reloaded"
Ich weiß nicht wie weit der Projektstatus ist, aber ich kann ja mal sagen was alles schon eingebaut ist:
Aktuelle Features:














Noch geplante Features:








Fragwürdig geplante Features:




<EDIT>
Es gibt nun 8 unterschiedliche Gegnertypen:






</EDIT>
Joar, das wollt ich mal berichten, und jetzt vergessen wir die Worte und lassen Bilder sprechen

Screenshots: (Klicken zum Vergrößern)
(Das Menü ist noch nicht fertig)
Einen Betarelease (sofern überhaupt nötig) werde ich aber erst später machen wenn alles bis auf den Feinschliff steht. Wers nicht erwarten kann dieses Spiel zu spielen soll sich erstmal mit dem alten ChaosSpace zufrieden geben und "Jan" von dem Highscore wegputzen


Wie man merkt treibe ich ziemlich großen Aufwand für das Spiel, deshalb werde ich das ganze auch ein bisschen größer releasen als die alte Version, mehr sag ich dazu jetzt aber nicht

Gehe zu Seite Zurück 1, 2, 3, 4