Als «game-loop» getaggte Fragen

Die zentrale Codeschleife, die für das laufende Gameplay verantwortlich ist. Im einfachsten Zustand akzeptiert es Eingaben, löst die Aktionen von Entitäten auf und rendert die Szene.


1
Wie kann City-sim Hunderte von Zeichen simulieren?
Meine Spiele beginnen normalerweise ziemlich leicht zu verzögern, wenn es ein paar hundert Felder gibt, die mögliche Charaktere darstellen. Während Spiele wie SimCity oder sogar Anno Hunderte von Charakteren haben. Mir wurde klar, dass diese Spiele nicht bei jedem Tic alles aktualisieren, die Anforderungen in Intervallen behandelt werden und es …

2
Serverseitige Spielschleife
Viele Java-Spiele verwenden thread.sleep (), um fps zu steuern. Sollte die Server-Spielschleife weiterlaufen und nur die Delta-Zeit berechnen, da der Server keine Grafiken anzeigt? Wie dieses Beispiel: long lastLoopTime = System.nanoTime(); final int TARGET_FPS = 60; final long OPTIMAL_TIME = 1000000000 / TARGET_FPS; while (gameRunning) { long now = System.nanoTime(); …

2
Multi-Threaded-Spiel - Aktualisieren, Rendern und Teilen
Aus dem StackOverflow-Beitrag (es wurde empfohlen, dies zu verschieben): Also arbeite ich an einer Spiel-Engine und habe ziemlich gute Fortschritte gemacht. Meine Engine ist jedoch Single-Threaded, und die Vorteile der Aufteilung von Aktualisierung und Rendering in separate Threads klingen nach einer sehr guten Idee. Wie soll ich das machen? Single-Threaded-Game-Engines …

5
Spielschleife unter Windows
Ich habe verschiedene "grundlegende" Spieleschleifen gesehen, sowohl aus Büchern wie "Einführung in die 3D-Spielprogrammierung mit DX11" oder dem Online-Tutorial (Rastertek), und wenn wir alle ausgefallenen Dinge zur Steuerung der Framerate und mehr entfernen, sehen sie alle ungefähr so ​​aus: while (msg != WM_QUIT) // { if (PeekMessage(&msg,0,0,0,PM_REMOVE) { // Translate …




1
Spiel-Update in Libgdx
In libgdx ist die Spieleschleife die render () -Methode. Aber warum ist das so und gibt es eine Möglichkeit, eine update () -Methode zu erstellen, die 60 Mal pro Sekunde aufgerufen wird? Wie bei der update () -Methode würde ich die Spielelogik hinzufügen und das Rendern der Rendermethode überlassen. Grundsätzlich …

1
CPU-Auslastung, Game-Loop und Sleep ()
Ich habe auf zahlreichen Diskussionsseiten über dieses Thema gelesen, aber ich kann anscheinend keine eindeutige (aktuelle) Antwort finden, und ich hoffe, dies gibt mir weitere Einblicke: Ich habe den ausgezeichneten Artikel zur Spielschleifenzeit auf Fix your timestep gelesen! Die CPU-Auslastung wird jedoch nicht berücksichtigt, sodass sie zu 100% ausgeführt wird. …

2
Gleichzeitige Ereignisse in einem Echtzeitsystem, bei dem die Verarbeitungsreihenfolge zu unterschiedlichen Ergebnissen führt
Ich arbeite an einem Echtzeit-Dungeon-Crawler, der sich auf ein relativ komplexes und flexibles Skill-System konzentriert. Etwas ähnlich wie MMORPGs mit vielen zusammengesetzten Zaubersprüchen, Flächeneffekten, Buffs / Debuffs usw. Ich arbeite an den letzten Subsystemen des Motors. Ich habe ein Problem mit Aktionen gefunden, die im selben Logikrahmen ausgeführt werden und …

3
XNA Game Loop Update und Draw
Ich bin verwirrt darüber, wie und wann die Methoden des Spiels aufgerufen werden. Also habe ich gelesen, dass die Sequenz ist: Initialisieren LoadContent Aktualisieren Zeichnen Inhalt entladen Wo 3 und 4 sind die Spielschleife, so dass nach Updategenannt wird, Drawaufgerufen wird, dann Update, dann Draw, und so weiter. Die Spielschleife …
7 xna  game-loop 


2
Zeichne und aktualisiere die Reihenfolge in 3D-Grafiken
In allen Codebeispielen, die ich mir angesehen habe, sieht die Spieleschleife ungefähr so ​​aus: while(true) { InputAndUpdate(); Draw(); SwapBuffers(); } Zerstört dies jedoch nicht die Parallelität zwischen CPU und GPU? Nach dem Aufruf der Swap-Puffer sitzt die GPU untätig da, während die CPU die Eingabe und Aktualisierung übernimmt. Wenn die …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.