Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Yogilein

Frischling

Beiträge: 11

Wohnort: Bürstadt

Beruf: IT-Koordinator

  • Private Nachricht senden

421

14.02.2014, 12:45

Zitat

Du hast ein Array mit einer Anzahl von 99 Elementen, was einen maximalen Index von 98 zur Folge hat

Das schaue ich mir noch einmal an und ändere es ab.

Zitat

Entweder habe ich diese Spiele noch nicht angeguckt oder den Ton nicht mitbekommen. Grundsätzlich (siehe vorheriger Punkt) sollte man auditives Feedback in seinem Spiel haben, ob es in deinem Fall aber auch gut verwendet wird, müsste ich erst gucken.

Das sind nur die letzten 4 Spiele: Käferli, Käferli II, Käferli III (mein aktuelles Topspiel) und FIDIFU 3D. Zum Ausgeben des Tones muss dabei FX angeklickt werden.

Zitat

Das kommt vor allem auf die Umsetzung an, siehe andere Spiele wie "Candy Crush Saga", "Jelly Splash", "Diamond Dash" etc.

Zu Candy Crush Sage habe ich gerade neulich ein Bericht gelesen. Da stand aber kein kleiner Freizeitprogrammierer dahinter ...

Zitat

Dann ist es durchaus gut, dass du schon soweit gekommen bist, wie bisher. Mir scheint es aber so, als hättest du dir bis zu einem gewissen Punkt auch neues Wissen angeeignet, ab danach dann aber nur noch die Spiele umgesetzt. Das wird sehr wahrscheinlich einfach daran liegen, dass du noch keine Vorkenntnisse aus anderen Sprachen mitbringen kannst, daher nicht weißt, dass es grundsätzlich solche Konstrukte gibt und deswegen nicht auf die Idee kommst, danach zu suchen.

Ich progge eigentlich schon seit ewigen Zeiten, nur nicht mit solchen Konstrukten. Die sind absolut neu für mich. Ich habe z.B. unter DOS viel mit Basic PDS gemacht. Viel Stress hat mir auch das asynchrone Verhalten gemacht. Wenn früher eine Sub durch war (sprich der Rücksprungbefehl wurde erreicht), dann war die Sub auch abgearbeitet. In Javascript ist das nicht mehr so. Da war großes Umdenken angesagt.

Zitat

Was mir aufgefallen ist, ich habe gerade mal eine Runde BlueMania gespielt und es macht den Eindruck als hättest du für jedes Feld das Verhalten festgelegt hast, das macht das Spiel recht unspektakulär, weil man genau weis was beim Auswählen des Feldes passiert.

Das verstehe ich jetzt nicht ganz. Du klickst einen Stein an und die Reihe und Spalte, auf der der Stein liegt, ändern komplett ihre Farbe. Und welche Steine blau werden ist Zufall. Die Vorgabe der Züge steigt im Lauf des Spiels stetig (Vorgabe = Wurzel der Durchgänge). D.h. dass in der 25 Runde 5 Züge vorgegeben sind. Und ab da wird's interessant. Um die vollen Punkte zu erreichen, darfst Du auch genau 1 Fehler machen. Dann bekommst Du noch einmal 100 Züge geschenkt.
LG Yogilein

Yogilein

Frischling

Beiträge: 11

Wohnort: Bürstadt

Beruf: IT-Koordinator

  • Private Nachricht senden

422

14.02.2014, 13:11

Noch eine Antwort vergessen:

Zitat

(Zeileneinrückungen, einheitliches Verwenden von Leerzeichen, ...)

Mein Quellcode sieht da schon ein bisschen anders aus. Vor dem Übertragen ins Netz kille ich u.a. alle Leereichen und -Zeilen, damit der Code etwas komprimierter ist. Hat mir irgendwann mal jemand empfohlen.
LG Yogilein

Nightmaremen

Treue Seele

Beiträge: 110

Beruf: Schüler

  • Private Nachricht senden

423

14.02.2014, 13:35

Bei dem Namen "Candy Crush Saga" muss ich immer lachen... hab da sowas lustiges drüber gehört.
Die haben sich z.b. die wörter Candy und Saga lizensieren lassen.
Jetzt wurden von ihnen meines wissens nach viele spielefirmen mit Uralten Titeln verklagt. Sie sollen diese Spiele aus den 90gern umbennen.
Echt lachhaft ^^
"for a silent travel, u´d better take the next Train" (Lightning)

Yogilein

Frischling

Beiträge: 11

Wohnort: Bürstadt

Beruf: IT-Koordinator

  • Private Nachricht senden

424

14.02.2014, 17:53

Sodele, de ersten Änderungen sind durch:

1. Die Links auf der HP sind nun echte Links.
2. Die Arrays bei BlueMania und BM2 wurden angepasst.
LG Yogilein

Yogilein

Frischling

Beiträge: 11

Wohnort: Bürstadt

Beruf: IT-Koordinator

  • Private Nachricht senden

425

15.02.2014, 15:38

Zitat

Ich hoffe doch, dass du weißt, was Closures sind, da ansonsten das Konstrukt mit module auf zu viel Copy&Paste hindeuten würde.

Ich muss ehrlich sagen, dass ich nicht verstehe, wie ich mit Closures mein Module-Konzept umgehen kann. Sicherlich kann ich innerhalb meines Konzepts Closures einsetzen, aber die Module-Struktur muss bleiben.

Ich verhindere mit der Module-Struktur, dass jemand während dem Spiel in der Befehlszeile Eingaben macht, die Auswirkungen haben.

Ein Beispiel. In meinen und vielen anderen Spielen liegen die Punkte in der Variablen punkte. Habe ich nicht das Module-Konzept, so kann z.B mit der Eingabe javascript:punkte=10000;void(0); der Punktestand auf 10000 manipuliert werden.

Wie geht das mit reinen Closures. Ich habe jetzt mehrere Tests gemacht und es nicht hinbekommen.

LG Yogilein
LG Yogilein

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

426

15.02.2014, 16:11

Sicherlich kann ich innerhalb meines Konzepts Closures einsetzen, aber die Module-Struktur muss bleiben.
Du verwendest bereits Closures.
Wahrscheinlich hast du im Internet bereits eine Definition finden können, die sowas wie "Funktionen, die ihren Erzeugungskontext kennen und auf entsprechende Variablen/Parameter zugreifen können" aussagen, gefunden. Du definierst eine Funktion, welche ein Objekt zurückliefert, dessen Elemente auf Variablen zugreifen, die innerhalb der Funktion definiert wurden. (Diese Variablen stellen einen Teil des Erzeugungskontext der inneren Funktionen dar.)

Ich verhindere mit der Module-Struktur, dass jemand während dem Spiel in der Befehlszeile Eingaben macht, die Auswirkungen haben.

Ein Beispiel. In meinen und vielen anderen Spielen liegen die Punkte in der Variablen punkte. Habe ich nicht das Module-Konzept, so kann z.B mit der Eingabe javascript:punkte=10000;void(0); der Punktestand auf 10000 manipuliert werden.

Gegenfrage: was bringt es dir, zu versuchen, sowas zu verhindern? Will der Spieler unbedingt cheaten, wird er dennoch einen Weg finden. Notfalls passt er den Code so an, dass er cheaten kann (bspw. wird das Objekt unter module durch ein eigenes ersetzt).
Willst du verhindern, dass Benutzer auf diese Weise Highscores "erreichen" können, die eigentlich nicht möglich wären, dann bringt dir diese Obfuscation auch nur bedingt etwas, da ein solche Spieler eher direkt eine Anfrage auslösen würde, die dem Server eine neue Highscore mitteilt.

