Project details and a few notes

May 15, 2012 at 6:20 PM

Hi, take a look at what your hard work has enabled me to do :) I notice you haven't updated for a while, so just wanted to show that your stuff is hugely appreciated!



I've built a level editor with physics, event triggers, text management, and a number of other things (that, unfortunately, is still on Nine version 1.0 due to dynamic build issues in winforms with any later versions...).

A few comments I've seen and would suggest, most from what I see coming out of CLR profiler 4 using 1.2:

  • getSkinTransforms for animated models seems to generate a TON of garbage, leading to some serious slowdowns on the XBox.
  • Even without using scenes or anything like that (I use a custom scene graph, more useful for internal maps), I see a lot of calls to a Nine.Octree during the game, in some cases up to 5% of my processing. A brief foray into the code didn't yield obvious reasons, so I was just throwing that out there. I basically just begin a modelbatch.Draw() with a list of models, then end.
  • Normal maps tend to be overly glossy, depending on how the model was built in a modeling program and the run time scaling. I'm dropping them from the game in progress right now due to that.

Anyways, just wanted to share some info and work! Thanks!

May 16, 2012 at 7:49 AM

Nice work Jimmy!

I was working on materials, render flow, serialization and performance enhancements. There are some fundamental changes going on internally so it might take some time for me to commit a usable version.

I also noticed the problems you described, and I have considered performance as one of the most important goals in my new design. Right now I'm having 8000 cubes rendered at nearly 40 FPS on my laptop without instancing. For comparision, these 8000 cubes runs at about 30 FPS using Ogre (C++).

What dynamic build issues do you encounter when you use later versions? Is it caused by DefaultContentProcessor?

May 17, 2012 at 8:04 PM

Impressive, can't wait to see the changes :)

It wasn't a build issue per se. You know how in WinForms loading (see the XNA creators club sample, which is what my work is based on), you specify the list of possible .dll files which contain the processors/importers? When I use a build processor from v1, it builds fine and everything works. When I remove the reference to that dll and replace it with a newer version of the dll, the file does not actually build, but rather hangs on "Build()" indefinitely, no matter what I do. Eventually, I left the level editor at v1 and moved the game engine up to your latest version.

I'm no good with graphics, but if you need any help for level editing software/AI/etc, let me know! For me, things like dynamic convex hulls in Bepu were a nightmare to get going, so I'd like to help if you need any.