Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Game Maker Domäne. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

Ponyman7

Applejack

  • »Ponyman7« ist der Autor dieses Themas

Beiträge: 592

Game Maker Version: 8.1 Standard

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: CPU-Contest 2012

Danksagungen: 41

  • Private Nachricht senden

1

Donnerstag, 22. September 2011, 18:18

deep



Vorwort:

Mein drittes und vorerst letztes 1-Woche-Projekt. Bin weiterhin auf meinem Minimalistik-Trip und hab es diesmal noch etwas weiter getrieben: kein Soundtrack, keine Grafiken, kein Text, keine Farben, 260x260px, 20fps. Keine Online-Highscore (definitiv!). Diesmal habe ich es tatsächlich darauf angelegt, mit so wenig wie möglich ein möglichst herausforderndes Spiel zu schaffen. Wer also nur mit Effektgewittern und Techno-Mucke Spaß haben kann, sollte hiervon am besten gleich die Finger lassen. Ich werde auch auf Kritik in diese Richtung ("Mit Ein menü und Efekte währe beser!!1 :thumbsup: :thumbsup: :thumbdown: :P 8) :rage2:") garnicht weiter eingehen. Umso willkommener sind Rückmeldungen zum Spielerlebnis selber. Was haltet ihr von der Spielmechanik? vom Schwierigkeitsgrad? der Spieldauer?

Beschreibung:
In deep navigiert ihr mithilfe eures Sonarsystems durch die absolute Finsternis. Dabei müsst ihr in jedem Level ein Ziel erreichen und Kollisionen mit eurer Umgebung vermeiden. Dabei ist euch euer Sonar hilfreich, welches mit Pieplauten angibt, wie weit ihr vom Ziel entfernt seid. Zusätzlich könnt ihr pro Level eine begrenzte Anzahl an Markierungen setzen, um nicht vollständig die Orientierung zu verlieren.

Steuerung (WICHTIG, im Spiel nicht erklärt!):
W,A,S,D - Umherbewegen
Pfeiltasten links, rechts - Umschauen
Leertaste: Markierung platzieren

Screenshot:


Download deep

Viel Spaß beim Erforschen!
MfG Waterman7

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Ponyman7« (7. November 2011, 18:07)


Klaus C. Haber

Kleiner Cäsar

Beiträge: 63

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Lernphase

  • Private Nachricht senden

2

Samstag, 24. September 2011, 13:45

Hi,

hab das Spiel kurz angezockt und die ersten 3 Levels n'paar mal durchprobiert. Muss sagen, das Spiel ist spitze! Schon mal die Idee, dass man sich nur mit Hilfe eines Sonars orientieren kann ist genial. Kaum ist eine Mauer vorm Sonar, schon ist auch Schluss mit der Sichtweite. Man sieht zwar immer nur die weiße "Grenzlinie", aber mann kann sich doch einiges vorstellen von der Welt.

Nur ein Mankerl hät ich da noch zu bemängeln (jaja, ich weiß Du willst nichts in Richtung Design und so hören :whistling: ): An und für sich sieht dieses "Weiß-auf-Schwarz" recht hübsch aus, jedoch nach schon 5 Minuten Spielzeit brauchen meine Augen ein weilchen, sich wieder an das "normale" Tageslicht zu gewöhnen. :pinch:

Reife Leistung, für ein 1-Woche-Projekt :thumbup:
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." - Albert Einstein

Moos

Kleiner Cäsar

Beiträge: 73

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Anfänger

  • Private Nachricht senden

3

Samstag, 24. September 2011, 15:19

Ich find das Spiel klasse. Das reduzierte Design ist genial. Ein Schritt weiter wäre wenn man das U-Boot/Schiff nicht mehr sehen könnte. xD
Ich habs bis jetzt nur bis zum 2. Level geschafft, die bewegende Umgebung ist echt verwirrend. :wacko:


meine Schnecke i@________________________________________________________________________________________
bitte nicht drauf treten!

kevb0ard

Hunger

Beiträge: 578

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Crimson.418 (arbeitstitel)

  • Private Nachricht senden

4

Samstag, 24. September 2011, 16:10

bin erstmal bis ins 3. level gekommen :D später versuch ichs nochmal weiter zu schaffen :D

finde das spiel bissher sehr sehr gut, die idee ist super und die umsetzung auch. das einzige was mich ein wenig gefrustet hat ist dass man nach 1ner berührung von vorne anfangen muss, aber naja ^_^

dennoch der gesamteindruck ist sehr Gut :thumbsup:




Ponyman7

Applejack

  • »Ponyman7« ist der Autor dieses Themas

Beiträge: 592

Game Maker Version: 8.1 Standard

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: CPU-Contest 2012

Danksagungen: 41

  • Private Nachricht senden

5

Samstag, 24. September 2011, 18:26

Danke für die Antworten. Freut mich, dass es so gut ankommt. :)

  Spoiler Spoiler

Zitat von »Klaus C. Haber«

Schon mal die Idee, dass man sich nur mit Hilfe eines Sonars orientieren kann ist genial. Kaum ist eine Mauer vorm Sonar, schon ist auch Schluss mit der Sichtweite.
Die Idee von einem Spiel mit einem Sonar anstelle von freier Sicht hatte ich schon länger im Kopf. Ursprünglich wollte ich einen Rätsel-Platformer daraus machen, in dem man einen blinden Jungen spielt, habe mich letztendlich jedoch entschieden, lieber eine Art "Exploration"-Game daraus zu machen. Die Spielmechanik bietet sich dafür deutlich besser an, wie ich finde.

Zitat von »Klaus C. Haber«

Man sieht zwar immer nur die weiße "Grenzlinie", aber mann kann sich doch einiges vorstellen von der Welt.
Genau das wollte ich in diesem Spiel erreichen. :) Dadurch, dass die Welt quasi unsichtbar ist, sollte umso mehr der Fantasie überlassen werden. Deshalb gebe ich auch keine Erklärung vor, wen man spielt oder wo man sich befindet. Im weiteren Verlauf des Spiels merkt man noch einige Veränderungen um sich herum, was diesen Effekt hoffentlich noch verstärkt.

Zitat von »Klaus C. Haber«

nach schon 5 Minuten Spielzeit brauchen meine Augen ein weilchen, sich wieder an das "normale" Tageslicht zu gewöhnen. :pinch:
Hast du im Vollbild gespielt? Mir war die Optik eigentlich nie ungemütlich, das ist aber sicherlich Geschmackssache. Vielleicht solltest du einfach das Tageslicht meiden. :D

Zitat von »Klaus C. Haber«

hab das Spiel kurz angezockt und die ersten 3 Levels n'paar mal durchprobiert.

Zitat von »Moos«


Ich habs bis jetzt nur bis zum 2. Level geschafft, die bewegende Umgebung ist echt verwirrend. :wacko:

Zitat von »kevb0ard«


bin erstmal bis ins 3. level gekommen :D später versuch ichs nochmal weiter zu schaffen :D
Das mit dem Schwierigkeitsgrad war für mich von Anfang an ein Problem. Da ich der einzige Tester war und die Level selber schon kannte, konnte ich nur ungefähr schätzen, ob sie auch für andere schaffbar sind. Verzeiht mir daher, wenn es teilweise etwas gemein ist. Ab Level 3 sind die Zielobjekte schon meistens recht gut versteckt. Umso wichtiger ist es, auf das Piepsignal zu hören.
Ich will euch aber auf jeden Fall ans Herz legen, das Spiel durchzuspielen. Wenn ihr im dritten Level seid, habt ihr schon fast die Hälfte vom Spiel geschafft, und im nächsten Level wartet eine kleine Überraschung auf euch. ;)


MfG Waterman7

lucki90

Chaos

Beiträge: 648

Game Maker Version: 8.1 Standard

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Antijeopardy

  • Private Nachricht senden

6

Samstag, 24. September 2011, 18:35

