Performance

Hi all,

Can you please check this demo out and tell me what you think. I am mainly interested in the performace type issues, startup times, fps…etc



Anyways, heres the link:



http://www.myjavaserver.com/~digiwired/xv.jnlp



Can you please comment on the grass as well plz? how descent does it look, any improvements…etc



Much appreciated,

DP

The md2 problem is that (from what I can tell) they work on translating and scaling the actual vertexes of the triangle individually somehow. I’m not sure exactly, but a ‘generic’ way to represent MD2 models so jME can understand may not be so easy, but definantly wouldn’t involve using TriMesh’s and just interpolating between them(?) in the same sense at least. Mojo, did you code the current MD2 model loader? If so, any suggestions on how to store (then use) that information compactly?

I’m not sure how many polygons are used in that so I can’t comment on how fast it’s suppost to be. But I’m usually able to animate 2000+ polys continuously at about 200 FPS and was getting 98-100 FPS on yours even while it wasn’t moving. Is right arrow the only button that works? Load time was kind of long, curious how you’re doing your grass. A repeating texture on the ground would look nice. The model looked good. You draw it yourself?

sweet demo, the model looks really nice. it all ran just fine on my comp. looking forward to seeing more

Hi DP,

it ran constantly at ~ 160 fps on my pc. That is on a XP2000+, GF4Ti4200, 512 MB Ram.



After webstart finished and the display window was created, it took about 5-6 secs to start up.

Looks very nice. Since we all are waiting for games, keep at it! :wink:

My current game creation span is around 2 Hours :? , i really need to increase that! :slight_smile:



Ive also found out that Clones fun ALOT faster than imposter nodes for grass. By alot, i mean 100 times over, so clones it is. I will be doing nightly build of the game, so keep a look out :wink:

Hey DP. In terms of use, Imposter nodes are meant to replace complex models… grass doesn’t really meet that spec. :wink: Glad the Clones worked out well for ya though.

yeah, im hoping to replace the whole grass area with a single imposter. 4 vertices are better than 30,000! :smiley:



I think im the first dude who actually got a use out of clones :stuck_out_tongue:

I tried the program when you fired uploaded it. I think the grass would look better waving (Can that be dune dun dune with a vertex program?). Now the game just crashes imeditly after it shows the window. Jun 10, 2004 3:41:20 PM com.jme.app.VariableTimestepGame start

INFO: Application started.

Jun 10, 2004 3:41:20 PM com.jme.system.PropertiesIO

INFO: PropertiesIO created

Jun 10, 2004 3:41:20 PM com.jme.system.PropertiesIO load

WARNING: Could not load properties: java.io.FileNotFoundException: properties.cfg (The system cannot find the file specified)

Jun 10, 2004 3:41:26 PM com.jme.system.lwjgl.LWJGLDisplaySystem

INFO: LWJGL Display System created.

Jun 10, 2004 3:41:27 PM com.jme.system.PropertiesIO save

INFO: Saved properties

Jun 10, 2004 3:41:27 PM com.jme.util.lwjgl.LWJGLTimer

INFO: Timer resolution: 3579545 ticks per second

Jun 10, 2004 3:41:27 PM com.jme.system.lwjgl.LWJGLDisplaySystem

INFO: LWJGL Display System created.

Jun 10, 2004 3:41:28 PM com.jme.renderer.lwjgl.LWJGLRenderer

INFO: LWJGLRenderer created. W: 800H: 600

Jun 10, 2004 3:41:28 PM com.jme.renderer.AbstractCamera

INFO: Camera created.

Jun 10, 2004 3:41:28 PM com.jme.scene.Node

INFO: Node created.

Jun 10, 2004 3:41:28 PM com.jme.scene.Node

INFO: Node created.

Jun 10, 2004 3:41:28 PM com.jme.scene.Node

INFO: Node created.

Jun 10, 2004 3:41:29 PM com.jme.scene.Node

INFO: Node created.

Jun 10, 2004 3:41:29 PM com.jme.scene.Node attachChild

INFO: Child (grass) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.Node

INFO: Node created.

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 0) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 1) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 2) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 3) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 4) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 5) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 6) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 7) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 8) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 9) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 10) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 11) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 12) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 13) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 14) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 15) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 16) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 17) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 18) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 19) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 20) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 21) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 22) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 23) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 24) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 25) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 26) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 27) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 28) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 29) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 30) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 31) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 32) attached to this node (Grass)

