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

11

16.12.2011, 21:57

Meistens liegen solche Ruckler am Rendering-Code.
Evtl. solltest du da mal schauen.

12

16.12.2011, 22:01

http://www.cplusplus.com/reference/stl/

Da steht zu jedem Container, welche Operationen welches Laufzeitverhalten haben. Das sollte jeder Informatiker auswendig wissen, um beurteilen zu können, welcher Container in welcher Situation der richtige ist. Kurze Übersicht:
- list: Kann man schnell ändern (Objekte löschen/entfernen, aneinanderhängen usw.)
- vector: wenig Overhead, schneller Zugriff auf i-te Element
- map: Schnelle suche nach Objekten
- usw.
Die tatsächliche Geschwindigkeit hängt dann nochmal von der verwendeten Implementierung ab, man kann auch unter VC z.B. STLport benutzen (soll im Debug Modus sehr viel schneller sein).

Wenn dein Spiel unregelmäßige Hänger hat, machst du irgendetwas unregelmäßig? Wenn sich ein Container ständig ändert, kann die Suche mal schnell und mal langsam sein. Aber eine Sekunde ist schon extrem, das könnte ein Threadingproblem sein (nachladen im Hintergrund, aber du wüsstest wohl wenn es daran liegen würde) oder sonst irgendetwas komisches. Evtl. läuft auch bei dir im Hitnergrund etwas (Debugger, Virenscanner, Virus) oder so. Also vielleicht das Spiel mal hochladen und andere Testen lassen?
Lieber dumm fragen, als dumm bleiben!

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

13

16.12.2011, 22:14

Hier die gewünschte Testversion^^

http://www.loaditup.de/files/672425_bdhrq9383y.zip


Und wo wir hier schonmal alle sind, hat jemand zufällig eine gute 2D Raketen Grafik?^^
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

14

16.12.2011, 22:19

Sind die Ruckler lang genug um darauf reagieren zu können? Du könntest drauf warten und im Debuger auf "Pause" klicken. Dann wechselst du zwischen den Threads und schaust in den Stapelrahmen bis du eine Funktion deines Codes findest. Das könnte den entscheidenen Hinweis geben ;)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

15

16.12.2011, 22:24

sollte klappen ich versuchs^^
wie "pausiert" man den debugger in vc 2010?
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FreezingEngine« (16.12.2011, 22:30)


FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

16

16.12.2011, 22:48

Ok soviel weiß ich:
Nur die Maus bewegen reicht schon und es kommen "hänger" , kommt das Schießen und die beweglichen Hintergrundbilder dazu Laggt es stärke.
wie gesagt ohne alles, nur mausbewegen sind die Laggs kürzer also liegt es doch am zeichnen?
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

17

16.12.2011, 22:56

Bei mir ruckelt nichts. Aber ohne Code zu sehen können wir auch nur raten woran es bei dir liegt. Aber wie gesagt bei mir läufts flüssig.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

18

16.12.2011, 22:57

wie oft hast du es denn gespielt?
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

19

16.12.2011, 23:09

Es wäre auch gut möglich, dass du Ressurcen lädst ohne es zu bemerken. Zum Beisiel im Konstruktor eines Spielobjektes, wird jedes mal die Bilddatei neu geladen. Wenn durch irgendeinen Zufall dann mal 10 Objekte auf einmal erstellt werden, hängt es halt, weil es nachladen muss.
Lieber dumm fragen, als dumm bleiben!

20

16.12.2011, 23:19

Ok, ich hab die Ruckler auch. Aber mal ne andere Frage, was ist hier passiert?

Irgendwie wird die Auflösung nicht richtig angepasst.

Die Ruckler könnten auch an der Kollisionsabfrage liegen, vielleicht hast du irgendwo eine Schleife, die aus merkwürdigen Gründen in bestimmten Situationen sehr sehr lange läuft, aber dann doch irgendwie abbricht (du machst mit einem Objekt viele kleine Schritte, bis es aus dem Spielfeld geflogen ist oder ähnliches). Aber eigentlich müsstest du dass dann wissen, wenn du etwas ähnliches im Code hast, das irgendetwas wirklcih eine Sekunde lang läuft, aber dann doch fertig wird, ist eher ungewöhnlich (bzw. man sieht sowas schon bei der Programmierung).

Ansich ist es sehr schwer zu sagen, wo da jetzt der Fehler liegt, wenn es eine von den angesprochenen Quellen ist, müsstest du das am ehesten wissen, weil du es geschrieben hast. Es könnte aber auch sein, dass dein Problem nur eine Randerscheinung eines ganz anderen Fehlers ist, etwa der Fehlbenutzung einer externen Bibliothek. Manchmal kann man die seltsamsten Fehler beheben, indem man sich erstmal um andere, kleinere kümmert, von denen man gar nicht meint, sie hätten was mit dem eigentlichen großen Problem zu tun.

Du solltest also jetzt keine neuen Features einbauen, bis du den Fehler gefunden hast, sonst wird es nur noch schwieriger. Aber andere Fehler beheben und unsaubere Stellen im Code umbauen könnte auf wundersame weise helfen. Manchmal programmiert man ja die schnelle und vermeintlich einfache Lösung, bis man auf seltsame Probleme stößt, die dann verschwinden, wenn man es mit der sauberen und eleganten noch einmal neu schreibt. Auch wenn man aus Fehlern lernt, lohnt es oft gar nicht, schlechten Code auszubessern, weil er danach immer noch schlecht ist, nur eben etwas besser. (Bezieht sich jetzt eher auf kleinere Dinge, man kann nicht wegen jedem Problemchen sein komplettes Programm umstrukturieren, aber halt kleiner Algorithmen durch andere ersetzen).
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige