Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (408)
games submitted by our members
Games in WIP (293)
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  
  Updating Scenegraph from data model  (Read 744 times)
0 Members and 1 Guest are viewing this topic.
Offline dsellars

Junior Member




Need to write more games


« Posted 2003-12-23 08:41:31 »

Hello All,

I've just started to look at creating a simple shooter game using Xith.  The main aim of this is to learn a bit about Xith while doing something (relatively) simple and fun.

What I had in mind was a simple top down shooter (2d world) using 3d models and effects.  This way I get to play with Xith, while (hopefully) not having too much of a headache with the game.

I want to use a MVC style design where the rendering is handled by Xith and I have a simple data model running the game.

What I want to know is what is the best way of updating the scenegraph from the data model?

Do i have to run the model in the same thread as the scenegraph and do somthing like this (from Xith3DTextureBlendTest) where I tick the model, then update the scenegraph and then render it?

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
while (true)
{
      view.renderOnce();

      try
      {
            Thread.sleep(10L);
      }
      catch (Exception e)
      {
      }
      angle += 0.005f;
      testRotateY.rotY(angle);
      testRotateYGroup.setTransform(testRotateY);
}


Or could I run the data model in a seperate thread and set up some kind of observer to update the scenegraph between renderings, so that the model can sync it's self to it's own timeing updates.

Sorry I've rambled a bit, I hope you can help point me in the right direction.

Dan.
Offline Preston

Senior Member


Medals: 2



« Reply #1 - Posted 2003-12-23 12:18:17 »

On a multi-processor system using multi-threads would be nice. :-)  (OK, probably not only on multi-processor systems, but mainly there.)
However please bear in mind that Xith3d is not thread-safe (like Java's collections), so you've to take care about this yourself.

Because I figured out it's not worth the hassle with my Xith app mostly runing on single-processor systems, I took exactly the route you quoted: one thread. It works fine.

loop {
 model.simulate...
 view.doRenderOnce...
 controller.fetchKeysAndMouse...
}

MVC. :-)

Memento mori.
Offline dsellars

Junior Member




Need to write more games


« Reply #2 - Posted 2003-12-23 12:50:22 »

Thanks Preston,

It was the whole "not thread safe" aspect I was concerned about.  

I was just wondering what experience other people had in this situation and wanted to at least start doing things in a recognised way.  It seems I was at least thinking along the right lines.

Now I've just got to find some time.... Wink

Dan.
Games published by our own members! Check 'em out!
Try the Free Demo of Titan Attacks
Offline Yuri Vl. Gushchin

Senior Member




Speak Java!


« Reply #3 - Posted 2003-12-23 14:37:15 »

It sometimes also makes sense to partially place scene updates to Xith3D callbacks (I guess something like GeometryUpdater - I was never using this till now), so you can parallelize the work of GPU and CPU - these days you always have at least 2-processor system with GPU and CPU, so parralelizing their work may speed up overal performance, and, of course, increase framerates.

Yuri

Yuri Vl. Gushchin
JProof Group
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Get high quality music tracks for your game!

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (106 views)
2013-05-17 21:29:12

alaslipknot (114 views)
2013-05-16 21:24:48

gouessej (143 views)
2013-05-16 00:53:38

gouessej (139 views)
2013-05-16 00:17:58

theagentd (151 views)
2013-05-15 15:01:13

theagentd (135 views)
2013-05-15 15:00:54

StreetDoggy (179 views)
2013-05-14 15:56:26

kutucuk (202 views)
2013-05-12 17:10:36

kutucuk (203 views)
2013-05-12 15:36:09

UnluckyDevil (209 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
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!
Page created in 0.101 seconds with 21 queries.