Jun 10, 2004 3:41:29 PM com.jme.scene.CloneNode attachChild

INFO: Child (Clone 33) attached to this node (Grass)


Removed the rest of the Clones
Jun 10, 2004 3:41:29 PM com.volatile7.xv.GameMain createFloor
SEVERE: Bad File exception: null: C:Documents and SettingsOwnerDesktopcomdatalevelslevel1.xml (The system cannot find the path specified)
Jun 10, 2004 3:41:29 PM com.jme.app.VariableTimestepGame start
INFO: Application ending.

yeah, its a broken build. DAMIT! I am creating the levels from an xml file. And SaxParser.parse(File/InputStream, DefaultHandler) only accepts files or inputstreams. I will try to go round that…somehow! anybody know how???

s’ok now, its fixed. Phewf

If you care, on a mac it bombs out with a null pointer (it looks like).



java.lang.NullPointerException

at com.jme.app.VariableTimestepGame.start(VariableTimestepGame.java:110)

at com.volatile7.xv.GameMain.main(GameMain.java:94)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at com.sun.javaws.Launcher.executeApplication(Launcher.java:844)

at com.sun.javaws.Launcher.executeMainClass(Launcher.java:804)

at com.sun.javaws.Launcher.continueLaunch(Launcher.java:682)

at com.sun.javaws.Launcher.handleApplicationDesc(Launcher.java:397)

at com.sun.javaws.Launcher.handleLaunchFile(Launcher.java:199)

at com.sun.javaws.Launcher.run(Launcher.java:167)

at java.lang.Thread.run(Thread.java:552)





just a heads up, lots of jme doesnt work on macs yet, but i have been able to get almost all the doms running (with tinkering) looks like a cool game :slight_smile:


Cep21, any chances of posting the specs of your machine?

1.5GHz 756MB ram G4 I get 134FPS when running Full screen 800x600

I'm curious how you're doing your XML loading of the file and if anything you picked up could help me in the generic XML scene loader/saver I'm writting

the xml loading is nothing special. here’s a snippet from the xml file:



<level name="InfiltrationOP">
  <model type="MD2" src="com/data/models/trees/tree1.md2">
    <location x="0" y="-25" z="0" />
    <scale value="0.45" />
    <rotation angle="-90" x="0" y="1" z="0" />
    <texture src="com/data/models/trees/tree1.png" />
  </model>
</level>



a node is created with a name of Infiltration op. every time a <model> tag is reached a model is loaded with its properties. when </model> is reached the model is attached to the level node.

Simple as :)

hmbody, the mac libraries aren't included in the webstarted version. Il get some from lwjgl.org and change the necessary things to make it work on macs.

I just need to get the first level finished and designed...etc so you guys can have a play :D

i keep checking on the game to see you much more you have done :).



i was goofing around with it and found a small bug. i don’t know if you really want to work on stuff like this now…but if you press the right arrow key then press the space bar before the more forward animation finished he gets stuck in the middle of the firing animation and starts skating to the right…

Looking great DP. You might have seen Cep21’s comment about getting the MD2 exporter to the XML format finished. You would be the perfect person to test this. I know you were having some out of memory problems with the current MD2 loader, so you should see if the XML loader allieviates the problem.

Definantly would be neat for the entire level (or even game) to be sent to another user as just a .txt file. If the grass is an md2 as well though I’ll need to figure out a generic copy mechanism as well.

hehe, soz to keep you all in suspence, but I have decided to code EVERTHING in this new format :D, hope you enjoy it.



I will try and learn MaxScript over the summer, to see if we can export straight from max into cep’s XML.



whatever23, i just read your comment, and im going to try it out, il keep you all posted.



Btw, cep21, im doing my own XML level format thing, coverting it into yours, then loading the new one up! Thats how great I find your XML thingamabob! :slight_smile:

Great :slight_smile: If you’re using an md2 object in more than one location, the KeyframeController could ‘mostly’ be shared between them because for md2 files the keyframes are the same, just the object’s movement is diffrent. I’m going to work on some efficient sharing mechanism for it.

its me again, and ive bought some pressies with me:







Cep21, as you can see, i am using multiple XML of the zombies in many places, and theres gonna be loads of them. So a shared KeyFrameController would be brilliant.



DP :slight_smile: