Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (777)
Games in Android Showcase (231)
games submitted by our members
Games in WIP (856)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  about Game Loop  (Read 2946 times)
0 Members and 1 Guest are viewing this topic.
Offline winnerpig

Junior Newbie

« Posted 2009-02-12 03:05:50 »

[size=10pt][size=10pt][size=10pt][size=10pt][size=10pt]Generally,the game loop is built up manually,hower, in my opioin, the game application under awt or swing doesn't need to do this ,since we can override the  defult method Update() with game logic (sprite move and collosion detect ,etc) and Paint() with code of graphic rendering ,and finally we just call Repaint()  iteratively within a dead loop while(){} .
so, what's the necessity of constructing a game loop by ourself?[/size][/size][/size][/size][/size]
Offline Hsaka
« Reply #1 - Posted 2009-02-12 04:00:18 »

Essentially, calling Repaint() adds a repaint request to the event queue and there is no notion of how long it remains in the queue before repaint is actually executed. Sometimes repaint requests may even be skipped or delayed.

Because Repaint() is at the mercy of the JVM, it is difficult to accurately control the timing of your game. In particular, we have no idea how long we should sleep for, which means we won't be able to maintain a consistent FPS.

Writing your own game loop is necessary because we don't know when repaint is actually completed. So, in order accurately control the timing of the game, we must take things into our own hands instead of overriding Update and Paint. The technique involves actively rendering our buffer image to the screen and implementing our own update method. This way we can measure the rendering time and accurately control how long to sleep.
Offline winnerpig

Junior Newbie

« Reply #2 - Posted 2009-02-17 08:03:16 »

Thanks a lot! There is another question: Is it the absolute way to create a thread  handling the game loop seperately? other words, could I make the game loop without using thread programming?
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline CommanderKeith
« Reply #3 - Posted 2009-02-17 12:46:41 »

Hsaka's right, what he describes is sometimes called active rendering while your approach is passive rendering.

About threading, your code has to run in some thread, so you may as well make your own thread to do it in.

The trouble is, if you're using the AWT to listen for key and mouse events then you need to watch out since the keyPressed(KeyEvent e) etc methods run on the AWT event thread (also called the Event Dispatch Thread, EDT). So you often need to be careful not to modify game code from the EDT while it is running in your own game loop thread. I avoid this by storing the events recieved on the EDT, and then getting them in a synchronized way and processing them on the game loop thread.

Pages: [1]
  ignore  |  Print  

hadezbladez (335 views)
2018-11-16 13:46:03

hadezbladez (177 views)
2018-11-16 13:41:33

hadezbladez (336 views)
2018-11-16 13:35:35

hadezbladez (82 views)
2018-11-16 13:32:03

EgonOlsen (2175 views)
2018-06-10 19:43:48

EgonOlsen (2203 views)
2018-06-10 19:43:44

EgonOlsen (1376 views)
2018-06-10 19:43:20

DesertCoockie (2008 views)
2018-05-13 18:23:11

nelsongames (1646 views)
2018-04-24 18:15:36

nelsongames (2297 views)
2018-04-24 18:14:32
Deployment and Packaging
by mudlee
2018-08-22 18:09:50

Java Gaming Resources
by gouessej
2018-08-22 08:19:41

Deployment and Packaging
by gouessej
2018-08-22 08:04:08

Deployment and Packaging
by gouessej
2018-08-22 08:03:45

Deployment and Packaging
by philfrei
2018-08-20 02:33:38

Deployment and Packaging
by philfrei
2018-08-20 02:29:55

Deployment and Packaging
by philfrei
2018-08-19 23:56:20

Deployment and Packaging
by philfrei
2018-08-19 23:54:46 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!