Alternativ könntest du auch einfach einen Konstruktor für das jeweilige Spiel anlegen, anhand dessen dann ein Objekt erzeugt wird. Der Unterschied zur jetzigen Version wäre lediglich, dass der Aufruf diese Funktion mit einem new stattfindet, dass kein Objekt innerhalb der Funktion erzeugt und zurückgegeben wird und dass die dem jetzigen Objekt angehangenen Funktionen dem aktuell erzeugten Objekt (this) angehangen werden. (In dem Zusammenhang dürfte Object.defineProperty interessant sein.)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Yogilein

Frischling

Beiträge: 11

Wohnort: Bürstadt

Beruf: IT-Koordinator

  • Private Nachricht senden

427

15.02.2014, 17:09

Zitat

Gegenfrage: was bringt es dir, zu versuchen, sowas zu verhindern?

Ich denke (hoffe), dass ich damit den größten Teil "normaler" Anwender vom Manipulieren ausschließe.

Zitat

Will der Spieler unbedingt cheaten, wird er dennoch einen Weg finden. Notfalls passt er den Code so an, dass er cheaten kann

Aber das kann wohl Gott sei Dank nicht jeder. Außerdem habe ich noch eine kleine Gemeinheit eingebaut (die natürlich umgehbar ist), so dass man nicht einfach den Code ändern kann, um einen neuen Highscore zu erzielen. Diese Hürde muss auch noch genommen werden. Und falls Du sie herausfindest, bitte hier nicht breittreten.
LG Yogilein

Yogilein

Frischling

Beiträge: 11

Wohnort: Bürstadt

Beruf: IT-Koordinator

  • Private Nachricht senden

428

16.02.2014, 22:45

Was ich bis jetzt mitgenommen habe ist, dass ich etwas mehr Aufwand in meine Grafik stecken sollte (Animationen, Farbe, etc.). Ich werde versuchen, dies bei meinem nächsten Spiel zu berücksichtigen. Außerdem werde ich meine Funktionen sprechender benamsen.

Nächste Woche würde ich gerne mit FIDIFU 3D in Echtbetrieb gehen. Gibt es zu diesem Spiel (http://www.yogispiele.de/Seiten/FIDIFU3D.php) noch irgendwelche Anmerkungen?
LG Yogilein

ExCluSiv3

Frischling

Beiträge: 61

Wohnort: Düsseldorf

Beruf: Fachinformatiker - Ausbildung

  • Private Nachricht senden

429

17.02.2014, 15:56

Zitat

Das verstehe ich jetzt nicht ganz. Du klickst einen Stein an und die
Reihe und Spalte, auf der der Stein liegt, ändern komplett ihre Farbe.
Und welche Steine blau werden ist Zufall. Die Vorgabe der Züge steigt im
Lauf des Spiels stetig (Vorgabe = Wurzel der Durchgänge). D.h. dass in
der 25 Runde 5 Züge vorgegeben sind. Und ab da wird's interessant. Um
die vollen Punkte zu erreichen, darfst Du auch genau 1 Fehler machen.
Dann bekommst Du noch einmal 100 Züge geschenkt.
Also während meines Tests, war das verhalten bei jedem Klick (auf den selben Stein) das selbe, es wurden immer die selben Steine farblich geändert

Yogilein

Frischling

Beiträge: 11

Wohnort: Bürstadt

Beruf: IT-Koordinator

  • Private Nachricht senden

430

17.02.2014, 17:22

Zitat

Also während meines Tests, war das verhalten bei jedem Klick (auf den selben Stein) das selbe, es wurden immer die selben Steine farblich geändert

Das ist ja auch richtig. Du klickst auf einen Stein und alle Steine in der betreffenden Spalte und Reihe ändern ihre Farbe. Das ist immer gleich. Kompliziert wird das Spiel dann, wenn der Computer mehrere Vorgaben macht, die sich kreuzen. Dann kannst Du auf den ersten Blick nämlich nicht mehr erkennen, auf welche Steine Du klicken musst, damit alles wieder rot wird. Wie gesagt ab 5 Vorgaben wird's kompliziert. Du musst einfach das Spiel mal durchspielen, dann siehst Du es.
LG Yogilein

Werbeanzeige