Hey Waterman7,
eine wirklich schöne Spieleidee. Umsetzung gefällt mir sehr gut. Bin aber nicht weiter wie Level 1 gekommen. Stand mit meinem Dreieck in einer Ecke, als der Piep-Ton schon fast durchgängig ohne Pausen kam, aber ein Ziel oder anderes wo ich hin muss habe ich nicht gesehen. :(
Bin anscheinend noch nicht so ganz dahinter gestiegen...

Ponyman7

Applejack

  • »Ponyman7« ist der Autor dieses Themas

Beiträge: 592

Game Maker Version: 8.1 Standard

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: CPU-Contest 2012

Danksagungen: 41

  • Private Nachricht senden

7

Samstag, 24. September 2011, 18:52

Zitat

Stand mit meinem Dreieck in einer Ecke, als der Piep-Ton schon fast durchgängig ohne Pausen kam, aber ein Ziel oder anderes wo ich hin muss habe ich nicht gesehen. :(
Das Ziel wird durch einen kleinen weißen Kreis symbolisiert. Es wird aber nur angezeigt, wenn es auch innerhalb der Reichweite deines Sonars liegt. Wenn das Signal also angibt, dass du ganz in der Nähe bist, schau dich einfach ein wenig um, bis du den Kreis findest. Vergiss dabei nicht, hinter jeder kleinen Ecke nachzuschauen. ;)

MfG Waterman7

Robinx

Starker Euro

Beiträge: 321

Game Maker Version: 8.1 Standard

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: Andere Programmiersprachen

Danksagungen: 8

  • Private Nachricht senden

8

Sonntag, 6. November 2011, 15:06

Die Spielidee ist genial. Leider bin ich irgendwie zu doof, das erste Level zu schaffen. :wacko:
Skype: My.Robinx
Steam: MyRobinx

Biochemic

Waldnymphe

Beiträge: 145

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: NINKILLA

  • Private Nachricht senden

9

Sonntag, 6. November 2011, 16:01

habs mal angespielt und finde, dass sich das Spiel hervorragend spielen lässt wenn man eine Suchtechnik hat und Zeit(!), ich find das Sonar echt cool gelungen. Wüsst gern zu welchem Trick aus Der GM-Trickkiste gegriffen wurde, sowas zu realisieren :D
Klicke hier, um dem Holzfäller Arbeit zu geben
(BIOC ENTERTAINMENT)

LSF Games

Kleiner Cäsar

Beiträge: 54

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Snouts Treasure, Snouts Quest, Flowerpower

  • Private Nachricht senden

10

Sonntag, 6. November 2011, 19:10

Bin erst in Level2 gekommen...
Immerhin etwas! :)
Projekte: Snout's Quest (in absehbarer Zeit)
Flowerpower (demnächst)
Snouts Treasure (bald)

Ponyman7

Applejack

  • »Ponyman7« ist der Autor dieses Themas

Beiträge: 592

Game Maker Version: 8.1 Standard

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: CPU-Contest 2012

Danksagungen: 41

  • Private Nachricht senden

11

Montag, 7. November 2011, 18:08

Yay, Spiel des Monats! :)

Zitat

Wüsst gern zu welchem Trick aus Der GM-Trickkiste gegriffen wurde, sowas zu realisieren :D
Ich habe selber eine Weile gebraucht, um ein für mich akzeptables System auszuarbeiten. Ich hab mir mal die Mühe gemacht und den Entwicklungsprozess ausführlich dargelegt:

  Spoiler Spoiler


(Wenn euch nur das Endergebnis interessiert, schaut euch den letzten der drei Codes an!)
Mein erster Ansatz war, mithilfe von einem Schleifengebilde jeweils den ersten Punkt zu finden, an dem in einer bestimmten Richtung eine Kollision mit dem Wandobjekt vorliegt und diesen Punkt dann zeichnen zu lassen. Das ganze sah dann ungefähr so aus:

GML

1
2
3
4
5
6
7
8
var i1,i2;
for (i1=-45;i1<45;i1+=1) { //diese schleife geht durch alle gradzahlen von -45° bis 45°
	i2 = 0;
	do { // diese schleife überprüft die koordinaten für jeden abstand, bis eine kollision vorliegt oder der abstand >300 ist
    	i2 += 1;
    	       } until (i2>300 || collision_point(x+lengthdir_x(i2,dir+i1),y+lengthdir_y(i2,dir+i1),oWall,true,true)); 
	draw_point(x+lengthdir_x(i2,dir+i1),y+lengthdir_y(i2,dir+i1)); // an jeder der koordianten wird ein einzelner punkt gezeichnet.
	}

Das Problem hierbei war, dass es nicht annähernd performant genug war, vor allem wenn keine Hindernisse in Reichweite waren und somit jede Schleife bos zum Ende durchgezählt hat.
Also habe ich versucht, das ganz ein wenig zu dezimieren, indem ich i1 und 12 (Richtung und Abstand) in größeren Schritten erhöht habe.
Nachdem ich einige Werte ausprobiert hatte, kamen weitere Probleme auf: Erhöhte ich den Abstand in zu hohem Maße, wurden die Umrisse der Hindernisse verzerrt und ungenau; erhöhte ich den Winkel zu schnell, lagen die einzelnen Punkte in zu weitem Abstand von einander und es sah nicht mehr nach einem Radar aus.
Am ersten der beiden konnte ich wenig ändern, also musste ich eine alternative Darstellungsmöglichkeit anstelle der Punkte finden. So kam ich auf die naheliegende Idee, die Punkte nicht einzeln darzustellen, sondern mit Linien zu verbinden:

GML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var i1,i2,i3;
for (i1=-30;i1<30;i1+=3) { //i1 wird nun jeweils um 3 erhöht, was die gesamtdauer der schleife um 2/3 verringert
	//das sichtfeld wurde von insgesamt 90° auf 60° verringert, was die dauer um 1/3 verkürzt
	i2 = 0;
	do {
		i2 += 2; //i2 wird jeweils um 2 erhöht, was die gesamtdauer nochmal halbiert
		} until (i2>200 || collision_point(x+lengthdir_x(i2,dir+i1),y+lengthdir_y(i2,dir+i1),oWall,true,true)); 
    	//die sichtweite und somit die schleifendauer wurde im 1/3 gerkürzt
	draw_line(x+lengthdir_x(i3,dir+i1-3),y+lengthdir_y(i3,dir+i1-3),x+lengthdir_x(i2,dir+i1),y+lengthdir_y(i2,dir+i1)); 
    	// anstelle eines punktes wird nun eine gerade von der jeweils letzten zur aktuellen koordinate gezeichnet
	i3 = i2; // in i3 wird die letzte koordinate gespeichert (bzw der letzte abstand)
	}
draw_line(x+lengthdir_x(i3,dir+i1-3),y+lengthdir_y(i3,dir+i1-3),x,y); // linie zurück zum spieler
// insgesamt ist die dauer der schleife nurnoch 0,074mal so lang wie vorher; das ganze geht also (theoretisch) 13,5mal so schnell wie vorher
//(vorrausgesetzt die schleife wird bis zum ende ausgeführt)

Bei diesem Kompromiss bin ich quasi bis zum Ende der Entwicklung geblieben, bis mir eine Alternative eingefallen ist, welche besser funktioniert hat. Anstatt einzelne Punkte auf Kollision zu untersuchen und dabei den Abstand zu erhöhen, habe ich einfach collision_line benutzt und solange geprüft, bis KEINE Kollsion mehr vorlag. Ich hatte die Möglichkeit anfangs verworfen, da ich davon ausgegangen bin dass collision_line rechentechnisch aufwändiger als collision_point ist und somit vermutlich länger brauchen würde. Die Schleife wird aber mit der neuen Technik sofort beendet, wenn keine Kollision vorliegt und spart damit deutlich mehr Rechendurchläufe als die collision_point-Methode.
Mein Code sah also letztendlich so aus:

GML

1
2
3
4
5
6
7
8
9
for (i1=-30;30;i1+=3) {
	i2 = 200; // i2 startet nun mit 200 und zählt runter
	do {
    	i2 -= 2;
    	} until (i2<8 || !collision_line(x,y,x+lengthdir_x(i2,dir+i1),y+lengthdir_y(i2,dir+i1),oWall,true,true)); // schleife wird beendet, wenn keine kollision vorliegt
	draw_line(x+lengthdir_x(i3,dir+i1-3),y+lengthdir_y(i3,dir+i1-3),x+lengthdir_x(i2,dir+i1),y+lengthdir_y(i2,dir+i1));
	i3 = i2;
	}
draw_line(x+lengthdir_x(i3,dir+i1-3),y+lengthdir_y(i3,dir+i1-3),x,y);

Mit der neuen Methode hätte ich theoretisch die Kompromisse die ich anfangs der Performance wegen eingegangen bin, rückgängig machen können, und das Sichtfeld wieder vergrößern. Das Leveldesign und der Rest der Engine war nun aber schon so sehr auf die Werte abgestimmt, dass ich es dabei belassen habe.


Ich hoffe das ganze ist einigermaßen verständlich erklärt und der ein oder andere findet es interessant und/oder hilfreich.
Ich selber bin jedoch alles andere als ein Experte auf diesem Gebiet, daher will und kann ich nicht behaupten dass meine pauschal die beste Lösung ist. Mich würde interessieren, ob ihr bessere Ansätze habt (um nicht offtopic zu werden, bitte nur zusammen mit Rückmeldung zum Spiel ;))

MfG Waterman7

Ähnliche Themen